changeset 90260:0ca0d9181b5e

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-95 Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 598-615) - Update from CVS - Remove lisp/toolbar directory - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 142-146) - Update from CVS
author Miles Bader <miles@gnu.org>
date Mon, 16 Jan 2006 06:59:21 +0000
parents a3ba65547f84 (current diff) 01b85ec4a61d (diff)
children 7beb78bc1f8e
files ChangeLog admin/ChangeLog admin/FOR-RELEASE etc/ChangeLog etc/MH-E-NEWS etc/Makefile etc/NEWS etc/e/eterm etc/e/eterm.ti lib-src/ChangeLog lib-src/etags.c lisp/ChangeLog lisp/ChangeLog.10 lisp/allout.el lisp/arc-mode.el lisp/bookmark.el lisp/calc/calc-store.el lisp/calc/calc-units.el lisp/cus-edit.el lisp/cus-face.el lisp/dabbrev.el lisp/desktop.el lisp/diff-mode.el lisp/disp-table.el lisp/emacs-lisp/find-func.el lisp/emacs-lisp/lisp.el lisp/emacs-lisp/syntax.el lisp/eshell/em-hist.el lisp/ffap.el lisp/filecache.el lisp/font-core.el lisp/font-lock.el lisp/frame.el lisp/gnus/ChangeLog lisp/gnus/gnus-art.el lisp/gnus/gnus-cus.el lisp/gnus/mail-source.el lisp/gnus/message.el lisp/gnus/rfc2047.el lisp/ido.el lisp/image.el lisp/info.el lisp/jit-lock.el lisp/language/vietnamese.el lisp/loadhist.el lisp/mail/mailabbrev.el lisp/mail/sendmail.el lisp/makefile.w32-in lisp/man.el lisp/menu-bar.el lisp/mh-e/ChangeLog lisp/mh-e/mh-comp.el lisp/mh-e/mh-customize.el lisp/mh-e/mh-e.el lisp/mh-e/mh-identity.el lisp/mh-e/mh-utils.el lisp/mouse.el lisp/net/ange-ftp.el lisp/net/rcirc.el lisp/net/tramp.el lisp/pcvs.el lisp/progmodes/compile.el lisp/progmodes/etags.el lisp/progmodes/gdb-ui.el lisp/progmodes/gud.el lisp/progmodes/make-mode.el lisp/progmodes/meta-mode.el lisp/progmodes/octave-mod.el lisp/progmodes/pascal.el lisp/progmodes/python.el lisp/progmodes/sh-script.el lisp/replace.el lisp/simple.el lisp/speedbar.el lisp/startup.el lisp/subr.el lisp/tempo.el lisp/term.el lisp/term/mac-win.el lisp/textmodes/bibtex.el lisp/textmodes/fill.el lisp/textmodes/org.el lisp/textmodes/paragraphs.el lisp/textmodes/tex-mode.el lisp/textmodes/texinfo.el lisp/toolbar/README lisp/toolbar/attach.pbm lisp/toolbar/back_arrow.pbm lisp/toolbar/back_arrow.xpm lisp/toolbar/cancel.pbm lisp/toolbar/cancel.xpm lisp/toolbar/close.pbm lisp/toolbar/close.xpm lisp/toolbar/copy.pbm lisp/toolbar/copy.xpm lisp/toolbar/cut.pbm lisp/toolbar/cut.xpm lisp/toolbar/diropen.pbm lisp/toolbar/diropen.xpm lisp/toolbar/exit.pbm lisp/toolbar/exit.xpm lisp/toolbar/fld_open.pbm lisp/toolbar/fld_open.xpm lisp/toolbar/fwd_arrow.pbm lisp/toolbar/fwd_arrow.xpm lisp/toolbar/gud-break.pbm lisp/toolbar/gud-break.xpm lisp/toolbar/gud-cont.pbm lisp/toolbar/gud-cont.xpm lisp/toolbar/gud-down.pbm lisp/toolbar/gud-down.xpm lisp/toolbar/gud-finish.pbm lisp/toolbar/gud-finish.xpm lisp/toolbar/gud-n.pbm lisp/toolbar/gud-n.xpm lisp/toolbar/gud-ni.pbm lisp/toolbar/gud-ni.xpm lisp/toolbar/gud-print.pbm lisp/toolbar/gud-print.xpm lisp/toolbar/gud-pstar.pbm lisp/toolbar/gud-pstar.xpm lisp/toolbar/gud-remove.pbm lisp/toolbar/gud-remove.xpm lisp/toolbar/gud-run.pbm lisp/toolbar/gud-run.xpm lisp/toolbar/gud-s.pbm lisp/toolbar/gud-s.xpm lisp/toolbar/gud-si.pbm lisp/toolbar/gud-si.xpm lisp/toolbar/gud-until.pbm lisp/toolbar/gud-until.xpm lisp/toolbar/gud-up.pbm lisp/toolbar/gud-up.xpm lisp/toolbar/gud-watch.pbm lisp/toolbar/gud-watch.xpm lisp/toolbar/help.pbm lisp/toolbar/help.xpm lisp/toolbar/home.pbm lisp/toolbar/home.xpm lisp/toolbar/index.pbm lisp/toolbar/index.xpm lisp/toolbar/info.pbm lisp/toolbar/info.xpm lisp/toolbar/jump_to.pbm lisp/toolbar/jump_to.xpm lisp/toolbar/lc-back_arrow.xpm lisp/toolbar/lc-copy.xpm lisp/toolbar/lc-cut.xpm lisp/toolbar/lc-fwd_arrow.xpm lisp/toolbar/lc-help.xpm lisp/toolbar/lc-home.xpm lisp/toolbar/lc-index.xpm lisp/toolbar/lc-jump_to.xpm lisp/toolbar/lc-left_arrow.xpm lisp/toolbar/lc-new.xpm lisp/toolbar/lc-open.xpm lisp/toolbar/lc-paste.xpm lisp/toolbar/lc-preferences.xpm lisp/toolbar/lc-print.xpm lisp/toolbar/lc-right_arrow.xpm lisp/toolbar/lc-save.xpm lisp/toolbar/lc-saveas.xpm lisp/toolbar/lc-search.xpm lisp/toolbar/lc-spell.xpm lisp/toolbar/lc-undo.xpm lisp/toolbar/lc-up_arrow.xpm lisp/toolbar/left_arrow.pbm lisp/toolbar/left_arrow.xpm lisp/toolbar/mail.pbm lisp/toolbar/mail.xpm lisp/toolbar/mail_compose.pbm lisp/toolbar/mail_compose.xpm lisp/toolbar/mail_send.pbm lisp/toolbar/mail_send.xpm lisp/toolbar/new.pbm lisp/toolbar/new.xpm lisp/toolbar/open.pbm lisp/toolbar/open.xpm lisp/toolbar/paste.pbm lisp/toolbar/paste.xpm lisp/toolbar/preferences.pbm lisp/toolbar/preferences.xpm lisp/toolbar/print.pbm lisp/toolbar/print.xpm lisp/toolbar/right_arrow.pbm lisp/toolbar/right_arrow.xpm lisp/toolbar/save.pbm lisp/toolbar/save.xpm lisp/toolbar/saveas.pbm lisp/toolbar/saveas.xpm lisp/toolbar/search-replace.pbm lisp/toolbar/search-replace.xpm lisp/toolbar/search.pbm lisp/toolbar/search.xpm lisp/toolbar/spell.pbm lisp/toolbar/spell.xpm lisp/toolbar/tool-bar.el lisp/toolbar/undo.pbm lisp/toolbar/undo.xpm lisp/toolbar/up_arrow.pbm lisp/toolbar/up_arrow.xpm lisp/wid-edit.el lisp/woman.el lispref/ChangeLog lispref/buffers.texi lispref/commands.texi lispref/compile.texi lispref/customize.texi lispref/display.texi lispref/files.texi lispref/loading.texi lispref/modes.texi lispref/positions.texi lispref/processes.texi lispref/streams.texi lispref/syntax.texi lispref/text.texi mac/ChangeLog mac/make-package make-dist man/ChangeLog man/building.texi man/custom.texi man/files.texi man/gnus.texi man/info.texi man/misc.texi man/viper.texi src/ChangeLog src/buffer.c src/ccl.c src/emacs.c src/fileio.c src/image.c src/lread.c src/mac.c src/macfns.c src/macterm.c src/macterm.h src/minibuf.c src/search.c src/syssignal.h src/term.c src/unexelf.c src/window.c src/xterm.c
diffstat 379 files changed, 12199 insertions(+), 7460 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Dec 28 07:22:57 2005 +0000
+++ b/ChangeLog	Mon Jan 16 06:59:21 2006 +0000
@@ -1,3 +1,11 @@
+2005-10-17  Bill Wohler  <wohler@newt.com>
+
+	* make-dist: Create and populate etc/images/low-color.
+
+2005-10-15  Bill Wohler  <wohler@newt.com>
+
+	* make-dist: Create and populate etc/images/gud.
+
 2005-10-08  Richard M. Stallman  <rms@gnu.org>
 
 	* make-dist (tempparent): Don't check for 14-char file name limit.
@@ -30,7 +38,7 @@
 	* configure.in (AC_CHECK_FUNCS): Check for get_current_dir_name.
 	* configure: Regenerated.
 
-2005-09-09  Eli Zaretskii  <eliz@fencepost.gnu.org>
+2005-09-09  Eli Zaretskii  <eliz@gnu.org>
 
 	* configure.in <lynxsos*>: Support for LynxOS on PPC.
 	* configure: Regenerated.
--- a/admin/ChangeLog	Wed Dec 28 07:22:57 2005 +0000
+++ b/admin/ChangeLog	Mon Jan 16 06:59:21 2006 +0000
@@ -1,3 +1,13 @@
+2005-10-19  Chong Yidong  <cyd@stupidchicken.com>
+
+	* FOR-RELEASE (New features): max-image-size implemented.
+	(Bugs): split-window done, by Kim F. Storm.
+
+2005-10-17  Bill Wohler  <wohler@newt.com>
+
+	* FOR-RELEASE (DOCUMENTATION): Removed lisp/toolbar from list
+	since it's gone. Also marked mh-e as done.
+
 2005-10-11  Juanma Barranquero  <lekktu@gmail.com>
 
 	* FOR-RELEASE (FATAL ERRORS): Remove item about JPEG
--- a/admin/FOR-RELEASE	Wed Dec 28 07:22:57 2005 +0000
+++ b/admin/FOR-RELEASE	Mon Jan 16 06:59:21 2006 +0000
@@ -39,13 +39,6 @@
 a bitmap appearence.
 [Assigned to KFS]
 
-** Put a max-limit on the size of images, e.g. based on the display size.
-This is to avoid allocating insane amounts of memory due to bogus
-image size specifications.
-Note: rather than clipping images that are too big (this may be
-non-trivial to do correctly in all cases -- and thus non-trivial to
-test), it may be better just to avoid displaying such images for emacs 22.
-
 * FATAL ERRORS
 
 ** Investigate reported crashes in compact_small_strings.
@@ -55,9 +48,6 @@
 
 * BUGS
 
-** Make a new interface for specifying window configurations
-so that we can fix bugs in balance-windows.
-
 ** TCP server processes do not work on Windows.
 
 TCP/IP server processes created with `make-network-process' consume
@@ -89,14 +79,13 @@
 lisp/international	done		Kenichi Handa
 lisp/language		done		Kenichi Handa
 lisp/mail		done		ttn
-lisp/mh-e		working		Bill Wohler
+lisp/mh-e		done		Bill Wohler
 lisp/net		done		ttn
 lisp/obsolete		done		ttn
 lisp/play		done		ttn
 lisp/progmodes		done		Nick Roberts
 lisp/term		done		ttn
 lisp/textmodes		done		ttn
-lisp/toolbar		done		ttn
 lisp/url		done		ttn
 lispintro		done		ttn
 lispref			done		ttn
--- a/etc/ChangeLog	Wed Dec 28 07:22:57 2005 +0000
+++ b/etc/ChangeLog	Mon Jan 16 06:59:21 2006 +0000
@@ -1,3 +1,109 @@
+2005-10-20  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* e/eterm-color.ti: Change the terminal name to eterm-color.
+	* e/eterm-color: Regenerate.
+
+2005-10-20  Bryan Henderson  <bryanh@giraffe-data.com>  (tiny change)
+
+	* Makefile (e/eterm-color): Rename eterm to eterm-color.
+
+2005-10-18  Chong Yidong  <cyd@stupidchicken.com>
+
+	* NEWS: New variable `max-image-size'.
+
+2005-10-17  Bill Wohler  <wohler@newt.com>
+
+	Moved all remaining images from lisp/toolbar to etc/images. The
+	low resolution images were placed in their own directory (low-color).
+
+	* images/attach.*, images/cancel.*, images/close.*:
+	* images/copy.*, images/cut.*, images/diropen.*:
+	* images/exit.*, images/help.*, images/home.*:
+	* images/index.*, images/info.*, images/mail.*:
+	* images/new.*, images/open.*, images/paste.*:
+	* images/preferences.*, images/print.*, images/save.*:
+	* images/saveas.*, images/search.*:
+	* images/search-replace.*, images/spell.*:
+	* images/undo.*: Moved here from lisp/toolbar.
+
+	* images/low-color/copy.*: Moved here from lisp/toolbar/lc-copy.*.
+	* images/low-color/cut.*: Moved here from lisp/toolbar/lc-cut.*.
+	* images/low-color/help.*: Moved here from lisp/toolbar/lc-help.*.
+	* images/low-color/home.*: Moved here from lisp/toolbar/lc-home.*.
+	* images/low-color/index.*: Moved here from lisp/toolbar/lc-index.*.
+	* images/low-color/new.*: Moved here from lisp/toolbar/lc-new.*.
+	* images/low-color/open.*: Moved here from lisp/toolbar/lc-open.*.
+	* images/low-color/paste.*: Moved here from lisp/toolbar/lc-paste.*.
+	* images/low-color/preferences.*: Moved here from
+	lisp/toolbar/lc-preferences.*.
+	* images/low-color/print.*: Moved here from lisp/toolbar/lc-print.*.
+	* images/low-color/save.*: Moved here from lisp/toolbar/lc-save.*.
+	* images/low-color/saveas.*: Moved here from lisp/toolbar/lc-saveas.*.
+	* images/low-color/search.*: Moved here from lisp/toolbar/lc-search.*.
+	* images/low-color/spell.*: Moved here from lisp/toolbar/lc-spell.*.
+	* images/low-color/undo.*: Moved here from lisp/toolbar/lc-undo.*.
+
+	To conform with convention, the underscore (_) in the following
+	image names were replaced with dash (-) or (/) as appropriate.
+
+	* images/back-arrow.*: Moved here from lisp/toolbar/back_arrow.*.
+	* images/fld-open.*: Moved here from lisp/toolbar/fld_open.*.
+	* images/fwd-arrow.*: Moved here from lisp/toolbar/fwd_arrow.*.
+	* images/jump-to.*: Moved here from lisp/toolbar/jump_to.*.
+	* images/left-arrow.*: Moved here from lisp/toolbar/left_arrow.*.
+	* images/right-arrow.*: Moved here from lisp/toolbar/right_arrow.*.
+	* images/up-arrow.*: Moved here from lisp/toolbar/up_arrow.*.
+	* images/low-color/back-arrow.*: Moved here from
+	lisp/toolbar/lc-back_arrow.*. 
+	* images/low-color/fwd-arrow.*: Moved here from
+	lisp/toolbar/lc-fwd_arrow.*.
+	* images/low-color/jump-to.*: Moved here from
+	lisp/toolbar/lc-jump_to.*.
+	* images/low-color/left-arrow.*: Moved here from
+	lisp/toolbar/lc-left_arrow.*. 
+	* images/low-color/right-arrow.*: Moved here from
+	lisp/toolbar/lc-right_arrow.*. 
+	* images/low-color/up-arrow.*: Moved here from
+	lisp/toolbar/lc-up_arrow.*.
+	* images/mail/compose.*: Moved here from lisp/toolbar/mail_compose.*. 
+	* images/mail/send.*: Moved here from lisp/toolbar/mail_send.*.
+
+	* images/README: Incorporated the content of lisp/toolbar/README
+	now that all of the images are here.
+
+2005-10-16  Nick Roberts  <nickrob@snap.net.nz>
+
+	* images/gud/n.pbm, images/gud/n.xpm
+	* images/gud/ni.xpm, images/gud/ni.xpm
+	* images/gud/s.xpm, images/gud/s.xpm
+	* images/gud/si.xpm, images/gud/si.xpm: Rename to
+	next.*, nexti.*, step.*, and stepi.* , respectively, as the
+	file-name no longer clashes on 8+3 filesystems.
+
+2005-10-14  Bill Wohler	 <wohler@newt.com>
+
+	* images/gud/break.*: Moved here from toolbar/gud-break.*.
+	* images/gud/cont.*: Moved here from toolbar/gud-cont.*.
+	* images/gud/down.*: Moved here from toolbar/gud-down.*.
+	* images/gud/finish.*: Moved here from toolbar/gud-finish.*.
+	* images/gud/ni.*: Moved here from toolbar/gud-ni.*.
+	* images/gud/n.*: Moved here from toolbar/gud-n.*.
+	* images/gud/print.*: Moved here from toolbar/gud-print.*.
+	* images/gud/pstar.*: Moved here from toolbar/gud-pstar.*.
+	* images/gud/remove.*: Moved here from toolbar/gud-remove.*.
+	* images/gud/run.*: Moved here from toolbar/gud-run.*.
+	* images/gud/si.*: Moved here from toolbar/gud-si.*.
+	* images/gud/s.*: Moved here from toolbar/gud-s.*.
+	* images/gud/until.*: Moved here from toolbar/gud-until.*.
+	* images/gud/up.*: Moved here from toolbar/gud-up.*.
+	* images/gud/watch.*: Moved here from toolbar/gud-watch.*.
+
+2005-10-14  Bill Wohler	 <wohler@newt.com>
+
+	Released MH-E version 7.85.
+	  
+	* NEWS, MH-E-NEWS: Updated for release 7.85.
+
 2005-10-10  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
 	* NEWS: -nb => -nbi
@@ -17,7 +123,7 @@
 2005-09-30  Bill Wohler  <wohler@newt.com>
 
 	Moved MH-E image files from toolbar and mail directories into
-	etc/images.
+	images.
 
 	* images/mail: New directory.
 
--- a/etc/MH-E-NEWS	Wed Dec 28 07:22:57 2005 +0000
+++ b/etc/MH-E-NEWS	Mon Jan 16 06:59:21 2006 +0000
@@ -6,6 +6,51 @@
 are permitted in any medium without royalty provided the copyright
 notice and this notice are preserved.
 
+* Changes in MH-E 7.85
+
+Version 7.85 heralds a migration of the CVS repository from
+SourceForge to Savannah only for those files that were already part of
+Emacs. As a result, two incompatibilities were introduced with this
+release: the location of MH-E in the load-path has changed, and
+mh-e-autoloads.el was renamed to mh-autoloads.el. While this migration
+will benefit maintainers, it will also benefit users: CVS Emacs users
+will not have to check out MH-E separately and welcome faster MH-E
+updates, and CVS MH-E users will welcome faster MH-E updates from
+Emacs developers. Read section CVS MH-E INSTALL in the README for
+details.
+
+MH-E now works on a Mac. See section INSTALL in the README for details.
+
+** Bug Fixes in MH-E 7.85
+
+*** Prompts Now Follow Current Conventions 
+
+Instead of "Prompt: [<default>] ", the prompts now look like "Prompt
+(default: <default>): ".
+
+*** Face Variable Names Now Follow Current Conventions
+
+The -face suffix has been dropped from all face names. 
+
+*** mh-compose-forward and Default Message Number
+
+mh-compose-forward will now default to the sent message in the sent
+folder and the `cur' message in other folders. It also takes ranges of
+messages and can include multiple messages at a time (closes SF
+#1205890).
+
+*** mh-customize Uses Group mh, Not mh-e
+
+The `mh' customization group alias has been deleted to avoid some
+problems that were found (closes SF #1213716).
+
+*** font-lock Error in mh-letter-mode
+
+An error in MH-E was introduced as a result of a change in CVS Emacs.
+This has been fixed (closes SF #1241017).
+
+
+
 * Changes in MH-E 7.84
 
 Version 7.84 contains no user-visible changes. This version
--- a/etc/Makefile	Wed Dec 28 07:22:57 2005 +0000
+++ b/etc/Makefile	Mon Jan 16 06:59:21 2006 +0000
@@ -21,13 +21,13 @@
 relock:
 	chmod u-w $(SOURCES)
 
-# ${etcdir}/e/eterm is used by ../lisp/term.el.
+# ${etcdir}/e/eterm-color is used by ../lisp/term.el.
 # TERMINFO systems use terminfo files compiled by the Terminfo Compiler (tic).
 # These files are binary, and depend on the version of tic, but they seem
 # to be system-independent and backwardly compatible.
 # So there should be no need to recompile the distributed binary version.
 TIC=tic
-e/eterm: e/eterm.ti
-	TERMINFO=`pwd`; export TERMINFO; $(TIC) e/eterm.ti
+e/eterm-color: e/eterm-color.ti
+	TERMINFO=`pwd`; export TERMINFO; $(TIC) e/eterm-color.ti
 
 # arch-tag: 4261f003-cf77-4478-a10a-5284e9d8f797
--- a/etc/NEWS	Wed Dec 28 07:22:57 2005 +0000
+++ b/etc/NEWS	Mon Jan 16 06:59:21 2006 +0000
@@ -188,6 +188,11 @@
 contents of buffers from a core dump and save them to files easily, should
 emacs crash.
 
+---
+** The Emacs terminal emulation in term.el uses a different terminfo name.
+The Emacs terminal emulation in term.el now uses "eterm-color" as its
+terminfo name, since term.el now supports color.
+
 
 * Startup Changes in Emacs 22.1
 
@@ -748,6 +753,12 @@
 parts less visible than normal, so that the rest of the differing
 parts is, by contrast, slightly highlighted.
 
+Above fontification is always done when listing completions is
+triggered at minibuffer. If you want to fontify completions whose
+listing is triggered at the other normal buffer, you have to pass
+the common prefix of completions to `display-completion-list' as
+its second argument.
+
 +++
 *** File-name completion can now ignore specified directories.
 If an element of the list in `completion-ignored-extensions' ends in a
@@ -1564,6 +1575,18 @@
 
 * New Modes and Packages in Emacs 22.1
 
+** Rcirc is now part of the Emacs distribution.
+
+Rcirc is an Internet relay chat (IRC) client.  It supports
+simultaneous connections to multiple IRC servers.  Each discussion
+takes place in its own buffer.  For each connection you can join
+several channels (many-to-many) and participate in private
+(one-to-one) chats.  Both channel and private chats are contained in
+separate buffers.
+
+To start an IRC session, type M-x irc, and follow the prompts for
+server, port, nick and initial channels.
+
 ---
 ** Newsticker is now part of the Emacs distribution.
 
@@ -1573,6 +1596,9 @@
 separate manual.
 
 +++
+** savehist saves minibuffer histories between sessions.
+
++++
 ** Filesets are collections of files.  You can define a fileset in
 various ways, such as based on a directory tree or based on
 program files that include other program files.
@@ -1860,6 +1886,28 @@
 
 * Changes in Specialized Modes and Packages in Emacs 22.1:
 
+** Changes in Allout
+
+*** Topic cryptography added, enabling easy gpg topic encryption and
+decryption.  Per-topic basis enables interspersing encrypted-text and
+clear-text within a single file to your hearts content, using symmetric
+and/or public key modes.  Time-limited key caching, user-provided
+symmetric key hinting and consistency verification, auto-encryption of
+pending topics on save, and more, make it easy to use encryption in
+powerful ways.
+
+*** many substantial fixes and refinements, including:
+
+   - repaired inhibition of inadvertant edits to concealed text
+   - repaired retention of topic body hanging indent upon topic depth shifts
+   - prevent "containment discontinuities" where a topic is shifted deeper
+     than the offspring-depth of its' container
+   - easy to adopt the distinctive bullet of a topic in a topic created
+     relative to it, or select a new one, or use the common topic bullet
+   - plain bullets, by default, now alternate between only two characters
+     ('.' and ','), yielding less cluttered outlines.
+   - many internal fixes.
+
 ** The variable `woman-topic-at-point' was renamed
 to `woman-use-topic-at-point' and behaves differently: if this
 variable is non-nil, the `woman' command uses the word at point
@@ -2925,7 +2973,7 @@
 ---
 ** MH-E changes.
 
-Upgraded to MH-E version 7.84. There have been major changes since
+Upgraded to MH-E version 7.85. There have been major changes since
 version 5.0.2; see MH-E-NEWS for details.
 
 ** Calendar changes:
@@ -4755,6 +4803,10 @@
 
   (defimage foo-image '((:type xpm :file "foo/bar.xpm")))
 
++++
+*** The new variable `max-image-size' defines the maximum size of
+images that Emacs will load and display.
+
 ** Mouse pointer features:
 
 +++ (lispref)
Binary file etc/e/eterm has changed
Binary file etc/e/eterm-color has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/e/eterm-color.ti	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,63 @@
+eterm-color|Emacs term.el terminal emulator term-protocol-version 0.96,
+	colors#8,
+	cols#80,
+	lines#24,
+	pairs#64,
+	am,
+	mir,
+	xenl,
+	bel=^G,
+	bold=\E[1m,
+	clear=\E[H\E[J,
+	cr=\r,
+	csr=\E[%i%p1%d;%p2%dr,
+	cub1=\b,
+	cub=\E[%p1%dD,
+	cud1=\n,
+	cud=\E[%p1%dB,
+	cuf1=\E[C,
+	cuf=\E[%p1%dC,
+	cup=\E[%i%p1%d;%p2%dH,
+	cuu1=\E[A,
+	cuu=\E[%p1%dA,
+	dch1=\E[P,
+	dch=\E[%p1%dP,
+	dl1=\E[M,
+	dl=\E[%p1%dM,
+	ed=\E[J,
+	el1=\E[1K,
+	el=\E[K,
+	home=\E[H,
+	ht=\t,
+	ich=\E[%p1%d@,
+	il1=\E[L,
+	il=\E[%p1%dL,
+	ind=\n,
+	invis=\E[8m,
+	kbs=^?,
+	kcub1=\EOD,
+	kcud1=\EOB,
+	kcuf1=\EOC,
+	kcuu1=\EOA,
+	kdch1=\E[3~,
+	kend=\E[4~,
+	khome=\E[1~,
+	knp=\E[6~,
+	kpp=\E[5~,
+	op=\E[39;49m,
+	rc=\E8,
+	rev=\E[7m,
+	rmir=\E[4l,
+	rmso=\E[27m,
+	rmul=\E[24m,
+	rs1=\Ec,
+	sc=\E7,
+	setab=\E[%p1%{40}%+%dm,
+	setaf=\E[%p1%{30}%+%dm,
+	sgr0=\E[m,
+	smir=\E[4h,
+	smul=\E[4m,
+ 	smso=\E[7m,
+#	smcup=\E[?47h,
+#	rmcup=\E[?47l,
+#       rs2 may need to be added
--- a/etc/e/eterm.ti	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-eterm|Emacs term.el terminal emulator term-protocol-version 0.96,
-	colors#8,
-	cols#80,
-	lines#24,
-	pairs#64,
-	am,
-	mir,
-	xenl,
-	bel=^G,
-	bold=\E[1m,
-	clear=\E[H\E[J,
-	cr=\r,
-	csr=\E[%i%p1%d;%p2%dr,
-	cub1=\b,
-	cub=\E[%p1%dD,
-	cud1=\n,
-	cud=\E[%p1%dB,
-	cuf1=\E[C,
-	cuf=\E[%p1%dC,
-	cup=\E[%i%p1%d;%p2%dH,
-	cuu1=\E[A,
-	cuu=\E[%p1%dA,
-	dch1=\E[P,
-	dch=\E[%p1%dP,
-	dl1=\E[M,
-	dl=\E[%p1%dM,
-	ed=\E[J,
-	el1=\E[1K,
-	el=\E[K,
-	home=\E[H,
-	ht=\t,
-	ich=\E[%p1%d@,
-	il1=\E[L,
-	il=\E[%p1%dL,
-	ind=\n,
-	invis=\E[8m,
-	kbs=^?,
-	kcub1=\EOD,
-	kcud1=\EOB,
-	kcuf1=\EOC,
-	kcuu1=\EOA,
-	kdch1=\E[3~,
-	kend=\E[4~,
-	khome=\E[1~,
-	knp=\E[6~,
-	kpp=\E[5~,
-	op=\E[39;49m,
-	rc=\E8,
-	rev=\E[7m,
-	rmir=\E[4l,
-	rmso=\E[27m,
-	rmul=\E[24m,
-	rs1=\Ec,
-	sc=\E7,
-	setab=\E[%p1%{40}%+%dm,
-	setaf=\E[%p1%{30}%+%dm,
-	sgr0=\E[m,
-	smir=\E[4h,
-	smul=\E[4m,
- 	smso=\E[7m,
-#	smcup=\E[?47h,
-#	rmcup=\E[?47l,
-#       rs2 may need to be added
--- a/etc/images/README	Wed Dec 28 07:22:57 2005 +0000
+++ b/etc/images/README	Mon Jan 16 06:59:21 2006 +0000
@@ -1,5 +1,17 @@
+All of the following icons are not part of Emacs, but distributed and
+used by Emacs.
+
+The following icons are from GTK+ 2.x:
+
+    close.xpm copy.xpm cut.xpm help.xpm home.xpm
+    index.xpm jump-to.xpm left-arrow.xpm new.xpm open.xpm
+    paste.xpm preferences.xpm print.xpm right-arrow.xpm save.xpm
+    saveas.xpm search.xpm spell.xpm undo.xpm up-arrow.xpm
+
+    back-arrow.xpm and fwd-arrow.xpm are slightly modified undo and redo.
+
+    diropen.xpm is file-manager.png from Gnome hicolor theme.
+
 The following icons are from GNOME 2.10:
 
     refresh.pbm, refresh.xpm
-
-They are not part of Emacs, but distributed and used by Emacs.
Binary file etc/images/attach.pbm has changed
Binary file etc/images/back-arrow.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/back-arrow.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,57 @@
+/* XPM */
+static char *back_arrow_xpm[] = {
+"24 24 30 1",
+"  c #000000",
+". c #53692A",
+"X c #59702D",
+"o c #657255",
+"O c #6D7A5B",
+"+ c #6D8839",
+"@ c #7C9B40",
+"# c #748261",
+"$ c #7F8E6B",
+"% c #818F71",
+"& c #879772",
+"* c #8C9A7F",
+"= c #85A24D",
+"- c #8BA859",
+"; c #92AD62",
+": c #95A77E",
+"> c #98AF74",
+", c #9BB572",
+"< c #9BAA87",
+"1 c #9CAF84",
+"2 c #A4B690",
+"3 c #A8BCA6",
+"4 c #ADBDA0",
+"5 c #AFC394",
+"6 c #BAD09D",
+"7 c #B5C3A9",
+"8 c #BED2A3",
+"9 c #D5E1C6",
+"0 c #FFFFFF",
+"q c None",
+"qqqqqqqqqqqqqqqqqqqqqqqq",
+"qqqqqqqqqqqqqqqqqqqqqqqq",
+"qqqqqqqqqqqqqqqqqqqqqqqq",
+"qqqqqqqqqq qqqqqqqqqqqqq",
+"qqqqqqqqq  qqqqqqqqqqqqq",
+"qqqqqqqq 9 qqqqqqqqqqqqq",
+"qqqqqqq 96    qqqqqqqqqq",
+"qqqqqq 968664% qqqqqqqqq",
+"qqqqq 966666663 qqqqqqqq",
+"qqqq <666666666* qqqqqqq",
+"qqqqq X@@@@@@;67  qqqqqq",
+"qqqqqq .@@@@@@=6$ qqqqqq",
+"qqqqqqq .@   X@,2 qqqqqq",
+"qqqqqqqq X q  +-6 qqqqqq",
+"qqqqqqqqq  qq  @6 qqqqqq",
+"qqqqqqqqqq qqq -: qqqqqq",
+"qqqqqqqqqqqqqq >o qqqqqq",
+"qqqqqqqqqqqqqq 5 qqqqqqq",
+"qqqqqqqqqqqqq 1O qqqqqqq",
+"qqqqqqqqqqqq &# qqqqqqqq",
+"qqqqqqqqqqqqq  qqqqqqqqq",
+"qqqqqqqqqqqqqqqqqqqqqqqq",
+"qqqqqqqqqqqqqqqqqqqqqqqq",
+"qqqqqqqqqqqqqqqqqqqqqqqq"};
Binary file etc/images/cancel.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/cancel.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,35 @@
+/* XPM */
+static char *magick[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 5 1",
+"  c #01c601c601c6",
+". c Gray40",
+"X c #a527a527a527",
+"o c #da22da22da22",
+"O c None",
+/* pixels */
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOO       OOOOOOOOO",
+"OOOOOO  XXooXX.  OOOOOOO",
+"OOOOO XooooooooX. OOOOOO",
+"OOOOO oooooooooo. OOOOOO",
+"OOOO Xooo ooo XoX. OOOOO",
+"OOOO Xoo   o   XXX OOOOO",
+"OOOO oooo     XoXX OOOOO",
+"OOOO Xoooo   ooXXX OOOOO",
+"OOOO Xooo     OXX. OOOOO",
+"OOOO Xoo   o   XX. OOOOO",
+"OOOO .Xoo ooX XX.. OOOOO",
+"OOOOO XXOoXoXXX.. OOOOOO",
+"OOOOO XXXXXXXXX.. OOOOOO",
+"OOOOOO  XXXX...  OOOOOOO",
+"OOOOOOOO       OOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO"
+};
Binary file etc/images/close.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/close.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,29 @@
+/* XPM */
+static char * close_xpm[] = {
+"24 24 2 1",
+" 	c None",
+".	c #000000",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"       .      .         ",
+"        .    ...        ",
+"        ..  ....        ",
+"         .. ...         ",
+"         .....          ",
+"          ...           ",
+"         .....          ",
+"        .......         ",
+"       ...  ....        ",
+"      ...    ....       ",
+"     ...      ..        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/copy.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/copy.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,53 @@
+/* XPM */
+static char * copy_xpm[] = {
+"24 24 26 1",
+" 	c None",
+".	c #000000",
+"+	c #B4B4B4",
+"@	c #F8F8F8",
+"#	c #F6F6F6",
+"$	c #C3C3C3",
+"%	c #E9E9E9",
+"&	c #989898",
+"*	c #828282",
+"=	c #8A8A8A",
+"-	c #E8E8E8",
+";	c #636363",
+">	c #5A5A5A",
+",	c #6B6B6B",
+"'	c #B3B3B3",
+")	c #FFFFFF",
+"!	c #D6D6D6",
+"~	c #818181",
+"{	c #A7A7A7",
+"]	c #8F8F8F",
+"^	c #C6C6C6",
+"/	c #808080",
+"(	c #E7E7E7",
+"_	c #6D6D6D",
+":	c #767676",
+"<	c #F5F5F5",
+"                        ",
+" .............          ",
+" .+@@@@@@@@@#$.         ",
+" .@%%%%%%%%%%%.         ",
+" .@&**=%+*%*+%.         ",
+" .@%%%%%%%%---.         ",
+" .@;>%,*+-............  ",
+" .@%%%%%%.'))))))))))!. ",
+" .@&**%*~.)))))))))))). ",
+" .@%%%%%-.){]]&)^])]^). ",
+" .@;>>%,/.)))))))))))). ",
+" .@%%%%%(.)_;):]^)^])). ",
+" .@&**%*~.)))))))))))). ",
+" .<%%%%%-.){]])]]^)&]). ",
+" .$%%%%%-.)))))))))))). ",
+"  ........)_;;):]^)^]). ",
+"         .)))))))))))). ",
+"         .){]])]]^)&]). ",
+"         .)))))))))))). ",
+"         .!))))))))))!. ",
+"         .............. ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/cut.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/cut.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,67 @@
+/* XPM */
+static char * cut_xpm[] = {
+"24 24 40 1",
+" 	c None",
+".	c #000000",
+"+	c #C9C7C2",
+"@	c #E6E4E0",
+"#	c #EFEEED",
+"$	c #494946",
+"%	c #73726E",
+"&	c #F0EEED",
+"*	c #7F7D75",
+"=	c #F2F1EF",
+"-	c #D2CFC8",
+";	c #E7E7E4",
+">	c #BAB5AB",
+",	c #565653",
+"'	c #EDECE9",
+")	c #A4A097",
+"!	c #817F7E",
+"~	c #4E4C48",
+"{	c #F6F5F4",
+"]	c #474541",
+"^	c #EFEEEC",
+"/	c #8C8B8A",
+"(	c #F3F2F0",
+"_	c #77746D",
+":	c #323232",
+"<	c #EBEBEA",
+"[	c #605D58",
+"}	c #F5F4F3",
+"|	c #CECCC7",
+"1	c #363634",
+"2	c #6F6E6D",
+"3	c #BEBDBB",
+"4	c #EAE7E4",
+"5	c #B8B5B1",
+"6	c #474747",
+"7	c #DAD8D4",
+"8	c #9B9996",
+"9	c #161615",
+"0	c #6D6B6A",
+"a	c #3A3837",
+"                        ",
+"                        ",
+"      .        .        ",
+"      .        .        ",
+"     .+.      .@.       ",
+"     .#$      %@.       ",
+"     .&*.    .=-.       ",
+"     .;>,    %').       ",
+"      !#*.  .=-~        ",
+"      .{>]  ~^>.        ",
+"       /(_.:<-[         ",
+"       .}|123>.         ",
+"        .456>.          ",
+"         .78..          ",
+"         .90a.          ",
+"     .............      ",
+"     . ...  ... ...     ",
+"    ..  ..   ..  ..     ",
+"    .    .   .    .     ",
+"    ..  ..   ..  ..     ",
+"     ....     .. .      ",
+"     ....     ....      ",
+"                        ",
+"                        "};
Binary file etc/images/diropen.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/diropen.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,44 @@
+/* XPM */
+static char * diropen_xpm[] = {
+"19 24 17 1",
+" 	c None",
+".	c #000100",
+"+	c #C6C9A6",
+"@	c #D0D3AF",
+"#	c #93997C",
+"$	c #E6E7D0",
+"%	c #BEC19E",
+"&	c #B4B895",
+"*	c #A7AA88",
+"=	c #6B6D59",
+"-	c #4A4E40",
+";	c #7C8166",
+">	c #898E72",
+",	c #3C4032",
+"'	c #575845",
+")	c #34332C",
+"!	c #24231D",
+"  ...............  ",
+" .+@@@@@@@@@@@@@#. ",
+".$@@@@@@@@@@@@@@@#.",
+".++++%%%%%%%%%&&&*.",
+".&&&&&&&&&&******#.",
+".*%+++%%%%%%%%%&=#.",
+".*+***********##-#.",
+".*+****;===;####-#.",
+".*+****=*****###-#.",
+".*+****;*****###-#.",
+".*+****########>-#.",
+".*&######>>>>>>>,>.",
+".*#-------------'>)",
+".*&&&&&&&&&&&&&*#>)",
+".*&************#'>)",
+".*&***********##,>)",
+".*&****====;###>,>)",
+".#&****=**#**##>,;)",
+".#&****>****###>,;)",
+".#&****########>,;)",
+".##''''''''''''',;)",
+".#>==============;)",
+".''''''''''''''''-!",
+" ................. "};
Binary file etc/images/exit.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/exit.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,36 @@
+/* XPM */
+static char *magick[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 6 1",
+"  c Gray0",
+". c #ae6e66e76a0a",
+"X c #c6c67d7d8181",
+"o c #cdcd86868989",
+"O c #e4e4e4e4dcdc",
+"+ c None",
+/* pixels */
+"++++++++++++++++++++++++",
+"++++++++++++++++++++++++",
+"++++++++++++++++++++++++",
+"++++++++++++++++++++++++",
+"++++++++++++++++++++++++",
+"++++++++++         +++++",
+"++++++++++ OOOOOO  +++++",
+"++++++++++ OOOOOO  +++++",
+"++++++++   OOOOOO  +++++",
+"++++++++ . OOOOOO  +++++",
+"+++      .X OO  O  +++++",
+"+++ ......Xo O  O  +++++",
+"+++ ......Xo OOOO  +++++",
+"+++      .X OOOOO  +++++",
+"++++++++ . OOOOOO  +++++",
+"++++++++   OOOOOO  +++++",
+"++++++++++ OOOO    +++++",
+"++++++++++ OO      +++++",
+"++++++++++         +++++",
+"++++++++++++++++++++++++",
+"++++++++++++++++++++++++",
+"++++++++++++++++++++++++",
+"++++++++++++++++++++++++",
+"++++++++++++++++++++++++"
+};
Binary file etc/images/fld-open.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/fld-open.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,34 @@
+/* XPM */
+static char *magick[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 4 1",
+"  c Gray0",
+". c #909090909090",
+"X c #fefefefefefe",
+"o c None",
+/* pixels */
+"oooooooooooooooooooooooo",
+"oooooooooooooooooooooooo",
+"oooooooooooooooooooooooo",
+"oooooooooooooooooooooooo",
+"oooooooooooooooooooooooo",
+"oooooooooooooo  oooooooo",
+"ooooooooooo   .. ooooooo",
+"oooo  oo   ....XXo   ooo",
+"ooo ..  ....XXXX  .. ooo",
+"ooo .....XXXXX  .... ooo",
+"oooo ..XXXXX  ...... ooo",
+"oooo ..XXX  ........ ooo",
+"ooooo .XX .......... ooo",
+"ooooo ..X .......... ooo",
+"oooooo .X .......... ooo",
+"oooooo .. ........  oooo",
+"ooooooo . ......  oooooo",
+"ooooooo . ..... oooooooo",
+"oooooooo  ...  ooooooooo",
+"oooooooo  .  ooooooooooo",
+"ooooooooo  ooooooooooooo",
+"oooooooooooooooooooooooo",
+"oooooooooooooooooooooooo",
+"oooooooooooooooooooooooo"
+};
Binary file etc/images/fwd-arrow.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/fwd-arrow.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,70 @@
+/* XPM */
+static char *fwd_arrow_xpm[] = {
+"24 24 43 1",
+"  c #000000",
+". c #53692A",
+"X c #59702D",
+"o c #657255",
+"O c #6D7A5B",
+"+ c #6D8839",
+"@ c #7C9B40",
+"# c #748261",
+"$ c #7F8E6B",
+"% c #818F71",
+"& c #879772",
+"* c #8C9A7F",
+"= c #85A24D",
+"- c #8BA859",
+"; c #92AD62",
+": c #95A77E",
+"> c #98AF74",
+", c #9BB572",
+"< c #919889",
+"1 c #92998C",
+"2 c #939A8D",
+"3 c #99A28F",
+"4 c #9BAA87",
+"5 c #9CAF84",
+"6 c #A4B690",
+"7 c #A8BCA6",
+"8 c #ADBDA0",
+"9 c #AFC394",
+"0 c #BAD09D",
+"q c #B5C3A9",
+"w c #BED2A3",
+"e c #BFD3A6",
+"r c #C2D5AA",
+"t c #C5D7AE",
+"y c #C8D9B2",
+"u c #CDDCBC",
+"i c #D1DFBE",
+"p c #D2E0BF",
+"a c #D3E0C1",
+"s c #D4E0C5",
+"d c #D5E1C6",
+"f c #FFFFFF",
+"g c None",
+"gggggggggggggggggggggggg",
+"gggggggggggggggggggggggg",
+"gggggggggggggggggggggggg",
+"ggggggggggggg gggggggggg",
+"ggggggggggggg  ggggggggg",
+"ggggggggggggg 2 gggggggg",
+"gggggggggg    02 ggggggg",
+"ggggggggg &6riw03 gggggg",
+"gggggggg 7suat000< ggggg",
+"ggggggg *saie000004 gggg",
+"gggggg  qs;@@@@@@X ggggg",
+"gggggg $y=@@@@@@. gggggg",
+"gggggg 6,@X   @. ggggggg",
+"gggggg 0@+  g X gggggggg",
+"gggggg 0@  gg  ggggggggg",
+"gggggg :- ggg gggggggggg",
+"gggggg o> gggggggggggggg",
+"ggggggg 9 gggggggggggggg",
+"ggggggg O5 ggggggggggggg",
+"gggggggg #& gggggggggggg",
+"ggggggggg  ggggggggggggg",
+"gggggggggggggggggggggggg",
+"gggggggggggggggggggggggg",
+"gggggggggggggggggggggggg"};
Binary file etc/images/gud/break.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/gud/break.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,30 @@
+/* XPM */
+static char * stop_xpm[] = {
+"24 24 3 1",
+" 	c None",
+".	c #F8F810104040",
+"X	c #F8F8FCFCF8F8",
+"                        ",
+"                        ",
+"       ..........       ",
+"      ............      ",
+"     ..............     ",
+"    ................    ",
+"   ..................   ",
+"  ..XX..XXX..XX..XXX..  ",
+"  .X..X..X..X..X.X..X.  ",
+"  .X.....X..X..X.X..X.  ",
+"  .X.....X..X..X.X..X.  ",
+"  ..X....X..X..X.X..X.  ",
+"  ...X...X..X..X.XXX..  ",
+"  ....X..X..X..X.X....  ",
+"  ....X..X..X..X.X....  ",
+"  .X..X..X..X..X.X....  ",
+"  ..XX...X...XX..X....  ",
+"   ..................   ",
+"    ................    ",
+"     ..............     ",
+"      ............      ",
+"       ..........       ",
+"                        ",
+"                        "};
Binary file etc/images/gud/cont.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/gud/cont.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,33 @@
+/* XPM */
+static char * continue_xpm[] = {
+"24 24 6 1",
+" 	c None",
+".	c #cc0033",
+"X	c #d99faa",
+"o	c #616161",
+"O	c #2a1f55",
+"+	c #aa9faa",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"     .X                 ",
+"     X..X               ",
+"   .......  oO  Oo      ",
+"     X..X  oO+  +Oo     ",
+"     .X    OO    OO     ",
+"           OO    OO     ",
+"           OO    OO     ",
+"           Oo    oO     ",
+"          OO      OO    ",
+"           Oo    oO     ",
+"           OO    OO     ",
+"           OO    OO     ",
+"           OO    OO     ",
+"           oO+  +Oo     ",
+"            oO  Oo      ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/gud/down.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/gud/down.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,41 @@
+/* XPM */
+static char * down_xpm[] = {
+"24 24 14 1",
+" 	c None",
+".	c #000000000000",
+"X	c #7F7F7F7F7F7F",
+"o	c #2D2D2D2D2D2D",
+"O	c #616161616161",
+"+	c #FFFFCCCC6666",
+"@	c #929255550000",
+"#	c #696969696969",
+"$	c #6D6DAAAAFFFF",
+"%	c #49495555AAAA",
+"&	c #333333339999",
+"*	c #434343434343",
+"=	c #6666FFFF6666",
+"-	c #4949AAAA5555",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                 .      ",
+"                 .      ",
+"                 .      ",
+"               . . .    ",
+"               X...X    ",
+"                ...     ",
+"     oooooooooooX.X     ",
+"     O+++++++++O .      ",
+"     .@@@@@@@@@.        ",
+"    ...............     ",
+"    #$%$$$$$$$$$%$#     ",
+"    o%&%%%%%%%%%&%o     ",
+"    ...............     ",
+"     *===========*      ",
+"     o-----------.      ",
+"     o............      ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/gud/finish.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/gud/finish.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,34 @@
+/* XPM */
+static char * finish_xpm[] = {
+"24 24 7 1",
+" 	c None",
+".	c #cc0033",
+"X	c #616161",
+"o	c #2a1f55",
+"O	c #adadad",
+"+	c #d40000",
+"@	c #cc9999",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"           .....        ",
+"          .     .       ",
+"         .       .      ",
+"      Xo . oX    .      ",
+"     XoO . OoX   .      ",
+"     oo  .  oo +@.@+    ",
+"     oo     oo @...@    ",
+"     oo     oo  ...     ",
+"     oX     Xo  @.@     ",
+"    oo       oo  .      ",
+"     oX     Xo          ",
+"     oo     oo          ",
+"     oo     oo          ",
+"     oo     oo          ",
+"     XoO   OoX          ",
+"      Xo   oX           ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/gud/next.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/gud/next.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,34 @@
+/* XPM */
+static char * next_xpm[] = {
+"24 24 7 1",
+" 	c None",
+".	c #cc0033",
+"X	c #616161",
+"o	c #2a1f55",
+"O	c #adadad",
+"+	c #d40000",
+"@	c #cc9999",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"      ..........        ",
+"     .          .       ",
+"    .            .      ",
+"    .  Xo  oX    .      ",
+"    . XoO  OoX   .      ",
+"    . oo    oo +@.@+    ",
+"      oo    oo @...@    ",
+"      oo    oo  ...     ",
+"      oX    Xo  @.@     ",
+"     oo      oo  .      ",
+"      oX    Xo          ",
+"      oo    oo          ",
+"      oo    oo          ",
+"      oo    oo          ",
+"      XoO  OoX          ",
+"       Xo  oX           ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/gud/nexti.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/gud/nexti.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,33 @@
+/* XPM */
+static char * gud_nexti_xpm[] = {
+"24 24 6 1",
+" 	c None",
+".	c #CCCC00003333",
+"X	c #616161616161",
+"o	c #D4D400000000",
+"O	c #CCCC99999999",
+"+	c #2A2A1F1F5555",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"      ..........        ",
+"     .          .       ",
+"    .            .      ",
+"    .            .      ",
+"    .            .      ",
+"    .   X  X   oO.Oo    ",
+"       X+  +X  O...O    ",
+"      X+    +X  ...     ",
+"     X+      +X O.O     ",
+"    X+        +X .      ",
+"    +X        X+        ",
+"     +X      X+         ",
+"      +X    X+          ",
+"       +X  X+           ",
+"        +  +            ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/gud/print.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/gud/print.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,29 @@
+/* XPM */
+static char * print_xpm[] = {
+"24 24 2 1",
+" 	c None",
+".	c #000000000000",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"         ... ...        ",
+"          ... ...       ",
+"          ..   ..       ",
+"          ..   ..       ",
+"          ..   ..       ",
+"          ..   ..       ",
+"          ..   ..       ",
+"          ... ..        ",
+"          .. ..         ",
+"          ..            ",
+"          ..            ",
+"          ..            ",
+"         ....           ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/gud/pstar.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/gud/pstar.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,29 @@
+/* XPM */
+static char * gud_pstar_xpm[] = {
+"24 24 2 1",
+" 	c #BDBDBEBEBDBD",
+".	c #000000000000",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"         ... ...        ",
+"          ... ...       ",
+"          ..   ..   .   ",
+"          ..   .. . . . ",
+"          ..   ..  ...  ",
+"          ..   .. . . . ",
+"          ..   ..   .   ",
+"          ... ..        ",
+"          .. ..         ",
+"          ..            ",
+"          ..            ",
+"          ..            ",
+"         ....           ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/gud/remove.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/gud/remove.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,31 @@
+/* XPM */
+static char * go_xpm[] = {
+"24 24 4 1",
+" 	c None",
+".	c #000080800000",
+"X	c #FFFFFFFFFFFF",
+"o	c #F8F8FCFCF8F8",
+"                        ",
+"                        ",
+"       ..........       ",
+"      ............      ",
+"     ..............     ",
+"    ................    ",
+"   ..................   ",
+"  ......XX...oo.......  ",
+"  .....X..X.o..o......  ",
+"  .....X....o..o......  ",
+"  .....X....o..o......  ",
+"  .....X....o..o......  ",
+"  .....X.XX.o..o......  ",
+"  .....X..X.o..o......  ",
+"  .....X..X.o..o......  ",
+"  .....X..X.o..o......  ",
+"  ......XX...oo.......  ",
+"   ..................   ",
+"    ................    ",
+"     ..............     ",
+"      ............      ",
+"       ..........       ",
+"                        ",
+"                        "};
Binary file etc/images/gud/run.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/gud/run.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,36 @@
+/* XPM */
+static char * run_xpm[] = {
+"24 24 9 1",
+" 	c None",
+".	c #000080",
+"X	c #aa9faa",
+"o	c #b5b9b5",
+"O	c #808080",
+"+	c #7f7f7f",
+"@	c #5a60a5",
+"#	c #9a999a",
+"$	c #616161",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"              ..        ",
+"             X..        ",
+"     oO+++++...@        ",
+"         @.....         ",
+"    oO+++......         ",
+"         .@.....        ",
+"     oO++@@......       ",
+"          ....@ ..      ",
+"      ..  .....@ @      ",
+"     @...@..@...        ",
+"     .#..... @..        ",
+"        @..  #..        ",
+"             ..@        ",
+"            +.@         ",
+"            ..$+        ",
+"            ....        ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/gud/step.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/gud/step.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,33 @@
+/* XPM */
+static char * step_xpm[] = {
+"24 24 6 1",
+" 	c None",
+".	c #d40000",
+"X	c #616161",
+"o	c #2a1f55",
+"O	c #adadad",
+"+	c #cc9999",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"      .....             ",
+"     .     .            ",
+"    .       .           ",
+"    .  Xo   .   oX      ",
+"    . XoO   .   OoX     ",
+"    . oo  .+.+.  oo     ",
+"      oo  +...+  oo     ",
+"      oo   ...   oo     ",
+"      oX   +.+   Xo     ",
+"     oo     .     oo    ",
+"      oX         Xo     ",
+"      oo         oo     ",
+"      oo         oo     ",
+"      oo         oo     ",
+"      XoO       OoX     ",
+"       Xo       oX      ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/gud/stepi.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/gud/stepi.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,32 @@
+/* XPM */
+static char * gud_stepi_xpm[] = {
+"24 24 5 1",
+" 	c None",
+".	c #D4D400000000",
+"X	c #616161616161",
+"o	c #2A2A1F1F5555",
+"O	c #CCCC99999999",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"      .....             ",
+"     .     .            ",
+"    .       .           ",
+"    .       .           ",
+"    .   X   .   X       ",
+"    .  Xo .O.O. oX      ",
+"      Xo  O...O  oX     ",
+"     Xo    ...    oX    ",
+"    Xo     O.O     oX   ",
+"    oX      .      Xo   ",
+"     oX           Xo    ",
+"      oX         Xo     ",
+"       oX       Xo      ",
+"        o       o       ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/gud/until.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/gud/until.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,33 @@
+/* XPM */
+static char * goto_xpm[] = {
+"24 24 6 1",
+" 	c None",
+".	c #ff0000",
+"X	c #616161",
+"o	c #2a1f55",
+"O	c #adadad",
+"+	c #cc9999",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+" .                      ",
+" .                      ",
+" .          Xo   oX     ",
+" .         XoO   OoX    ",
+" .         oo     oo    ",
+" .         oo     oo    ",
+" .  .+     oo     oo    ",
+"  . +..+   oX     Xo    ",
+"   ...... oo       oo   ",
+"    +..+   oX     Xo    ",
+"    .+     oo     oo    ",
+"           oo     oo    ",
+"           oo     oo    ",
+"           XoO   OoX    ",
+"            Xo   oX     ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/gud/up.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/gud/up.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,41 @@
+/* XPM */
+static char * up_xpm[] = {
+"24 24 14 1",
+" 	c None",
+".	c #000000000000",
+"X	c #7F7F7F7F7F7F",
+"o	c #2D2D2D2D2D2D",
+"O	c #616161616161",
+"+	c #FFFFCCCC6666",
+"@	c #929255550000",
+"#	c #696969696969",
+"$	c #6D6DAAAAFFFF",
+"%	c #49495555AAAA",
+"&	c #333333339999",
+"*	c #434343434343",
+"=	c #6666FFFF6666",
+"-	c #4949AAAA5555",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                 .      ",
+"                X.X     ",
+"                ...     ",
+"               X...X    ",
+"               . . .    ",
+"                 .      ",
+"     oooooooooo. .      ",
+"     O+++++++++O .      ",
+"     .@@@@@@@@@.        ",
+"    ...............     ",
+"    #$%$$$$$$$$$%$#     ",
+"    o%&%%%%%%%%%&%o     ",
+"    ...............     ",
+"     *===========*      ",
+"     o-----------.      ",
+"     o............      ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/gud/watch.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/gud/watch.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,38 @@
+/* XPM */
+static char * watch_xpm[] = {
+"24 24 11 1",
+" 	c None",
+".	c #808080808080",
+"X	c #000000000000",
+"o	c #A5A59F9FA3A3",
+"O	c #B5B5B9B9B5B5",
+"+	c #070707070707",
+"@	c #616161616161",
+"#	c #2D2D30302D2D",
+"$	c #020202020202",
+"%	c #9A9A99999A9A",
+"&	c #2F2F1A1A0202",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"          .XX           ",
+"         oX. X Xo       ",
+"        O+@   X@#       ",
+"        #    X O$o      ",
+"       ##       @#      ",
+"      @+O       O$o     ",
+"     %XX&%   %&X&##     ",
+"    %#O O#%X%#O O#X     ",
+"    &O   O& &O   O&     ",
+"    X     X X     X     ",
+"    &O   O& &O   O&     ",
+"    %#O O#% %#O O#%     ",
+"     %&X&%   %&X&%      ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/help.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/help.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,271 @@
+/* XPM */
+static char * help_xpm[] = {
+"24 24 244 2",
+"  	c None",
+". 	c #000000",
+"+ 	c #454442",
+"@ 	c #1D1D1C",
+"# 	c #040404",
+"$ 	c #1B1B1B",
+"% 	c #3D3C3A",
+"& 	c #4D4C4B",
+"* 	c #2F2F2D",
+"= 	c #C1BFBB",
+"- 	c #ECEAE7",
+"; 	c #F5F3F0",
+"> 	c #F2F0EC",
+", 	c #E1DFDC",
+"' 	c #AFADAA",
+") 	c #272726",
+"! 	c #020202",
+"~ 	c #3F3E3E",
+"{ 	c #36302D",
+"] 	c #181818",
+"^ 	c #FBF8F5",
+"/ 	c #FEFCF8",
+"( 	c #FAF8F5",
+"_ 	c #F5F4F1",
+": 	c #F2F1ED",
+"< 	c #F1EFEB",
+"[ 	c #F1EEEB",
+"} 	c #EAE9E6",
+"| 	c #DAD8D4",
+"1 	c #100E0E",
+"2 	c #1F100E",
+"3 	c #AF3A1E",
+"4 	c #FBAB93",
+"5 	c #FAE9E3",
+"6 	c #F0EFEB",
+"7 	c #E9E8E5",
+"8 	c #EAE8E6",
+"9 	c #ECEAE8",
+"0 	c #EDEBE9",
+"a 	c #EDEBE8",
+"b 	c #EACFC6",
+"c 	c #D5340A",
+"d 	c #751904",
+"e 	c #100806",
+"f 	c #34160D",
+"g 	c #AF3C20",
+"h 	c #FCCCBD",
+"i 	c #F7BEAD",
+"j 	c #E67554",
+"k 	c #DFDDDB",
+"l 	c #DBD9D6",
+"m 	c #D8D7D3",
+"n 	c #DBDAD6",
+"o 	c #E3E2DE",
+"p 	c #ECEBE8",
+"q 	c #E5572D",
+"r 	c #E33A0B",
+"s 	c #D4340A",
+"t 	c #691504",
+"u 	c #100504",
+"v 	c #582C22",
+"w 	c #0F0F0F",
+"x 	c #FDD4C8",
+"y 	c #F7BFAF",
+"z 	c #E87554",
+"A 	c #D5512B",
+"B 	c #C68270",
+"C 	c #BEBDBA",
+"D 	c #A5A3A0",
+"E 	c #9C9A95",
+"F 	c #B9B7B2",
+"G 	c #D7D6D2",
+"H 	c #E7E5E2",
+"I 	c #E79A85",
+"J 	c #E53C0B",
+"K 	c #E43C0B",
+"L 	c #E23A0B",
+"M 	c #C93009",
+"N 	c #010000",
+"O 	c #040100",
+"P 	c #FAB19C",
+"Q 	c #FACCBE",
+"R 	c #EB8264",
+"S 	c #D8532D",
+"T 	c #C0340F",
+"U 	c #932006",
+"V 	c #141412",
+"W 	c #857974",
+"X 	c #DA370B",
+"Y 	c #EC7C5B",
+"Z 	c #E95B32",
+"` 	c #DE380B",
+" .	c #9D2306",
+"..	c #626261",
+"+.	c #FEF1ED",
+"@.	c #F09479",
+"#.	c #DC532B",
+"$.	c #C0350F",
+"%.	c #942006",
+"&.	c #621404",
+"*.	c #E2522B",
+"=.	c #F2A690",
+"-.	c #E74E21",
+";.	c #E23B0B",
+">.	c #C99181",
+",.	c #454342",
+"'.	c #E5E4E2",
+").	c #FCFBFA",
+"!.	c #E2D8D3",
+"~.	c #C34C2A",
+"{.	c #B02B07",
+"].	c #9E2D12",
+"^.	c #EF8D71",
+"/.	c #F09B83",
+"(.	c #EADDD7",
+"_.	c #272724",
+":.	c #F0EEEC",
+"<.	c #F3F2EF",
+"[.	c #D7D6D3",
+"}.	c #BFBEBB",
+"|.	c #9E6153",
+"1.	c #3F0D02",
+"2.	c #F0B9A9",
+"3.	c #F6F5F4",
+"4.	c #E8E7E4",
+"5.	c #DAD8D5",
+"6.	c #585652",
+"7.	c #F6F4F0",
+"8.	c #DAD8D6",
+"9.	c #C2C1BE",
+"0.	c #989691",
+"a.	c #0A0A08",
+"b.	c #F6F4F2",
+"c.	c #F4F3F1",
+"d.	c #E4E3E0",
+"e.	c #D3D2CE",
+"f.	c #63625D",
+"g.	c #DCDAD8",
+"h.	c #C7C6C2",
+"i.	c #ABAAA5",
+"j.	c #0A0A0A",
+"k.	c #FAF8F6",
+"l.	c #EFEDEA",
+"m.	c #DDDCD8",
+"n.	c #C6C4C2",
+"o.	c #3E3E39",
+"p.	c #1B1B19",
+"q.	c #F0EEEA",
+"r.	c #E0DFDD",
+"s.	c #CCCBC9",
+"t.	c #C0BFBB",
+"u.	c #131311",
+"v.	c #676663",
+"w.	c #FCFAF8",
+"x.	c #D6D4D2",
+"y.	c #BCBAB7",
+"z.	c #3C3C3A",
+"A.	c #DEDCD9",
+"B.	c #7E4B3E",
+"C.	c #232323",
+"D.	c #CC9385",
+"E.	c #FAFAF7",
+"F.	c #E6E6E2",
+"G.	c #CDCCCA",
+"H.	c #B0B0AC",
+"I.	c #EDE3DF",
+"J.	c #E78468",
+"K.	c #DF5D3A",
+"L.	c #631909",
+"M.	c #282828",
+"N.	c #B46E5E",
+"O.	c #FCC3B2",
+"P.	c #F1A691",
+"Q.	c #DCD2CC",
+"R.	c #C8C6C3",
+"S.	c #7E7C78",
+"T.	c #E8AD9C",
+"U.	c #E96139",
+"V.	c #EB7452",
+"W.	c #EF8E72",
+"X.	c #EA8063",
+"Y.	c #9E2E13",
+"Z.	c #3F1811",
+"`.	c #121212",
+" +	c #6B433B",
+".+	c #E0A191",
+"++	c #FDD3C7",
+"@+	c #F4AD98",
+"#+	c #DE532B",
+"$+	c #C83409",
+"%+	c #B48274",
+"&+	c #383534",
+"*+	c #D6340A",
+"=+	c #E43D0F",
+"-+	c #E8582E",
+";+	c #ED7957",
+">+	c #F4B6A4",
+",+	c #F4B09D",
+"'+	c #F0E5E0",
+")+	c #F4F3EF",
+"!+	c #FDF8F6",
+"~+	c #FBCEC1",
+"{+	c #F28B6E",
+"]+	c #E44E23",
+"^+	c #D3370A",
+"/+	c #BF2F09",
+"(+	c #260800",
+"_+	c #190F0B",
+":+	c #D5350A",
+"<+	c #E43D0C",
+"[+	c #E74C1F",
+"}+	c #EFBBAB",
+"|+	c #F5F4F3",
+"1+	c #F5F3F1",
+"2+	c #EAB1A0",
+"3+	c #DE4316",
+"4+	c #C5310A",
+"5+	c #591202",
+"6+	c #0E0504",
+"7+	c #C83009",
+"8+	c #E0532B",
+"9+	c #E7E6E3",
+"0+	c #E7E6E2",
+"a+	c #DDDCD9",
+"b+	c #CFCECA",
+"c+	c #C14724",
+"d+	c #AE2907",
+"e+	c #290800",
+"f+	c #0F0705",
+"g+	c #9B2205",
+"h+	c #C1A89F",
+"i+	c #D1D0CC",
+"j+	c #CFCDCA",
+"k+	c #C7C6C3",
+"l+	c #BBBAB7",
+"m+	c #B5B4B1",
+"n+	c #A7A6A2",
+"o+	c #66564F",
+"p+	c #0B0908",
+"q+	c #010100",
+"r+	c #222221",
+"s+	c #51504B",
+"t+	c #5D5C57",
+"u+	c #3B3B37",
+"    . .         + @ # # $ %                     ",
+"  . . . . & # * = - ; > , ' ) ! ~ . . . .       ",
+". .     { ] ^ / ( _ : > < [ } | . 1     . .     ",
+"  .   2 3 4 5 6 - 7 8 9 0 0 a b c d e     .     ",
+"  . f g h i j k l m n o } p a q r s t u . .     ",
+"  v w x y z A B C D E F G H I J K L M . N       ",
+"  O P Q R S T U . . . . V W X Y Z K `  ..       ",
+"  ..+.@.#.$.%.. .         . &.*.=.-.;.>.! .     ",
+",.'.).!.~.{.. .             . ].^./.(.n _..     ",
+"@ :.<.[.}.|..                 1.2.3.4.5.6..     ",
+"# 7.6 8.9.0..                 a.b.c.d.e.f..     ",
+"# > < g.h.i..                 j.k.l.m.n.o..     ",
+"p., q.r.s.t.u.                v.w.9 x.y.. .     ",
+"z.' [ 7 A.[.B..             C.D.E.F.G.H.. .     ",
+"  ) } 0 I.J.K.L..         M.N.O.P.Q.R.S.. .     ",
+"  ! | T.U.V.W.X.Y.Z.a.`. +.+++@+#+$+%+. .       ",
+"  &+. *+=+-+;+>+,+'+)+k.!+~+{+]+^+/+(+. .       ",
+"  . _+d :+L <+[+}+|+l.1+|+2+3+^+4+5+. . .       ",
+"  .   6+t 7+` 8+9+0+o a+[.b+c+d+e+. .   .       ",
+"  .     f+. g+h+i+j+k+l+m+n+o+. . .     .       ",
+"    . . . p+. q+r+s+t+u+. . . . .     . .       ",
+"              . . . . . . . .   . . . .         ",
+"                                                ",
+"                                                "};
Binary file etc/images/home.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/home.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,128 @@
+/* XPM */
+static char * home_xpm[] = {
+"24 24 101 2",
+"  	c None",
+". 	c #000000",
+"+ 	c #212121",
+"@ 	c #2C2C2C",
+"# 	c #C1665A",
+"$ 	c #924B37",
+"% 	c #2A2A2A",
+"& 	c #333333",
+"* 	c #343434",
+"= 	c #242424",
+"- 	c #944D3A",
+"; 	c #A05443",
+"> 	c #181818",
+", 	c #474747",
+"' 	c #555555",
+") 	c #8D8D8D",
+"! 	c #383838",
+"~ 	c #191919",
+"{ 	c #974F3C",
+"] 	c #222222",
+"^ 	c #313131",
+"/ 	c #A1A1A1",
+"( 	c #676767",
+"_ 	c #ACACAC",
+": 	c #BCBCBC",
+"< 	c #585858",
+"[ 	c #141414",
+"} 	c #1C1C1C",
+"| 	c #464646",
+"1 	c #666666",
+"2 	c #BABABA",
+"3 	c #7E7E7E",
+"4 	c #D2D2D2",
+"5 	c #FFFFFF",
+"6 	c #4F4F4F",
+"7 	c #262626",
+"8 	c #232323",
+"9 	c #505050",
+"0 	c #B2B2B2",
+"a 	c #909090",
+"b 	c #9A9A9A",
+"c 	c #838383",
+"d 	c #171717",
+"e 	c #202020",
+"f 	c #717171",
+"g 	c #A6A6A6",
+"h 	c #616161",
+"i 	c #1D1D1D",
+"j 	c #1F1F1F",
+"k 	c #C4C4C4",
+"l 	c #CACACA",
+"m 	c #AEAEAE",
+"n 	c #D1D1D1",
+"o 	c #7C7C7C",
+"p 	c #BFBFBF",
+"q 	c #6C6C6C",
+"r 	c #EEEEEE",
+"s 	c #949494",
+"t 	c #C7C7C7",
+"u 	c #EBEBEB",
+"v 	c #7D7D7D",
+"w 	c #6E6E6E",
+"x 	c #A9A9A9",
+"y 	c #E99E8F",
+"z 	c #DD806D",
+"A 	c #9B5343",
+"B 	c #CECECE",
+"C 	c #626262",
+"D 	c #858585",
+"E 	c #ECA292",
+"F 	c #D0533A",
+"G 	c #934F3E",
+"H 	c #6D6D6D",
+"I 	c #ECA291",
+"J 	c #CF543C",
+"K 	c #371D16",
+"L 	c #5D5D5D",
+"M 	c #868686",
+"N 	c #787878",
+"O 	c #ECA696",
+"P 	c #C95C49",
+"Q 	c #E17C66",
+"R 	c #924E3D",
+"S 	c #888888",
+"T 	c #A0A0A0",
+"U 	c #3D1208",
+"V 	c #D15137",
+"W 	c #919191",
+"X 	c #879981",
+"Y 	c #82947C",
+"Z 	c #8A9B85",
+"` 	c #6E8467",
+" .	c #5D7555",
+"..	c #4C6042",
+"+.	c #3F4F37",
+"@.	c #303D2A",
+"#.	c #7F8F7A",
+"$.	c #64785E",
+"%.	c #44563E",
+"&.	c #657460",
+"*.	c #40503A",
+"                                                ",
+"                      . .                       ",
+"          . . . .   . + @ .                     ",
+"          . # $ . . % & * = .                   ",
+"          . - ; . > , ' ) ! ~ .                 ",
+"          . { . ] ^ / ( _ : < [ .               ",
+"          . . } | 1 2 3 4 : 5 6 7 .             ",
+"          . 8 9 0 a 4 b 5 : 5 : c d .           ",
+"        . e f g 4 b 5 : 5 : 5 : 5 h i .         ",
+"      . j k k l 5 m 5 2 5 2 5 : 5 n o } .       ",
+"    . 8 m p p p p p p p p . . . . . a q = .     ",
+"  . . . . r 5 5 5 5 5 5 5 . s t u . v . . . .   ",
+"        . 4 5 . . . . . 5 . : 5 5 . w .         ",
+"        . x 5 . y z A . 5 . B 5 5 . C .         ",
+"        . D 5 . E F G . 5 . . . . . H .         ",
+"        . . 5 . I J K . k s L L M N . .         ",
+"        . . r . O P G . 5 5 5 5 5 2 .           ",
+"          . 2 . Q # R . : : : : : S .           ",
+"          . T U V # A . 5 5 5 5 5 W .           ",
+"  . . . . . . . . . . . . . . . . . . . .   .   ",
+"        } X Y Z X `  ...+.@.. Y #.$.%.&.*..     ",
+"    . .   . . . . . . . . .   . . . . . .       ",
+"                . . .                           ",
+"                                                "};
Binary file etc/images/index.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/index.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,201 @@
+/* XPM */
+static char * index_xpm[] = {
+"24 24 174 2",
+"  	c None",
+". 	c #000000",
+"+ 	c #FDFDFD",
+"@ 	c #F5F5F5",
+"# 	c #F6F6F6",
+"$ 	c #D0D0D0",
+"% 	c #C1C1C1",
+"& 	c #C3C3C3",
+"* 	c #C6C6C6",
+"= 	c #C8C8C8",
+"- 	c #8D8D8D",
+"; 	c #CACACA",
+"> 	c #919191",
+", 	c #EFEFEF",
+"' 	c #878787",
+") 	c #8A8A8A",
+"! 	c #5C5C5C",
+"~ 	c #F8F8F8",
+"{ 	c #EAEAEA",
+"] 	c #CCCCCC",
+"^ 	c #CECECE",
+"/ 	c #979797",
+"( 	c #CDCDCD",
+"_ 	c #A1A1A1",
+": 	c #090600",
+"< 	c #A3A3A3",
+"[ 	c #C5C5C5",
+"} 	c #C4C4C4",
+"| 	c #D1D1D1",
+"1 	c #D2D2D1",
+"2 	c #D2D2D2",
+"3 	c #9A9A9A",
+"4 	c #E8E8E8",
+"5 	c #949494",
+"6 	c #939393",
+"7 	c #574F4F",
+"8 	c #FDFDFC",
+"9 	c #777777",
+"0 	c #7E7E7E",
+"a 	c #9D9D9D",
+"b 	c #6B6B6B",
+"c 	c #F1F1F1",
+"d 	c #ECECEC",
+"e 	c #CFCFCF",
+"f 	c #575050",
+"g 	c #FDFAF8",
+"h 	c #A5A5A5",
+"i 	c #B9B9B9",
+"j 	c #EEEEEE",
+"k 	c #EDEDED",
+"l 	c #D5D5D5",
+"m 	c #BABABA",
+"n 	c #6D6767",
+"o 	c #F9F1EA",
+"p 	c #9E9E9E",
+"q 	c #B5B5B5",
+"r 	c #D9D9D9",
+"s 	c #D7D7D7",
+"t 	c #BCBCBC",
+"u 	c #625C5B",
+"v 	c #F9EEE4",
+"w 	c #4F4D4A",
+"x 	c #646464",
+"y 	c #747474",
+"z 	c #D6D6D5",
+"A 	c #DFDFDF",
+"B 	c #A0A0A0",
+"C 	c #615C5B",
+"D 	c #F9F0E4",
+"E 	c #746C67",
+"F 	c #FEFDFC",
+"G 	c #FFFEFD",
+"H 	c #131210",
+"I 	c #636363",
+"J 	c #7C7C7C",
+"K 	c #F3F2F2",
+"L 	c #98948F",
+"M 	c #F9EFE3",
+"N 	c #A09489",
+"O 	c #FEFDFD",
+"P 	c #766D68",
+"Q 	c #736961",
+"R 	c #A3A3A2",
+"S 	c #A6A6A6",
+"T 	c #DBDBDB",
+"U 	c #C7C7C7",
+"V 	c #E8E5E2",
+"W 	c #97938E",
+"X 	c #F6E9D8",
+"Y 	c #84817A",
+"Z 	c #FBF3EA",
+"` 	c #908C86",
+" .	c #F1EDE7",
+"..	c #7B7975",
+"+.	c #878786",
+"@.	c #070000",
+"#.	c #FAFAFA",
+"$.	c #DDDDDD",
+"%.	c #E2DFDC",
+"&.	c #A8A199",
+"*.	c #F0E0CE",
+"=.	c #C8BFB4",
+"-.	c #D5CCBF",
+";.	c #DFD7CD",
+">.	c #DAD3C9",
+",.	c #DDCFC4",
+"'.	c #928C84",
+").	c #A8A8A8",
+"!.	c #959595",
+"~.	c #040000",
+"{.	c #D9D5D2",
+"].	c #D9CABB",
+"^.	c #D7C8B8",
+"/.	c #DECFBF",
+"(.	c #D8C9B9",
+"_.	c #E3D3C2",
+":.	c #C9BBAC",
+"<.	c #D9CEC2",
+"[.	c #7F766D",
+"}.	c #909090",
+"|.	c #D3D3D3",
+"1.	c #060100",
+"2.	c #C0BDBA",
+"3.	c #8C8782",
+"4.	c #C2B5A7",
+"5.	c #BFB4A6",
+"6.	c #B8AB9D",
+"7.	c #BAAD9E",
+"8.	c #BEB0A2",
+"9.	c #948A7F",
+"0.	c #716860",
+"a.	c #E2E2E2",
+"b.	c #A9A9A8",
+"c.	c #332C2B",
+"d.	c #5D5954",
+"e.	c #79736C",
+"f.	c #958C80",
+"g.	c #8D8379",
+"h.	c #988D82",
+"i.	c #706760",
+"j.	c #787878",
+"k.	c #E4E4E4",
+"l.	c #C2C2C2",
+"m.	c #201A1A",
+"n.	c #57514F",
+"o.	c #625C59",
+"p.	c #625A53",
+"q.	c #6B625A",
+"r.	c #585251",
+"s.	c #696764",
+"t.	c #080000",
+"u.	c #989898",
+"v.	c #B0B0B0",
+"w.	c #AFAFAF",
+"x.	c #999999",
+"y.	c #9D9897",
+"z.	c #050000",
+"A.	c #0C0303",
+"B.	c #080100",
+"C.	c #030000",
+"D.	c #282523",
+"E.	c #5A5A5A",
+"F.	c #868686",
+"G.	c #ECE4E2",
+"H.	c #DED7D5",
+"I.	c #D8D1D0",
+"J.	c #E0DBD7",
+"K.	c #E9E6E3",
+"L.	c #FCFBFA",
+"M.	c #030500",
+"N.	c #0B0505",
+"O.	c #14100F",
+"P.	c #090806",
+"Q.	c #000100",
+"                                                ",
+"    . . . . . . . . . . . . . . . . . . . .     ",
+"    . + @ @ @ @ @ @ @ # # # # # # # # # $ .     ",
+"    . @ % % % & & & & * * * * * = = = = - .     ",
+"    . # & & & * * * * = = = = = ; ; ; ; > .     ",
+"    . , ' ' ' ) ) ) ) - - - - - > > > > ! .     ",
+"    . ~ { { { { { { { { { { { { { { { { ; .     ",
+"    . # ; ; ; ] ] ] ] ] ^ ^ ^ ^ $ $ $ $ / .     ",
+"    . # ] ] ] ( ^ ^ ^ _ : < [ } | 1 | 2 3 .     ",
+"    . 4 5 5 5 / / / 6 7 8 . 9 0 - a a a b .     ",
+"    . ~ c d d d d d e f g . h i $ j j k * .     ",
+"    . ~ 2 2 2 2 l l m n o . > p q r r r < .     ",
+"    . ~ l l l l s s t u v w . x . y p z < .     ",
+"    . A B B B B < 9 . C D E F . G H . I J .     ",
+"    . ~ @ , , , j . K L M N O P F Q R . S .     ",
+"    . ~ T T T T U . V W X Y Z `  ...+.@.< .     ",
+"    . #.$.$.$.$.& . %.&.*.=.-.;.>.,.'.@.p .     ",
+"    . { ).).).).!.~.{.].^./.(._.:.<.[.@.}..     ",
+"    . #.@ c c c |.1.2.3.4.5.6.7.8.9.0.@.] .     ",
+"    . #.a.a.a.a.l b.c.d.e.f.g.9.h.i.. j.q .     ",
+"    . #.a.a.a.a.k.l.j.m.n.o.p.q.r.s.t.u.q .     ",
+"    . a.v.v.v.v.v.w.x.y.z.A.t.B.C.D.E.F.m .     ",
+"    . . . . . . . . . ~.G.H.I.J.K.L.M.. . .     ",
+"                      ~.N.z.O.C.P.. Q.          "};
Binary file etc/images/info.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/info.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,36 @@
+/* XPM */
+static char *magick[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 6 1",
+"  c Gray0",
+". c #65658b8b5e5e",
+"X c #934ab2448dfb",
+"o c #b35dc8c8afaf",
+"O c #e0b2e944df83",
+"+ c None",
+/* pixels */
+"++++++++++++++++++++++++",
+"++++++++++++++++++++++++",
+"++++++++++++++++++++++++",
+"++++++++++++++++++++++++",
+"+++++++++     ++++++++++",
+"++++++++ oOOOO +++++++++",
+"+++++++ OOOOOOO ++++++++",
+"++++++ oOo   oOo +++++++",
+"+++++++ O +++ OO +++++++",
+"+++++++O ++++ Oo +++++++",
+"++++++++++++ OO. +++++++",
+"+++++++++++ OOX ++++++++",
+"++++++++++ OOX +++++++++",
+"+++++++++ XOX ++++++++++",
+"+++++++++ OX +++++++++++",
+"+++++++++    +++++++++++",
+"++++++++++++++++++++++++",
+"++++++++++  ++++++++++++",
+"+++++++++ Oo +++++++++++",
+"+++++++++ oX +++++++++++",
+"++++++++++  ++++++++++++",
+"++++++++++++++++++++++++",
+"++++++++++++++++++++++++",
+"++++++++++++++++++++++++"
+};
Binary file etc/images/jump-to.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/jump-to.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,171 @@
+/* XPM */
+static char * jump_to_xpm[] = {
+"24 24 144 2",
+"  	c None",
+". 	c #000000",
+"+ 	c #9ABC82",
+"@ 	c #C1E3AA",
+"# 	c #A0C487",
+"$ 	c #8F6508",
+"% 	c #AD671D",
+"& 	c #D6AF41",
+"* 	c #E1B744",
+"= 	c #B86F20",
+"- 	c #7E5907",
+"; 	c #D8E7CD",
+"> 	c #D9E7CF",
+", 	c #DDEAD2",
+"' 	c #E4EFDA",
+") 	c #EBF6DF",
+"! 	c #C8EBB0",
+"~ 	c #A2C688",
+"{ 	c #986F26",
+"] 	c #E2B946",
+"^ 	c #EFCD64",
+"/ 	c #F4D268",
+"( 	c #F6D469",
+"_ 	c #E7C24A",
+": 	c #D5B044",
+"< 	c #BC8C31",
+"[ 	c #1A0700",
+"} 	c #D7E6CD",
+"| 	c #B2D29C",
+"1 	c #B6D69F",
+"2 	c #BDDEA5",
+"3 	c #C4E7AC",
+"4 	c #CAEEB1",
+"5 	c #A1C387",
+"6 	c #CBB86E",
+"7 	c #EDD97E",
+"8 	c #FEE882",
+"9 	c #FEE77E",
+"0 	c #FDDF60",
+"a 	c #FBD14F",
+"b 	c #E4BF49",
+"c 	c #BB8C31",
+"d 	c #CFE2C3",
+"e 	c #B2D19C",
+"f 	c #B5D59F",
+"g 	c #BBDBA4",
+"h 	c #C1E3A9",
+"i 	c #C6E9AE",
+"j 	c #C3E6AB",
+"k 	c #A9CE8D",
+"l 	c #DCBA5C",
+"m 	c #FBE46B",
+"n 	c #FFEB64",
+"o 	c #FFE054",
+"p 	c #FED952",
+"q 	c #F8CF4E",
+"r 	c #C4A13E",
+"s 	c #8BA27B",
+"t 	c #618249",
+"u 	c #628349",
+"v 	c #64864B",
+"w 	c #66894D",
+"x 	c #688B4E",
+"y 	c #678B4D",
+"z 	c #6B9251",
+"A 	c #719755",
+"B 	c #55833A",
+"C 	c #ECC75E",
+"D 	c #FFED59",
+"E 	c #FFE757",
+"F 	c #FFDF54",
+"G 	c #FBD44F",
+"H 	c #E1BD48",
+"I 	c #B36C1F",
+"J 	c #608148",
+"K 	c #628449",
+"L 	c #63854A",
+"M 	c #65894C",
+"N 	c #6C9151",
+"O 	c #527E39",
+"P 	c #B39237",
+"Q 	c #F0C248",
+"R 	c #FFF25B",
+"S 	c #FFEB58",
+"T 	c #FFE155",
+"U 	c #FBD450",
+"V 	c #E3BD49",
+"W 	c #BC983B",
+"X 	c #618349",
+"Y 	c #628549",
+"Z 	c #65884B",
+"` 	c #4D7735",
+" .	c #907934",
+"..	c #DCB444",
+"+.	c #FCDB52",
+"@.	c #FFEF5A",
+"#.	c #FFE957",
+"$.	c #FEDF54",
+"%.	c #F9D24F",
+"&.	c #E0BA48",
+"*.	c #B08F37",
+"=.	c #52743B",
+"-.	c #456A2F",
+";.	c #608248",
+">.	c #628448",
+",.	c #476F31",
+"'.	c #7F6B32",
+").	c #D0AF4B",
+"!.	c #F5CF4E",
+"~.	c #FFE255",
+"{.	c #FEDA52",
+"].	c #EAC54B",
+"^.	c #D0AC42",
+"/.	c #9C5D1A",
+"(.	c #5A7B42",
+"_.	c #456C2F",
+":.	c #6F5C23",
+"<.	c #A78833",
+"[.	c #F0C54A",
+"}.	c #FFDA52",
+"|.	c #FFDE53",
+"1.	c #C39032",
+"2.	c #886423",
+"3.	c #BC9D3B",
+"4.	c #F0C84E",
+"5.	c #FFD551",
+"6.	c #FED751",
+"7.	c #FDD550",
+"8.	c #EDC74C",
+"9.	c #E5BF49",
+"0.	c #CCA941",
+"a.	c #AB7727",
+"b.	c #B1822D",
+"c.	c #DCB746",
+"d.	c #DFBA47",
+"e.	c #EDC64C",
+"f.	c #E9C34B",
+"g.	c #D6B144",
+"h.	c #C19D3D",
+"i.	c #AB7C2B",
+"j.	c #BC7222",
+"k.	c #BB983B",
+"l.	c #B09638",
+"m.	c #A2621B",
+"                                                ",
+"                                                ",
+"            .                                   ",
+"            . .                                 ",
+"            . + .       . . . . . .             ",
+"  . . . . . . @ # .   . $ % & * = - . .         ",
+"  . ; > , ' ) ! ! ~ . { ] ^ / ( _ : < [ .       ",
+"  . } | 1 2 3 4 4 3 5 . 6 7 8 9 0 a b c .       ",
+"  . d e f g h i i h j k . l m n o p q r - .     ",
+"  . s t u v w x x y z A B . C D E F G H I .     ",
+"  . s J t K L v v M N O . P Q R S T U V W .     ",
+"  . s J J t X u Y Z ` .  ...+.@.#.$.%.&.*..     ",
+"  . =.-.-.-.-.;.>.,.. '.).!.E E ~.{.].^./..     ",
+"  . . . . . . (._.. :.<.[.}.|.|.{.%.V 1.$ .     ",
+"            . -.. . 2.3.4.5.6.7.8.9.0.a..       ",
+"            . .   . . b.c.d.e.f.g.h.i.. .       ",
+"            .         . $ j.k.l.m.$ . .         ",
+"                        . . . . . .             ",
+"                                                ",
+"                                                ",
+"                                                ",
+"                                                ",
+"                                                ",
+"                                                "};
Binary file etc/images/left-arrow.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/left-arrow.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,70 @@
+/* XPM */
+static char * left_arrow_xpm[] = {
+"24 24 43 1",
+" 	c None",
+".	c #000000",
+"+	c #B9D0B9",
+"@	c #CDDECB",
+"#	c #B6C7B6",
+"$	c #B1C9B0",
+"%	c #B3C4B3",
+"&	c #B4CBB2",
+"*	c #B5CEB5",
+"=	c #B7CCB5",
+"-	c #B9CEB7",
+";	c #BAD1BA",
+">	c #BBCFBA",
+",	c #BBD0B9",
+"'	c #B2C9B0",
+")	c #7EAB78",
+"!	c #AAC7A8",
+"~	c #B3CAB1",
+"{	c #B0C9B0",
+"]	c #B0C9AE",
+"^	c #AEC7AC",
+"/	c #AAC5A8",
+"(	c #A9C4A7",
+"_	c #698267",
+":	c #2D2D2D",
+"<	c #CFDFCC",
+"[	c #ADC8AB",
+"}	c #B0C7AE",
+"|	c #ADC6AB",
+"1	c #678C63",
+"2	c #9BAD9A",
+"3	c #85AE81",
+"4	c #87AF84",
+"5	c #87B083",
+"6	c #88AF84",
+"7	c #88B085",
+"8	c #86AF82",
+"9	c #547150",
+"0	c #3C5235",
+"a	c #5B7950",
+"b	c #4A6342",
+"c	c #3B5035",
+"d	c #415639",
+"                        ",
+"                        ",
+"                        ",
+"            .           ",
+"           ..           ",
+"          .+.           ",
+"         .@#.           ",
+"        .@$%........    ",
+"       .@&*=-;->,').    ",
+"      .@!~{]^///^(_.    ",
+"     :<[}||[!^^}^[1.    ",
+"    .23444445645789.    ",
+"     .0aaaaaaaaaaab.    ",
+"      .0aaaaaaaaaab.    ",
+"       .0aabccccccd.    ",
+"        .0ab........    ",
+"         .0b.           ",
+"          .b.           ",
+"           ..           ",
+"            .           ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/back-arrow.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,33 @@
+/* XPM */
+static char *back_arrow_xpm[] = {
+"24 24 6 1",
+"  c #000000",
+". c #000100",
+"X c #6B6B66",
+"o c #87AF85",
+"O c #FFFFFF",
+"+ c None",
+"++++++++++++++++++++++++",
+"++++++++++++++++++++++++",
+"++++++++++++++++++++++++",
+"++++++++++ +++++++++++++",
+"+++++++++ .+++++++++++++",
+"++++++++ O.+++++++++++++",
+"+++++++ Oo .  ++++++++++",
+"++++++ Ooooooo +++++++++",
+"+++++ Ooooooooo ++++++++",
+"++++ ooooooooooo.+++++++",
+"+++++ oooooooooo..++++++",
+"++++++.oooooooooo.++++++",
+"+++++++.oo.. oooo.++++++",
+"++++++++.o.+  ooo.++++++",
+"+++++++++..++..oo.++++++",
+"++++++++++.+++.oo.++++++",
+"++++++++++++++.oo.++++++",
+"++++++++++++++.o.+++++++",
+"+++++++++++++.oX.+++++++",
+"++++++++++++.oo.++++++++",
+"+++++++++++++..+++++++++",
+"++++++++++++++++++++++++",
+"++++++++++++++++++++++++",
+"++++++++++++++++++++++++"};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/copy.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,33 @@
+/* XPM */
+static char * copy2_xpm[] = {
+"24 24 6 1",
+" 	c None",
+".	c #FFFFFF",
+"+	c #000100",
+"@	c #6B6B66",
+"#	c #BBBDBA",
+"$	c #504D46",
+"                        ",
+" +++++++++++++          ",
+" +#..........#+         ",
+" +............+         ",
+" +.#@@@.#@.@#.+         ",
+" +............+         ",
+" +.@$.@@#.++++++++++++  ",
+" +.......+#..........#+ ",
+" +.#@@.@@+............+ ",
+" +.......+.#@@#.#@.@#.+ ",
+" +.@$$.@@+............+ ",
+" +.......+.@@.@@#.#@..+ ",
+" +.#@@.@@+............+ ",
+" +.......+.#@@.@@#.#@.+ ",
+" +#......+............+ ",
+"  ++++++++.@@@.@@#.#@.+ ",
+"         +............+ ",
+"         +.#@@.@@#.#@.+ ",
+"         +............+ ",
+"         +#..........#+ ",
+"         ++++++++++++++ ",
+"                        ",
+"                        ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/cut.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,34 @@
+/* XPM */
+static char * cut2_xpm[] = {
+"24 24 7 1",
+" 	c None",
+".	c #000100",
+"+	c #BBBDBA",
+"@	c #FFFFFF",
+"#	c #6B6B66",
+"$	c #504D46",
+"%	c #3E4850",
+"                        ",
+"                        ",
+"      .        .        ",
+"      .        .        ",
+"     .+.      .@.       ",
+"     .@$      #@.       ",
+"     .@#.    .@+.       ",
+"     .@+$    #@+.       ",
+"      #@#.  .@+$        ",
+"      .@+$  $@+.        ",
+"       #@#.%@+#         ",
+"       .@+$#++.         ",
+"        .@+$+.          ",
+"         .++..          ",
+"         ..#$.          ",
+"     .............      ",
+"     . ...  ... ...     ",
+"    ..  ..   ..  ..     ",
+"    .    .   .    .     ",
+"    ..  ..   ..  ..     ",
+"     ....     .. .      ",
+"     ....     ....      ",
+"                        ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/fwd-arrow.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,32 @@
+/* XPM */
+static char *fwd_arrow_xpm[] = {
+"24 24 5 1",
+"  c #000000",
+". c #000100",
+"X c #87AF85",
+"o c #FFFFFF",
+"O c None",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOO OOOOOOOOOO",
+"OOOOOOOOOOOOO  OOOOOOOOO",
+"OOOOOOOOOOOOO X OOOOOOOO",
+"OOOOOOOOOO  . XX.OOOOOOO",
+"OOOOOOOOO oXXXXXX.OOOOOO",
+"OOOOOOOO.oXXXXXXXX.OOOOO",
+"OOOOOOO.oXXXXXXXXXX.OOOO",
+"OOOOOO..XXXXXXXXXX.OOOOO",
+"OOOOOO.XXXXXXXXXX.OOOOOO",
+"OOOOOO.XXXX.  XX.OOOOOOO",
+"OOOOOO.XXX..O X OOOOOOOO",
+"OOOOOO.XX..OO. OOOOOOOOO",
+"OOOOOO.XX.OOO.OOOOOOOOOO",
+"OOOOOO.XX.OOOOOOOOOOOOOO",
+"OOOOOOO.X.OOOOOOOOOOOOOO",
+"OOOOOOO.XX.OOOOOOOOOOOOO",
+"OOOOOOOO.XX.OOOOOOOOOOOO",
+"OOOOOOOOO..OOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO"};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/help.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,39 @@
+/* XPM */
+static char * help2_xpm[] = {
+"24 24 12 1",
+" 	c None",
+".	c #000100",
+"+	c #FFFFFF",
+"@	c #BBBDBA",
+"#	c #C43107",
+"$	c #EBA291",
+"%	c #D15237",
+"&	c #504D46",
+"*	c #751805",
+"=	c #6B6B66",
+"-	c #974F3D",
+";	c #3E4850",
+"  ..    &....&          ",
+" ....&.;@++++@..&....   ",
+"..  &.+++++++++@..  ..  ",
+" . .%$+++++++++@#*.  .  ",
+" ..%$$%+@@@++++###*...  ",
+" -.$$%%$@@@@@+$####..   ",
+" .$$$%#*.....=#%####.   ",
+" =+$%#*..    .*#$##$..  ",
+"&++@%#..      .*$$+@..  ",
+".++@@-.        *$++@&.  ",
+".++@@@.        .+++@=.  ",
+".++@@@.        .++@@&.  ",
+".+++@@.        =++@@..  ",
+"&@++@@-.      .$++@@..  ",
+" .+++$%*.    .-$$@@=..  ",
+" .@$%%$%*...&$$$%#$..   ",
+" &.###%$$++++$$###...   ",
+" ..*####$++++$###*...   ",
+" . .*###+++@@@%#... .   ",
+" .  ..#@@@@@@@&...  .   ",
+"  .......&&&.....  ..   ",
+"       ........ ....    ",
+"                        ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/home.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,38 @@
+/* XPM */
+static char * home2_xpm[] = {
+"24 24 11 1",
+" 	c None",
+".	c #000100",
+"+	c #BBBDBA",
+"@	c #FFFFFF",
+"#	c #6B6B66",
+"$	c #504D46",
+"%	c #974F3D",
+"&	c #EBA291",
+"*	c #87AF85",
+"=	c #3E4850",
+"-	c #D15237",
+"                        ",
+"           ..           ",
+"     .... ..=.          ",
+"     .%%..===..         ",
+"     .%%..$$#$..        ",
+"     .%..=+#++$..       ",
+"     ...$#+#++@$..      ",
+"     ..$+#++@+@+#..     ",
+"    ..#+++@+@+@+@#..    ",
+"   ..+++@+@+@+@+@+#..   ",
+"  ..+++++++++.....##..  ",
+" ....@@@@@@@@.++@.#.... ",
+"    .+@.....@.+@@.#.    ",
+"    .+@.&&%.@.+@@.#.    ",
+"    .#@.&-%.@.....#.    ",
+"    ..@.&-..++####..    ",
+"    ..@.&-%.@@@@@+.     ",
+"     .+.&%%.+++++#.     ",
+"     .+.-%%.@@@@@#.     ",
+" .................... . ",
+"    .****##$$$.**#$#$.  ",
+"  .. ......... ......   ",
+"        ...             ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/index.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,34 @@
+/* XPM */
+static char * index2_xpm[] = {
+"24 24 7 1",
+" 	c None",
+".	c #BBBDBA",
+"+	c #000100",
+"@	c #FFFFFF",
+"#	c #6B6B66",
+"$	c #504D46",
+"%	c #3E4850",
+"                        ",
+"  ++++++++++++++++++++  ",
+"  +@@@@@@@@@@@@@@@@@.+  ",
+"  +@................#+  ",
+"  +@................#+  ",
+"  +@#################+  ",
+"  +@@@@@@@@@@@@@@@@@.+  ",
+"  +@.................+  ",
+"  +@........+........+  ",
+"  +@.......$@+###...#+  ",
+"  +@@@@@@@.$@+...@@@.+  ",
+"  +@.......#@+#......+  ",
+"  +@.......#@$+#+#...+  ",
+"  +@.....#+#@#@+@++##+  ",
+"  +@@@@@@+@.@.@#@#.+.+  ",
+"  +@.....+@.@#@#@##+.+  ",
+"  +@.....+@.@.....#+.+  ",
+"  +@.....+........#+#+  ",
+"  +@@@@@.+.#.....##+.+  ",
+"  +@@@@@..%$######+#.+  ",
+"  +@@@@@@.#+$#$#$#+..+  ",
+"  +@........++++++$#.+  ",
+"  ++++++++++@...@@++++  ",
+"           ++++++++     "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/jump-to.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,35 @@
+/* XPM */
+static char * jump_to2_xpm[] = {
+"24 24 8 1",
+" 	c None",
+".	c #D3B354",
+"+	c #000100",
+"@	c #87AF85",
+"#	c #974F3D",
+"$	c #FFFFFF",
+"%	c #D15237",
+"&	c #BBBDBA",
+"                        ",
+"                        ",
+"      +                 ",
+"      ++                ",
+"      +@+   ++++++      ",
+" ++++++@@+ +.#..%#++    ",
+" +$$$$$@@@+........++   ",
+" +&@@@@@@@@+........+   ",
+" +&@@@@@@@@@+.......#+  ",
+" +@@@@@@@@@@@+......%+  ",
+" +@@@@@@@@@@+........+  ",
+" +@@@@@@@@@+.........+  ",
+" +@@@@@@@@+#........#+  ",
+" ++++++@@+#..........+  ",
+"      +@++#.........+   ",
+"      ++ ++........++   ",
+"      +    +.%..#.++    ",
+"            ++++++      ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/left-arrow.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,34 @@
+/* XPM */
+static char * left_arrow2_xpm[] = {
+"24 24 7 1",
+" 	c None",
+".	c #87AF85",
+"+	c #000100",
+"@	c #BBBDBA",
+"#	c #504D46",
+"$	c #6B6B66",
+"%	c #3E4850",
+"                        ",
+"                        ",
+"                        ",
+"            +           ",
+"           ++           ",
+"          +@+           ",
+"         +@@+           ",
+"        +@@@++++++++    ",
+"       +@@@@@@@@@@.+    ",
+"      +@.@@@@...@.$+    ",
+"     %@.@@@..@@@@..+    ",
+"    +@............$+    ",
+"     +#...........#+    ",
+"      +#..........#+    ",
+"       +#..########+    ",
+"        +#.#++++++++    ",
+"         +##+           ",
+"          +#+           ",
+"           ++           ",
+"            +           ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/new.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,33 @@
+/* XPM */
+static char * new2_xpm[] = {
+"24 24 6 1",
+" 	c None",
+".	c #FFFFFF",
+"+	c #BBBDBA",
+"@	c #000100",
+"#	c #6B6B66",
+"$	c #504D46",
+"                        ",
+"   @@@@@@@@@@@@@        ",
+"  @+..........+$@       ",
+"  @...........+++@      ",
+"  @...........+..+@     ",
+"  @...........+...#@    ",
+"  @...........+...++@   ",
+"  @...........+@@@@@@@  ",
+"  @............++++##@  ",
+"  @.............++++#@  ",
+"  @...............++#@  ",
+"  @................+#@  ",
+"  @.................#@  ",
+"  @.................+@  ",
+"  @.................+@  ",
+"  @...............+++@  ",
+"  @..............++++@  ",
+"  @.............+++++@  ",
+"  @............++++++@  ",
+"  @............++++++@  ",
+"  @+...+.+.+.++++++++@  ",
+"  @+++++++++++++++++#@  ",
+"   @@@@@@@@@@@@@@@@@@   ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/open.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,35 @@
+/* XPM */
+static char * open2_xpm[] = {
+"24 24 8 1",
+" 	c None",
+".	c #BBBDBA",
+"+	c #000100",
+"@	c #87AF85",
+"#	c #FFFFFF",
+"$	c #6B6B66",
+"%	c #504D46",
+"&	c #3E4850",
+"                        ",
+"                        ",
+"                        ",
+"  +++++++               ",
+" +.#####$%              ",
+" +#.....@%              ",
+"+.#......%+             ",
+"+..@@@...$%++++++++     ",
+"+.@@@@@..@@........+    ",
+"+.@@@@@@@@@@@@@@@@$+    ",
+"+.$$++++++++++++++++++  ",
+"+.$%################..& ",
+"+.$+#.................+ ",
+"+.%.#...............@$+ ",
+"+.+#...............@@%+ ",
+"+.$#............@@.@$+  ",
+"+....@@@@@.....@@@@$%+  ",
+"+.#..@@@@@@@@@@@@$$$+   ",
+"+#.@@@@$$$$$$$$$$$$%+   ",
+" +++++++++++++++++++    ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/paste.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,35 @@
+/* XPM */
+static char * paste2_xpm[] = {
+"24 24 8 1",
+" 	c None",
+".	c #FFFFFF",
+"+	c #BBBDBA",
+"@	c #000100",
+"#	c #6B6B66",
+"$	c #504D46",
+"%	c #D3B354",
+"&	c #974F3D",
+"       @@@@             ",
+" @@@@@@+..#@@@@@@       ",
+"@.....$.++#$+...+@      ",
+"@.++++$.##+$#+++%@      ",
+"@.+++$..+++#$#++%@      ",
+"@.++$++++++#$$++%@      ",
+"@.++#$$$$$$$$#++%@      ",
+"@.+++########+++%@      ",
+"@.+++++#$@@@@@$$@@@@@   ",
+"@.+++++$+...........+@  ",
+"@.+++++$.............@  ",
+"@.+++++@.+##+..+#.#+.@  ",
+"@.+++++@.............@  ",
+"@.+++++$.##.###+.+#..@  ",
+"@.+++++$.............@  ",
+"@.+++++$.+##.###+.+#.@  ",
+"@.+++++@.............@  ",
+"@.+++++@.##.###+.+#..@  ",
+"@.+++++$.............@  ",
+"@.+++++$.+##.###+.+#.@  ",
+"@+%%%%&@.............@  ",
+" @@@@@@@+...........+@  ",
+"        @@@@@@@@@@@@@   ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/preferences.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,37 @@
+/* XPM */
+static char * preferences2_xpm[] = {
+"24 24 10 1",
+" 	c None",
+".	c #000100",
+"+	c #BBBDBA",
+"@	c #FFFFFF",
+"#	c #7A98B0",
+"$	c #6B6B66",
+"%	c #4D687C",
+"&	c #B0CCE2",
+"*	c #504D46",
+"=	c #3E4850",
+"       ..               ",
+"      .++$.             ",
+"       .+++.        ..  ",
+"        .@+.       .@$. ",
+"    ..  =@+.      .@++. ",
+"   .+ ..+@+$.     .++.  ",
+"   .+++@@+++.    .@..   ",
+"    .+++++++$.  .@.     ",
+"     .....@@+$..+.      ",
+"          .@@+.+.       ",
+"           .@.+..       ",
+"            .+.$*.      ",
+"        ....+.$$$$.     ",
+"       .#&#.. .+++$.    ",
+"      .#&+&%.  .@@+$.   ",
+"     .#@#%&%.   .@@+$.  ",
+"    .#@#%&#%.    .@@+$..",
+"   .&@#%&#%.      .+$*+.",
+"  .#@#%&#%.        .+++.",
+"  .&@#&#%..         ... ",
+"  .#&&#%..              ",
+"   .##%..               ",
+"    ...                 ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/print.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,33 @@
+/* XPM */
+static char * print2_xpm[] = {
+"24 24 6 1",
+" 	c None",
+".	c #FFFFFF",
+"+	c #000100",
+"@	c #BBBDBA",
+"#	c #6B6B66",
+"$	c #504D46",
+"                        ",
+"      ++++++++++++      ",
+"     +@..........@+     ",
+"     +.........@@@+     ",
+"     +.###.#@@...@+     ",
+"     +...........@+     ",
+"     +.##@.#@.@#.@+     ",
+"     +...........@+     ",
+"     +.@@.@.@@@..@+     ",
+"     +....@......@+     ",
+"    ++.###@##@#@@@++    ",
+"   +.+@@@@@@@@@@@@+#+   ",
+"  +..#$++++++++++##@@+  ",
+" +....................+ ",
+" +@#...............@@@+ ",
+" +@#.@@@@@@@@@@@@@@#@#+ ",
+" +@#...............$##+ ",
+" +@#$$$$$$$$$$$$$$$$##+ ",
+" +@@###$#$$$$$$$$$$###+ ",
+" +#@@#########$#######+ ",
+"  ++++++++++++++++++++  ",
+"  +#@@@@@@@@@@@@@@@##+  ",
+"   ++++++++++++++++++   ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/right-arrow.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,33 @@
+/* XPM */
+static char * right_arrow2_xpm[] = {
+"24 24 6 1",
+" 	c None",
+".	c #87AF85",
+"+	c #000100",
+"@	c #BBBDBA",
+"#	c #6B6B66",
+"$	c #504D46",
+"                        ",
+"                        ",
+"                        ",
+"           +            ",
+"           ++           ",
+"           +.+          ",
+"           +..+         ",
+"    ++++++++@..+        ",
+"    +@@@@@@@@@..+       ",
+"    +@@..........+      ",
+"    +..........@..+     ",
+"    +.............$+    ",
+"    +............$+     ",
+"    +...........$+      ",
+"    +.######...$+       ",
+"    ++++++++#.$+        ",
+"           +#$+         ",
+"           +$+          ",
+"           ++           ",
+"           +            ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/save.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,39 @@
+/* XPM */
+static char * save2_xpm[] = {
+"24 24 12 1",
+" 	c None",
+".	c #FFFFFF",
+"+	c #000100",
+"@	c #BBBDBA",
+"#	c #7A98B0",
+"$	c #6B6B66",
+"%	c #EBA291",
+"&	c #3E4850",
+"*	c #B0CCE2",
+"=	c #4D687C",
+"-	c #504D46",
+";	c #974F3D",
+"                        ",
+"  +++++++++++++++++++   ",
+" +**$%%%%%%%%%%%%@$**+  ",
+" +*#$%%%%%%%%;;%;;$#=+  ",
+" +*#$%%%%%%;%;%;;;$#=+  ",
+" +*#$.............$#=+  ",
+" +*#$.............$#=+  ",
+" +*#$@@@@@@@@@@@@@$#=+  ",
+" +*#$.............$#=+  ",
+" +*#$.............$#=+  ",
+" +*#$@@@@@@@@@@@@@$#$+  ",
+" +*#$.............$#&+  ",
+" +*##$$$$$$$$$$$$$$#&+  ",
+" +*#################&+  ",
+" +*###&&&==$$$$&&&#*&+  ",
+" +*##&@@....@@@@$==*&+  ",
+" +*##&@.$--@@@@@&==*&+  ",
+" +*##&..$--@@@@@&==*&+  ",
+" +*##&..---@@@..&==*&+  ",
+" +###&@@---@@...&==*&+  ",
+"  +==&@@@@@@..@@&==*&+  ",
+"   ++++++++++++++++&+   ",
+"                        ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/saveas.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,40 @@
+/* XPM */
+static char * saveas2_xpm[] = {
+"24 24 13 1",
+" 	c None",
+".	c #000100",
+"+	c #BBBDBA",
+"@	c #7A98B0",
+"#	c #FFFFFF",
+"$	c #6B6B66",
+"%	c #3E4850",
+"&	c #B0CCE2",
+"*	c #4D687C",
+"=	c #EBA291",
+"-	c #504D46",
+";	c #D3B354",
+">	c #974F3D",
+"                ..      ",
+"               .;;.     ",
+"  .............;;-...   ",
+" .&&$========.;;-.%@@.  ",
+" .&@$=======.;;-.>-@*.  ",
+" .&@$======.;;-.>>%@*.  ",
+" .&@$#####.;;-.++#$@*.  ",
+" .&@$####.;;-.++##$@*.  ",
+" .&@$+++.;;-.+++++$@*.  ",
+" .&@$###.;-.++####$@*.  ",
+" .&@$##.-..++#####$@*.  ",
+" .&@$++..+++++++++$@$.  ",
+" .&@$###++########$@%.  ",
+" .&@@$$$$$$$$$$$$$$@%.  ",
+" .&@@@@@@@@@@@@@@@@@%.  ",
+" .&@@@%%%**$$$$%%%@&%.  ",
+" .&@@%++####++++$**&%.  ",
+" .&@@%+#$--+++++%**&%.  ",
+" .&@@%##$--+++++%**&%.  ",
+" .&@@%##---+++##%**&%.  ",
+" .@@@%++---++###%**&%.  ",
+"  .**%++++++##++%**&%.  ",
+"   ................%.   ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/search.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,33 @@
+/* XPM */
+static char * search2_xpm[] = {
+"24 24 6 1",
+" 	c None",
+".	c #FFFFFF",
+"+	c #BBBDBA",
+"@	c #000100",
+"#	c #6B6B66",
+"$	c #504D46",
+"                        ",
+"   @@@@@@@@@@@@@        ",
+"  @+..........+$@       ",
+"  @...........+++@      ",
+"  @...........+..+@     ",
+"  @...........+...#@    ",
+"  @...........+...++@   ",
+"  @....+$@@$+.+@@@@@@@  ",
+"  @...+$+++#$+.++++##@  ",
+"  @...$+..++#$..++++#@  ",
+"  @...@+.++++@+...++#@  ",
+"  @...@++++++@++...+#@  ",
+"  @...$#+++++$++....#@  ",
+"  @...+$#+++@@++....+@  ",
+"  @...+#$@@$#@@+....+@  ",
+"  @....++++++@@@+++++@  ",
+"  @....++++++#@@@++++@  ",
+"  @.....++++++#@@@+++@  ",
+"  @..........++#@@+++@  ",
+"  @..........++++++++@  ",
+"  @+...+.+.+.++++++++@  ",
+"  @+++++++++++++#####@  ",
+"   @@@@@@@@@@@@@@@@@@   ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/spell.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,35 @@
+/* XPM */
+static char * spell2_xpm[] = {
+"24 24 8 1",
+" 	c None",
+".	c #000100",
+"+	c #87AF85",
+"@	c #504D46",
+"#	c #BBBDBA",
+"$	c #6B6B66",
+"%	c #3E4850",
+"&	c #FFFFFF",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"  ...  ....   ...       ",
+" ..  . ..  . ..  .      ",
+" ..  . ....  ..         ",
+" ..... ..  . ..         ",
+" ..  . ..  . ..  .   .  ",
+" ..  . ....   ...   ... ",
+"                   .+.  ",
+"         ..       .+@   ",
+"         .+.     .++.   ",
+"          @+.   %#+.    ",
+"          .++. .#+$.    ",
+"           .++.&++.     ",
+"           .+++++$.     ",
+"            .++++.      ",
+"            .+++@.      ",
+"             .++.       ",
+"             .+@.       ",
+"              ..        ",
+"                        ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/undo.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,32 @@
+/* XPM */
+static char * undo2_xpm[] = {
+"24 24 5 1",
+" 	c None",
+".	c #D3B354",
+"+	c #000100",
+"@	c #FFFFFF",
+"#	c #6B6B66",
+"                        ",
+"                        ",
+"                        ",
+"          +             ",
+"         ++             ",
+"        +@+             ",
+"       +@.++++          ",
+"      +@......+         ",
+"     +@........+        ",
+"    +...........+       ",
+"     +..........++      ",
+"      +..........+      ",
+"       +..+++....+      ",
+"        +.+ ++...+      ",
+"         ++  ++..+      ",
+"          +   +..+      ",
+"              +..+      ",
+"              +.+       ",
+"             +.#+       ",
+"            +..+        ",
+"             ++         ",
+"                        ",
+"                        ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/low-color/up-arrow.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,35 @@
+/* XPM */
+static char * up_arrow2_xpm[] = {
+"24 24 8 1",
+" 	c None",
+".	c #87AF85",
+"+	c #000100",
+"@	c #504D46",
+"#	c #6B6B66",
+"$	c #BBBDBA",
+"%	c #FFFFFF",
+"&	c #3E4850",
+"                        ",
+"                        ",
+"           +            ",
+"          &$+           ",
+"         +%.@+          ",
+"        +%...@+         ",
+"       +%.....@+        ",
+"      +%......#@+       ",
+"     +%.......##@+      ",
+"    +%$$.....#@@@@+     ",
+"   +++++$.....@+++++    ",
+"       +$....#@+        ",
+"       +$....#@+        ",
+"       +$...##@+        ",
+"       +$...##@+        ",
+"       +$...##@+        ",
+"       +...#@@@+        ",
+"       +++++++++        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/mail.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/mail.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,35 @@
+/* XPM */
+static char *magick[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 5 1",
+"  c Gray0",
+". c #673e666663d4",
+"X c #a852a7bea3d2",
+"o c #eb46ea1de471",
+"O c None",
+/* pixels */
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOO    OOOOOO",
+"OOOOOOOOO     .ooX OOOOO",
+"OOOO     .XooooooX OOOOO",
+"OOO .Xoooooooooo.XX OOOO",
+"OOO o..ooooooooX.Xo OOOO",
+"OOO XoX..oooooo.Xoo OOOO",
+"OOOO oooXX.Xoo...ooX OOO",
+"OOOO oooooXX..XoX.Xo OOO",
+"OOOO Xoooo.ooooooo.X OOO",
+"OOOOO oooXXoooooooo.X OO",
+"OOOOO ooo.oooooooooX  OO",
+"OOOOO XoXXooooooX   OOOO",
+"OOOOOO o.ooooX   OOOOOOO",
+"OOOOOO .XoX   OOOOOOOOOO",
+"OOOOOO ..  OOOOOOOOOOOOO",
+"OOOOOOO  OOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO"
+};
Binary file etc/images/mail/compose.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/mail/compose.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,39 @@
+/* XPM */
+static char *magick[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 9 1",
+"  c Gray0",
+". c #757560602020",
+"X c #6711662663d9",
+"o c #8e8e7d7d4545",
+"O c #adad8e8e3030",
+"+ c #d8d8bebe6a6a",
+"@ c #a8fba84da483",
+"# c #eb79ea70e4f4",
+"$ c None",
+/* pixels */
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$    $$$$$$$",
+"$$$$$$$$     X##@ $$$$$$",
+"$$$     X@######@ $$$$$$",
+"$$ X@##########X@@ $$$$$",
+"$$ #XX########@X@# $$$$$",
+"$$ @#@XX######X@## $$$$$",
+"$$$ ###@@X@##XXX##@ $ $$",
+"$$$ #####@@XX@#@X@#  + $",
+"$$$ @####X#######X@ +o $",
+"$$$$ ###@@######## +o $$",
+"$$$$ ###X######## +o $$$",
+"$$$$ @#@@######@ +o $$$$",
+"$$$$$ #X####@   +o $$$$$",
+"$$$$$ X@#@   $ +o $$$$$$",
+"$$$$$ XX  $$$ +o $$$$$$$",
+"$$$$$$  $$$$ +o $$$$$$$$",
+"$$$$$$$$$$$O.  $$$$$$$$$",
+"$$$$$$$$$$$  $$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$"
+};
Binary file etc/images/mail/send.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/mail/send.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,39 @@
+/* XPM */
+static char *magick[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 9 1",
+"  c Gray0",
+". c #675e6580613e",
+"X c #8c8c7c7c6969",
+"o c #9b458d377822",
+"O c #a941a6459f3e",
+"+ c #c8c8b2b29898",
+"@ c #dadac2c2a5a5",
+"# c #eb4dea2fe4ad",
+"$ c None",
+/* pixels */
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$    $$$$$$$",
+"$$$$$$$$     .@#+ $$$$$$",
+"$$$     .+#####@O $$$$$$",
+"$$ .+##########.+O $$$$$",
+"$$ @..########O.+# $$$$$",
+"$$ O@O..@#####.+## $$$$$",
+"$$$ ###+O.O##...##O $$$$",
+"$$$ @####@+..O#O.+# $$$$",
+"$$$ O####.#######.O $$$$",
+"$$$$ ###+O########.O $$$",
+"$$$$ ###.########@O  $$$",
+"$$$$ +#+O#####@O   $$$$$",
+"$$$$$ #.###@O     $$$$$$",
+"$$$$$ .O@O   $$ .. $$$$$",
+"$$$$$ ..  $$$$ .oo. $$$$",
+"$$$$$$  $$$$$   oo   $$$",
+"$$$$$$$$$$$$$$$ Oo $$$$$",
+"$$$$$$$$$$$$$$ oOOX $$$$",
+"$$$$$$$$$$$$$$ ++++ $$$$",
+"$$$$$$$$$$$$$ O@@@@O $$$",
+"$$$$$$$$$$$$$        $$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$"
+};
Binary file etc/images/new.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/new.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,154 @@
+/* XPM */
+static char * new_xpm[] = {
+"24 24 127 2",
+"  	c None",
+". 	c #000000",
+"+ 	c #D3D3D3",
+"@ 	c #F6F6F6",
+"# 	c #FFFFFF",
+"$ 	c #F9F9F9",
+"% 	c #DADADA",
+"& 	c #585858",
+"* 	c #C7C7C7",
+"= 	c #D1D1D1",
+"- 	c #D6D6D6",
+"; 	c #FEFEFE",
+"> 	c #FDFDFD",
+", 	c #C0C0C0",
+"' 	c #E1E1E1",
+") 	c #F0F0F0",
+"! 	c #9B9B9B",
+"~ 	c #FCFCFB",
+"{ 	c #FBFBFB",
+"] 	c #AFAFAE",
+"^ 	c #E9E9E9",
+"/ 	c #DFDFDF",
+"( 	c #8F8F8F",
+"_ 	c #FAFAF9",
+": 	c #F9F9F8",
+"< 	c #A4A4A3",
+"[ 	c #F4F4F4",
+"} 	c #CFCFCF",
+"| 	c #A2A2A2",
+"1 	c #F8F8F7",
+"2 	c #F8F7F6",
+"3 	c #9E9E9E",
+"4 	c #F7F6F5",
+"5 	c #F6F6F4",
+"6 	c #F4F3F2",
+"7 	c #DEDDDC",
+"8 	c #D3D2D0",
+"9 	c #B7B7B5",
+"0 	c #9F9E9D",
+"a 	c #706F6F",
+"b 	c #65625A",
+"c 	c #F5F4F3",
+"d 	c #F2F2F0",
+"e 	c #E4E4E2",
+"f 	c #DAD9D7",
+"g 	c #D8D8D6",
+"h 	c #CDCCCA",
+"i 	c #AFAEAC",
+"j 	c #88847B",
+"k 	c #F3F3F1",
+"l 	c #EFEFED",
+"m 	c #EEEDEB",
+"n 	c #EDECEA",
+"o 	c #E9E8E6",
+"p 	c #D5D4D3",
+"q 	c #C4C3C2",
+"r 	c #8F8A81",
+"s 	c #F6F5F4",
+"t 	c #F5F5F3",
+"u 	c #F1F1EF",
+"v 	c #F1F0EE",
+"w 	c #ECEBE9",
+"x 	c #EAE9E7",
+"y 	c #E5E4E2",
+"z 	c #E4E3E0",
+"A 	c #D2D1CE",
+"B 	c #8D887E",
+"C 	c #F3F2F1",
+"D 	c #F0F0EE",
+"E 	c #F0EFED",
+"F 	c #EFEEEC",
+"G 	c #E8E7E5",
+"H 	c #E5E4E1",
+"I 	c #E2E1DE",
+"J 	c #E1DFDC",
+"K 	c #979288",
+"L 	c #A49E93",
+"M 	c #E8E7E4",
+"N 	c #E7E6E3",
+"O 	c #E3E2DF",
+"P 	c #E2E0DD",
+"Q 	c #E1E0DC",
+"R 	c #E0DFDB",
+"S 	c #A19C90",
+"T 	c #EDEDEB",
+"U 	c #EBEAE8",
+"V 	c #E9E8E5",
+"W 	c #E6E4E1",
+"X 	c #E3E2DE",
+"Y 	c #DFDEDA",
+"Z 	c #DEDDD9",
+"` 	c #DDDCD8",
+" .	c #A19B90",
+"..	c #E7E5E2",
+"+.	c #E4E3DF",
+"@.	c #DCDBD7",
+"#.	c #E6E5E2",
+"$.	c #E5E4E0",
+"%.	c #E2E1DD",
+"&.	c #DBD9D5",
+"*.	c #D9D7D3",
+"=.	c #9F998D",
+"-.	c #E4E2DF",
+";.	c #DDDBD7",
+">.	c #DCDAD6",
+",.	c #D8D6D2",
+"'.	c #9E988D",
+").	c #EDEDED",
+"!.	c #E1E0DD",
+"~.	c #E0DEDA",
+"{.	c #D8D6D1",
+"].	c #D7D5D1",
+"^.	c #9D978B",
+"/.	c #E1DFDB",
+"(.	c #DEDCD8",
+"_.	c #D7D6D1",
+":.	c #D5D3CE",
+"<.	c #9B958A",
+"[.	c #999891",
+"}.	c #A39E92",
+"|.	c #A39D92",
+"1.	c #A39D91",
+"2.	c #A29C90",
+"3.	c #A19B8F",
+"4.	c #9D978C",
+"5.	c #9B968A",
+"6.	c #676359",
+"                                                ",
+"      . . . . . . . . . . . . .                 ",
+"    . + @ # # # # # # # # $ % & .               ",
+"    . @ # # # # # # # # # # * = - .             ",
+"    . # # # # # # # ; # ; > , ' ) ! .           ",
+"    . # # # # # ; > ~ > ~ { ] ^ # / ( .         ",
+"    . # # # ; > ~ { _ { _ : < ) # [ } | .       ",
+"    . # ; > ~ { _ : 1 : 1 2 3 . . . . . . .     ",
+"    . # ~ { _ : 1 2 4 2 4 5 6 7 8 9 0 a b .     ",
+"    . # _ : 1 2 4 5 c 5 c 6 d e f g h i j .     ",
+"    . # 1 2 4 5 c 6 k 6 k d l m n o p q r .     ",
+"    . # s t 6 6 k d u d u v m w x y z A B .     ",
+"    . # 6 C d D l v E v E F w G H z I J K .     ",
+"    . # 6 C d D l v E v E F w G H z I J L .     ",
+"    . # D l l F m n n n n w M N O P Q R S .     ",
+"    . # T n w w w U V U V V H W X Y Z `  ..     ",
+"    . # U o o G M M N M N ..+.X R Z ` @. ..     ",
+"    . # N #.#.#.H W $.W $.+.%.R Z @.&.*.=..     ",
+"    . $ z O X -.+.%.X %.X Q Q Z ;.>.*.,.'..     ",
+"    . ).!.J Q R %.R Q R Q Y ~.;.>.*.{.].^..     ",
+"    . = /.~.Y Z R Z ~.Z ~.(.(.>.>.,._.:.<..     ",
+"    . [.}.L |.1.|.S 2.S 2.3. .=.=.4.4.5.6..     ",
+"      . . . . . . . . . . . . . . . . . .       ",
+"                                                "};
Binary file etc/images/open.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/open.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,200 @@
+/* XPM */
+static char * open_xpm[] = {
+"24 24 173 2",
+"  	c None",
+". 	c #000000",
+"+ 	c #010100",
+"@ 	c #B5B8A5",
+"# 	c #E4E7D2",
+"$ 	c #878A76",
+"% 	c #33342B",
+"& 	c #0B0B0B",
+"* 	c #E2E5CF",
+"= 	c #CFD4AF",
+"- 	c #CED3AE",
+"; 	c #B2B696",
+"> 	c #2D2D25",
+", 	c #23241D",
+"' 	c #9D9F90",
+") 	c #C6CAA6",
+"! 	c #C4C9A5",
+"~ 	c #C6CBA7",
+"{ 	c #C7CCA8",
+"] 	c #C9CEA9",
+"^ 	c #555847",
+"/ 	c #1A1B15",
+"( 	c #20201A",
+"_ 	c #D4D6C2",
+": 	c #BEC2A0",
+"< 	c #B3B896",
+"[ 	c #B0B595",
+"} 	c #B3B797",
+"| 	c #B6BB99",
+"1 	c #BBC09E",
+"2 	c #BCC19F",
+"3 	c #81856C",
+"4 	c #3E3F32",
+"5 	c #010101",
+"6 	c #DADDC8",
+"7 	c #AFB494",
+"8 	c #AAAF8F",
+"9 	c #A3A789",
+"0 	c #A6AA8B",
+"a 	c #A9AD8E",
+"b 	c #A7AB8D",
+"c 	c #A4A88A",
+"d 	c #A1A588",
+"e 	c #AAAD96",
+"f 	c #B3B5A5",
+"g 	c #B8BBAA",
+"h 	c #BABCAB",
+"i 	c #C1C3B2",
+"j 	c #C7CAB7",
+"k 	c #CACDBB",
+"l 	c #BABDA8",
+"m 	c #0C0C09",
+"n 	c #DDDFCB",
+"o 	c #969B7E",
+"p 	c #9DA286",
+"q 	c #95987C",
+"r 	c #96997E",
+"s 	c #9A9D81",
+"t 	c #999D80",
+"u 	c #9DA184",
+"v 	c #A5AA8B",
+"w 	c #A4A98A",
+"x 	c #A3A889",
+"y 	c #A2A588",
+"z 	c #A2A587",
+"A 	c #9FA386",
+"B 	c #9B9E83",
+"C 	c #898D74",
+"D 	c #D8DBC9",
+"E 	c #84866E",
+"F 	c #7D8169",
+"G 	c #151612",
+"H 	c #D7DAC9",
+"I 	c #797D67",
+"J 	c #3D3F34",
+"K 	c #E0E0D9",
+"L 	c #EBEDDD",
+"M 	c #E8EBD9",
+"N 	c #E7EAD8",
+"O 	c #E3E6D4",
+"P 	c #DEE1D0",
+"Q 	c #DADCCC",
+"R 	c #DADCD1",
+"S 	c #2B2C28",
+"T 	c #D7DAC6",
+"U 	c #6F735E",
+"V 	c #0D0D0D",
+"W 	c #F4F4EC",
+"X 	c #CACFAB",
+"Y 	c #C6CBA8",
+"Z 	c #C2C6A4",
+"` 	c #ABB091",
+" .	c #23251E",
+"..	c #494B3D",
+"+.	c #DCDCD4",
+"@.	c #EAECDD",
+"#.	c #CDD2AD",
+"$.	c #CCD1AC",
+"%.	c #CACFAA",
+"&.	c #BABF9D",
+"*.	c #B5B999",
+"=.	c #81836C",
+"-.	c #070806",
+";.	c #D5D8C4",
+">.	c #161616",
+",.	c #F2F2EA",
+"'.	c #C9CEAA",
+").	c #C8CDA9",
+"!.	c #C4C9A6",
+"~.	c #C1C5A3",
+"{.	c #BCC09F",
+"].	c #B6BB9A",
+"^.	c #B0B494",
+"/.	c #9DA185",
+"(.	c #535445",
+"_.	c #B6B8A7",
+":.	c #747470",
+"<.	c #ECECE2",
+"[.	c #C3C8A5",
+"}.	c #C2C7A4",
+"|.	c #C0C5A2",
+"1.	c #BFC4A1",
+"2.	c #BDC2A0",
+"3.	c #B9BD9C",
+"4.	c #B9BE9D",
+"5.	c #A9AD8F",
+"6.	c #A3A78A",
+"7.	c #80836D",
+"8.	c #020201",
+"9.	c #A6A998",
+"0.	c #B8BC9B",
+"a.	c #AFB394",
+"b.	c #ACB091",
+"c.	c #A8AC8E",
+"d.	c #A6AA8C",
+"e.	c #9FA286",
+"f.	c #9B9F83",
+"g.	c #9A9D82",
+"h.	c #8A8D75",
+"i.	c #4F5243",
+"j.	c #070705",
+"k.	c #9E9F91",
+"l.	c #E5E6DA",
+"m.	c #ADB192",
+"n.	c #A5A98C",
+"o.	c #9FA387",
+"p.	c #999D81",
+"q.	c #95987E",
+"r.	c #92957B",
+"s.	c #8C8F76",
+"t.	c #8A8D74",
+"u.	c #71735F",
+"v.	c #080908",
+"w.	c #E3E5D9",
+"x.	c #C0C3AF",
+"y.	c #94987C",
+"z.	c #8F9379",
+"A.	c #8B8F75",
+"B.	c #8A8E74",
+"C.	c #888C73",
+"D.	c #858970",
+"E.	c #868971",
+"F.	c #82866E",
+"G.	c #80836C",
+"H.	c #7D8069",
+"I.	c #797C66",
+"J.	c #727560",
+"K.	c #717460",
+"L.	c #71745F",
+"M.	c #6A6D59",
+"N.	c #434538",
+"O.	c #080907",
+"P.	c #050504",
+"                                                ",
+"                                                ",
+"                                                ",
+"    . . . . . . .                               ",
+"  + @ # # # # # $ %                             ",
+"  & * = = = - - ; >                             ",
+", ' * ) ! ~ { ] ] ^ /                           ",
+"( _ : < [ } | 1 2 3 4 5 . . . . . . .           ",
+", 6 7 8 9 0 8 a b c d e f g h i j k l .         ",
+"m n o p q r s t r u v w x y 9 z A B C .         ",
+". D E F G . . . . . . . . . . . . . . . 5 5     ",
+". H I J K L M M M M M M M M M M M N O P Q R S   ",
+". T U V W = = = = = = = = = - - - X Y Z 1 `  .  ",
+". T ..+.@.#.- - #.- #.#.#.#.#.$.%.Y Z &.*.=.-.  ",
+". ;.>.,.X %.X %.'.%.'.{ ).).Y !.~.{.].^./.(.m   ",
+". _.:.<.[.}.}.Z |.Z 1.2.|.2.3.4.} [ 5.6.7.8.    ",
+". 9.+.0.0.*.} } [ [ a.a.a.b.c.d.e.f.g.h.i.j.    ",
+". k.l.m.5.d.n.6.6.d o.e.f.p.q.r.s.t.t.u.v.      ",
+". w.x.y.z.A.B.C.C.D.E.F.G.H.I.J.K.L.M.N.O.      ",
+"  . . . . . . . . . . . . . . . . . . P.        ",
+"                                                ",
+"                                                ",
+"                                                ",
+"                                                "};
Binary file etc/images/paste.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/paste.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,116 @@
+/* XPM */
+static char * paste_xpm[] = {
+"24 24 89 1",
+" 	c None",
+".	c #000000",
+"+	c #B9B9B9",
+"@	c #FEFEFE",
+"#	c #F9F9F9",
+"$	c #757575",
+"%	c #F5F5E8",
+"&	c #565651",
+"*	c #FFFFFF",
+"=	c #A0A0A0",
+"-	c #939393",
+";	c #7C7C7C",
+">	c #C5C5BB",
+",	c #CFC6A0",
+"'	c #D7CEAA",
+")	c #ADA689",
+"!	c #4B483C",
+"~	c #6D6D6D",
+"{	c #6C6C6C",
+"]	c #A9A9A9",
+"^	c #3D3A30",
+"/	c #979178",
+"(	c #C1B898",
+"_	c #8A793D",
+":	c #C3BB9A",
+"<	c #AFA78A",
+"[	c #444236",
+"}	c #FAFAFA",
+"|	c #EFEFEF",
+"1	c #C7C7C7",
+"2	c #D8D8D8",
+"3	c #D2D2D2",
+"4	c #7B7B7B",
+"5	c #302E26",
+"6	c #89846C",
+"7	c #C4BC9A",
+"8	c #847235",
+"9	c #C5C5C5",
+"0	c #A7A7A7",
+"a	c #ADADAD",
+"b	c #9A9A9A",
+"c	c #9B9B9B",
+"d	c #868686",
+"e	c #424242",
+"f	c #847033",
+"g	c #C9C09E",
+"h	c #464337",
+"i	c #35332A",
+"j	c #2D2B23",
+"k	c #C6BE9D",
+"l	c #826F33",
+"m	c #7F7964",
+"n	c #4C493C",
+"o	c #171612",
+"p	c #13120F",
+"q	c #3E3B31",
+"r	c #282210",
+"s	c #474438",
+"t	c #B3B3B3",
+"u	c #D6D6D6",
+"v	c #B7AE90",
+"w	c #B1AA8C",
+"x	c #37352B",
+"y	c #151410",
+"z	c #8F8F8F",
+"A	c #989898",
+"B	c #C6C6C6",
+"C	c #B9B293",
+"D	c #11100D",
+"E	c #434035",
+"F	c #636363",
+"G	c #767676",
+"H	c #AAA48B",
+"I	c #A5A086",
+"J	c #A19A7F",
+"K	c #312F26",
+"L	c #AFA88C",
+"M	c #050403",
+"N	c #12110E",
+"O	c #A9A489",
+"P	c #A39E85",
+"Q	c #EBE7D0",
+"R	c #D2C9A5",
+"S	c #A29053",
+"T	c #8E7C3D",
+"U	c #88793B",
+"V	c #806C2F",
+"W	c #78652B",
+"X	c #251F0C",
+"       ....             ",
+" ......+@#$......       ",
+".%%%%%&*=-;&>%%%,.      ",
+".%''')!*~{]^/(''_.      ",
+".%::<[}|123456<78.      ",
+".%''!900abcde!)'f.      ",
+".%g:6hijjjjj56<kl.      ",
+".%'''////////(''l.      ",
+".%g::::mnopppp^qr....   ",
+".%'''''st***********u.  ",
+".%vwwwwx*************.  ",
+".%'''''y*0zzA**Bz*zB*.  ",
+".%CwwwwD*************.  ",
+".%'''''E*~F*GzzB*Bz**.  ",
+".%HIJJJK*************.  ",
+".%'''''E*0zz*zzzB*Az*.  ",
+".%LIJJJM*************.  ",
+".%'''''N*~F*GzzB*Bz**.  ",
+".%OPJJJK*************.  ",
+".Q'''''E*0zz*zzzB*Az*.  ",
+".RSTUVWX*************.  ",
+" .......u***********u.  ",
+"        .............   ",
+"                        "};
Binary file etc/images/preferences.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/preferences.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,114 @@
+/* XPM */
+static char * preferences_xpm[] = {
+"24 24 87 1",
+" 	c None",
+".	c #000000",
+"+	c #BAB5AB",
+"@	c #D0CDC6",
+"#	c #88857D",
+"$	c #C9C6BE",
+"%	c #CCC8C1",
+"&	c #E5E3E0",
+"*	c #FFFFFF",
+"=	c #757575",
+"-	c #2E2E2E",
+";	c #F6F5F5",
+">	c #CCCCCC",
+",	c #AFAFAF",
+"'	c #D3D1CB",
+")	c #C1C0BF",
+"!	c #F0EFED",
+"~	c #797772",
+"{	c #DCDCDC",
+"]	c #A5A19C",
+"^	c #EAE9E5",
+"/	c #F3F1F0",
+"(	c #EDEDED",
+"_	c #A19D96",
+":	c #C1BDB4",
+"<	c #DBD8D3",
+"[	c #D9D6D1",
+"}	c #89857E",
+"|	c #FCFCFC",
+"1	c #EAE9E6",
+"2	c #F5F4F3",
+"3	c #C6C2BA",
+"4	c #F0EFEE",
+"5	c #F4F4F3",
+"6	c #CBC7C0",
+"7	c #ECECEB",
+"8	c #676560",
+"9	c #54524D",
+"0	c #777676",
+"a	c #797978",
+"b	c #85827E",
+"c	c #79756F",
+"d	c #7590AE",
+"e	c #A4BAD0",
+"f	c #90A6BE",
+"g	c #9F9F9E",
+"h	c #BEBDBC",
+"i	c #B8B4AD",
+"j	c #87837C",
+"k	c #D3DFEA",
+"l	c #A2AEBC",
+"m	c #9DB6CE",
+"n	c #637B95",
+"o	c #E2E2E2",
+"p	c #EEEEED",
+"q	c #849CB6",
+"r	c #D7E2ED",
+"s	c #8D98A5",
+"t	c #9DB8D2",
+"u	c #607791",
+"v	c #EDEDEC",
+"w	c #99ADC3",
+"x	c #DFE7F0",
+"y	c #8193A9",
+"z	c #586D84",
+"A	c #5B7189",
+"B	c #F1F1F1",
+"C	c #EEEDEB",
+"D	c #A7A6A5",
+"E	c #726F6A",
+"F	c #A1B4C8",
+"G	c #EEF3F6",
+"H	c #60768F",
+"I	c #DEDDDC",
+"J	c #787776",
+"K	c #4E4E4D",
+"L	c #91A6BE",
+"M	c #F0F4F7",
+"N	c #97A5B6",
+"O	c #BFBEBD",
+"P	c #AAAAA9",
+"Q	c #ACACAB",
+"R	c #B0C6DB",
+"S	c #EDF2F6",
+"T	c #818A95",
+"U	c #6C85A1",
+"V	c #C0D1E2",
+"       ..               ",
+"      .+@#.             ",
+"       .$%+.        ..  ",
+"        .&$.       .*=. ",
+"    ..  -;$.      .*>,. ",
+"   .' ..)!+~.     .{,.  ",
+"   .]%%^/+++.    .(..   ",
+"    ._:%$<[+}.  .|.     ",
+"     .....123}..>.      ",
+"          .456.,.       ",
+"           .7.,..       ",
+"            .,.89.      ",
+"        ....,.0abc.     ",
+"       .def.. .ghij.    ",
+"      .dklmn.  .op6}.   ",
+"     .qrsntu.   .v/$}.  ",
+"    .wxyztdA.    .BCDE..",
+"   .FGyHtdA.      .IJK,.",
+"  .LMNHtdA.        .OPQ.",
+"  .RSTtdA..         ... ",
+"  .UtVLA..              ",
+"   .UUn..               ",
+"    ...                 ",
+"                        "};
Binary file etc/images/print.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/print.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,202 @@
+/* XPM */
+static char * print_xpm[] = {
+"24 24 175 2",
+"  	c None",
+". 	c #000000",
+"+ 	c #C7C7C7",
+"@ 	c #FAFAFA",
+"# 	c #FCFCFC",
+"$ 	c #FBFBFB",
+"% 	c #F8F8F8",
+"& 	c #AFAFAF",
+"* 	c #F9F9F9",
+"= 	c #E5E5E5",
+"- 	c #E3E3E3",
+"; 	c #E2E2E2",
+"> 	c #E0E0E0",
+", 	c #DFDFDF",
+"' 	c #DCDCDC",
+") 	c #DBDBDB",
+"! 	c #B6B6B6",
+"~ 	c #6B6B6B",
+"{ 	c #676767",
+"] 	c #818181",
+"^ 	c #E7E7E7",
+"/ 	c #606060",
+"( 	c #A0A0A0",
+"_ 	c #DADADA",
+": 	c #E1E1E1",
+"< 	c #B7B7B7",
+"[ 	c #FDFDFD",
+"} 	c #EFEFEF",
+"| 	c #EEEEEE",
+"1 	c #EDEDED",
+"2 	c #ECECEC",
+"3 	c #EBEBEB",
+"4 	c #E9E9E9",
+"5 	c #E8E8E8",
+"6 	c #BFBFBF",
+"7 	c #8A8A8A",
+"8 	c #6A6A6A",
+"9 	c #9E9E9E",
+"0 	c #F6F6F6",
+"a 	c #909090",
+"b 	c #A2A2A2",
+"c 	c #AAAAAA",
+"d 	c #F4F4F4",
+"e 	c #CECECE",
+"f 	c #ADADAD",
+"g 	c #AEAEAE",
+"h 	c #BEBEBE",
+"i 	c #A6A6A6",
+"j 	c #CDCDCD",
+"k 	c #F5F5F5",
+"l 	c #DEDEDE",
+"m 	c #DDDDDD",
+"n 	c #C9C9C9",
+"o 	c #878787",
+"p 	c #888888",
+"q 	c #D0D0D0",
+"r 	c #6E6E6E",
+"s 	c #797979",
+"t 	c #D1D1D1",
+"u 	c #A1A1A1",
+"v 	c #B3B3B3",
+"w 	c #FFFFFF",
+"x 	c #CACACA",
+"y 	c #A7A7A7",
+"z 	c #A5A5A5",
+"A 	c #A4A4A4",
+"B 	c #A3A3A3",
+"C 	c #87847C",
+"D 	c #EAE8E3",
+"E 	c #8D8982",
+"F 	c #53524C",
+"G 	c #807D74",
+"H 	c #AAA9A5",
+"I 	c #BAB5AB",
+"J 	c #F3F3F3",
+"K 	c #C3C1BD",
+"L 	c #8B8B89",
+"M 	c #E6E5E1",
+"N 	c #F9F9F8",
+"O 	c #FAFAF9",
+"P 	c #F9F9F7",
+"Q 	c #F7F6F5",
+"R 	c #F7F7F4",
+"S 	c #F6F5F4",
+"T 	c #F2F1EE",
+"U 	c #F0EFEC",
+"V 	c #E5E5E4",
+"W 	c #9F9F9F",
+"X 	c #DFDED9",
+"Y 	c #A4A3A1",
+"Z 	c #6C6B6A",
+"` 	c #F5F4F3",
+" .	c #D5D5D5",
+"..	c #D3D3D3",
+"+.	c #D4D4D3",
+"@.	c #D4D4D4",
+"#.	c #A9A9A9",
+"$.	c #B5B5B5",
+"%.	c #CDCDCB",
+"&.	c #B5B5B4",
+"*.	c #DCDAD3",
+"=.	c #6B6B6A",
+"-.	c #999896",
+";.	c #918F87",
+">.	c #999895",
+",.	c #E6E4E1",
+"'.	c #F0EEEC",
+").	c #FAF9F9",
+"!.	c #F9F8F7",
+"~.	c #F8F7F6",
+"{.	c #F8F8F7",
+"].	c #F4F3F1",
+"^.	c #F2F1EF",
+"/.	c #565655",
+"(.	c #858482",
+"_.	c #9C9B99",
+":.	c #6B6A68",
+"<.	c #585858",
+"[.	c #5E5C57",
+"}.	c #524F4B",
+"|.	c #4A4845",
+"1.	c #4B4A46",
+"2.	c #4B4946",
+"3.	c #4A4844",
+"4.	c #494743",
+"5.	c #484642",
+"6.	c #474541",
+"7.	c #464440",
+"8.	c #514F4B",
+"9.	c #53514E",
+"0.	c #7B7A77",
+"a.	c #797771",
+"b.	c #949391",
+"c.	c #989694",
+"d.	c #868480",
+"e.	c #6E6C66",
+"f.	c #706D67",
+"g.	c #5C5955",
+"h.	c #67645F",
+"i.	c #5B5954",
+"j.	c #585651",
+"k.	c #5D5B56",
+"l.	c #595652",
+"m.	c #53504C",
+"n.	c #575450",
+"o.	c #595752",
+"p.	c #5C5956",
+"q.	c #5B5956",
+"r.	c #61615E",
+"s.	c #696861",
+"t.	c #77756F",
+"u.	c #7E7B77",
+"v.	c #979690",
+"w.	c #96938D",
+"x.	c #807E77",
+"y.	c #7D7A74",
+"z.	c #787770",
+"A.	c #716F6A",
+"B.	c #6E6C67",
+"C.	c #595753",
+"D.	c #63615C",
+"E.	c #686661",
+"F.	c #6F6E68",
+"G.	c #6D6C66",
+"H.	c #72716B",
+"I.	c #76746F",
+"J.	c #6A6963",
+"K.	c #8B8880",
+"L.	c #B2AFA8",
+"M.	c #B6B3AD",
+"N.	c #BFBDB6",
+"O.	c #BDBBB4",
+"P.	c #B0AEA6",
+"Q.	c #ABA8A2",
+"R.	c #9C9991",
+"                                                ",
+"            . . . . . . . . . . . .             ",
+"          . + @ # # # # # # # $ % & .           ",
+"          . * = - - - ; > , , ' ) ! .           ",
+"          . # ~ { ] ^ / ( _ : > > < .           ",
+"          . [ } | 1 1 | 2 2 3 4 5 6 .           ",
+"          . [ 7 8 9 0 a b 4 c a d + .           ",
+"          . [ # # # # $ $ # # $ $ e .           ",
+"          . [ f g = h % h i j 3 # j .           ",
+"          . k l l l m l l , l 5 : n .           ",
+"        . . @ o ~ p q r s t p u q v . .         ",
+"      . w . x y z A z z i B b u u 9 . C .       ",
+"    . w D E F . . . . . . . . . . G C H I .     ",
+"  . w w J w w w w w w w w w w w w w w w w D .   ",
+"  . K L M N O N P Q R O O S T T U V D W X I .   ",
+"  . Y Z ` h  .! ..! +.< @.#...$.%.&.*.=.-.;..   ",
+"  . >.=.,.'.Q N @ ).N !.~.{.{.].].].^./.(.;..   ",
+"  . _.:.<.[.}.|.1.2.2.2.3.4.5.6.4.7.8.9.0.a..   ",
+"  . b.c.d.e.f.g.h.i.j.i.k.l.m.n.o.p.q.r.s.t..   ",
+"  . u.v.w.;.x.y.z.t.A.t.A.B.C.D.E.F.G.H.I.J..   ",
+"    . . . . . . . . . . . . . . . . . . . .     ",
+"    . K.L.M.N.N.N.N.N.O.P.L.Q.P.R.R.R.G G .     ",
+"      . . . . . . . . . . . . . . . . . .       ",
+"                                                "};
Binary file etc/images/right-arrow.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/right-arrow.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,68 @@
+/* XPM */
+static char * right_arrow_xpm[] = {
+"24 24 41 1",
+" 	c None",
+".	c #000000",
+"+	c #8CA782",
+"@	c #B1CDAE",
+"#	c #77A16E",
+"$	c #B4CEB1",
+"%	c #ACC8A9",
+"&	c #709867",
+"*	c #C1D6BD",
+"=	c #BDD3B8",
+"-	c #BFD4BB",
+";	c #C2D7BE",
+">	c #B0CAAD",
+",	c #B2CBB0",
+"'	c #AAC7A8",
+")	c #0F1308",
+"!	c #AEC5A8",
+"~	c #AEC8AD",
+"{	c #ABC7A8",
+"]	c #AAC6A7",
+"^	c #A8C6A5",
+"/	c #ADC8AD",
+"(	c #A8C7A8",
+"_	c #A5C4A3",
+":	c #7F9F76",
+"<	c #A6BFA0",
+"[	c #ABC7AA",
+"}	c #A7C5A4",
+"|	c #A9C7A6",
+"1	c #AFC8AD",
+"2	c #A4C3A2",
+"3	c #6B9060",
+"4	c #778E6F",
+"5	c #698D60",
+"6	c #6B9063",
+"7	c #445B2C",
+"8	c #6B8661",
+"9	c #5B7950",
+"0	c #6C8562",
+"a	c #65815C",
+"b	c #506B46",
+"                        ",
+"                        ",
+"                        ",
+"           .            ",
+"           ..           ",
+"           .+.          ",
+"           .@#.         ",
+"    ........$%&.        ",
+"    .*=-;;;;>,'&)       ",
+"    .!~{{{]^'/(_:.      ",
+"    .<[^}^|{%'{123.     ",
+"    .45666666666657.    ",
+"    .8999999999997.     ",
+"    .099999999997.      ",
+"    .abbbbbb9997.       ",
+"    ........b97.        ",
+"           .b7.         ",
+"           .7.          ",
+"           ..           ",
+"           .            ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/save.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/save.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,247 @@
+/* XPM */
+static char * save_xpm[] = {
+"24 24 220 2",
+"  	c None",
+". 	c #000000",
+"+ 	c #C3D7F4",
+"@ 	c #A9CDE5",
+"# 	c #75757A",
+"$ 	c #EFC5BB",
+"% 	c #F1C8BE",
+"& 	c #F0C6BC",
+"* 	c #EEBCB2",
+"= 	c #EEBEB5",
+"- 	c #EEC1B8",
+"; 	c #EDBFB6",
+"> 	c #E9B7AD",
+", 	c #E9B8AF",
+"' 	c #E9B9B1",
+") 	c #E5BFBA",
+"! 	c #737277",
+"~ 	c #B3CDE3",
+"{ 	c #A1BED6",
+"] 	c #BBD6E8",
+"^ 	c #8AAAC5",
+"/ 	c #605F68",
+"( 	c #E08D7E",
+"_ 	c #E0826E",
+": 	c #E0806E",
+"< 	c #DC7A68",
+"[ 	c #DC8171",
+"} 	c #DA7868",
+"| 	c #D48173",
+"1 	c #D47D6E",
+"2 	c #CE7265",
+"3 	c #CF7264",
+"4 	c #CE7567",
+"5 	c #C4675B",
+"6 	c #C36558",
+"7 	c #626169",
+"8 	c #87A3B7",
+"9 	c #567187",
+"0 	c #BAD5E9",
+"a 	c #88A7C3",
+"b 	c #686670",
+"c 	c #C8817B",
+"d 	c #CB7C74",
+"e 	c #CB7A73",
+"f 	c #CB7B73",
+"g 	c #CC7C72",
+"h 	c #CB7D73",
+"i 	c #BF6B64",
+"j 	c #CC7A70",
+"k 	c #C16A62",
+"l 	c #CC7C73",
+"m 	c #C2655B",
+"n 	c #C36459",
+"o 	c #BA6C6A",
+"p 	c #819EB6",
+"q 	c #547086",
+"r 	c #B6D3E7",
+"s 	c #87ABC1",
+"t 	c #737373",
+"u 	c #FFFFFF",
+"v 	c #83A0B8",
+"w 	c #526C80",
+"x 	c #B9D3E7",
+"y 	c #85A4BF",
+"z 	c #4F697C",
+"A 	c #B9D3E6",
+"B 	c #84A3BF",
+"C 	c #CECECE",
+"D 	c #CDCDCD",
+"E 	c #BFBFBF",
+"F 	c #88A4BB",
+"G 	c #486276",
+"H 	c #B7D2E7",
+"I 	c #82A0BB",
+"J 	c #636363",
+"K 	c #465E70",
+"L 	c #B5CAE5",
+"M 	c #7FA2B9",
+"N 	c #87A3BA",
+"O 	c #455C6D",
+"P 	c #AECCE5",
+"Q 	c #7DA0B6",
+"R 	c #C5C5C5",
+"S 	c #546069",
+"T 	c #B0D1E4",
+"U 	c #83A1B6",
+"V 	c #735B5B",
+"W 	c #515C64",
+"X 	c #AACEE3",
+"Y 	c #7B9BB2",
+"Z 	c #7A8E9A",
+"` 	c #7A7A7A",
+" .	c #6B6F72",
+"..	c #6F6F6F",
+"+.	c #696969",
+"@.	c #6F777E",
+"#.	c #86A2B9",
+"$.	c #3A515D",
+"%.	c #A9C9E2",
+"&.	c #7494AF",
+"*.	c #829FB7",
+"=.	c #7F9DB6",
+"-.	c #7E9CB5",
+";.	c #7998B2",
+">.	c #85A1B8",
+",.	c #8CA7BD",
+"'.	c #8AA5BB",
+").	c #364A59",
+"!.	c #ABC4E2",
+"~.	c #7294AD",
+"{.	c #6F90AC",
+"].	c #7192AE",
+"^.	c #414A4E",
+"/.	c #424A51",
+"(.	c #525B63",
+"_.	c #626F79",
+":.	c #5F6C76",
+"<.	c #5C6971",
+"[.	c #5A666F",
+"}.	c #58636B",
+"|.	c #57636A",
+"1.	c #3B5360",
+"2.	c #39424B",
+"3.	c #7897B3",
+"4.	c #A4B9CB",
+"5.	c #364853",
+"6.	c #AAC9E2",
+"7.	c #7091AA",
+"8.	c #6F8FA7",
+"9.	c #4A5359",
+"0.	c #97938C",
+"a.	c #DFDDDA",
+"b.	c #E3E1DE",
+"c.	c #EBEAE8",
+"d.	c #EAE9E7",
+"e.	c #CFCEC9",
+"f.	c #C9C6C0",
+"g.	c #9B968E",
+"h.	c #566168",
+"i.	c #4B657A",
+"j.	c #54738C",
+"k.	c #AAC6DD",
+"l.	c #34464E",
+"m.	c #AAC9E1",
+"n.	c #6C8EA6",
+"o.	c #6C8CA4",
+"p.	c #40474D",
+"q.	c #DAD8D3",
+"r.	c #E7E6E2",
+"s.	c #67655E",
+"t.	c #524F47",
+"u.	c #D9D7D4",
+"v.	c #C7C5BF",
+"w.	c #C0BCB5",
+"x.	c #B8B3AB",
+"y.	c #434C54",
+"z.	c #4D697F",
+"A.	c #4F6F84",
+"B.	c #B3CADC",
+"C.	c #313E49",
+"D.	c #A8C8E1",
+"E.	c #6B8DA6",
+"F.	c #728FA4",
+"G.	c #E2E1DD",
+"H.	c #F0EFEC",
+"I.	c #CDCAC6",
+"J.	c #C2BFB9",
+"K.	c #CAC6C0",
+"L.	c #DCDAD7",
+"M.	c #4B555D",
+"N.	c #4E697F",
+"O.	c #BACCDC",
+"P.	c #A4C4DE",
+"Q.	c #698BA3",
+"R.	c #708AA1",
+"S.	c #383E43",
+"T.	c #E0DEDA",
+"U.	c #514E46",
+"V.	c #4F4C44",
+"W.	c #C7C4BE",
+"X.	c #CBC8C2",
+"Y.	c #E1E0DC",
+"Z.	c #E9E8E6",
+"`.	c #475158",
+" +	c #4E6879",
+".+	c #4D6C80",
+"++	c #A3C3DB",
+"@+	c #383F43",
+"#+	c #778999",
+"$+	c #6E899E",
+"%+	c #65859C",
+"&+	c #33383C",
+"*+	c #D7D4D0",
+"=+	c #D6D4D0",
+"-+	c #4E4A43",
+";+	c #4D4942",
+">+	c #D1CEC9",
+",+	c #E6E5E2",
+"'+	c #EDECEA",
+")+	c #454F55",
+"!+	c #486173",
+"~+	c #4D6678",
+"{+	c #A1C1DA",
+"]+	c #373C40",
+"^+	c #0C0D0F",
+"/+	c #4E5E6A",
+"(+	c #5B6E7C",
+"_+	c #4F5B62",
+":+	c #A4A099",
+"<+	c #CCC9C3",
+"[+	c #D7D5D1",
+"}+	c #E4E2E0",
+"|+	c #DDDBD7",
+"1+	c #B8B5B0",
+"2+	c #3E474D",
+"3+	c #4A6176",
+"4+	c #4A6070",
+"5+	c #9BC3D8",
+"6+	c #363C41",
+"7+	c #28323E",
+"                                                ",
+"    . . . . . . . . . . . . . . . . . . .       ",
+"  . + @ # $ % & * = - ; > , > , ' ) ! ~ { .     ",
+"  . ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 .     ",
+"  . 0 a b c d e f g h i j k l m n o b p q .     ",
+"  . r s t u u u u u u u u u u u u u t v w .     ",
+"  . x y t u u u u u u u u u u u u u t v z .     ",
+"  . A B t C D D D D D D D D D D D E t F G .     ",
+"  . H I J u u u u u u u u u u u u u t F K .     ",
+"  . L M t u u u u u u u u u u u u u t N O .     ",
+"  . P Q t C D D D D D D D D D D D R t N S .     ",
+"  . T U V u u u u u u u u u u u u u t v W .     ",
+"  . X Y Z ` t t t t t  ...t t t t +.@.#.$..     ",
+"  . %.&.p v #.*.=.-.*.;.#.>.>.N *.,.v '.)..     ",
+"  . !.~.{.].^./.(._.:.<.[.}.|.(.1.2.3.4.5..     ",
+"  . 6.7.8.9.0.a.b.c.c.d.a.e.f.g.h.i.j.k.l..     ",
+"  . m.n.o.p.q.r.s.t.t.u.v.w.x.e.y.z.A.B.C..     ",
+"  . D.E.F.p.G.H.s.t.t.I.J.w.K.L.M.N.A.O.C..     ",
+"  . P.Q.R.S.T.c.U.V.V.W.w.X.Y.Z.`. +.+++@+.     ",
+"  . #+$+%+&+*+=+-+;+;+w.>+,+'+,+)+!+~+{+]+.     ",
+"    ^+/+(+_+:+w.x.<+<+[+}+d.|+1+2+3+4+5+6+.     ",
+"      . . . . . . . . . . . . . . . . 7+.       ",
+"                                                ",
+"                                                "};
Binary file etc/images/saveas.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/saveas.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,289 @@
+/* XPM */
+static char * saveas_xpm[] = {
+"24 24 262 2",
+"  	c None",
+". 	c #000000",
+"+ 	c #FBE73B",
+"@ 	c #F2B64D",
+"# 	c #FCEB3D",
+"$ 	c #F7B544",
+"% 	c #5D502C",
+"& 	c #C3D7F4",
+"* 	c #A9CDE5",
+"= 	c #75757A",
+"- 	c #EFC5BB",
+"; 	c #F1C8BE",
+"> 	c #F0C6BC",
+", 	c #EEBCB2",
+"' 	c #EEBEB5",
+") 	c #EEC1B8",
+"! 	c #EDBFB6",
+"~ 	c #E8B6AC",
+"{ 	c #FCE93B",
+"] 	c #F7B545",
+"^ 	c #6C5F34",
+"/ 	c #434345",
+"( 	c #92A7B9",
+"_ 	c #96B1C7",
+": 	c #BBD6E8",
+"< 	c #8AAAC5",
+"[ 	c #605F68",
+"} 	c #E08D7E",
+"| 	c #E0826E",
+"1 	c #E0806E",
+"2 	c #DC7A68",
+"3 	c #DC8171",
+"4 	c #DA7868",
+"5 	c #D38072",
+"6 	c #FAE43A",
+"7 	c #F4B244",
+"8 	c #615030",
+"9 	c #783E35",
+"0 	c #4D4C52",
+"a 	c #7790A2",
+"b 	c #526D82",
+"c 	c #BAD5E9",
+"d 	c #88A7C3",
+"e 	c #686670",
+"f 	c #C8817B",
+"g 	c #CB7C74",
+"h 	c #CB7A73",
+"i 	c #CB7B73",
+"j 	c #CC7C72",
+"k 	c #CA7C72",
+"l 	c #F9DF39",
+"m 	c #F3AF42",
+"n 	c #614F2F",
+"o 	c #8F4941",
+"p 	c #945554",
+"q 	c #5B5A62",
+"r 	c #7B97AE",
+"s 	c #536F84",
+"t 	c #B6D3E7",
+"u 	c #87ABC1",
+"v 	c #737373",
+"w 	c #FFFFFF",
+"x 	c #FEFEFE",
+"y 	c #F9DC38",
+"z 	c #EFB44D",
+"A 	c #665A32",
+"B 	c #BBBBBB",
+"C 	c #CDCDCD",
+"D 	c #E4E4E4",
+"E 	c #6E6E6E",
+"F 	c #819EB6",
+"G 	c #526C80",
+"H 	c #B9D3E7",
+"I 	c #85A4BF",
+"J 	c #F8D837",
+"K 	c #F0A93F",
+"L 	c #655930",
+"M 	c #BABABA",
+"N 	c #CCCCCC",
+"O 	c #E5E5E5",
+"P 	c #F7F7F7",
+"Q 	c #727272",
+"R 	c #83A0B8",
+"S 	c #4F697C",
+"T 	c #B9D3E6",
+"U 	c #84A3BF",
+"V 	c #CECECE",
+"W 	c #F6D236",
+"X 	c #EDA43E",
+"Y 	c #5C5130",
+"Z 	c #949494",
+"` 	c #A3A3A3",
+" .	c #B7B7B7",
+"..	c #C6C6C6",
+"+.	c #BDBDBD",
+"@.	c #88A4BB",
+"#.	c #486276",
+"$.	c #B7D2E7",
+"%.	c #82A0BB",
+"&.	c #636363",
+"*.	c #FDFDFD",
+"=.	c #D7AE74",
+"-.	c #61562F",
+";.	c #465E70",
+">.	c #B5CAE5",
+",.	c #7FA2B9",
+"'.	c #4F4115",
+").	c #87A3BA",
+"!.	c #455C6D",
+"~.	c #AECCE5",
+"{.	c #7DA0B6",
+"].	c #CBCBCB",
+"^.	c #9B9B9B",
+"/.	c #9C9C9C",
+"(.	c #A7A7A7",
+"_.	c #B8B8B8",
+":.	c #C5C5C5",
+"<.	c #546069",
+"[.	c #B0D1E4",
+"}.	c #83A1B6",
+"|.	c #735B5B",
+"1.	c #F0F0F0",
+"2.	c #D9D9D9",
+"3.	c #D3D3D3",
+"4.	c #E1E1E1",
+"5.	c #EDEDED",
+"6.	c #F8F8F8",
+"7.	c #515C64",
+"8.	c #AACEE3",
+"9.	c #7B9BB2",
+"0.	c #7A8E9A",
+"a.	c #7A7A7A",
+"b.	c #707070",
+"c.	c #6C6C6C",
+"d.	c #6F6F6F",
+"e.	c #6A6E71",
+"f.	c #696969",
+"g.	c #6F777E",
+"h.	c #86A2B9",
+"i.	c #3A515D",
+"j.	c #A9C9E2",
+"k.	c #7494AF",
+"l.	c #7E9BB4",
+"m.	c #7D9AB3",
+"n.	c #7998B2",
+"o.	c #85A1B8",
+"p.	c #829FB7",
+"q.	c #8CA7BD",
+"r.	c #8AA5BB",
+"s.	c #364A59",
+"t.	c #ABC4E2",
+"u.	c #7294AD",
+"v.	c #6F90AC",
+"w.	c #7192AE",
+"x.	c #414A4E",
+"y.	c #424A51",
+"z.	c #525B63",
+"A.	c #626F79",
+"B.	c #5F6C76",
+"C.	c #5C6971",
+"D.	c #5A666F",
+"E.	c #58636B",
+"F.	c #57636A",
+"G.	c #3B5360",
+"H.	c #39424B",
+"I.	c #7897B3",
+"J.	c #A4B9CB",
+"K.	c #364853",
+"L.	c #AAC9E2",
+"M.	c #7091AA",
+"N.	c #6F8FA7",
+"O.	c #4A5359",
+"P.	c #97938C",
+"Q.	c #DFDDDA",
+"R.	c #E3E1DE",
+"S.	c #EBEAE8",
+"T.	c #EAE9E7",
+"U.	c #CFCEC9",
+"V.	c #C9C6C0",
+"W.	c #9B968E",
+"X.	c #566168",
+"Y.	c #4B657A",
+"Z.	c #54738C",
+"`.	c #AAC6DD",
+" +	c #34464E",
+".+	c #AAC9E1",
+"++	c #6C8EA6",
+"@+	c #6C8CA4",
+"#+	c #40474D",
+"$+	c #DAD8D3",
+"%+	c #E7E6E2",
+"&+	c #67655E",
+"*+	c #524F47",
+"=+	c #D9D7D4",
+"-+	c #C7C5BF",
+";+	c #C0BCB5",
+">+	c #B8B3AB",
+",+	c #434C54",
+"'+	c #4D697F",
+")+	c #4F6F84",
+"!+	c #B3CADC",
+"~+	c #313E49",
+"{+	c #A8C8E1",
+"]+	c #6B8DA6",
+"^+	c #728FA4",
+"/+	c #E2E1DD",
+"(+	c #F0EFEC",
+"_+	c #CDCAC6",
+":+	c #C2BFB9",
+"<+	c #CAC6C0",
+"[+	c #DCDAD7",
+"}+	c #4B555D",
+"|+	c #4E697F",
+"1+	c #BACCDC",
+"2+	c #A4C4DE",
+"3+	c #698BA3",
+"4+	c #708AA1",
+"5+	c #383E43",
+"6+	c #E0DEDA",
+"7+	c #514E46",
+"8+	c #4F4C44",
+"9+	c #C7C4BE",
+"0+	c #CBC8C2",
+"a+	c #E1E0DC",
+"b+	c #E9E8E6",
+"c+	c #475158",
+"d+	c #4E6879",
+"e+	c #4D6C80",
+"f+	c #A3C3DB",
+"g+	c #383F43",
+"h+	c #778999",
+"i+	c #6E899E",
+"j+	c #65859C",
+"k+	c #33383C",
+"l+	c #D7D4D0",
+"m+	c #D6D4D0",
+"n+	c #4E4A43",
+"o+	c #4D4942",
+"p+	c #D1CEC9",
+"q+	c #E6E5E2",
+"r+	c #EDECEA",
+"s+	c #454F55",
+"t+	c #486173",
+"u+	c #4D6678",
+"v+	c #A1C1DA",
+"w+	c #373C40",
+"x+	c #0C0D0F",
+"y+	c #4E5E6A",
+"z+	c #5B6E7C",
+"A+	c #4F5B62",
+"B+	c #A4A099",
+"C+	c #CCC9C3",
+"D+	c #D7D5D1",
+"E+	c #E4E2E0",
+"F+	c #DDDBD7",
+"G+	c #B8B5B0",
+"H+	c #3E474D",
+"I+	c #4A6176",
+"J+	c #4A6070",
+"K+	c #9BC3D8",
+"L+	c #363C41",
+"M+	c #28323E",
+"                                . .             ",
+"                              . + @ .           ",
+"    . . . . . . . . . . . . . # $ % . . .       ",
+"  . & * = - ; > , ' ) ! ~ . { ] ^ . / ( _ .     ",
+"  . : < [ } | 1 2 3 4 5 . 6 7 8 . 9 0 a b .     ",
+"  . c d e f g h i j k . l m n . o p q r s .     ",
+"  . t u v w w w w x . y z A . B C D E F G .     ",
+"  . H I v w w w x . J K L . M N O P Q R S .     ",
+"  . T U v V C N . W X Y . Z `  ...+.v @.#..     ",
+"  . $.%.&.w w *.. =.-.. M N D P *.w v @.;..     ",
+"  . >.,.v w x . '.. . M N D P *.w w v ).!..     ",
+"  . ~.{.v V ].. . ^./.(._...].C C :.v ).<..     ",
+"  . [.}.|.w *.1.2.3.4.5.6.x w w w w v R 7..     ",
+"  . 8.9.0.a.Q b.c.c.d.e.E v v v v f.g.h.i..     ",
+"  . j.k.F R h.F l.m.F n.h.o.o.).p.q.R r.s..     ",
+"  . t.u.v.w.x.y.z.A.B.C.D.E.F.z.G.H.I.J.K..     ",
+"  . L.M.N.O.P.Q.R.S.S.T.Q.U.V.W.X.Y.Z.`. +.     ",
+"  . .+++@+#+$+%+&+*+*+=+-+;+>+U.,+'+)+!+~+.     ",
+"  . {+]+^+#+/+(+&+*+*+_+:+;+<+[+}+|+)+1+~+.     ",
+"  . 2+3+4+5+6+S.7+8+8+9+;+0+a+b+c+d+e+f+g+.     ",
+"  . h+i+j+k+l+m+n+o+o+;+p+q+r+q+s+t+u+v+w+.     ",
+"    x+y+z+A+B+;+>+C+C+D+E+T.F+G+H+I+J+K+L+.     ",
+"      . . . . . . . . . . . . . . . . M+.       ",
+"                                                "};
Binary file etc/images/search-replace.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/search-replace.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,38 @@
+/* XPM */
+static char *magick[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 8 1",
+"  c #01260126010f",
+". c #56004ef93434",
+"X c #5c9c5c9c57c7",
+"o c #8e8e7d7d4545",
+"O c #a72aa72a95e6",
+"+ c #d015d015b9c5",
+"@ c #e90de90dd2e3",
+"# c None",
+/* pixels */
+"########################",
+"################  ######",
+"###############  o #####",
+"########### ##  o ######",
+"#########  O   o #######",
+"#######  O@@  o ########",
+"#####  O+++  o #########",
+"###  O++++  o  #########",
+"## XX++++ .  @.#########",
+"## @.O+++  @@@@ ########",
+"## @@.++++@@@@@O #######",
+"## @@.O+O.  .O@@ #######",
+"## @XO+O.O++O.+@@ ######",
+"##  O++.O@@+OX.@@O #####",
+"## X+++ +#+OOO @@@+ ####",
+"## O++@ +@OOOO @@@O ####",
+"### +@@.OOOOOX.@@  #####",
+"### +@@O.OOOX  + #######",
+"####X@@@O.  .X  ########",
+"#### @@@@@@@+    #######",
+"##### @@@@@O ##   ######",
+"##### O@@+. ####   #####",
+"###### @O #######  #####",
+"#######  ###############"
+};
Binary file etc/images/search.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/search.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,234 @@
+/* XPM */
+static char * search_xpm[] = {
+"24 24 207 2",
+"  	c None",
+". 	c #000000",
+"+ 	c #D3D3D3",
+"@ 	c #F6F6F6",
+"# 	c #FFFFFF",
+"$ 	c #F9F9F9",
+"% 	c #DADADA",
+"& 	c #585858",
+"* 	c #C7C7C7",
+"= 	c #D1D1D1",
+"- 	c #D6D6D6",
+"; 	c #FEFEFE",
+"> 	c #FDFDFD",
+", 	c #C0C0C0",
+"' 	c #E1E1E1",
+") 	c #F0F0F0",
+"! 	c #9B9B9B",
+"~ 	c #FCFCFB",
+"{ 	c #FBFBFB",
+"] 	c #AFAFAE",
+"^ 	c #E9E9E9",
+"/ 	c #DFDFDF",
+"( 	c #8F8F8F",
+"_ 	c #FAFAF9",
+": 	c #F9F9F8",
+"< 	c #A4A4A3",
+"[ 	c #F4F4F4",
+"} 	c #CFCFCF",
+"| 	c #A2A2A2",
+"1 	c #B8B8B8",
+"2 	c #47473F",
+"3 	c #0A0A09",
+"4 	c #4B4B43",
+"5 	c #B4B4B3",
+"6 	c #F7F6F5",
+"7 	c #9E9E9E",
+"8 	c #A9A9A8",
+"9 	c #34342E",
+"0 	c #9D9D8D",
+"a 	c #CFCFB9",
+"b 	c #C4C4AF",
+"c 	c #8D8D7F",
+"d 	c #353530",
+"e 	c #ACACAA",
+"f 	c #F1F0EF",
+"g 	c #DEDDDC",
+"h 	c #D3D2D0",
+"i 	c #B7B7B5",
+"j 	c #9F9E9D",
+"k 	c #706F6F",
+"l 	c #65625A",
+"m 	c #46463F",
+"n 	c #9C9C8C",
+"o 	c #E2E2D0",
+"p 	c #EDEDE7",
+"q 	c #C0C0AC",
+"r 	c #B2B29F",
+"s 	c #828274",
+"t 	c #4C4C44",
+"u 	c #E4E4E2",
+"v 	c #E1E1DF",
+"w 	c #DAD9D7",
+"x 	c #D8D8D6",
+"y 	c #CDCCCA",
+"z 	c #AFAEAC",
+"A 	c #88847B",
+"B 	c #F8F8F7",
+"C 	c #090908",
+"D 	c #D5D5BF",
+"E 	c #FBFBFA",
+"F 	c #C3C3AE",
+"G 	c #B5B5A2",
+"H 	c #A6A695",
+"I 	c #9C9C8F",
+"J 	c #080807",
+"K 	c #CFCFCD",
+"L 	c #E3E2E0",
+"M 	c #ECEBE9",
+"N 	c #E9E8E6",
+"O 	c #D5D4D3",
+"P 	c #C4C3C2",
+"Q 	c #8F8A81",
+"R 	c #F6F5F4",
+"S 	c #F3F3F1",
+"T 	c #090909",
+"U 	c #CACAB5",
+"V 	c #DDDDD0",
+"W 	c #B7B7A4",
+"X 	c #AAAA98",
+"Y 	c #9B9B8B",
+"Z 	c #AEAEA3",
+"` 	c #BBBAB9",
+" .	c #E8E7E5",
+"..	c #E5E4E2",
+"+.	c #E4E3E0",
+"@.	c #D2D1CE",
+"#.	c #8D887E",
+"$.	c #F4F3F2",
+"%.	c #F0EFEE",
+"&.	c #474740",
+"*.	c #929283",
+"=.	c #BABAA7",
+"-.	c #ADAD9B",
+";.	c #9F9F8E",
+">.	c #ACACA1",
+",.	c #CFCFCB",
+"'.	c #4C4C45",
+").	c #B3B2B1",
+"!.	c #E2E1DE",
+"~.	c #E1DFDC",
+"{.	c #979288",
+"].	c #949493",
+"^.	c #34342F",
+"/.	c #878779",
+"(.	c #A0A090",
+"_.	c #AEAEA2",
+":.	c #C3C3BE",
+"<.	c #010101",
+"[.	c #B1B0AF",
+"}.	c #D2D1CF",
+"|.	c #A49E93",
+"1.	c #F0F0EE",
+"2.	c #EDEDEB",
+"3.	c #DDDDDB",
+"4.	c #898988",
+"5.	c #414141",
+"6.	c #737271",
+"7.	c #A4A3A1",
+"8.	c #DFDEDB",
+"9.	c #E2E0DD",
+"0.	c #E1E0DC",
+"a.	c #E0DFDB",
+"b.	c #A19C90",
+"c.	c #E1E0DE",
+"d.	c #CBCAC9",
+"e.	c #B2B1B0",
+"f.	c #A3A2A1",
+"g.	c #9D9C9A",
+"h.	c #9E9D9C",
+"i.	c #9F9F9D",
+"j.	c #ABAAA7",
+"k.	c #DCDBD7",
+"l.	c #DEDDD9",
+"m.	c #DDDCD8",
+"n.	c #A19B90",
+"o.	c #EBEAE8",
+"p.	c #E6E5E3",
+"q.	c #C8C7C4",
+"r.	c #B6B6B3",
+"s.	c #B0AFAD",
+"t.	c #B3B2B0",
+"u.	c #747371",
+"v.	c #9D9C99",
+"w.	c #DAD9D5",
+"x.	c #E7E6E3",
+"y.	c #E6E5E2",
+"z.	c #E3E2DF",
+"A.	c #DBDAD7",
+"B.	c #D4D3D0",
+"C.	c #D0CFCB",
+"D.	c #D1CFCC",
+"E.	c #D1D0CC",
+"F.	c #C9C8C4",
+"G.	c #6B6B69",
+"H.	c #CECDC9",
+"I.	c #D6D4D0",
+"J.	c #9F998D",
+"K.	c #E3E2DE",
+"L.	c #E4E2DF",
+"M.	c #DFDEDA",
+"N.	c #D5D4D0",
+"O.	c #C0BFBC",
+"P.	c #7B7A78",
+"Q.	c #BCBAB6",
+"R.	c #CECCC8",
+"S.	c #9D978C",
+"T.	c #EDEDED",
+"U.	c #E1E0DD",
+"V.	c #E2E1DD",
+"W.	c #DBDAD6",
+"X.	c #BBB9B6",
+"Y.	c #A6A4A1",
+"Z.	c #9E9C99",
+"`.	c #ACABA7",
+" +	c #C7C5C2",
+".+	c #9B9589",
+"++	c #E1DFDB",
+"@+	c #E0DEDA",
+"#+	c #DEDCD8",
+"$+	c #DAD8D4",
+"%+	c #BDBCB8",
+"&+	c #ACABA8",
+"*+	c #B2B1AD",
+"=+	c #C6C4C0",
+"-+	c #999388",
+";+	c #999891",
+">+	c #A39E92",
+",+	c #A39D92",
+"'+	c #A39D91",
+")+	c #A29C90",
+"!+	c #A19B8F",
+"~+	c #9D978B",
+"{+	c #989286",
+"]+	c #918C82",
+"^+	c #938D83",
+"/+	c #979286",
+"(+	c #666258",
+"                                                ",
+"      . . . . . . . . . . . . .                 ",
+"    . + @ # # # # # # # # $ % & .               ",
+"    . @ # # # # # # # # # # * = - .             ",
+"    . # # # # # # # ; # ; > , ' ) ! .           ",
+"    . # # # # # ; > ~ > ~ { ] ^ # / ( .         ",
+"    . # # # ; > ~ { _ { _ : < ) # [ } | .       ",
+"    . # ; > ~ 1 2 3 3 4 5 6 7 . . . . . . .     ",
+"    . # ~ { 8 9 0 a b c d e f g h i j k l .     ",
+"    . # _ : m n o p q r s t u v w x y z A .     ",
+"    . # B 6 C D E F G H I J K L M N O P Q .     ",
+"    . # R S T U V W X Y Z 3 ` w  ...+.@.#..     ",
+"    . # $.%.&.*.=.-.;.>.,.'.).h !.+.!.~.{..     ",
+"    . # $.%.].^./.(._.:.<.<.[.}.!.+.!.~.|..     ",
+"    . # 1.2.3.4.4 3 3 5.6.<.<.7.8.9.0.a.b..     ",
+"    . # 2.M c.d.e.f.g.h.i.<.<.<.j.k.l.m.n..     ",
+"    . # o.N p.w q.r.z s.t.u.. <.<.v.w.k.n..     ",
+"    . # x.y.y.z.A.B.C.D.E.F.G.<.<.<.H.I.J..     ",
+"    . $ +.z.K.L.K.a.a.M.M.N.O.P.<.<.Q.R.S..     ",
+"    . T.U.~.0.a.V.a.0.a.0.W.E.X.Y.Z.`. +.+.     ",
+"    . = ++@+M.l.a.l.@+l.@+#+$+R.%+&+*+=+-+.     ",
+"    . ;+>+|.,+'+,+b.)+b.)+!+n.~+{+]+^+/+(+.     ",
+"      . . . . . . . . . . . . . . . . . .       ",
+"                                                "};
Binary file etc/images/spell.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/spell.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,64 @@
+/* XPM */
+static char * spell_xpm[] = {
+"24 24 37 1",
+" 	c None",
+".	c #000000",
+"+	c #8BBB8C",
+"@	c #ABD0AC",
+"#	c #1A3B1A",
+"$	c #8ABA88",
+"%	c #B4D5B4",
+"&	c #70A770",
+"*	c #132C13",
+"=	c #77A676",
+"-	c #2D2D2D",
+";	c #CBDFCB",
+">	c #6FAE6E",
+",	c #A8CBA6",
+"'	c #6D9D6C",
+")	c #D0E4D0",
+"!	c #6FAF6F",
+"~	c #587055",
+"{	c #B8D6B8",
+"]	c #5B9159",
+"^	c #D4E4D4",
+"/	c #67AF67",
+"(	c #5D905B",
+"_	c #9FC59D",
+":	c #93BE92",
+"<	c #B5D1B5",
+"[	c #67AF68",
+"}	c #63A261",
+"|	c #BBD6BA",
+"1	c #82B881",
+"2	c #75AF74",
+"3	c #6B8868",
+"4	c #9DC39D",
+"5	c #7DB17B",
+"6	c #6BA368",
+"7	c #485C46",
+"8	c #89BA88",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"  ...  ....   ...       ",
+" ..  . ..  . ..  .      ",
+" ..  . ....  ..         ",
+" ..... ..  . ..         ",
+" ..  . ..  . ..  .   .  ",
+" ..  . ....   ...   ... ",
+"                   .+.  ",
+"         ..       .@#   ",
+"         .$.     .%&.   ",
+"          *=.   -;>.    ",
+"          .,'. .)!~.    ",
+"           .{].^/(.     ",
+"           ._:<[}~.     ",
+"            .|123.      ",
+"            .4567.      ",
+"             .83.       ",
+"             .37.       ",
+"              ..        ",
+"                        ",
+"                        "};
Binary file etc/images/undo.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/undo.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,58 @@
+/* XPM */
+static char * undo_xpm[] = {
+"24 24 31 1",
+" 	c None",
+".	c #000000",
+"+	c #EFE5BA",
+"@	c #EFE7C1",
+"#	c #EED680",
+"$	c #EFE4B6",
+"%	c #D5B75D",
+"&	c #B29544",
+"*	c #D1B051",
+"=	c #C0AF73",
+"-	c #C0A048",
+";	c #986B07",
+">	c #D1940C",
+",	c #E0B74C",
+"'	c #D9C374",
+")	c #8F6406",
+"!	c #D59D1C",
+"~	c #B1933F",
+"{	c #DFB74A",
+"]	c #CCB76D",
+"^	c #B8820A",
+"/	c #D9A72E",
+"(	c #D7A62C",
+"_	c #C7B26A",
+":	c #D4B150",
+"<	c #A39256",
+"[	c #E2CB79",
+"}	c #C9B46B",
+"|	c #8D7E4A",
+"1	c #AE9C5C",
+"2	c #96864F",
+"                        ",
+"                        ",
+"                        ",
+"          .             ",
+"         ..             ",
+"        .+.             ",
+"       .@#....          ",
+"      .$####%&.         ",
+"     .+#######*.        ",
+"    .=#########-.       ",
+"     .;>>>>>>,#'..      ",
+"      .)>>>>>>!#~.      ",
+"       .)>...;>{].      ",
+"        .;. ..^/#.      ",
+"         ..  ..>#.      ",
+"          .   .(_.      ",
+"              .:<.      ",
+"              .[.       ",
+"             .}|.       ",
+"            .12.        ",
+"             ..         ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/up-arrow.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/up-arrow.xpm	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,94 @@
+/* XPM */
+static char * up_arrow_xpm[] = {
+"24 24 67 1",
+" 	c None",
+".	c #000000",
+"+	c #2F2F2F",
+"@	c #A5B4A4",
+"#	c #E8F4E6",
+"$	c #96B892",
+"%	c #41533C",
+"&	c #F1FFF0",
+"*	c #B8D6B7",
+"=	c #9FC49D",
+"-	c #66815E",
+";	c #B6D4B5",
+">	c #B9D7B8",
+",	c #A1C69F",
+"'	c #68835F",
+")	c #637D5B",
+"!	c #3F5239",
+"~	c #B8D7B7",
+"{	c #A2C7A0",
+"]	c #6A8561",
+"^	c #657F5C",
+"/	c #617959",
+"(	c #3E4F39",
+"_	c #F0FEEF",
+":	c #B7D5B6",
+"<	c #657E5C",
+"[	c #5D7555",
+"}	c #D6EAD6",
+"|	c #BFD4BF",
+"1	c #C0D5C0",
+"2	c #637C5B",
+"3	c #4D6246",
+"4	c #4C6046",
+"5	c #C7E1C6",
+"6	c #A1C69E",
+"7	c #67815E",
+"8	c #627B59",
+"9	c #3D4E39",
+"0	c #D0E7D0",
+"a	c #B5D3B4",
+"b	c #A0C39D",
+"c	c #607958",
+"d	c #B5D2B4",
+"e	c #9DC19B",
+"f	c #647D5B",
+"g	c #607858",
+"h	c #C6E0C5",
+"i	c #B4D2B3",
+"j	c #9CBF99",
+"k	c #C5DFC4",
+"l	c #B1CEB0",
+"m	c #99BC97",
+"n	c #617A59",
+"o	c #5E7756",
+"p	c #C0D9BF",
+"q	c #AFCCAE",
+"r	c #AECBAD",
+"s	c #93B690",
+"t	c #607857",
+"u	c #5E7656",
+"v	c #8DB389",
+"w	c #748A72",
+"x	c #71916E",
+"y	c #5A7257",
+"z	c #4D6247",
+"A	c #4D6146",
+"B	c #43543D",
+"                        ",
+"                        ",
+"           .            ",
+"          +@.           ",
+"         .#$%.          ",
+"        .&*=-%.         ",
+"       .&;>,')!.        ",
+"      .&~;>{]^/(.       ",
+"     ._~>:>,]</[(.      ",
+"    .}|1>~~,'23444.     ",
+"   .....5;;6789.....    ",
+"       .0;ab^c9.        ",
+"       .5;defg9.        ",
+"       .haij2g9.        ",
+"       .kilmno9.        ",
+"       .pqrstu9.        ",
+"       .vwxyzAB.        ",
+"       .........        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
--- a/etc/orgcard.ps	Wed Dec 28 07:22:57 2005 +0000
+++ b/etc/orgcard.ps	Mon Jan 16 06:59:21 2006 +0000
@@ -10,7 +10,7 @@
 %DVIPSWebPage: (www.radicaleye.com)
 %DVIPSCommandLine: dvips -t landscape -o orgcard.ps orgcard.dvi
 %DVIPSParameters: dpi=600, compressed
-%DVIPSSource:  TeX output 2005.10.10:1112
+%DVIPSSource:  TeX output 2005.10.21:0749
 %%BeginProcSet: texc.pro
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -385,181 +385,183 @@
 7C9CB4390F825B68E7A6DF4D67DAEF89F1D461ABEDACBF1FA02FEF65F0B8E3ED
 45974B9EC80855D5A1B34D792CC7793D4F05E81E185C3FA86C8A8FF108BAC2E0
 801AB0B3FE4C0CD5257441F29F2F293F4BDCC67D00EFB68440FAEAFE138279D2
-415687CEFCE35F8A1BBB0C18AE4A8ABA688D2F3894B5654AB7AD595E02221090
-2BB6DBA4C0F57B6505E06154D2FD2B4867047BA56876080E6355F74A94B6110E
-519BDFCCE8B1591398350C973E52643947FF0DDF1EF1D5BDC2CB548691337378
-CF13E83C7724774281EBCCD04A9A6193DFCAA31067CCDD98444C705CDFC58F57
-51343E8EEF46E9B779B89D59ABE35BAB4F08719816215E434BEB69263F40E144
-B30D52B749F3B66A9147F225777BC69BB72A12C96852AB90629CB453EC8BEF3D
-62FD39F7DFF6F9466E98EB42D718EC3F40773D76EFB2FF4E7261C3C64A4C937E
-823F633F19C6F58F4BD5E0EF012ECBECC797680A1B862AED6A1DFFD252155E20
-57E8B6B0156FEED1987931DE5EF1CA6D3B580BEAF56C71D8A2385481CFF22E6E
-7B6D2FB8F139B5FC183BF5FA5E1ECADE0C78F6F43F37AF77F228E6E41B98142C
-085427FF927194E7BE2B84ECCA36BA40DD7EDB158D3DA6109F4668FD12AB988B
-0D65E1E14C092F865452DC646E0C246376ACA12C01F17D714A4DB87EDE98B6C3
-60E5A0F414813EF3392168D164463CDB5D55CE2862008ED4FD65F113195E5CE8
-854F473644A50DAAC5D39A3E10D690ECEE89CABBFA93D2B91F4116FAB704797C
-C8397FDDC9F364013CDCAE9E9704B1DE28E2CD476AF57C3A30460AF14634C05E
-7F1F232F563BFE0C7C3D669700A38A4752AE88BB814DFD08B40E9E7F8BFA0252
-177405ECFE96FC249A6F1B530AF5CF106E21EFE0AC0729C36385E022BBA827F1
-68C11A91E90CA1472AB5767F14821E8FE5E32C7DB4A88FB64E746187CEF23FCE
-C499D2472AF392EBB6F79F714AC991F390769C25DC58D364147D868AC08DD739
-FA4602613467E3F2B04ECCCD12333F55D80BA4132883B2498D652E61D4E0096C
-B5193FA063E5C4131397D76C9656CE31CDC41D24C17F3208971BB853FDCB3F62
-B3CC083E6D9682CACA448112C84C0FC9FB19C8AB13E0C33EDFEC2A4CC16AB125
-044C048B65011725D34571D9C235736B61A485F7FF0835C7294A6FF2E48194F1
-8FFF4C5A055091AFF95E674F9CD2E43ECCA77F4876B5B50A1D5B38319D594246
-CCA3CD4F81AB3CE49B648FB21F0959801B814422D31DA4F7C3581032F8310E76
-95660ABF1A1DB536081F61FBB83AE5C8B47A9E0575FC475754DEC3689B28582C
-016062AA7AA63EE703DBC73ACCB5316DC3A12A2B7926D132D5B463B01452B475
-51862ED934A55F3DEB560FE2CAC39909C99CBDCA1F7239D122D9FFDE76D90D8E
-0576A645714E190BE1938E8A9EF1E4E5C55AC58899C2ED571F246A612EB73EBD
-24B76697C6A4FFDF1447CA182096A771B26788DD9456E0DD04C83119B0E1D0C7
-3C4323F13AC8786BF2B89F3759180E58AA599D2F981FE280E82768C0E3ABBBA7
-CC14B6521FE6179CDD5EFD68E9BDC2F53B5D6C25155564176618EA019D0BA472
-76C553A27871443019F43AE1B1B898AAFE70EA1F274C57582E70719AF3A53597
-1E88D7603DC99E5113062024B63E9BE65CE676E4F61DDB8F77E40C47A8F7D6A8
-2590664A97ED1D14547FCBED2C7E37BC09558954D4E3B93DFC48E504BCCE7865
-E44F4C479A27F3BCF551203BB51F443630B06F3D75D24EE7478B1AF78130174F
-FCE0B804DBCE20F62989ECD03A0CC1A42A1F7FBB673EED9E93E1B36D6E3E9905
-24E71A3391786905FFF7A2B56FC23AE64D4478D25ECDFAE9235606EEDC854E62
-F2EE5F50849138DE28C569D08961EACE1E6AA1787825B0706C532ABE724AD9D9
-87B1F459B0197A9F2B8002686E814BC91A91DEC9C0BE90F3F76242E3709228E3
-DE8116E7138751A8854E8A515BBA1E0F8A16C77BFABB6562601B85E1497E6E82
-AE4B8688DD6FDEFCD53226058BC6923EE68A195F375DC42448DD39905439A38D
-1B61CC01CEF9D2618F72E05E018A9E83AB1BACA13D1FAEE362F60C2E00523558
-E801B3BC8F79E4079D10627DAC3EE837B39337BFA4FCCE26FFAE8B9AAD60B710
-0BDDAADC236257D1DC9A7C41F83EE6F44573A357A3A1820D03685C919D80293C
-1276AAB97166B2D0D82D1045075648ACCA7933FF2B68F7584DA6E78899F0F5C2
-247A46AD8162A61671A1B633DF24EBFCC985C029223B98362431118BD6ADFAE5
-61A8C91E79306D1E3D4DFA5073C6BAB2DD04D441418B47015A7A0F21DA1C1B8C
-0E9B5DAF91CDCB69F86B62B4C003BE88B4DAE2D5F9DC00FEA9D3136B7EBF92E2
-7AD8617DEEEE72E869E2483548B56B90BC88F8E767676341B45FD0C000B8E080
-42CC156B75ABFA7026D54B31FFE73D285A2330C7698727BCA6511F8C404994EB
-8C8D437CB593291E8816FFFE3E4BD7BAADA3CB009982EC7F0192C5429FF37D2A
-AC8DD62D454A8B50857804BDB8EBA7347902EEDCB394FF153503E77174D71439
-A57D9941E1EC82D2CC49847933FF387BC7EC6E730BA6EFE48A9BB5B1A6785DCC
-AD7A9557FF402D8AF864E0FAEB0AAAE4C93243F3E6C550A18047F2CB9AB57FAC
-CE3F57FA2072D37763FB32172C2908B152948BE21051D26715C9326B858D538C
-B9C8A6DDF567C6DC6E7DBFE7CFD29A498490AC16D964B1FC1FD81B95735A5E3B
-03CE325D2138969138F3B6CB027E54C987E4C81E52EFA77A824B40F71B2EA2CC
-E98F2AB61546E4BFADE41731E48D6EE82C19257DD9FFF78CF3D01A2055863099
-21C06567DF3F852DC96838488CBB41D5D587BAC66C9586F093E493E1EFA65260
-9B9F0148227A5D3F69FFF499675F0A52EF0615E8272825E69D0D8496CAD940CA
-93655503DA72D62D8D35C6E25337ADF834198C750910461C25965925D0DEF604
-844C1257BFF739EAD0918630473F5B9E88A5AB0417815239189E0738A1134655
-DCF9B009A68120E823B23C770F7AD7C0A11EBE9962D3F14940C8D2C1A7295F63
-908BD22A418F4E8F81526FC827CBA16BA143050278D4F2FECBBFAFD3DC8003F8
-81FD27C56330B33BEBA0EFEF1F0384C45756B1A74339E232873504E55DB50E3B
-59A2CA167D209142C1ED6029313C73B7D83B0E22B1410C01519206795FA33F63
-C88A326500EB96700A24A434382BEEA0D0692E12E3AC72D568AA0133B0CCCF70
-C34C979B31975536089EA02286AC17FAC1CC980FDB0BA382F7755602DCB18CEA
-C862957FD6DA71D7180B3AFA8851458B5DA45DD8C5336E7033F4E957CFC2C08D
-1B3F550A219034ACFE7353BDB815B7B65BAF0F947BFC3C5E47AAB9FEE752B938
-34F5E6AADE58FD6F827B0649DB56F21097A780F57E253AA57CA6D5C97AB407B8
-8646B1652557344AB12A962D745016BF5E3E712E56520A30D2D4725FA67B2AC4
-8E331D28063727F0DCB494D6DE60F01FC86DD340EB5C8201CEE5C83B141A6FF9
-72974B88E35BE6061626D570539AB1BA69183EBD64FEDDE0E3C8221A5190DA08
-58853CB53920A109561473A0E0A3E6C89E66F9A5372483CDF9CB9F05F6AD5AD1
-F673B2DB23090B73C08E0D914366AFF8190366111E0504E11A1B123E2E752B75
-90728C69D7FBCCFD6411CBE4AF4734CD67F4F4CF231F38F4A2085C9896C5CE05
-8DC64395C62FDFB3ED92FBF66451DA41385E35FF0E0B381DCEBAF01CB9550679
-A0B3016A0E6CAC3E9C9B6FCDD0991B3AD4DB08B899A321FB78EE4205A0440285
-BE7D4AECB70BF2574EFD1A8E715AF68DC99E30DE8233C557AA120584199A80EB
-BCABC03A01AAEF4259F4740D3E217288BBDD85F690BFF141CAD097B6E7353364
-CE25F9818D743CE61A3EC151B120462A411332FE32F279F7BE76014AC2BF7C44
-C9B2E6A156F4F63C2522470963BF1FE855AD6A083349BAE5A077AE1381F0E264
-4F3CC894E16A0B1E5195B66CB83F0904E3C9C3154E87231CFF119A00165C4338
-7EBE20D9F9F7E73AE9DBFF5A5B25E241A52C180843852748415EB5F040B38D59
-FA08110F79D73ABDF3AABCB1A95933E7A56120D63B473ACA80B80769638ED878
-0E0513D8134962A1C350712424910E4528AB2C27F805E73D0C204B94809C5872
-DE2B60DB49C7414001AE889875E6FE43F8D3BDE20EA92F4B92F9E9077F96987A
-FAF2EF0CE7FD75387CC8E98CCEC81F1EC31955098C66936CFAC4200A7896B245
-CD57EE8BFF38CF671576240C466CD5AE235E46DDA8825C72619AD25EBD9B4D20
-B0DBC776CFB8E8F988903E59573D77D9CD6AC5CA6447323B9B6B9D4EA9C975A6
-CAC725E12C3B10BD7D38BED398F49D132D850B737979658BE3D6585D63052366
-255234F4A3A6CFA9E1B1CA462CD6FBFE67F8B02E7988BD6C81AECB1396AFB4C9
-6CF9F41A9426D1AE18A3CA08062CD08FF430935081B48EF4FF53093B1BD25B15
-13B8F3207B3F5AF6788364DD45853A1ABB21E67848184228238C7290ECDD5B6F
-6A755FCA9D9422FB325FC74A8831C33F053DED1525FC298DCFA03F382FE259CB
-6DA17A718CFBC755A5EA1B46AACB7C5882B341D01EF761625804C83A2073E41E
-C1B47DF7037677D53BEBB9D1EBCE59E1D10E68C4E4BC9972443FFDE127B6A7AC
-0ACA3D597FD27904183920B6050DF7F6D2B6EFF4FDE0BF73863020BD00C03803
-DF70E829030D042FF85E288550BA31479A53EA746760D4D330EF65A9CD017EB4
-75528EDC8F9D527098258D7C89A642333C73CEB113F80D3D507E0D7E62BECEC5
-C63C8545A01F94E2ED182472AA6AC86864E3725C31930B0ED0B8AE8AC33FE5D2
-5A2AADDCECA9877DBBB9CBDD7255F5AE1F0D64A399447AAECAC3360D77BB85D0
-49988DF9FD104F31917A03ED7C3319CD51EF4DE19D7EAA3292DD8D1BE8A729AF
-ED576D7D298EEF456B4E252B9057A8186328ADAFE674FD28936FA4A66AA8CEFE
-FD75A180F88B56FF34C353EA48E19D94BD98B0BD330A06D2FDE75D950EED3A61
-ED046D38B86429EAD3C8FD076BBF224F97A07EB96DF43027A1F3C841080B08D9
-90669E035C80E052EF8C209097AC6C1EA442E6E553055D659573CC1764866C76
-4A998871A49FE54F852DC81C19EB833DCB827C4FFEA4203C1539FB6057006EFC
-8C9FAAF9E4676EA22CAC6907105292F59169E0690CAAC7C5D71E6CA25220BB09
-6B815EE86C14BB4FC2EB5F684E96A5A23813F0979D07990723861939EA40A6A8
-B6B360F5DB0062A426036CEF16485B4BBB0A18056E8BEA923884EB5876F82A90
-F9B175F1F9C0DEAC73DBF7A8B8B735C271CCB85181FA5007706E31D349571B9B
-C876251A0DEB34DB2715CD37B5F38CE8D5AF46C338C98B70FF11535D355ACFC7
-9107738B8907A52BEEE7EF642593D486EE15CEA7D17328F58D2C453FFC9D5422
-35084974E464ADD547B26F3FA94988DF0B1F36ECD048D41C8459A258698DA53A
-B71546604E7EBACAD7A9A949451A5841B3CBFC65E818B6923003CC9CB2D0EE17
-54DB8F558DA7CC3E5678CA5F2317A0713B8CA73D4B4F555BF5CB00410B7CAC34
-C862B645F311E814A23F60810162C6E7FCC2830ABE3BEF1F60975F1ADEE9174A
-82E67ADFEAF665F4DEB6EFA2A12F2A44AFF5D5B73FE036AF2BDC271E44E5C119
-F3165F00248C3CFBE900A4D925B9E99BD7B72549DA2E26BDDAA760936F7D056E
-16214EFC4BF143588FDC9195389359F05FB38B07FA192895B5482BC16DA48FB2
-675F45BE53D1FD413192E344AE1B8D4D34B6DE4BD2C5F0CCAC25D8C416E82FF4
-8DD67C02CE58BE6C1411750195A6FC57186BA2A501D9E94E55B99435FF0B80A9
-468ABE2014EB30AADC5512550BCC194B2654CF439E669779FFA2D0D956B02311
-9A7C15A34D3EB890D1971307E85CF10C316A560454ABEFE5B9E4BF9E12D2C18B
-D42ABCC8A9E848028BE311B0315E3EF2DA66F87C0204D62172F3DA5392489B4D
-6DE4005E73F3C7CA198F6EAF1359C7B41E0A9B6A1D4E5BA635A376157910521D
-516AD8BF7275725C81D75D553D6C45807422C979E85896967933C80B693FAFDD
-7A0BF5CFD1CB0C19CB60517BC725F5B5AE16D38E9878CC4B80B5CA95C942E6FC
-2DABE3617E5CF76CC6CD83F257E7B7B746D164A26B451D400C8177946FA447EE
-6A68C961E78DFBC76DF68AEBD9E1061DC729088E4C2FE68DB331A031B42BFB26
-14045F941615EA0D1ADB1F7672FF6726AC59AF4835115B14ADB0C6422BAE128B
-956F8AA6F35773757D13EF82C640F1D79E7904AE638958A63F8D4B48534B6758
-EE840A51857C852EB04680C6B5789D0EF46178A02801CDE990D2C1689B7FCA63
-D3F3953340DBFDCA3FEDE5F026F0C15EB43848B78A6C2D6C01231FDDDC0A67CF
-AF1C673B95370C4FB888B551BC360762DB048D91F614A764E9EB618111122664
-C33BDDA6C8996B8B85A3583C5661B5B66B8222B46325F6244E0323B3B3EEE469
-433F262863585D54DF1F11AEF52C2114CB0AFCDCD2AF7C6C7ED155B1F58B84C1
-AB11520AB2D62C3DECDD638D83E42195B8315BCB37C1A7A0BE6BA1274AC9C4FB
-FB9647197DED96DD50FBDFE9E46050400B78F04744E687ED5F51DCD04067DACB
-E4299E7EEC824DEBE6D165C463B920A4BBD08EC3554F4CEE40F044529AA8F059
-81AEC16191D42BCE549DC373DC8252D8AB83C4512BCB4FDF83603D629B26E302
-A49E90B234503D5622FFB038E8EA2CE5794FA2E97E80FE5231ECE372A35DB9B5
-D7D86AC8B690635AC11789940493C7D37934E2FDF8F56433824C7F2AAFA357D4
-6952E877C901139D1F68F379DE71A51C0F7EAA3272A412744C52F9782DAFA97B
-8A753144988536ADAE7964B6E7D63191C1C521DCB90656DD8AF540C67D30B644
-048B0CC17F54090F1CAE35B59F190BDC2A473BA8BBAC2D8E4004E6BFB02FE922
-849F6DE710ABDE45BF0CBCC91EA5FE97806C059617D5EB64FBBEDBC570A39F5C
-DB4C9E35F3C57E6693196066843B53DF3633C3E44F4A3857DEE327121DFB0BF6
-3CFA4F3FD2EE79DE54ED1E66168B6718F0DB0EAE4B0387AC2D680E60BAE49478
-0D89683C04CF89CB5B22CA2A5B4F56827388AEC1263EC0E0918E12E26834FF3D
-E53BF07C6670109AC0236F4676C014782B9AB4C139499A0E72A8FF6101A39F5B
-99B33D6EF20B9A959159EC1BDFE1AAC8846352DE5B3B29137A34E8ACD5883FD9
-56F140D6BF3A66A4E2B547CF555DBAA3C8A04E2616873C76AD8E0257C8224EA9
-5EF69C5EE5BBA0D9DAA564EE3648A3F19AC70652EF6B2529D87E11FF3102A846
-4AB88679CF80547A3D94A2EFFAC31005CAB09BEF2B9D20B5AEB4FA1882126B62
-B7C151CE7A504381B3E24EE88FC789B0ED87A13A3A04AB0742940DEEB24B5D3D
-75FDCDA9B817FA318C932E9397E4E4011714EA81D69717F21470ABA8BA20DDDD
-A9ECF00C6804214BC82B20C91A445C6B0B5158F57315CF1939539F6A2FFEF426
-E493FCF410E5D576AF15B178E77E65B79328A79ECC7A681C6C8585EFCE1DC079
-C0F140D40EC95B468564DE0BAFA0EB3E70BE89797146F56B7BE9A4B7BF3E5B8F
-BCECD50A1793FCE65EBA1E335247E3964BE095810964326D580CF2F26133A799
-1A078D83BD6E550812CC56CF295A1E6545B339440A1D3392866B9E4500428130
-E42B64F1E4824FB0D785F787C7A0515DD39678008950E25564E3E148190F8C30
-922D719A29798C3C120EEDD5BC0F4C321F82C08761E68D8400993655CEB31839
-A98154FE243670B464AC40BAD7F18893F517A09D7EB5CB30CAD9ADF62DF7D9DA
-5F60EC004A9B9A49DD43005B66E05EDEDBCD49B94DCA88E91F6D359ECF19FC2D
-660EEDB26CD608D0B2E0867633CF353F16804E2E8155C9DF6B6FEEEB2CE1FEF0
-9492C875FDDA09F81D8266766E6CE28199D1EA777FF67F71F3F7BEB60A2DEF9E
-68B059FB0135812071176E44A70C38A3FA80648225631B16B17D683343313F52
-810F6E7D60BB7C895317C6C0A93289B1A29E6D221E55BE350547FD775CE2F77F
-94ACA7430811E849E86F87C4913D04E15B704A8059C9F4E9B15EB1F32F081F19
-49255ABA9890AE20DEF0BCEB216B5372DE32AED9577FFD9E06
+415687CEFCE35F8A1BBB0C18AE4A8ABA688D2F3894B5654AB7AD595E14A21FEF
+41EC3005C351D229B3D1186D118B72EE4143CB89492E211F7490D664ACDAD2D9
+70F1FDD65D3A6D84370B8AC3F5FCCF497D067D5A98CC0319404B6825FDB73587
+51D7066CDD0EB40033BFA664BA84E58540F849C0D7987B8F9A7569879351F681
+AC379AA1CDEADCDAF6910C3BCC38E053F6530D9674D6E5E8352DFE3B4F9D74A8
+7F1E76E795110F46E7C5548B85426CEC3E9977B97EFC5DCBA8891784CEEF8917
+39BC430CC40DC166C51C1984F1734AD604002716FD4488FADC935CF801AB0DD7
+6C865C611509DA17DFBE1A230D6A3F7D21826AEDA368C7EB0DFC740698D2A196
+C637BACEA9501C7D421EA39C6B49327913ED5CA51990AE2D3E5AA63732907DC2
+F5A64A50D2E20A1881F9B1BAA746F639EA45158DEEF3D84C08AAD15D0FA0FCAF
+F0C5195372E83862031BD25044DA8B5DA9A9DFB248B001D0F8E957E8810BFE7F
+6507B8B1D8D3E81F33D615F899EC881E671E421D66BAEFB992F15E481EA42330
+9B880E308BED0527EDBBB718761A8488B218135211541F65096AE8D70F8A8D31
+6F6D498318D7C59D355F95650C05C489BBC03779570A4F8FEBC0FF26716243FB
+15D4D03E6E8A8FC09F3F06EB19DBA15E5CF724243C0CE942EFC0771E267C15DC
+30CC67D47504E7CD7FB549D03EDBC6D655EC9BD66160085A2AE4797BE3E87933
+B77CCD6DCF1026E598CB760903ECC82CAE5F6139EFB2B980B7C72552D0A8291F
+F3CCA05628B50DECD30786F7DC9ECC532AE8AC212562F7F691D8CE393E02FF78
+971E6D5A607F3394A57FF995BF0AFB94E16A619C89A3BE5F49F0AC96A65C76AA
+305C15CD82BC540D42BA924BC728948A6EEABF03A7D2E5448226D6AA94729DE9
+8CCA2D5832408F1685761DF7376EAE3BA2C1E5D1CC394D93E681B3931DE59B1A
+E69218C1108EB831FDACDFCEFE511E471665D8124E795F675E10814006F950EC
+33CC631392FB4C0A49D99E01EC3559A9D761F0C877982865FD2F61B97BCC3C4D
+67392977694F889E3C5DD8DACC55498FC38586BE2AA0F754B618EC820C7C80C7
+58145708C6B98C5163D2B1EBFF47116E4D38A046A1E4FD901110F1A1045CE82E
+C2020AFC6AAAEDFA12028E2142B2B3C743907C4E8D1090D29C105BE00D870796
+D76E5D390490E7DE28C0A8A0AB39A6E9247EF7C5B20B01F55ECCB14F875BEA2E
+CE4397FF9523E58FE23AF03EC2289D401C1048BAECB98394EC222615811D06F0
+D162CF83F6F4C7A87A4DACD987AD4B64428F992AF4EC203DEEDCCEC70C3368A7
+9570872B3AAAAE34A6E7168005DE1E5F6AF4C469205E19739271735BB60127B9
+50153CE55340595903F815841594ECE6B84AAF2E83725C4C8995D39EF436EB0D
+AA7C9BA7BA7A4BC876D5C554FFE4A055CF8815650B5D6B7048744AB7EB39560C
+09FE285561A0A04190B35170F3306CCBBE6A37ED07BECF11E890BD890FED9B80
+330AC0D1288C028E7B1E8753C32F1C03E01C694D69561524E930583B8F98B82F
+EA5832D1283F330D4ABDF1B941386CF90028C8D4F33B453B9AD6137D69F0FCDF
+53E0BB814947DC58E45DC165478E74E07AAF3B5EF3F79A90F24A18B7F9CB8057
+A94085D4C2B2FF62ECED65D8C47BB939AE969AEFBAE94F6B230F965D21BC9C2D
+7C22B7F8CAC5FB01891A63EC9FC9900AEAC00AB0743D201DCD68AFEC5F877F4E
+3EA013E883AB0FF98AD3A4D85ADA45C5F51CB33061EA7129C1FB68D146450014
+E98BAD39D0CC6A58E0F1D6E3AD6BD0F0FDDB9E3123843FBBFBC7C6C5A4854AF9
+1F6E260D6E09CD14B764276F5F33E6539FAB56C3ABB3AB24ACDD7D1937B6A459
+9D846E6AF2138B361A827CA9C5D8AE11CDD8714EAB13BE223C81FBCCE0FFF57A
+779FF50E761E533AFE08A5AFADB1FBF2DA3CBB35E7003C76D205040BCF2C1815
+0FCB1609829AC06A1D2CFF13ADA1C23BD25EDE48815255E0C0CC62901D210EA2
+2F5A1F8330AC0677DFB0F2CD0E8922570584A21C0278941EE54F9CC993BE5BDB
+6DA0EF7ACA47555152AA2EDF27F5CFB2E3D0512795F464D30FD2C1F71241EC90
+2EF44228E348D3E696BDCEB802354583BBFB408879320D23D735E7C06A0A513A
+E053521E2365A4430F131612CB06FACC0F436B9F36E927F5AB4142F9E18BE935
+892C440CE0D23939723F9C9680130AF7BC1FAEC6381EF863E9824A4E619646B1
+2FC51140B5AD7A1DA320E3BFB961A5C807B919DB572898ABBDF7AA831641426B
+8F743177E98D22574D0F0EB55673533D3105E4C708697B61ACD89C5C5F6E46AA
+9D5EB05B7E5ED1B663AA74D84EE8BC451A44459DA6399FD72992DED97BF05AF2
+59139D6470F50EA8D263F645D9C0EBFA5BA30E8CD7D4F489E0EB18B5C07BCE4C
+CACD432ED5316356DE895C256C5FB47EBA7AABC06A92E6A360BC9174ED0F5754
+08F4539D8ADD26D7B27FD753572667649F8A2EDAB9A7D312FD5C26503384980F
+345E11F3722283EF2DB9EE15A4F04CB6797B15AE0970BC2747A7F9A229275638
+7BCDD3B7BF28FF5A143999CCF53AF3E02D8AE4B9AE572D7C2B77350509A91044
+89F3725CB95A0F124F3E9D7504127684617509ABF65DF8821B6A168365CA625B
+139CBF549F604FB8319B3C62770FB61114B5EA4FB1F992AA99F32543BB4464C3
+C86C5D85FCA3E7E1285A51167D5C17608A6C0CAEF95952461A93B1FC9CFFBC50
+602F25835D3A566300DAF0FCA7046930CBCA09155621BD65518ECD5B698A6FA3
+A391E92872397BA95E7B5EA69A0EE6F9C74ECB5AA83C2FAF2B031D17E0B6FBBD
+CA02AA882F8925967CA744D3837890DC7D1ACBBD1F0BDA8E61B88A230F4B8291
+73D37F471AF6AB22BB3434F00F3A35A330B69459F40DC5EE430AD2F9710580B5
+E93F75AC1E6B516138D92BC9EE6D3085ED02616EA1474848DFEFF3A7DD443DF0
+3B421295AF2BC090C869E92C2A774FC327D15C6AB3EE92E2B16C401740E9B1B9
+B22B4663C9348DD5F24264352C56D872CE93DA420AA8922E572F587600346B8E
+4194D11B37433D0874BBD33A8B2E67F36D7A55298664F9E96DDA20846F9E9746
+657A4F0A63D14437AC61F22DAAB23095BBD7FF8C1EB24D43DFB6A2C62B574A96
+CAB867CF40194ED7CD9EB634AD076B42337636CFE681137A96F393CD73DE2FAA
+904D9F703D141D344272DD9DE9F18C74929E8DFF9CD108E69E5540A8C8D10B9D
+3D715CBCA486ABB3E010BA1F20F728ED2C1855B85AAE3E9AA00ACCC7DB968CD4
+3A03EB9270B8BF51C74881BFDABD1B25E51B3E91FF7137FBBDD7D8077E3EA554
+3125D1E104B26596D96EAB6B19D148A037CCAAA3469AD06B424DE6521795668A
+5D8AB2F65264CC20B20BD7C5D0DDF2AE0932F99D8400DC31F81030AACEA27251
+78278C3FACBCCDC668DCECDA033F23D408BFB7E2A787D77433E23D8A36452FA9
+7339E1A9036034A6C1D10162BC409D6B8F899CD0448C64DA643E5A38A70470CE
+8C8F251D7916D7786F91BD21A15FCCA149A035DD219B523F23C1CA6B07C04678
+EE2ED5DECE5C1B4DD835FDFB1A50D4BC57491203E521E85B8BD5635F2BCDCD00
+A3CF1125C8B29191E5192A22A725E0A0A26E4A6F4E19EC36E506B78EB090FA14
+C3F5C4476665D6BD48BE1990D3B53E9BF58D70253490E9D2BB274A16F8BCB411
+B9B1133ECA1723C52328CBF108DD84B55F8CFAA7C642824357A76A2FA12D8BBF
+392474CD645BC9AB430E6031BE0220F603DC75498A4189CCB239E4F3B27B4076
+C3793944F26B44330FB42973EF70E86F740C684F123F121BDE3758C551EEFC49
+69A082AD4F3FFA89509A7B8922CFB8C971C072D498712A1A5F6BF254C9A4CBA4
+AA3652A56675C7359DE901E292A9826D3BC140843A7799A05D20C56AE586F178
+090E9E55876958C665923401901D4825DD5C9B7AB686AE1B38314CDFB6DAAC1B
+FCF2CFB4C404E173988FB1CC35297B3DC7A32F45DB7C1971973F9BA501982760
+E353B8DE47C6065C128680E51C080D5D3A0C9BE09C25D85E4D1E6087C9CF4F51
+13AB80E75EC442CE2F2E0B6F7D13733E939A3F983BA540FA236A6AADAB9C7734
+510C858581725CFEB2A46BAECDCAFF7E726D140F50C2A0109ECA4C1ADAAFF17C
+3269DD90145A9007639A54DFACDAD0FE945E97A370DAF3F0B4D66F847E0CBC17
+F8D6E5D5E124BC85379C1FB15E82280F157ABDEB2CB67CC25DD0C4DF157B5177
+60A7EA491389E573905653A694F31DAD0052BFE5A252C902B3976F5522526DB0
+CB9423C892CC9348C40DD844BF5F87BCE0D8C7E42AAABB2DAFA3001976360946
+8DD8EEEB4D2F1A5CE8139AF70FFE8C72E8CD4F891C679D93D7BAF53B850CE9B3
+7672AD44717E88EB64C9EBB80727A6CDE2E07A14E686B5A452CC456FFE933F75
+F323DFB14573F37D26F04CDFF33F6560BDFE530B4E3352F44608EB26D49EEC8C
+E1BDFF8ECE3823670BDDF72C4FF89327ABA853713667E4EC04D8981644D0AA5F
+5D872283F02F1B108533B833A33BAAE41CE4C4097242DDCA81896EC33E38F88D
+0ECD5F240C274A5949BEE7EDA1511A2636028161A8612EF580116BD6C212821A
+B0C917365705937924B58BCA415E2B3C6E3191E80921F0A49F2D3AC371DEA089
+78FCFAA20EB6325FF3D9E57717F0A75135401322746EDE63970B7EBB07728CFA
+641B345A2C00B9C526191AE25B66EB97AB3A32A41D57D9B2501BBD4765137BD1
+04993E60EBC3DE43523B24BE3B4BA26F493C38168DA4899251AE82541118B28D
+C653F14878DC30A9CADB3C8833968F135FCD7BFB1D2FE028C74636491D9FC892
+81553B1775FF95FF9CAF675A2E7208CA84610F9C39F37474E18569C0209EBDCC
+EAAF9D06A63499C6EFC91AA8FDB9F159A6FAB1F62DFE56FA0E37BD5BDA0F17E4
+FAE3E27A36F95629EC2064D6A411108E721FD1091D6E9AAA5B0C0B3D41833C62
+4733535A726EB6AB936498812D50200AB915F8CAEA47C036F1542AFBE2E53067
+6366E355003FE82F28A456E79E921853B15964E911D08176F607E695FCF541A7
+C20A3CE2A2835093F8CD0FDE40DBF10B8E96D06EFBD2D7CABAF21D411B105044
+431A1E87CF0CCEB10D9A9D09E84307DD362E885160EA24DC0A06D0308347E3FD
+E8FD32456AD30269D2DC5D0E34379382B637493ECF9F143F44022A1B045BB3F3
+6E99BF86A1AD87FEF11786DCD4443459C7F5BB2B4F3914E162DA2FD998E46067
+07E10461AF5E065685A43BA4F1A843001D412550BC868DE93A91740B62F08026
+3B37B93D95448DBAEFF1089726A975FCB9BD5375457173AD766C8F99DCC54952
+4AC00377464E80A168669A183FD69A2E31BC22989E4F34F4ACF043424598BBA5
+63A6EE2FF886BB0DD160FD91860CAC052E47A55BD334A5F97F8DE2ED3675D3FA
+B838CA438EBA043D638793F04477EA8201C718124597CF1693BB99A627AFAB1D
+5345D2F17CC96A4387BD5822186B3E488DCB0A1531F931424D9E75D19685CD15
+09A5014BE0FD6CDE63FF735D1BA182D015877DF843368FD7A8AC312D53A951B5
+FA02B36337098B97B1B4FA84133BD030F7E8647B8D32697DF9E9B15D08B43187
+BBF609E074F0DA9CDEE2A959D46410B33E1C91A3BD703BE0B7E9698CF942BD9A
+564C9B7F806FF1ECF1FF29C95F8733AE1BC08A607108A09E3B4B2919523164CF
+ACB794B5D3438B55F72700257BC5BC00735E5BDE3DF55202841314593C815857
+428574BBD6DF0DF89D69B7246F212E81F88320B21D4E9B1BFE85329AA1794FE9
+C8F7FA2B8A3668A2E4129350B330074831072AF3E48E672AF033D89C1C56A830
+5D358A92F340D0D5AF454DF9D8731215747F30990B10C18BAD25DBA0883C080D
+8098362B9A9A0ADD65EAEFEE0DA098BDD1D351B262F18562164300DA97EC921B
+E290B5B3C68B8695C4BFA1081CCC558E17D64A42B8769F217747D850813D66BF
+5A399CD0E8B145D7C09527F6F9CEE142BD62B7F050C4B34D2001BA539633D9AC
+E02A1A4FE6225931E56289151500BDAB61556F7D599C8EC2FCC90B4DA68AF3AC
+370EC9FB3ED88649561481D299B57B7800CC76B3E8094F6C46832625AFF88D98
+99F49FD3A089606A43DB6FB466118E44BC51397CA38E6251E6C8B100AF453754
+6922D3E1F1F197DABF2B07B98B77B9451F62F4CC6543B4C27ACEECBC0640930F
+30336891857317B46FC98DD069AED6944CD0B527C961BDA2232ED479D72C7C54
+C44D4EF3AD0B1F9F96A9F5A1D35D91EE77BAE7C77326BD0DDBD396BC3C78FAF5
+DFEEEB59B05F0B1FE8E1347F26D09DC5534B3F1BB47B897154515E893795D4A9
+897D7BCEA2D54AB60EB39F67399FF8777FACC4B706FC2A6137DA53A343BDC1DD
+C0EBF311507475F6D00FD877EA29C8DAC798BFB33D9B1506AD583A2C508D231F
+0EDF3ACBD0B48DCD12F4789AFE4B2B18390ACACB86E1333AC38DA0C1D0158061
+9CDEDB47CBC1CD43D191C47DC214C61EF98CD5065F63D203696B384EF1FDE092
+78F5DECDA175900094D90AAE4CC26A7AE779B4393DC49DBCAFAA7F319421F54F
+7A3AFC61D68CC5F74668C7028666B95DC14E522F11200155893EDDAD0B06F60F
+33D2CDC6F75FF167606FBE426B627FB8661AB7B9ED104AB11ECAA5EED3717D5A
+B491E48C5A6E778274EB5B854135DF8FF07CFE9795CC8C69079CACA09FFE5C08
+FC73A41C878B439E706F6C33093D4AE7E13B17EF32E115B684E9A27DB490CC35
+DBCA03AFF0ACA4825176AB8071299BFE1F1FBB225E6915F0D52C6A5AEBD603D2
+151C5441BEA1EE87D9F4010C4642CF89B2776351C30153B226A1A5C4654BB683
+4AA2107029F120A491BD4103D186F800B9B785C953150094080848B6AF8969F6
+2FE34B3631F4E50DC0EA5FE4C0826CEDA30D3F3E2983FCEC4EC872420A6ED8AF
+EC8B02888837927D0A7574031B2853921132DE3C564F24E909FBC63690B02033
+0D3069D8DDA63DE8DA7667D07810FDD5D4C877DDC1C180F667D6361B77E666D0
+29AC20B15BDDE9E42ACA7802A4B74D31E91CE3FCF105A7F65B543172C8DF6248
+256541684153DA1EC7550E86B55DA0E87B70DF90D88358C9AC8FECA82AABCB39
+552DC96D1EC3310264EA111713839C45F469D16CE5510807897D58C3B2154429
+A2A01B2F8956B7FABF2764E131A7A819772BE63983E017737286CF2CA8C42A90
+2ACFAA2AADA5EE0B125415518D1F19BAE94E3EF1419A2CF9A954C37E078CE895
+C582992082BFF6E7A6C93C322A76A7AB7D96532B0D91603461C0903C9464D2F5
+7F93383EB60120E8246DE8FB13A8C5253591A4FEA03E20BCDB972851572174F6
+DEC5F8D863641E7868FFA14D5087F98A13B7142769E04447FD93EC724D3B34CF
+39CE00821D0E9FA5DC4255AF09F985174AE10C86FB18BE347A0E228723D00B0B
+968644728D65B7F3B726B287DA8419536F7BD24E7F64BA8FFCF260373183DFEF
+36FD6696ED0DA7F01D48551C51B07276C39A3F4E2771E36DCE6A01EBA288868C
+8FD6E7CFB42318DF9350BF110A57BC4E3DAA29D922A39EFAF2A307912B1123EB
+4E0AC2F8006FCDE4D27E66E0494E52938403C0D06E7898DE0C9A550081FAE7A1
+0998F8AC69B3FBD7903293C3DF14DD1FBEEDCC3A3ACA963137A768025CE3FB50
+939B0571F1A89237FABD6ED4AEC9D14428FC1C77FA5405B8FD3DFA363072C841
+D0A118CCE8484C9BE169BF1CA9BB822F5248AD79D18821236DCF4B4615E3CC9F
+FA968FAC447C718C3178C0EB5C7560B1E858ABDB3E2F0476D10CF52DF8CF62B0
+7B6FF34D91D63901C1B35D58585449C903198846DB9DB58787F2AAFF1E392807
+F0FABADA9576D36CCFEC151C64CBA1E91CDDC9B96D59A9743072C8D45C2CCB2F
+14BE3125DE785EF47E874C4BAAA3A487DF75B8C6F680664176C9097B1C3176DD
+DBAD73CC453120BE2B47F5247C215E790B79BACA9C817CCE7F8DA2D8F791F5E3
+C1B9F32A34AE5B452CCD75FC55C1785AB8AB43029D6663ED0A6855FCC56B5443
+2379BDA7EF132F
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
@@ -2031,271 +2033,273 @@
 6EAD4AEF60B83DB1E356D7B6844375FB3AAA0389F56D070F426C759ECD2F970B
 2E65032797BEE2FFDD78CF0B7C9684F6EB8FAAB6502F4676CA8F23D37CC4D4A3
 42EFDCFAC381E4B95D63E26FAC8DC58232288CDF0A98F076816242E68A3C3189
-8EAEDFDBC8802E6C8D2F78857CE66105FEFAA26AA62235515B9DF83D86CA7F06
-4887E80BC9C14A4C5974463498998052A711AF175999917AB6530A5981D5FC02
-F6F5BDAFD469D43E2E2134C6BFF0B68ED9CABD7A14B0F0C2427F14682AD3E1E5
-EC92396EF1DF4FC20F1B574F1FDF7BE782DAEB1490C2182F017E633F47EE6B56
-971A2837D4C9E8C78E5B28D34BA512FBD85CC07117D7A261904D6E2C57413264
-DC745E50EACD437C729BCA09AA240BF7F99B11DABC36B90AD717BED1439D1649
-A8F219ABF3C3E8275B4C41DD3251907E90601B7625C72E4EC7BB58EE544E09CC
-D86769AE126E8325A6997F7163187B190B0C73F76783EE86095540C40C86CDBE
-B2ED24860D2224024AA004929555C0C4EA645EFEE62B7A20DFFAB78A256704E4
-0BE2A5E2DFD2086BB24376D399A14888757AACCCAAB87C123445F38C7B2D6B75
-3E7EB1D517A4B4C8770251666F76C1F1C79DE62671BD3D0CAD2C1434D9E0E931
-883723EB811D9906BE8305278E586493C90CEAA20307064A29F20BB204E5CEA8
-FE94F52A5DE7C1F3F7403F642F29E81F2B38760DB0F0DFE9775FDFE49C685F69
-360C20D3ACAFD0BF01C813DEF6C95F16BFB43923A78B5B20112BBA77DCFB3F81
-7DE00A59336368DE9737943A9B33160D3FA500B5C74D36BDACC54A5D6862056E
-B02CD766308328E2C8C7FC41A0E9B21C75C08219195CD22FC5D3A99AC9FB25C7
-1D72A08B5B86B4866CBA3CC965743CFDB0FBD2DC51EB24BA7BC9E6C99A03259E
-B78BFBAE4DA928215E1B969FD6B00E3C44393AE4C0F3A18E380A55BB8EAD5713
-44D479967A07C711E8DB24C3E01EC9F0B6C2F936DBFB3F3B5FBF0850C55B9A38
-2C546BED80AFE9B30E3AA308FD575FBF349F4C556A1F5227495EB5A313CC6AAA
-BA779533C79CC35EE45C86333E307864EDD1BB5D45BC3058BA88A351FD39312B
-B031A56703E91714EEE44056F6B826090B63CD30144C95B88A3E5B250A2B2AF8
-9254E991853F7C8165185BAEBA1F088C9AE10B16B618F8E32352DEB52967E3A9
-A39E6DF485104508B77B3569AF0FF6AC768EAB7432BCD14F18B0A6B2D7AF694D
-958E51BF543A3A337FE6CA854586F2FD61C5835A939AD374CB05BC334CD893C8
-031FE1D92920DB07488228C03FDEF985574836565885E5023CEFE96AD27D2F7F
-468DE1FE34C26216CF4219288A88DB2512CC9A79BBC672D38A430B643B64D09A
-C2A82DD14F6AC4085C2B2D950839F1B3DBE701AD3F4488ADFC4953056AE03B04
-0CAB248A3697303B74171D342AC88F6E436A28970752BBDDA6A49CA78DFC76EB
-8A2EAF1E6E663DE24E221125555B79CFD316BD450196DFE80AFC35F9D0EFD36E
-FA0D1050E4CE2DF26B9605FB8950E2BBE6C873F1621DDD52FC977D9A7E5E5DCB
-3C7200B775513A763647F6DF8C6EBCB415242654867A519A57880271AB25A9C8
-9255B10E0D0FEF324CC97D1BE4278C69A7ED352FFDD4B83FA569CDF24E8698E3
-04CAB5E8F66EB18BACADCB452E7E2D93FAA3D7DED9E392E7A82B2E343F61CC6C
-D8943214CB064C361930803CF4C470925857C83D9FA4871854E84980762F8B11
-CAC395DC7C24DA3D94C70903CF0B406F67D71E37835A40A676CEE1780C955E7E
-2699F15A82AF0138A106E0BB7C179F1480678F90D7794777652300C073D8127C
-9C0F6C08AF449C339C324B286BCF56CA6CB069D351AAEE86C04BBF3BFED533B5
-4993C9EDAE588F9122BBF1D830E1B024235EBF5842FCD14DA0E759453A0A87D0
-569C89320936EF3A9A93865600133C2800BD77A49A7CB1EA1ABC17A89AEA5383
-50740DB2DBA5A00ABB556FDD5181B8086CC1683703829BD9995E9B9928ED6CE6
-4ADACDFB73DE333CA7B8F7DB17EB25C30846D9DF5110FBF2A5B004E80486B5F0
-F0A5E9EE3B37FDF87E52A65CA61DAF5774521BE090875605FC33445A8CB47470
-5C088A7AAED828BD3D93BE80F93CCBB71B702DA053B9CF4C5D949678B54E7D7B
-8B4D28E3283310890884A4DEE9BA606770C8FC52FAA87A1846E402F5110F79CF
-685AD45742AA00FA8304E668BB4B3A78BA2BE8717306419F4EE1EC696B4C8CD9
-0877326DE7DCCE619D86F9A75C194CD7406A9B1B9C962A381DA83707264F879F
-FF16DBFB7B15D38347423C4D14CB8B26007BF591AC6A0FA815852433CE4AC18A
-4FD19818F04737C71BBF48C925699AFCFDD25D92010069D2568E655B43A2A88E
-3F734C472714E5FC7CAD6189611A10FC281118DA6D78743B9F5CA56301888AB4
-1B4099F9593D046157054869A6267C12474BABDAF528DD0E0F2452C38052787C
-12B04D3F2A46888BBA6ED82374485BDFF8B887B8238105D63E912B01D25FB099
-834F60570D0E50CFF2ABC21162EAED3B6D1E8F3575E285EB59A3CFE0D4291255
-40EFDDD282C4A213FD3313C21DC6D90AD561435DF54236CA665EE4B45D7F57C8
-C43B9AFF7AB6E35C1D3BF42CC45DAD238B10F782559007BBA003B508CB25C41F
-8CA0B35779C6B5EA62D3F3D4543E12863DCC7A41432DF12464F119E9584C8BFD
-FD46563D85185C21A221D398AC93B79C1206975DAB906418E4F27DB339B6B50E
-BE1CB70F5ADACA9635B61CCC4DC831CC3EF73AB139061D725190EA2E0C8FD7C6
-8D805D2D19A2F54769D68ACE92B6DBF22C0A2EDB9B45C604E724FABE2762AA93
-2F30FE0FF0FFA874FD655D416F254BC4EE83EFC2489DDA222C669FDDDC14170E
-607B85563BECB3D0D397CDF9CFD6E1D7FF5116334317A188FB8537B38B328CDE
-2D05354E9774AAA3BD0E21053683879F89324F1714B42DF0A6E9D902BA5373E3
-2A6E95367DD0CFCEC5F1576631969BC441CA14E5E927FE46CB26601D492B8A9E
-D5FB32EC9BECA60CA49A241C5F432B2E71B4EC4AE2E4CAF8A488CE89639F2008
-04762E7F895F5865655E81AEEF5B4CB02E47ABEA8E35F95B289B5BF52D760539
-53C5F2950A886B43E4D6AF59199A6C8CDAA2BB2767D5ABDEFFCD40EEFA0B1D02
-ED629131B0FFBD54693A602AC1BD15745E2C80C4A9DB293EA112393CC16A3904
-A26BA8FFD378D0C13D656ECEEBCCDB6F177777CB24359791F987BBC6A8F9F33F
-54919747ABC99A0C994F65151C777472AF32480E21399F6FF16BAB2B1501FE31
-9D991F02F20235D5117B1255622EDECC52FB0A752C9DC5CF7DB8B8213E0386E1
-4CE8CA8116B3326DE080035488E7E68F52DB93B456B7DBE5CE4A10298083B1DA
-8C1C682D701299958D772E7ADD0E94944F0C4CD12A23DE08FAC08469CDA4B7FA
-7E7C86A82C998975B0CF64527869AA22388B3338C0DB25B26B3C5BB43DF9AB3A
-7A356DAA33B0B36B4C39330635FE1D8BD33A00208B49F15CE341A54C5698F447
-43638F0B8EEEC6BA29DE5F016365CD09342039C6C30D2C25E38BF1D6DBB78580
-F0BF68CDFBD27D25AA0D9B60D91AE236157C9C5293046695E6C6C74388CB4E69
-43B316C090C3641E1B846FAC1579770B4A2D0F55847CA1162DEDFD59D544E402
-0D472889C3B8177FC1FC57A1D56894750787A6388A9F53004575B85437674062
-E93B2517E379DFD6F735B363D5588591A1D5C384193B6FC50CF4BFF941307783
-3D23C679FB825C99E536B1D0638AE039CD1B38D3FDD72FF18A3E686C32576328
-F16A3090AA2D5527009F821A5F6DAEC910982407451BC6442762B8486C3F923C
-4F2EA39609025D5BC6345EB42A74342304819397459C7C576AA92ECEB4584D58
-BF275974AF38FD6CE06A25EC5659D9BE7F616602D48CD61A3F9303500D1A1DA1
-E6D0EAD6141B3E5209E6728DC6436AC89E27D591C4A1057467C5EE398CFFBDC5
-E9E9DBE6649F926671D15AC22E4DA06D2E882BB371682172D21F108D62BABC36
-28F0A65F816E0F389C27419EFA98B070B4F761AF9E8277D1AAA42D8CA68B51CA
-21C09C83AD39A9B94EB527F4E114EEAD8DFA8996EA536E0FB71EFCAB6EBD5EA0
-1C3840716B944F6DD6B7BA486F188202D879A07242550A1487F96E0704EBA09E
-BF6EBCA8AEEFE48EB5CE14CB3E3D7823DDE0EE6700D5E5D60D76A677FE18AD56
-6752653E7333CC4C21229079F40F4DCC756362B8BBF4AC77C527E285956B1543
-4268C9CCFDECF6E4E5A9B65893AC7C707465E0502AF76E458B6193B943F8CB3E
-AEDDEC24C24AD1DF95B958EB48F9D79608A2C53D281F77801B1D0191E2456B17
-825825502754E688CACD557422C5EEF2221F39DE067051611D118020DD2CF23B
-F7530C9F085AD552E0EE0E2A0967631D36D3F19F16D0C3EBA4806B1B050F74E3
-D101E032C64C8950560EA38C473099D45DB3E9B3ECE0F5DD604B3AB8CE424618
-BFB6BF2A357CA3FDE707BA64B42BF9585E95F717FAA6157E6B03D098EED24DF5
-DA296997ABFD50D085092AF1FBA05DD63A354200134E6CC02AC5978CD7F5DB4C
-9F6480918FE5348DD6908C6CC33413E41B41E308CA598AE14E61C1E61F8EED96
-995E95D2AF962AD7E7E08AE45FE5A15A9C9B9C9A4A003F80EE6A35EC9DE3428A
-98863BBD9F3247BBD3661EABA6DB4A885E3CF961E3FA211BC75B97C01AF1D196
-5A67092149A7D759804BDCE977EB1BBE8E150DF922B7E9AB6F90A8F4373BDDE2
-AEB4BEB35DA4876795B5401A84BC613A43F425FCF92E9F9EF479CCC441C2B35C
-EF2745005AA4890E904004C66434408374D569A1ED0B6CFB30A26C91C9ADC8F3
-07EC65241B13F5B9741527DBE436E8C9DB6FF461A78391AC480D5A8AF8DF33AE
-79AB46290DDD2C1D6BD0CBAC35EE36496EAE145D52353E6EB263DFE620EB54B0
-49651CA5B551077E59A0963F707F1DEB5B329BDB46F59537854B982C7A5C5D43
-6DD9398FB9D035DA69C9874094104F4EF073E8FD995C8FC81D8B285E22CEB34D
-568F6609A5902886875DE5C52C496D5146D200BF495F5EC143B93CC49E5C2A08
-D4267B161D4AAD19A05EF614886BC60A66A6342FB499480F38BDEBC97E0A5C1E
-5759955496515E544266E1DC67620A31A47997B6AD78F5DAB4640EF4AFC5E0FE
-EAB4677B4D02CEB83868BB7E0192DC0B8B2A32A78575A4019A7137F206223238
-C754551A6644A3D3DFFBF819916ED174FDEF284DABE4179FF24F406303547ABF
-D453EF90B6713978992A11DF0D0CBCCF423AF7D29B171AA79978EEA46574BF14
-2A631C701B921C6746067A40AC96F5A05D3F60834F5A63363D05D44CFE0E6820
-E467E28CF920243F3B01A09F20D91DDACDEDB5EDA65CC9CA01C395BCE006F690
-8D83231B3015692822C11F541E5D4A6651A315151A26C4A145D7D4644682B094
-9A8870FD7E6AD333E7A78933BACD0F28A1B8CBCA57A7FE19AB2165A22648D09C
-7796E45EF0F36605561BE1F039106DA70ED7C603081D459F004CDA4B4CD201EC
-E7653A8311DC66B95AE6DBBDEEBA50016D14ADE0488FE1AB0377B7049A0F9A09
-14B16EA09F1EE2565D567EE0FA21C712F5DBD1CC53E8C23E40338E43C4965BE4
-EEF1CAE961E2F2C9775BD78274FB62016A7363FA3D3936D02667EA6841775DF9
-3CBF9165389CCFA9392D139735575C3662F0355BC343851BCEDD7CA61278EB0B
-A7810A4317C52B15F559C0F0762A0F4A17D52052779B655C3F77CD0613D07367
-52BB9BF23D904FD1B70AD6C107EB1831C241BA878BD7CF0B2EFAA4BD2E3F9BCF
-D09A2A4F2C9EE9D742ED921721701AC2ACD6E9754CDB6E1EAD891B0D63474600
-24C221A5550472C685E6BC6ADAF7BAD61135D960B66B59A524423CF6815407B5
-29ACEE91F08C4F3AFF74931786D014BDF6F85A57C50C50CA13082F0F962D8A7D
-D91BB97760E1DF2A8051FEE387AEC967524E8AA2D6D4C824AADD46EDF9683DB5
-6FDD72CCA7D000BE8BD526F5AC2990ECAA151A4B65F87BACAB9CEDFE7F2BE5BF
-0DA724EF6AA670E37CB8DFCE9D32A90590831C9E71FA8C929F01C09D379B819F
-C86B1F1CA2DCCAD147496898756107F3B1EA3FF25D603E625C3ADB1A122C4010
-B1A8BE368C268F1938CC1DA24ED7F22634A4B3DEBCEFE6AC250B9384F7A34131
-36A38C1589FFA8EDB470D62EE09EE9F19E6CC76F0EBDA2C9E9D6276C466F02BD
-5F6F9E9AF9A74793B8B36C36E8C198215EB0259F871FD4356A9FFB3337988711
-5A84B7829626D3C7FBAD3D4FD5EA30953408BB97D77229F5C27150D72CBB6A6C
-4585FE13E452D977DBF7EC2639F06B0D0420D965CAB90E1797DE9D201E1219AA
-3B06CD074470641FE3CDD17A17E68FB3B7F2B5498F2C74D6209EB97EF626286C
-1982FD51DB1B80CF8D3AAC6C449AF5B32966D483B12C4C2C4C2359523B603892
-13109BA0D7E208DC74CFC4583AF2F0E50AE9458F5112A780991C8B6EA248E76E
-15C78B3B068C5BFFB1F015A9639EFBCCCC5507206D204EC199CE2D38A2A2F7ED
-E9604F1F146AAC9F21B0F6E306202E5BA947C38FA3C9CFE0E2332A903E9F9360
-C3C8750D8DA48FA999397CB7C98F130E449E6116D120DA2902137B9B9CD92D4F
-48BA0A077EDF1BE73E43A4C445D9D3738EFE2674FB1849F2037D7CE3D43D126A
-607D72B5EEDD491EBDBC9E45EE8AD7E07DE4B0AB22698CCA2800DC307C2D3726
-A98D432531FED2BD1FFE8329A23FFE76837D502A7453FA4EDD1C6EEC8DDCC96B
-C23543F90CC51B078F513E0444CA873332E146B87785078084B6E5E89DF07C68
-3777F088436E1D5E5D3EC8078E5D4079AE89C546EEEF93B5EC16CB8C6D95051B
-DF0D5B1B59487483402198EE5D20DF471DC29330012EB2934FF9321E5F55D42E
-9DDAC8B2A5ABC0549D3E31F4E700F92F92D41991E3680C74D3C8D78FC37F24E0
-6A00CB6FA5145BBA9637DE8A8BCB5DA54E4CBF2A42874A277D8BE7BE258BDFB3
-580E4360299187051E62C27B2C79CDDB9B279A2059325CBA86847B13893AA6D9
-E497C6A771868237B064D20953D44DEDCDA37586ECDE68994A96EB8013753EF2
-CAACD7045E07B8440DCBE8DCBD6862A14E349691C93C83F9F7F9E67C5A746BC0
-7864B3E9938BB5A8D244DE021D45B7766364F5AA1BC2BA0633404F00AD6A097C
-DC400FADF01566720B6341407C60045EEDD3187B79EE341FB867A0D1C61903BA
-2FF729083A1D94B1B2CC31E28F6D098135E9008BF046650D8EA8881EC30C03CE
-DEAC187BC4B92E3F8F90F6E433E3053A2841D95B4CD5A5536D2FD8BA3C8BFCA9
-BA560A0171B941AD077865DCFA6D7DCAAF5EBE285BD0807A7207BE986E8351BE
-03064839D4358B16264538A453D42C095552F552383FBA044C7F2D47A3A69EC4
-6E5FD899E0E55CF0B94BDACBC436660DD0CB9C24030345944BF4C62FFA0C7A63
-35F86BC16EB62F5B117458B12ED15387165036F2A2E106BF8D388075382D886E
-5FCE7DE83E43F9145D0DAD6CCD00772F6D3C0804BA01B9DF8F31AFC3B2E0F7C1
-976A83DFFD9DE717AAEB614EE6C32DFB3E0592BDC29C18ED416AB637E8769C7C
-9F0D9AC0F017A9CC75BA10EF9B30ED1C31DAA78D6CA6F3F71A988F0FBB0BA50E
-4775BD68A0FA366E16351193EC5390EC553437388EBE4153E678D850DFDBDBDD
-BDFA73F47A3E6A800EEFDA70402B73E571B3B55A6475C055A89D0504423F829D
-FA76DD2C7D78280429E6527AAA64AD7FD074F300732771ACA43288CDBB3D26FD
-DD4A0AF02CED8E7503E6479643741581E0565970A56C7DD5D7E1C314639EA886
-0E581B4DE3742FB93683F0BF5932019AF0AE1DF9A2812B3E0200C6FCED8AB6E0
-C5256611D969FF4472771FC0ADB16E71A5C32BB6E3C3A79C832C32574262ACE4
-20225A253F4B5C750903DF5D9F5C3AD6DE75500F2B2584973612115924906460
-AE9AB02B1DEE0AACD47B7610241ADFEA06EEC2677BA7CEA0CF3CA93BE4083710
-1956D6974422517019551C92FC19CDFFCAEF2A26C9508D206D9642D66B33971C
-8996CDFD0789B2DFB9460A8E00BD6E2BA83120E94E4EBFBBD5A06C2C77555465
-B50579BBC9EBF8C6D9066C4114383392998324DCF86B9ADC935F66176E019DBB
-081AE411E45A1499A7DF7B5C998C6DF917AB3D43639CE6365AFBACE5FF30A70F
-F0B0087701AA9C5E871A97EF789F94A222F7E586BE8BD1C83FF7E0A429918A8C
-0275B463A881742F71096D6ED5946BDF93CD1EA0D407C0542ACE030BE6214211
-BB580CAF11EB8635D6C00052A5A0ADCED3CD6BD1E99141BE1D247CB48CE39CD6
-CAEE933C1068729E9A167515F743E0B66BD06481FFA48CE9C6DCF4F0145BC851
-0710C946391AABEFB70AA2D02DF83E68EED2305195B53B667331B9EF352D7FFF
-56EAC2571490A80E0F5EDB22EF988671B978CBA393FAEE0271A02AD4E7916FAD
-5BA6E42816C0E4A6B59AD4882CBBE4279392940636B95B14AC72EC763F3C8DF5
-158902E1144BCB9B77497B94AB6F985BAFE6A6EA919ADF5DC76D9547BFC10CF7
-F27AF0F3F369A40F0818EC70BA8D0E3064208B929F4691B4C3359FF49A32477F
-E21B57B2C2D7A6C444C09147DAF3C53BBAF46FDC8F18F8F53534F69DB5568BFA
-41412B4050EBAD38E48DE3CB3B2024365A2D9436AFAE44DFA3B145EB031F2B34
-A98C93D81397DED7235D26F7C55B6E9DEC79AAD7ECD9D25119C11657E7F593C0
-00B3B94107B15D33F2B27BCB1C7544018613FCE5546AB33EA041BDD6DF071D9A
-93AB099D606F7B5437A61C294770AFD946F292CBC5C0E657DFD3B99645D02611
-C3C2D5C083304436098C8BF60C7527F06997B4D10AE189322D279DB5834EDB43
-FAC2E91C1E9B468583AE8EBB861898CE9415A6FA5E099EAAE096BDE2978A142B
-930EE1DE108AB039C1512D066AD015A88024072732AD9932203E38F8F822931C
-226A39466C45C1D5161583730D41695AD184C7DA4A2F6E06599B0A7D2676C99F
-265568564D74A19CFE27CE4F3EAF0F1C1AC97902FAF891506B735F9E35D4E91B
-10A54E78899C211532A36D3C85D7C37B287D7D0BB3FCCF4922FA25A2B7EE57E9
-6F834FA1614758B455E4ED8A4F3BB2155EF04D18F8771DE6E441AD8B90CEC661
-81096112F28A4F5BF8C0D03647974574330A9DB9FD4858A866B827E02815D6FE
-269545855B4C2978ADF3D01FD470375622DB6302841304C4B34DFC14C934A5EA
-D948AFF88638AB565855086B9BDC7ED1C2B1A2DCDE0237F64379FBF189B062BC
-3E271422401D7044171D1CF04BCE2334018509119BF2A1A9F77D539FB78049F7
-55447125C1B1BC734D552A95A6542A45B56BC7A9D77D865D69FAD63EBB5CEF5C
-A6CC02E78F40A5F4D2D0083A57B9EE39AA1A85AB63F3611BD2F27CC4C0C38B99
-C66CE4ABA335F4E6325EF52E64BFB558C1B0C811C779A46F079E64639EC28C94
-7FB1A2D4C30533813E739009C352DCF93441E0C61A2B43D180D495C62D4433E2
-D5CDC01224D6CE29F06FDFA328E338648FB3C47BBEAED76E2C10DB94B8B39D19
-9A596EAB6D5E0033252119CD31BDC7857CF5833E011DB5330DAEC0C0C6C2CC37
-C3B81DADE8B960867D48E26ADF34929E7A74C220048C250AFD23CD03CA8CAFE7
-AAA8D671FFE2654B5E129B632D2F6AE861C0868F7567ECE49364558EEBE71069
-C1EBB2A01276A674D83944221FB6206A4CB07F451ECBEF842FC10C107ED7CF01
-7B1584DC6B33A0BB78B9741433E59446427D272CC35EA60C69988FB24E5F8FC6
-B8E8B5980FCD7381BFC34789377156F357B7D3A2165913DBC2D15DF5CF92E6FB
-42DB4B09628D45936F15456A007230CC9EA9703C14B12443497C8961A46055D8
-FC5D1A2E3E03BB7993079353406FAB03AA50CE6D589EFAC8E186898D39A3B158
-73A86DBEC6D4BA9F706E3E66AC32510865C7FC495CBDD03482F48F77A7C68A56
-7FD81C53FCD359F3518A810A9EBF8B3287B3498FD8DC09612F46F8933B24F230
-6EA06D9CC090E62350DC87C37EE8C2A00B5B305B5F9DF024A354D218BBD6F893
-29C2455C3A6FA80442CF96F71EF417766B36BEA9599A148C741019958E5D9D6F
-57BD18C456126C9C2E61B26BA99CC24E381CF54DF698B638395DC4CF5646B297
-35DF231EF503C8A9242ABEC825B86E6B1C396225DE9DD5A74CD4AB2E52CE5502
-E64FE52B841E9C903B6041010CF762B9DA460DBE1B7AB6547E56967AD50A20A8
-A3562CE86FE628FCBD8D5A46CDC6928CC907883B3B223D1BB39FFEC99C295471
-5819DA78E1A28E67BE9C9ECF030D17B750CF63A1FFCCE03488BBCD5AB8833229
-129EFF723149ACCA53F3349F20A95175C634C1AECBA667E94A6EC7240CC73738
-56853DA698EFBFBE8D4EA742115D056E60A5C563CE677211F762D78728F4A4FF
-16106B14CF733EC786BC81BF382D929C6E779BF2C5CAC1A7141311467B230972
-473561159C7F359C249A40CC0A2B78153B1407C9B5C58B61BE08EE79D2361242
-7F796F70F131C8EB601DCAC36940A0432598B85A9808D2E3A3AE04481AC98AD4
-765F604A00F6BFBFABC92FCDAFDA89DAF343D56D8BB390DD8196E65823CCBE14
-A44D12EC7460A65E46C3546D6A2C3B5E16B023DEE94A5F29CEEE87F773748F96
-32EF586A0CE0E35DC20A2F79A398A52060A5A4ACAAC9F38A5C5F5E18C5F548B6
-14EC4B3E3DCA73ECF7111C84980AB97DFBCC2B072D917EE0110248FF4728042E
-F527F2B5BC1C5CA2FC93FA15ED3F83DC3992CA9ED5BF29EC2ACD3F65CFEFD598
-D3ED8D7F3D54D220D79CD51A599194E511A440B43F1976B944FBA750C80E786D
-514014EB35E21B85CF8DE707B96B03B2BB973B9E215C1FC9816DB019765D5B25
-0A1B77FAAA4E048CA5BA20CEA9CA184F59BF87DE90BED9DD310C7FAFE3E93583
-DC243BA6CFDD104A3B126AC33F040E706D9EC76C986C1BC084623E58EA5E197B
-2E35DC67BA1BC12FA7013F9212868299C2AA052521D0FE1C8117BA36553B8024
-4FFD05A76B5AB7285E06584ED89DE8E7B6BD50CBA86B0E167BD86820AD60112A
-9C90BECB87FFEEEC23104B36BEEEF385FEDF701E9CED8C77D1BD04DB0F5C7616
-373AC3D57A4E056E1A22238E4E4873084E29B993B43F382D90161084F3243769
-AEC08A9272E3F1FAC01BACD9FD24D0C7749423CF64078B39AF900305714A3980
-2CB0B3D6F122A6CEF41C2E290D8EFC54E4ECC8908FDAC9DFD7F3F0EE7A98D260
-EC5C7E3484AFBDE096CCC71D9C2E2DDFA1429C0845AD23A6D235663086C76716
-F5A9EAA8BD0B23D6A9482E452E0BFE1B2FD9B24FC4495C212B4EF23D328AE080
-8CD8DBF54981E161763D7F354A1A411A61D71C5CF36E551269024CEA701E9462
-E09EC70BC5676B2F5DAA0202FBA4948E8E2F896DF94CF23CD93882F0C6F574F2
-C2508020035864D35D73E573105F13F1AF6CE24F4DDD537D52C1E04E1275BF48
-7F28BFA941FEC50C43AC453CCF22645BEED3434AE099A63DCDAA368C2DBDBB65
-F1C83773639DC0E5E22521622A5A7F1FB6C05FA104E22AA914629A5599545712
-9612711D4D8702405003E5D3A94334E32AED660957DE864F657D0878A8636639
-3644D887B87ADB7148DEE4C3F40C302A018F0D8939D901080BDE7C64813DF7B5
-23D6484C7AD67B42AF576895873775C4D8BDFEF8D429317F10D9D344C429D5E8
-8C95A7CBD3BD08F28D46C620EAF97BC44FFF733970C76D2436BC46B04B5CB80D
-D6900BDE70957162C71B62F5E0B07637050ADFFF583014DA9F24DED2CA080F50
-574262A788352244EE07ACA41E7827C30D40BF3DD7BBD32F1EE757A661B8F83B
-7CD28FE74546961C5A6AE1E201ED17343522264D3CA4C149FD0AE2ECE287068A
-3A269B22C8CF8EC9D6B375B38AC613F0F1F4A47C99404D541674B7C40C4CED3B
-79105290D297F9771072FCBCC89502405BA5D927C01062B3A781C45EB6048E73
-961ECA73E091FCE341EB6723439B38B188EA498FE9E77B2E5E97880A4CC9ADFD
-A6F3AF790B84BDEBD1331F77DF164ABC9B969BB5C431BD9FAF52539B339BAA9C
-96ABC3D341722CD608CEF0F08D3E6AAE4962DB8198673B19F3C469559B993F5D
-DFF518F5EAF32191B9BC76165FA1A5CFE7B4BA741D140EFDF797F51807385F01
-A4DCD08030ADD12175887CBB60210FF5F275E8BD9706D69CE55F0D5030951A7B
-B0D31DFA257ADFA67C9914D4A1EFDC365AEAAA4B31FDA0D401A542
+98B28CF2783D9BCBCF089F9E4BA80AE4FE0C21376BC144EB419F3C346A540126
+8DF517CB30F5C2CE09D7A269D6A02229EF415D7D9412198AABE493F3B7344688
+72145D60CD95F113A968F7C0C8FD1A4550EEB73BFB9231FE6C942BF859FDD93A
+E4D428B7E16F01633448536CBDED367E9F725417992A4C7297DF9048760E2E64
+FAD313DF07F86486996EC840E235EB5B661F915092A6A80D0CC932FC4FFBC7C1
+B1B9A1E7E71936CAE5B0729BF1D8B8BF42D0520FB7591D868D18DC4692B21881
+AB73A3FFB3A0C6DAC4C9C6757EA9F17955336AA938DF2380AF0EEBD694CFE55A
+D8BE01F9991D94DE9980879E94FB1959CA21EA09BFF8D335D24C6B1DBEA913E2
+9757D5110C7018A959C9C20873440610C113BCF278CF74EE3EB1B2BEA6BCA663
+C451D157CF420C4CDCD949309FD52FDF4189DA36ECC22CEEC43A43337F6BB755
+BF613B711D1970B4F5D1C120064169F70BCA3A784B06B2542EFFB32FB5A0A534
+4C560825DD4CE51941AC685E0CC87AF48AACDF6CFB9720CAB78588A05910431F
+096A2CE6059506C9496EBCF1737F801C66E96CB8093C650A49DC7D1AC6B81FFB
+C20DC5BA3AC25C709A2FB2C848F203CC862BFECF195115FDB3BE0EB82FA85B0B
+6E83A4093122A7F459AA330606E6B6CF32C5C46656DA827AD81A86D162C7EE6C
+0A3C0D61FACEACA53E633519D7FA77DA807D0035C88C86FAE3167C8BDCF24481
+0387070337F0388FDDB757C2A5CFAD9C2883F7F2FBB71CCD3043B35684F4ACF9
+BC0A50F9C33ECD20084082D97A71E9680E90A560B6C1760408F7CC1C18347AD2
+391C7D660D50126E5B26EB49384B95BAF472769097F8FD4566D03C776F18AC7C
+C68934D967A97840034FE6966A4C44384283D25549B89163A50C27CA0E9D130F
+E01B62AB10A8461CAF49567BF6C5A37442AF6EFAFDF352B5BDCE9301D1C0EEA4
+3CCBCF70A8AF88C6C8A2EFA29541ACA6E8DA7254E4FA8B1768BED363E885C639
+256E15CE6AB3F8D5F5F19828041A25E0B5F21AE224C8CB7F51333ACFE8C820CF
+67ECD12BCE156DEB74737FF42B3A2684679EA97ACE6E24A1A9ECD7DAC0F00248
+BE2A74F13F7808F8B6D001882951DBA633E4D21C47E326270AD50E91F1717F28
+1A183A3F7603CE9F9DD8D798C5CF6D94144F1E2CB378726523E7B2080B753CFE
+D7D53773219CB1EFE995DC623A1EFFE70215F3DC17CC0695DBBAD0DEF043D57E
+226BE50D8F31C5DB8401636BA1FFAE520EBCF2AC99C4390E4D878028DF493B45
+93CC8971CBED42848099D1CAF836A594802973FCA3BC632CF8DFEDAACD30F3B8
+23933ACB3833F98296207ECC26336902EE4E61AC47F838CCA4BA4343F37337FF
+BC2F5D2C17B7496D794BDC9FCADF1F68710EF935BEBCA4F766D1C463D36BA87A
+77634687592D7570EFD3218A155AF4F799D425EBAECDD6D53FF4BAE6AC83413B
+819D0EBC3BE6F5B0503D39629FADA6A2210B7EED0D23EE9536948C36D1BCE955
+978E6F5A5D5150913C1C9675FB4CC807136796691E186405E6188F536730D89F
+87987272EFE130166003DB3A723063C331688174788EB915C09C6D73037E0721
+B43F4365D9974F1786CDCA4DE9F2EF193DD46149B5A24098FD0106045E309809
+C88067CB5C35DB60F64DFFDF774BB30035F9C4509534F34A07E50A04BFAF6747
+31D3A2A56AB7F755BDF243345811E8AAB524A920B0F17EE914D3015EFBDD74A9
+868823DB2338532AA4094051E3CD43B29B18EB3B9AAD4C4EF5D755AA3D323D11
+9440B1A2C01A0375BCF13162A3962224F04A28FC15D5000B796E39F80016F858
+989E64B8B9B43289FDF3CCE2D020AD995A3D7736C4A7BCCD31440EAC5518B970
+043E2AF5D3B5618FD9D5C5716403B43D2773D94CEE751CB545AE7C8AF1431FF1
+C9C8B77065FC01530E2BDCB91308510BFFB756432885FFE7E51B8F5D078D2ED1
+1D894839E7AAD86FC90850472B81CE2B9F67BCF8AF334B1CCD1E4C3AAB470867
+591E32CC9EDDFE53FACDC1F10AB7D5200B79C5F52D0278D47E6A5D1487018879
+528FA32BE86D7CA2C7D74A4C83DC5403EE7B5ECD0265AC43381C55C9A2A7D0B0
+100D59724CEBF79065CF467722D098AEEA112DE97D3A63B5DA728AD9649EEE38
+0FC7E3C2DF87FC75FC71FE7A1FB29CE0412A292E7D0AA49C6EB3169726CA4D35
+4B346F90F80759A98A4FACCD4BD3443C5D495209D5B8371CD9F609B2F31D0089
+53BE78E3031A481353B21AC539D1D0DB15D125C5A215B85C967330877CCB8E4E
+FFA3B31297E1FF68B1F037146EE0CF72442E5D97231D60A780EFAEBD557BDF25
+2841E68C8D9DD235D19D7949A847BA813AFDC78C45A3ADC0C594DDE1502632AC
+C9DDF7F22C37569C4B6721F5D4E0DC02AD038A293C751E4270D83CCE38E33C0D
+935A016C2E48A3B0B302EBC153592938C504B6E2F534DF5905DF530889A46DE2
+EF823D01C77EC705A38576040991BE498E2ABB8AF0EDF14F762E43FAD1F77BFA
+526507E86F108E6BC293E737B1CEF52CE5F4601AB761B18761351C8865F6C1D4
+662420E1E761ECD0D3ADD8DDA3B4B8DFB78BC27F33BFE6CC5A2A60B31CEB007E
+9B6D571226EFD67FAD3EABFFEE981225FEDE1627645BB5E881907B0F30E66158
+251F0FFE3FA1C010C937B6C8DC8C4A8649156947B204563B30167D4D480EA6D5
+E74571126EC1F19961983A135064DE001B9F0F2FD8D63D1D9A9992964239056F
+1983B84C152AAEC909E8B27FA29D309EC0FAC516F297438DF16F5DC70E3CCFA2
+CA7ACC09A83BC9B7912CDD58E0B367BF41F581162C100F3633A8DF70BFA80565
+6EAA455575E8433805C923ACCD1DA4FD9A08B5A344329C61F897749DBAC3644E
+F76DEA49E774150D58B868B341B40EF1ED951DD2E8EFB95C2B71C0F9FE556CAC
+AA0B805105F924AD53DF8A8792293A7C6EC634BBF784534EC60AFDDDE7A5ECFD
+7DD6399B84BED1B6603DB2807E0021CBEA0C2AB014EBDC670D082AFAB26B3151
+101B9111E538CC9508786CD5B4322F6D8BE43455BC8D585663C2494F2A941AF9
+5DF7A512F936105B6C0B71E4A29C189CB175F1B4ADCFEF1EE300551A573ECDEE
+BCD73740A44D6FCA66E22AF39A236E27C4BACDB41D616039AB10B308C0671129
+4DF112BCC3F0709D96E00C54FC5D335632C107058AAD26366DE0A1E8D2448845
+99DB48A0F053672ACF7208F8EC728FAD0950599396813185862034E128C29EB2
+5D0EA2C06F8B067F2199455E44998E7B523FF19A1F7CDAB6BA06E166E471090C
+C3C7C2005CC0757F5A07CB3B1C6D050D1BDB00BE0DCD9EBB1A7CFF6E4BCF162E
+FC95B6895F5E6E90C10D6D8F17CAC2B271105BAB3EA0605C8561E3DDD996DBA3
+5DCF762D40B38DFA30086967C407F20618613CC7E2A854FF0F25CEED4DAA58FD
+4EF8C4DA724D2B21D0DBE3F53D2D9D26FD15DAFAF81DFB2809B05BBE5B2A79B6
+6BE13F46F5A94F43763AAF260231DD3C2774A165FE4D2E7C8788F23609E36249
+622A714A19B91ECEAC16D64CF55F761A801815A384506B6A3342EADB2671B107
+7E2099F4480AB218B8FE2CA0F6696851F6431DC6758E7C4E551ED27BAF6E28DB
+83AD73C80504F0ABE98095A525EFF2667E1F23380D5E9B5406830B8EE04A82D6
+0C016ECA5D0E0D22253CD23E5D4F758A919833AD851EAE0AB007BB05E6234D86
+FB4070BC98506C718BD3FDEB8F98CDEC8F628F1BEF4727630C09987EE93A05A3
+E27FDD103ED344DCF579D4E47AA29EAC5E0415C64319AB8121EE933F2DEF6C65
+92D3067DAC8D228F566265AE3F51C5B5B63847066C8E15766E9C17212D17BFF3
+3EDE7E9380DC748E30D7A441020650E6244E0A0F10B9CCB08D9D184F31557E86
+728D0D17E69D02F9139F114BE9365B5789ECD22D525B0B3F4F77BAE59FD5EEB3
+9D04F26B3EEE5107BE27FF59AE320732610814C77CC42C6A2CFBBDAC95B1692E
+CB3AB1E0663590BD79F72322ED01417F7839CDCDD86E16A3FF7486D1BBBFBEA7
+CC9A15F1D85E99982E657D5E6CCEC362878C63C70776B7F3129A81E71FAC756C
+3B9D5BC099F11271EE45E8912DD6E519BE47540FA7E6CDEF4E0AE2FA78EC9909
+A3BA4AA0498A42D363EF9BD3EA3F44DD192054D99E2BA96AE79D58F1FBF4FEF0
+1C0BE069B0D181A6BA16E7856A55A1252CB6E1CAE718F061B0D69A697F30212D
+ABAF64B49495CE8C2C3A021F1B63EFBECAEB14FF0F933679D4825ABA027BFD16
+8FEEDA3BEDB9333856DD7DC8DEE7C6F1A6E571996CA3850C3EC6F7AB56217F89
+BD0E5D306E9D173050124427C0639C9CB1093BC5DFAA4975639E844BD57128FD
+8565FAB45473C77772EF4B5AF7AD6BBA291A06952A9FE634909480CDCA5D2924
+AAC8A378DE44DEC27FB92F3EB49C2CEFBE1C9C8FF1ABEAD47EBE178369E562CD
+83863901139FB4CD2C62B5813AC5FA42972CD918E866C218F88F0F358066E169
+AEAB4A6706F7B863BB95ED3F75F0B8C358511167E30277CA4B7D9C3829A6C4AE
+382314835A27CF8DB04BD2E399315430B41AE224403FB3DC5A6E6E703CBD290F
+0C186179130FD6D362480F725AF7DA8FC53C3A74DFC8358BA617299FF5FB80EE
+3F50D30ED2ACA85ED86802C32FF46B6EEA7C574A0571A73B11E5260F8DCB7C3A
+8664F92A46775E19F1EE687862A4DF83C32B055EDE4FE626C6227B0B2CCC8C42
+065FCFE0EBA1778CA4AF232E795337F1F581B7904EACBE02B7C331F1089F2021
+2E14F5B5F0D0F20A157BDB8CF35DBCE84930A8B594FC8D49B86DDFC8D7698F59
+552900CA17022719DA2DE504CB3EF99369FEAEE2B8B692F0A63A5380D4E3ADC2
+B8A1A4C3D4B521F6A96AD5F04FAD50D4365038A650FF9B78CFB879B546006A42
+468D77BEAA748544C863C4CCA988E13C4FEC9D4516A4056A79B8162198B0B0ED
+598F9A702420A7A466628922632F3EAA31D81063D23706D2BABE7072FD3F1869
+59256BCDABE36BFA51C205ABB4FE86E0818930A18BEF080E680AD529E3C53B69
+640C131261131FABD462CBDCDCFB35AD7EE87A9B651394CCB46E992BDF79C47F
+7044848CDBCF7260DB57EC13AFF48F65FAC15FBB95A84DB9B5AA65CD2A44A5A4
+BBD2598F7C46E0F55FBD3CD60D8D26B384367F3680FB23A431C4F9E4013B5FEF
+79674CC608B23BA474CEE87C7C1C89505F95AF66DADA954C08B90DF6EA5C3D35
+2B6B28A4E65078A4644625C6B5748CD9F0C8E6CD8DAFCC6768448C0E1844B067
+B8FE4642141CFD6AF18BE1D8D0C42ADF8EA56B2DECB0E105102329E01A326D2B
+185371ED000FF8F10B2642191C1C8896C287CC5B02F7D0D2961311E9FDE97967
+125F17AF2BC1C0D9E81082A0F2CAAFA85586E83DCF821169F643E378ED0C06AB
+F0107C05B6C20E8C219B1EA372AFE14556BB26E265DDB35EC1A29E698ADDDC82
+B3DB2749CC168E27B40ED391851B5D9265D59BAFC8ED28A3317D56BED94EE667
+C829329BACB09D1B1F7A416F23BCE70366C60E5CB4F058F00A490C2FCAF90255
+EDD033037A2DD77F576CDF4B793FD62E5EF1DA9CA07EF7196356FC92141F0786
+7E55CA7D70BD6C095106F365D80C5E56DA0A2EFF8BD6F4274138ED558DC888C1
+1795AED007DE68040372974BAF475526BD0833CEFB3D115467DBA008921D3B7B
+20213B1FEFAC68B2F8881274841562A098631B4DF3055E4F993C8E3668431C87
+363304114F12F7A6741E63B57EFFAD0451125284641B7B63A155786F0F30AAA6
+B4AA243909838427881299D4A812037868176E78080B58D71BD4DB349F5FC40B
+93E93AB792213570A54812E4289E434C7C41EC8EB1D725071DF30C07955B8354
+142DED8CC2746850ABEBFC9FB474A8A4B4C955E2C4B1B95C20FB7D7785D6B2C2
+27C53F46B5650208C05D672AC1591BE11F4EE6C139315C57010445E788312C39
+A20F2316933C10C67BAC33DAF32442A0321E4C9372C2B4D80414454E518C65DD
+B0D18FECA4B9D7A86A11E9B3F2E56119450551092CB2E7B4DDD3858FA8BC80E5
+6C883015EA7B770A8B51D56AD6A14D22DAF80229DF1026A723C1BA653915123F
+A1D57F518B44F0613521CDD32EB9A1E4E986FF5093B81985A00E0CFF355C61C0
+A8D01874FB5C462A3B3A317E027AF79D5820B473A61CE2D6F759CB48B441341C
+C98393C31626FB7459EDE4953D114D2A3C3266EB03F4A4545BB737E6C3BF0B5B
+4186E06CD1EEBB1DC515A1727CBECC5770212BD638BD04D1A4F2662E8DEA0713
+B3580AEFA6AA79AA7DDFEF04F877B1C7C763B553FC4DB31E7E73FAD239C8B871
+208FE433C3902A84A0580CC2F7EF3BE276175F6A6197FBEE6E039A1AC985D478
+58C86EDCE81805640D4A87D5AE7155DF9F2092966CA7A1ACF9B04AD4ADFE7EFF
+4FF711FC4D9E9CF66C395A26F25309BE09019E61F5B70C50BEF2EE54CCEDB425
+B9A0A84E2E142E4B388D3DD88062AA6FFD55B671AA4442011FD17EA9FA0B67E2
+D4A2BF06F00F5B90EB8B4318F026B9F3D7862266615E87A226A0BACB505E0FD3
+2340134D25DA26A26EB4569D95B57DFFD5BCFE6CB99AD2CCE1B98C250A621F70
+A5B45601163E7CBBC9FB212E7FC224C6C9B8B3AD91D68B5244428AE7309CE55C
+1213620A6E7AEB379F5C2374A10948A21E307EB064D46BB725F6CCFD4F0BEDBF
+13F46A187209D019FEB51E0743A145821281A3FD631CC2A4B1A26BD2A1260756
+3B54198F049B25A82FC4A40E3253B0A9B96E9E5A8E6FA072BC0C4D4957F4FF35
+1C57C6511C9DF81D02BEEA475A63108A5C89DDFCEF769227899948AA28D761F3
+233CB498C5178B8EF70CA1AE12602B5BB28D113B77E275D952EEFCA9111F921B
+C8AC69D314A324B93B03C97DE285958FB13FCF5D4B2F9E855CE45345ED0D8E39
+5615922765C0CAA288969E056D81CAF8012E4DF8FC543DC0FD54E1B32529C054
+862911D2061DAE5AC576AF98809CACF6A86405B0A83DBBE664917625AD60143D
+A22DDD3FC2419A51285E8774E5BE1632EC12E29B6805E54B168B1C003385A74D
+385865C5A46F79692553AF2792C11DBB6911E3FDB8CF3DD6F55D31E6C1F86D3B
+19B86B8EAC47837594EF0EEB73D8EE06BB39B77A40E5C47752A314FD837F09BA
+5A84A5C73111B6AFD932B5B4A4E680428F4840AD627379E9E812730577AADE4F
+C96F1D16FB6D0BFA89779AA11708F81C9A5EEA31D608B2FA8898235219D82F81
+1162F1DB9E2A85F397653B8A57D9E36380A70543A1492D217323D69E42278594
+B7F54368880E22CD2E2F3BF701DA9CC29DE0C62AB31BCDAE82A2F695C98FEE90
+EECA21BA77D17298F7E2DE6F74544B53CB85638E239EF670172951CC203F37DD
+51471D4727E6FA2098076D9177EB995C676E21AC27AD84B90DF5620FD9952A6B
+637EA0337053F39A8101938A30F6B8E37D94D7FE31C980560519B6517155DED0
+A419B6D36CBEB64AF00518300C4AC1B9AD4336C7B099651AFC70D68C624DFB3B
+5A944675EA3ED1AE5FA7ADB63E5E0763F6BC4D4E83F8B1D1F355ACCB0F4869A0
+C29000EE68B8D3284D782874761908D83E461D247798A35BA1B4356C4869AAB2
+0263D440DFF69BF5ABE9362B1BFB8C5B6E6D8973AFDC4E76277104B8326EFE02
+B08A5D00A6FBF10413C2B8B3E2C1BFF9F235772014C39D48821097390F760062
+03B12B90A7C766E19E6BA87211D33F2AF5F921F7387E42246E71EBE0470C0A61
+2FBE7DC210AA55310FF8CAED5D089801DD513F6995F84D87CCCEC287B1A2E98C
+958C180C6434CAC5514B8E0BDB98FD47ECB991F7687EA48BC5348C48C6231793
+D6A6AF77ADD045C90876876BCDDA1CD33A64CC745FA39E924D6CB69A26501BAD
+34DFD096F155ADE23EDE1D17394F19D4DA037740556124BE10A1CF66EBFC7CD9
+093891E8C4C084B16B589A627B7807E2216E0E9E9E76E28AB4EB52E8121AB21B
+68EECA8901ACBAC21610C80BD3039902AB708A0C393EA723B8C0A42626C99BA9
+F7B4E369F4DF12F9D8F5747BED03ABF2292FBA592F614468CEBE74BC3BA016AA
+75CBD88BA886C0FCACACB6BB14B57CB27189B6716F58DADBA7F0D94D06CC3AB4
+41B9A6761B4F473624EB06346D2DD8C2F011BD9BD3BB17F9400E53083C924FAC
+38B5457E6E2653DADF8AE603A45761A198B0E1C03CFAB17CC01C38F3FA36B17F
+64720594133B6994483BAC49C252F44AB1A80729ADD3C4D7A8E866694B1549BC
+CE77C1F1B8287F515DED9B124AABF35EEA5761C8D86289882D9D77AFA73B4EA1
+1BD12F4AF1416F83F99F9F70FE1B43210ACE9E76C0E0137F2018B2E89543F1ED
+B2C35DDCA5D68EF1641463D7B8378D195BABC1880DC6592FA2429A4FBC4DEB7C
+67F1EAE1F0FCB79AD109EEF143B57C30CC105F65FDE1C80BAEA04282132BDA3C
+B48050A7267DEF7F3F48C2A83308B16320E15564171171F46EF2CDDB10AB209C
+4E7624373F4C6A49C566CE0B053667D12EFF5A434DDE23B32D0D3090318029CF
+BA8A095C50BCF1F6B0504DFCFB70752A9C68ECDD82FF949C2A17822C8E3DD91F
+15CF16B6CC6C8EF09178CC9111B5FA9D36278B47AA95D22D6959F7882B101F69
+435085BA043D7465E896C536867A71DD95B07486B0DD43061FE0D4AE86C3A476
+C37DDA978A549D60F17212C0F0BFD0E5EE4881686280AD90FC6090C0207FCED9
+C7D395F9BFC34591D1E73A55E7257753D2603D51B0861C11810A6B2129349511
+B5AA65AA3F1191066CF75BA36421A46844BD99861F9F9F241C67979D51676C57
+6D5F9C816AFAEFD24650564D8E2553A8535A2D4CC4C4C5C6D6108A9DA0D5AD91
+EDA473D9BA0AA3313D850C749B3CB733FBB7B09670C6716B9856B9773D2EC073
+036471AA470AA02DEFC681ED77568508AB6A3BACB821B77E90A94CAC3CFF436A
+C554E78721F7D5B16D70D131ABE62B6AB3CC687B1483A7A63A9563F4675295EA
+78D3B2E73D08AC9056FAB8478A6F41E24E8904CD0C65C420C1808ED22BD4A42F
+F86A163D8F8C4FA298AE20293367796E5793A8F129676795ADDA26C3BAAEA0AF
+2A4A2525B889D45ACEA22616BFEC7FCDF17927C5233FBD73C3C58005C843D5BF
+7AEE8D1E6B17FE8ABC9BC16A7FACCD47D6B6CEC06016D29AFC9F9706C3109225
+FE7DD2CB5B7262A2D209B3AC7AE7B5999E5143D1ADE6F9FF55848878F5F1ED01
+879C62BC67853FC360480DEEB73694A6AE25C6B2B3DE9456D6FA372DF603352C
+EF498A11D4DF3C441A685AE00CBAEACF603B40527A7BC5102F082B508A869498
+EE2741017999C5FD551668615F32AECF6008B8FFED14BA461B081C290C3E6C2C
+9D11342D1F4FAC2037FAA555BC213857242D72D971081B89ADFCF15B26E6229A
+A753773EB8F05BD2C47A53B6B98D6017848D115FF490F1270ED226A588E5A714
+96E737DC61DF729881023D566D428DC4F534F2619326C2C2489D492E6483A322
+4F93FD9A2582CFF04CB92BB84012A1217049A8EE353FEA7F6560A7EA329A0E16
+52A6687FC795F57D0C9A1C54522D18B9A18BBF8A62CC93FAE2B98820149956BF
+C8D0069F84CDDBF10D87E2459E0FA6DF4475AEB659F0C89DD652F25ACC69F19E
+9095CE72CE55263AB14F075FB439D5FBF36BF5088312DEE7556E12C4852ADB07
+FB99279C9465BF097FBAFAB6A381002ED4DE4797C61478E5A002C97E89BA81BA
+2B9A50EA5A1FEE07DC11DB4611A1A7D24F97004E2867A807C508F17FCDD11E9B
+91C9B72B563D938B38F392827AC23D05E414A3A1FE24199FE833CBF776E19E3C
+9408C38FE23BC89E8310D49F866F0B6034564BB21238733744ACC21D6FEECCD7
+E4AA08F377CFC6CBF44CAC348CABB8FE34A6C51F5AF753F0C67B1A18F524681F
+5E8053D13E460F59DEDC7EEF52CBB402C9E6A7988D07FA1928B1383D350E8A1E
+E06C576D198E12BB84C1CBCE4F47A93B569DF88BDC595E5A182E65418CAE4399
+E2B76AD0A8A073BAFAB2DEA554065E5A3191809390E23FD16842391B03DEC4B1
+3FC005A829DDEE375728DC73B3E2DB901F97491B827D688B949A07F78B10535F
+662143A7D1772FA1DBCDACBE5F3527424DC787D6B404CE9714179DC10BBFBD9F
+C3E3DB0771D2C47D54473C15587342E8FE9190A6FB55CC0EDA521C73ED249D2C
+927DD0BB776BF83492CD40DFA5514BA3986629B3B7B50BAC7351408A958CBBF3
+8999CB05A73F244C1230391D6F89AF2A7ECC1755DA94C389305916CEBD43B233
+88CBAFEFBFEDD7D54D00A9B88E1A391AAB951283F1BCD9E3AAED990F53BFA5BF
+054DEBA1607F632C1F3D7AF66881600F84EC835F86663C12F02F084D419C8E1D
+AA77E6B3B627BC87A41A4B42B1744F410AD59846D246592AA804212BA2F38867
+A63E5EC0F71239113A3BB841435B80CAECA592F499755906A5F4D8255F003C9B
+7E6CE9A6AD93B41203C0912D4603B39A9071F7473A5265958BEE4CBD6BA5870E
+DE6307F6F32DE57998276F2D24D335305C3297C7B7CC3079845DF71FE32D093C
+545FAA90BE7119E3AB68E116EF3814521FEBD30724A1A3BE3217367D4221C1A6
+3A042C0475116EC08951E0D413148A91B123166C569E22BCA891EBF87D6A2F5D
+C1E36AE701F0F5D78E7428AA902F84EE66A142D8B39A5F7EA6A85E1A000DD273
+86A48E2E0A836679744003B9825DC3F511512954C01A877F540C02B775B2D692
+174EA54BF7C32F0DC93CC6E85EE8AAD0CD80B0D634B60B49DC1D0E55334C3470
+54907964F269EA9840FC8F3D8A72DCD773ECC2EA26CD64D42693FCD2AD8EEDA5
+7814FB8BF232E547D6783DAA15880758BC4ECD8C339C5C9E7A5847605C01B417
+5B378E0F1263B72D03AD49EE0D2893ECAD56F672B33E1652A664E87C4771B4CB
+D3555B66D9E8B85B118881EAE0F13DD82A2F7F7A74CF71D23A7D26A6FA19C2BB
+36D0B4E38237CA9D6268C55D9CCA670CF3AC1B045B30E500EB34D7406EA82B0E
+0E876235556505BFAFDE2808C85978A2D04F50BF7FDF608670AA846A4434E80B
+7960737EB91FAA6BA784E34FC21AE584696A87250DE7D95B315D57FF73E15FB4
+D124CBFFFD7A44764687B44F0470162CBCBD649F92C1FB7038D0A298CF33FECF
+8F9554259983FE727592E644CCD32C3D821C1994D924813AA9AB08BC233BE5B4
+50DC095DAC33090D55B8B7D7C0D2261D45A923366E0595F57AA2B7D7D8DC22CE
+F7557E20252030E3C6D3980EE05700A59B8D620CF89083D6FF2E3E78E118B144
+C92E2A6CDF33613CB1F74B59A6EA27E60C0156E287D05C5FA5EFCE3D4E864C39
+CD87D636EE736F32A091F019B8E22429F50DCCA8B563A128F52C4157019DDC9B
+415524A99224287848685E353D92BE01BA661CE857F2C6172C81F5674044AE90
+5ECDA6944F31B45F77434DCB074658847C1AE424418E9E05611D016416891078
+2225718C42E8CCC730F90CACC6B97116BF183800AF69F01922856FF6B9B280C5
+110DA3BA79447ABFE1B341AF90FDD05DC5FEBE1F2E7130A3D50AC68502C433DB
+534ADD5562E501CE0A212E855F1AC4FC1FF8D5379C9701F8DB718194CD20462D
+155A814F7AE8F20892C88B0587EB52455276439C728B8AFB4ED2A51F1DB7F9B9
+D35663433BE337AD1714E0B1488B062CF24D1763CB9AEE6E6C393ADDE0EDDD91
+17EE00E06C4935F05F29CB4461DF3CEDEDCDC6434823CAD2B26FD43C24F6885B
+37D6A22717992E0807E48E7876DA766F1B1CF264C70D0A3369B1F88D8E22023E
+D1E58747EBE1AE3C32120E87FE87B76F7CED4053270A7E89AEDED4B6F24A5E8D
+4F0801E430D2104D6700AC07A211CBBC57A43AB300C631564453D826C5E97BDC
+3ED112A498A8398051492FE1B7A227AC36B18BDE5124A6650DFCE5846717DC0C
+2C388CC394AB0C398CEA7FC7FD2D7CA461D238AA6A0E22E1E507220225057BF5
+C76EE2E2B58C865B229EF8C8A89F18355678937A3720C6A4C150CA3C124CEA6B
+AA1862B18FA26E7F9E082D5F620B17FE5E5E1F85303D1719AAE1C3CA1B9AD700
+05DBE2CBB952C6E97BFC43FE8AE9EEFD5B6CDF601C65761526A0AEEAB5CA3A91
+FF7C201BCE050030628D6933DDE2F17C7A9D3D8C0E985004A1E21EEBDF785E8E
+68EA0444A0C05DEEE046BB18A79C7ECFCBF5702B834459B78787D2A3513A0A39
+6CA03C25E2623919FA2B
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
@@ -2310,7 +2314,7 @@
 @start /Fa 242[61 13[{ TeXbbad153fEncoding ReEncodeFont }1
 49.8132 /CMSY6 rf /Fb 134[32 1[43 32 34 24 24 24 1[34
 30 34 50 18 32 1[18 34 30 19 27 34 27 34 30 13[34 44
-1[41 47 1[54 3[22 1[47 39 2[43 1[45 6[18 2[30 1[30 1[30
+1[41 47 1[54 3[22 1[47 39 2[43 1[45 6[18 1[30 2[30 1[30
 30 30 30 1[18 21 18 44[{ TeXf7b6d320Encoding ReEncodeFont }42
 49.8132 /CMR6 rf /Fc 135[33 3[24 29 4[40 58 18 2[22 36
 2[33 36 33 33 36 50[22 46[{ TeX74afc74cEncoding ReEncodeFont }14
@@ -2334,7 +2338,7 @@
 rf /Fi 133[31 37 37 51 37 39 27 28 28 37 39 35 39 59
 20 37 22 20 39 35 22 31 39 31 39 35 2[35 1[35 3[53 72
 53 53 51 39 52 1[48 55 53 65 44 55 1[25 53 55 46 48 54
-51 50 53 6[20 2[35 3[35 35 35 1[35 20 24 20 55 35 27
+51 50 53 6[20 1[35 4[35 35 35 1[35 20 24 20 55 35 27
 27 20 2[35 59 35 20 19[39 39 41 11[{ TeXf7b6d320Encoding ReEncodeFont }
 71 66.4176 /CMR8 rf /Fj 141[57 2[69 76 6[69 42 63 76
 61 1[67 14[103 2[103 1[131 9[99 16[69 69 1[69 1[46 3[53
@@ -2350,7 +2354,7 @@
 %%Page: 1 1
 TeXDict begin @landscape 1 0 bop -169 -357 a Fj(Org-Mo)t(de)45
 b(Reference)h(Card)g(\(1/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h
-(3.17\))-150 -42 y Fh(Getting)37 b(Started)-150 125 y
+(3.18\))-150 -42 y Fh(Getting)37 b(Started)-150 125 y
 Fi(Put)24 b(the)h(follo)n(wing)e(in)g(y)n(our)h Fg(~/.emacs)931
 102 y Ff(1)-150 199 y Fg(\(autoload)38 b('org-mode)g("org")e("Org)h
 (mode")g(t\))-150 268 y(\(autoload)h('org-diary)g("org")f("Org)f(mode)h
@@ -2565,7 +2569,7 @@
 %%Page: 2 2
 TeXDict begin @landscape 2 1 bop -169 -357 a Fj(Org-Mo)t(de)45
 b(Reference)h(Card)g(\(2/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h
-(3.17\))-150 -36 y Fh(Timeline)37 b(and)g(Agenda)-150
+(3.18\))-150 -36 y Fh(Timeline)37 b(and)g(Agenda)-150
 120 y Fi(sho)n(w)24 b(timeline)f(of)h(curren)n(t)g(org)f(\014le)458
 b Fg(C-c)36 b(C-r)-150 190 y Fi(...)30 b(include)24 b(past)h(dates)793
 b Fg(C-u)36 b(C-c)g(C-r)-150 288 y Fi(add)24 b(curren)n(t)g(\014le)g
@@ -2625,75 +2629,80 @@
 y Fi(quit)d(agenda,)h(remo)n(v)n(e)f(agenda)h(bu\013er)376
 b Fg(q)-150 4118 y Fi(exit)24 b(agenda,)h(remo)n(v)n(e)f(all)f(agenda)i
 (bu\013ers)258 b Fg(x)2046 -364 y Fh(Exp)s(orting)2046
--208 y Fi(Exp)r(orting)32 b(creates)g(\014les)g(with)f(extensions)i
+-229 y Fi(Exp)r(orting)32 b(creates)g(\014les)g(with)f(extensions)i
 Fc(.txt)k Fi(and)32 b Fc(.html)38 b Fi(in)31 b(the)2046
--139 y(curren)n(t)24 b(directory)-6 b(.)2046 -40 y(exp)r(ort)25
+-159 y(curren)n(t)24 b(directory)-6 b(.)2046 -66 y(exp)r(ort)25
 b(as)e(ASCI)r(I)i(\014le)820 b Fg(C-c)36 b(C-x)g(a)2046
-29 y Fi(exp)r(ort)25 b(visible)e(text)i(only)e(\(e.g.)32
+3 y Fi(exp)r(ort)25 b(visible)e(text)i(only)e(\(e.g.)32
 b(for)23 b(prin)n(ting\))152 b Fg(C-c)36 b(C-x)g(v)2046
-99 y Fi(exp)r(ort)25 b(as)e(HTML)g(\014le)804 b Fg(C-c)36
-b(C-x)g(h)2046 169 y Fi(exp)r(ort)25 b(as)e(HTML)g(and)h(op)r(en)h(in)e
-(bro)n(wser)266 b Fg(C-c)36 b(C-x)g(b)2046 239 y Fi(pre\014x)24
+73 y Fi(exp)r(ort)25 b(as)e(HTML)g(\014le)804 b Fg(C-c)36
+b(C-x)g(h)2046 143 y Fi(exp)r(ort)25 b(as)e(HTML)g(and)h(op)r(en)h(in)e
+(bro)n(wser)266 b Fg(C-c)36 b(C-x)g(b)2046 213 y Fi(pre\014x)24
 b(arg)g(sets)g(n)n(b.)31 b(of)23 b(headline)i(lev)n(els,)e(e.g.)182
-b Fg(C-3)36 b(C-c)g(C-x)g(h)2046 337 y Fi(insert)23 b(template)j(of)d
-(exp)r(ort)h(options)423 b Fg(C-c)36 b(C-x)g(t)2046 435
-y Fi(toggle)25 b(\014xed)f(width)g(for)f(en)n(try)h(or)g(region)295
-b Fg(C-c)36 b(:)2046 534 y Fd(HTML)27 b(formatting)2046
-632 y Fi(mak)n(e)d(w)n(ords)g Fd(b)r(old)897 b Fg(*bold*)2046
-702 y Fi(mak)n(e)24 b(w)n(ords)g Fc(italic)898 b Fg(/italic/)2046
-771 y Fi(mak)n(e)24 b(w)n(ords)g(underlined)p 2433 784
-326 4 v 728 w Fg(_underlined_)2046 841 y Fi(sub-)f(and)i(sup)r
-(erscripts)781 b Fg(x^3,)36 b(J_dust)2046 911 y Fi(T)2085
-925 y(E)2124 911 y(X-lik)n(e)23 b(macros)940 b Fg(\\alpha,)37
-b(\\to)2046 981 y Fi(t)n(yp)r(eset)25 b(lines)f(in)f(\014xed)h(width)g
-(fon)n(t)460 b Fg(start)37 b(with)f(:)2046 1050 y Fi(tables)24
+b Fg(C-3)36 b(C-c)g(C-x)g(h)2046 306 y Fi(exp)r(ort)25
+b(as)e(iCalendar)h(\014le)718 b Fg(C-c)36 b(C-x)g(i)2046
+376 y Fi(exp)r(ort)25 b(all)e(agenda)i(\014les)e(as)h(iCalendar)f
+(\014les)212 b Fg(C-c)36 b(C-x)g(C-i)2046 445 y Fi(compine)24
+b(all)f(agenda)j(\014les)d(to)h(single)g(iCal)f(\014le)161
+b Fg(C-c)36 b(C-x)g(C-c)2046 538 y Fi(insert)23 b(template)j(of)d(exp)r
+(ort)h(options)423 b Fg(C-c)36 b(C-x)g(t)2046 632 y Fi(toggle)25
+b(\014xed)f(width)g(for)f(en)n(try)h(or)g(region)295
+b Fg(C-c)36 b(:)2046 725 y Fd(HTML)27 b(formatting)2046
+818 y Fi(mak)n(e)d(w)n(ords)g Fd(b)r(old)897 b Fg(*bold*)2046
+888 y Fi(mak)n(e)24 b(w)n(ords)g Fc(italic)898 b Fg(/italic/)2046
+957 y Fi(mak)n(e)24 b(w)n(ords)g(underlined)p 2433 970
+326 4 v 728 w Fg(_underlined_)2046 1027 y Fi(sub-)f(and)i(sup)r
+(erscripts)781 b Fg(x^3,)36 b(J_dust)2046 1097 y Fi(T)2085
+1111 y(E)2124 1097 y(X-lik)n(e)23 b(macros)940 b Fg(\\alpha,)37
+b(\\to)2046 1167 y Fi(t)n(yp)r(eset)25 b(lines)f(in)f(\014xed)h(width)g
+(fon)n(t)460 b Fg(start)37 b(with)f(:)2046 1236 y Fi(tables)24
 b(are)g(exp)r(orted)h(as)f(HTML)f(tables)321 b Fg(start)37
-b(with)f(|)2046 1120 y Fi(links)23 b(b)r(ecome)i(HTML)e(links)640
-b Fg(http:...)73 b(etc)2046 1190 y Fi(include)24 b(h)n(tml)g(tags)905
-b Fg(@<b>...@</b>)2046 1288 y Fd(Exp)r(ort)27 b(options)2046
-1386 y Fi(Include)20 b(additional)f(information)g(for)f(exp)r(ort)i(b)n
-(y)f(putting)h(these)g(an)n(y-)2046 1456 y(where)g(in)f(the)h(org)g
+b(with)f(|)2046 1306 y Fi(links)23 b(b)r(ecome)i(HTML)e(links)640
+b Fg(http:...)73 b(etc)2046 1376 y Fi(include)24 b(h)n(tml)g(tags)905
+b Fg(@<b>...@</b>)2046 1469 y Fd(Exp)r(ort)27 b(options)2046
+1562 y Fi(Include)20 b(additional)f(information)g(for)f(exp)r(ort)i(b)n
+(y)f(putting)h(these)g(an)n(y-)2046 1632 y(where)g(in)f(the)h(org)g
 (\014le.)30 b(Use)19 b Fg(M-TAB)i Fi(completion)f(to)g(mak)n(e)h(sure)e
-(to)h(get)2046 1526 y(the)i(righ)n(t)e(k)n(eyw)n(ords.)31
+(to)h(get)2046 1702 y(the)i(righ)n(t)e(k)n(eyw)n(ords.)31
 b Fg(M-TAB)22 b Fi(again)f(just)g(after)g(k)n(eyw)n(ord)g(is)g
-(complete)2046 1596 y(inserts)i(examples.)2046 1694 y(the)i(title)f(to)
-g(b)r(e)g(sho)n(wn)797 b Fg(#+TITLE:)2046 1764 y Fi(the)25
-b(author)1115 b Fg(#+AUTHOR:)2046 1834 y Fi(authors)24
-b(email)f(address)769 b Fg(#+EMAIL:)2046 1903 y Fi(language)25
-b(co)r(de)g(for)e(h)n(tml)732 b Fg(#+LANGUAGE:)2046 1973
+(complete)2046 1771 y(inserts)i(examples.)2046 1864 y(the)i(title)f(to)
+g(b)r(e)g(sho)n(wn)797 b Fg(#+TITLE:)2046 1934 y Fi(the)25
+b(author)1115 b Fg(#+AUTHOR:)2046 2004 y Fi(authors)24
+b(email)f(address)769 b Fg(#+EMAIL:)2046 2074 y Fi(language)25
+b(co)r(de)g(for)e(h)n(tml)732 b Fg(#+LANGUAGE:)2046 2143
 y Fi(free)23 b(text)i(description)f(of)g(\014le)626 b
-Fg(#+TEXT:)2046 2043 y Fi(...)30 b(whic)n(h)24 b(can)g(carry)g(o)n(v)n
-(er)g(m)n(ultiple)f(lines)271 b Fg(#+TEXT:)2046 2112
+Fg(#+TEXT:)2046 2213 y Fi(...)30 b(whic)n(h)24 b(can)g(carry)g(o)n(v)n
+(er)g(m)n(ultiple)f(lines)271 b Fg(#+TEXT:)2046 2283
 y Fi(settings)25 b(for)d(the)j(exp)r(ort)f(pro)r(cess)g(-)f(see)h(b)r
-(elo)n(w)145 b Fg(#+OPTIONS:)2046 2211 y Fd(Settings)26
-b(for)h(the)g(OPTIONS)i(line)2046 2309 y Fi(set)24 b(n)n(um)n(b)r(er)g
+(elo)n(w)145 b Fg(#+OPTIONS:)2046 2376 y Fd(Settings)26
+b(for)h(the)g(OPTIONS)i(line)2046 2469 y Fi(set)24 b(n)n(um)n(b)r(er)g
 (of)f(headline)i(lev)n(els)e(for)g(exp)r(ort)219 b Fg(H:2)2046
-2379 y Fi(turn)24 b(on/o\013)h(section)f(n)n(um)n(b)r(ers)577
-b Fg(num:t)2046 2449 y Fi(turn)24 b(on/o\013)h(table)f(of)f(con)n(ten)n
-(ts)564 b Fg(toc:t)2046 2518 y Fi(turn)24 b(on/o\013)h(linebreak)f
-(preserv)l(ation)395 b Fg(\\n:nil)2046 2588 y Fi(turn)24
+2539 y Fi(turn)24 b(on/o\013)h(section)f(n)n(um)n(b)r(ers)577
+b Fg(num:t)2046 2609 y Fi(turn)24 b(on/o\013)h(table)f(of)f(con)n(ten)n
+(ts)564 b Fg(toc:t)2046 2678 y Fi(turn)24 b(on/o\013)h(linebreak)f
+(preserv)l(ation)395 b Fg(\\n:nil)2046 2748 y Fi(turn)24
 b(on/o\013)h(quoted)g(h)n(tml)f(tags)548 b Fg(@:t)2046
-2658 y Fi(turn)24 b(on/o\013)h(\014xed)f(width)g(sections)464
-b Fg(::t)2046 2728 y Fi(turn)24 b(on/o\013)h(tables)893
-b Fg(|:t)2046 2797 y Fi(turn)20 b(on/o\013)h(T)2444 2811
-y(E)2484 2797 y(X)e(syn)n(tax)i(for)f(sub/sup)r(er-scripts)70
-b Fg(^:t)2046 2867 y Fi(turn)24 b(on/o\013)h(emphasised)f(text)578
-b Fg(*:nil)2046 2937 y Fi(turn)24 b(on/o\013)h(T)2452
-2951 y(E)2491 2937 y(X)e(macros)703 b Fg(TeX:t)2046 3035
+2818 y Fi(turn)24 b(on/o\013)h(\014xed)f(width)g(sections)464
+b Fg(::t)2046 2888 y Fi(turn)24 b(on/o\013)h(tables)893
+b Fg(|:t)2046 2957 y Fi(turn)20 b(on/o\013)h(T)2444 2971
+y(E)2484 2957 y(X)e(syn)n(tax)i(for)f(sub/sup)r(er-scripts)70
+b Fg(^:t)2046 3027 y Fi(turn)24 b(on/o\013)h(emphasised)f(text)578
+b Fg(*:nil)2046 3097 y Fi(turn)24 b(on/o\013)h(T)2452
+3111 y(E)2491 3097 y(X)e(macros)703 b Fg(TeX:t)2046 3190
 y Fd(Commen)n(ts:)35 b(T)-7 b(ext)27 b(not)f(b)r(eing)i(exp)r(orted)
-2046 3133 y Fi(T)-6 b(ext)22 b(b)r(efore)f(the)h(\014rst)f(headline)g
+2046 3283 y Fi(T)-6 b(ext)22 b(b)r(efore)f(the)h(\014rst)f(headline)g
 (is)f(not)i(considered)g(part)f(of)g(the)h(do)r(c-)2046
-3203 y(umen)n(t)29 b(and)f(is)f(therefore)h(nev)n(er)g(exp)r(orted.)44
-b(Lines)28 b(starting)g(with)g Fg(#)2046 3273 y Fi(are)j(commen)n(ts)g
+3353 y(umen)n(t)29 b(and)f(is)f(therefore)h(nev)n(er)g(exp)r(orted.)44
+b(Lines)28 b(starting)g(with)g Fg(#)2046 3423 y Fi(are)j(commen)n(ts)g
 (and)h(are)e(not)i(exp)r(orted.)53 b(Subtrees)32 b(whose)f(header)2046
-3343 y(starts)24 b(with)g(COMMENT)e(are)i(nev)n(er)g(exp)r(orted.)2046
-3441 y(toggle)h(COMMENT)d(k)n(eyw)n(ord)j(on)f(en)n(try)285
-b Fg(C-c)36 b(;)2046 3644 y Fh(Completion)2046 3800 y
+3492 y(starts)24 b(with)g(COMMENT)e(are)i(nev)n(er)g(exp)r(orted.)2046
+3585 y(toggle)h(COMMENT)d(k)n(eyw)n(ord)j(on)f(en)n(try)285
+b Fg(C-c)36 b(;)2046 3763 y Fh(Completion)2046 3897 y
 Fi(In-bu\013er)e(completion)g(completes)h(TODO)d(k)n(eyw)n(ords)i(at)g
-(headline)2046 3869 y(start,)28 b(T)-6 b(eX)27 b(macros)g(after)g(\\)p
+(headline)2046 3967 y(start,)28 b(T)-6 b(eX)27 b(macros)g(after)g(\\)p
 Fg(\\)p Fi(",)h(option)g(k)n(eyw)n(ords)g(after)f(\\)p
-Fg(#-)p Fi(",)h(and)2046 3939 y(dictionary)c(w)n(ords)g(elsewhere.)2046
-4037 y(Complete)h(w)n(ord)e(at)h(p)r(oin)n(t)702 b Fg(M-TAB)4242
+Fg(#-)p Fi(",)h(and)2046 4037 y(dictionary)c(w)n(ords)g(elsewhere.)2046
+4130 y(Complete)h(w)n(ord)e(at)h(p)r(oin)n(t)702 b Fg(M-TAB)4242
 -364 y Fh(Calendar)36 b(and)h(Diary)i(In)m(tegration)4242
 -208 y Fi(T)-6 b(o)35 b(include)g(en)n(tries)g(from)f(the)i(Emacs)f
 (diary)g(in)f(y)n(our)h(Org-mo)r(de)4242 -139 y(agenda:)4242
@@ -2751,7 +2760,7 @@
 Fg(org-CUA-compatibility)p Fi(.)4535 3770 y Fb(Cop)n(yrigh)n(t)4838
 3768 y(c)4821 3770 y Fa(\015)d Fb(2005)i(F)-5 b(ree)21
 b(Soft)n(w)n(are)i(F)-5 b(oundation,)20 b(Inc.)4795 3826
-y(v3.17)h(for)h(Org-Mo)r(de)e(3.17,)i(2005)4912 3882
+y(v3.18)h(for)h(Org-Mo)r(de)e(3.18,)i(2005)4912 3882
 y(Author:)k(Philip)18 b(Ro)r(ok)n(e)4473 3937 y(based)j(on)g(refcard)g
 (design)g(and)f(format)i(b)n(y)f(Stephen)f(Gildea)4242
 4022 y(P)n(ermission)28 b(is)f(gran)n(ted)i(to)f(mak)n(e)h(and)e
--- a/etc/orgcard.tex	Wed Dec 28 07:22:57 2005 +0000
+++ b/etc/orgcard.tex	Mon Jan 16 06:59:21 2006 +0000
@@ -1,4 +1,4 @@
-% Reference Card for Org Mode 3.17
+% Reference Card for Org Mode 3.18
 %
 %**start of header
 \newcount\columnsperpage
@@ -58,7 +58,7 @@
 % Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik
 % for their many good ideas.
 
-\def\orgversionnumber{3.17}
+\def\orgversionnumber{3.18}
 \def\year{2005}
 
 \def\shortcopyrightnotice{\vskip 1ex plus 2 fill
@@ -590,6 +590,10 @@
 \key{export as HTML and open in browser}{C-c C-x b}
 \key{prefix arg sets nb. of headline levels, e.g.}{C-3 C-c C-x h}
 
+\key{export as iCalendar file}{C-c C-x i}
+\key{export all agenda files as iCalendar files}{C-c C-x C-i}
+\key{compine all agenda files to single iCal file}{C-c C-x C-c}
+
 \key{insert template of export options}{C-c C-x t}
 
 \key{toggle fixed width for entry or region}{C-c :}
@@ -731,3 +735,7 @@
 
 % arch-tag: 139f6750-5cfc-49ca-92b5-237fe5795290
 
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
--- a/lib-src/ChangeLog	Wed Dec 28 07:22:57 2005 +0000
+++ b/lib-src/ChangeLog	Mon Jan 16 06:59:21 2006 +0000
@@ -1,3 +1,8 @@
+2005-10-20  Olli Savia  <ops@iki.fi>  (tiny change)
+
+	* etags.c: Undef STDIN if defined.  (LynxOS defines it in system
+	header files.)
+
 2005-09-27  Francesco Potort,Al(B  <pot@gnu.org>
 
 	* etags.c: Preliminary Forth support.
--- a/lib-src/etags.c	Wed Dec 28 07:22:57 2005 +0000
+++ b/lib-src/etags.c	Mon Jan 16 06:59:21 2006 +0000
@@ -477,6 +477,11 @@
 static bool ignoreindent;	/* -I: ignore indentation in C */
 static bool packages_only;	/* --packages-only: in Ada, only tag packages*/
 
+/* STDIN is defined in LynxOS system headers */
+#ifdef STDIN
+#undef STDIN
+#endif
+
 #define STDIN 0x1001		/* returned by getopt_long on --parse-stdin */
 static bool parsing_stdin;	/* --parse-stdin used */
 
--- a/lisp/ChangeLog	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/ChangeLog	Mon Jan 16 06:59:21 2006 +0000
@@ -1,8 +1,595 @@
+2005-10-22  Kenichi Handa  <handa@m17n.org>
+
+	* tar-mode.el (tar-extract): Be sure to call
+	find-operation-coding-system if set-auto-coding doesn't find a
+	coding system.
+
+2005-10-22  Kim F. Storm  <storm@cua.dk>
+
+	* image.el (image-type-header-regexps): Rename from image-type-regexps.
+	Change users.
+	(image-type-file-name-regexps): New defconst.
+	(image-type-from-data): Simplify loop.
+	(image-type-from-buffer): New defun.
+	(image-type-from-file-header): Use it instead of image-type-from-data.
+	Use image-search-load-path instead of only looking in data-directory.
+	(image-type-from-file-name): New defun.
+	(image-search-load-path): Make PATH arg optional, default to image-load-path.
+	Change `pathname' to `filename'.
+
+2005-10-21  Richard M. Stallman  <rms@gnu.org>
+
+	* textmodes/texinfo.el (texinfo-mode): Set sentence-end-base.
+
+	* textmodes/paragraphs.el (sentence-end-base): New variable.
+	(sentence-end): Use sentence-end-base.
+
+2005-10-21  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* font-lock.el (font-lock-default-fontify-region): Check the multiline
+	property independently from the font-lock-multiline variable.
+
+2005-10-21  Richard M. Stallman  <rms@gnu.org>
+
+	* emacs-lisp/find-func.el (find-library-name): Doc fix.
+
+	* startup.el (command-line): Convert library names
+	in `load-history' to absolute file names.
+
+	* subr.el (symbol-file): Doc fix.
+
+	* loadhist.el (file-loadhist-lookup): Call locate-library
+	instead of find-library-name.  Don't try converting
+	abs file names to library names, since load-history no longer
+	has library names in it.
+	(file-dependents, file-provides, file-requires): Doc fixes.
+
+2005-10-21  Juri Linkov  <juri@jurta.org>
+
+	* progmodes/etags.el (tags-table-mode): New function.
+	(tags-verify-table): Replace initialize-new-tags-table with
+	tags-table-mode.
+
+	* desktop.el (desktop-buffers-not-to-save): Remove TAGS from the
+	default value.
+	(desktop-modes-not-to-save): Add tags-table-mode to the
+	default value.
+
+	* info.el (Info-index-next): Add total number of index
+	alternatives to the message.
+
+	* textmodes/fill.el (fill-nobreak-p): Fix first two rules to skip
+	backward only space (instead of space and period) before looking
+	at sentence end.
+
+	* simple.el (set-variable): Use user-variable-p instead of symbolp.
+	Add the old variable value as 4th default-value arg of read-string.
+
+2005-10-21  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* cus-face.el (custom-declare-face): Make face from X resources
+	also on Mac.
+
+	* disp-table.el (standard-display-g1, standard-display-graphic):
+	Refuse to use string glyphs also on Mac.
+	(standard-display-european): Don't set terminal coding system also
+	on Mac.
+
+	* frame.el (display-screens): Use x-display-screens also on Mac.
+
+2005-10-21  Romain Francoise  <romain@orebokech.com>
+
+	* net/rcirc.el: Now part of GNU Emacs.  Update FSF's address.
+
+2005-10-21  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* progmodes/sh-script.el (sh-font-lock-syntactic-keywords): Make $@
+	and $? into sexps.
+
+	* font-lock.el (font-lock-compile-keywords): Add a help-echo to the
+	warning face on open-paren-in-column-0.
+
+	* emacs-lisp/syntax.el (syntax-ppss-flush-cache): Fix corner
+	boundary case.  Fix typo.
+	Suggested by Martin Rudalics <rudalics@gmx.at>.
+
+2005-10-21  Carsten Dominik  <dominik@science.uva.nl>
+
+	* textmodes/org.el: (org-combined-agenda-icalendar-file)
+	(org-icalendar-include-todo, org-icalendar-combined-name): New options.
+	(org-export-icalendar-this-file)
+	(org-export-icalendar-all-agenda-files)
+	(org-export-icalendar-combine-agenda-files): New commands.
+	(org-export-icalendar, org-print-icalendar-entries)
+	(org-start-icalendar-file, org-finish-icalendar-file)
+	(org-ical-ts-to-string): New functions.
+	(org-read-date, org-goto-calendar)
+	(org-agenda-goto-calendar): Inhibit displaying diary entries by
+	call to `calendar'.
+	(orgtbl-setup): Remove the :keys arguments from the menu description.
+	(org-after-save-iCalendar-file-hook): New variable.
+
+2005-10-21  Kenichi Handa  <handa@m17n.org>
+
+	* language/vietnamese.el (tcvn-5712): Make it an alias of
+	vietnamese-tcvn coding-system.
+
+2005-10-20  Michael Albinus  <michael.albinus@gmx.de>
+
+	* net/ange-ftp.el (ange-ftp-date-regexp): Handle also the case no
+	group id is given.
+
+2005-10-20  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* progmodes/sh-script.el (sh-escaped-line-re): New var.
+	(sh-here-doc-open-re, sh-font-lock-close-heredoc): Use it.
+	(sh-font-lock-open-heredoc): Try to properly handle heredoc starters
+	whose line is either continued or ends with a comment.
+
+2005-10-20  Romain Francoise  <romain@orebokech.com>
+
+	* net/rcirc.el (with-rcirc-process-buffer): Move above its first user.
+
+	* replace.el (occur-engine): Add follow-link property.
+
+	* font-core.el (font-lock-mode): Doc fix.
+
+2005-10-20  Richard M. Stallman  <rms@gnu.org>
+
+	* net/rcirc.el: New file.
+
+2005-10-20  Bryan Henderson  <bryanh@giraffe-data.com>  (tiny change)
+
+	* term.el (term-term-name): Initialize to "eterm-color".
+
+2005-10-20  Ken Manheimer  <ken.manheimer@gmail.com>
+
+	* allout.el: Add autoloads of crypt++ and mailcrypt routines, all
+	for encryption functionality.
+	Move allout customization subgroup from `editing' to `outlines' group.
+	Fix commentary 'keywords' to legitimate ones.
+	Update author info (using my current email address, obscurified).
+	(allout-encrypt-string, allout-encryption-produce-work-buffer)
+	(allout-encrypted-topic-p, allout-encrypted-text-type)
+	(allout-mc-activate-passwd, allout-create-encryption-key-verifier)
+	(allout-situate-encryption-key-verifier)
+	(allout-get-encryption-key-verifier, allout-verify-key)
+	(allout-next-topic-pending-encryption)
+	(allout-encrypt-decrypted, allout-encrypted-type-prefix): New funcs.
+	(outline-topic-encryption-bullet, outline-default-encryption-scheme)
+	(outline-key-verifier-handling, outline-key-hint-handling)
+	(outline-encrypt-unencrypted-on-saves): New defcustoms.
+	(allout-file-key-verifier-string, allout-encryption-scheme)
+	(allout-key-verifier-string, allout-key-hint-string)
+	(allout-after-save-decrypt): New variables.
+	(allout-write-file-hook-handler, allout-auto-save-hook-handler)
+	(allout-after-saves-handler): New hook functions.
+	(allout-post-command-business): Do allout-after-save-decrypt.
+	(allout-enable-file-variable-adjustment): Custom var to enable
+	mechanism for adding and adjusting settings of Emacs file variables.
+	(allout-adjust-file-variable, allout-file-vars-section-data):
+	New functions, implement the mechanism.
+	(outlineify-sticky): Use the file vars mechanism.
+	(allout-inhibit-protection, allout-during-write-cue)
+	(allout-override-protect, allout-before-change-protect): Remove.
+	(allout-flag-region, allout-open-topic): Adjust	read-only text.
+	(allout-open-line-not-read-only): Add to facilitate read-only
+	text based protection.
+	(allout-kill-line): Revise to adjust read-only text, clue the
+	user about the inhibition.
+	(allout-unprotected): Use unwind-protect.
+	(allout-shift-in, allout-shift-out): Disallow manually shifting a
+	topic deeper than the offspring depth of the previous topic -
+	avoiding confusing "containment discontinuities".
+	(allout-reindent-bodies): Fix retention of body relative hanging
+	indent during promotion of collapsed bodies.
+	(allout-open-topic): Make it easy to open new topic with same
+	bullet as current topic - topic creation functions provided with
+	any universal argument provokes now prompt for bullet, defaulting
+	to the bullet of the previous topic.
+	(allout-plain-bullets-string, allout-distinctive-bullets-string):
+	Plain bullet alternates '.' period and ',' comma only.  All other
+	bullets are relegated to special status (but customizable).
+	(allout-end-of-entry): Rename from 'allout-end-of-current-entry
+	since it actually operates w.r.t. most immediately containing
+	entry, visible or not.
+	(allout-hide-current-entry, allout-show-current-entry): Use the
+	revised version.
+	(allout-old-expose-topic): Solidify deprecation.
+	(allout-end-of-subtree): Add so we can span concealed as well
+	as visible topics.
+	(allout-end-of-current-subtree): Use `allout-end-of-subtree'.
+	(allout-end-of-current-heading): Tweak to just respect the first line.
+	(allout-get-body-text): Add.
+	(allout-ascend-to-depth, allout-ascend): Position at end of prefix
+	when invoked interactively.
+	(allout-up-current-level): Use `interactive-p'.
+	(allout-mode, allout-init): Miscellaneous docstring and
+	operational refinements, as well as hookups of new encryption stuff.
+	(allout-beginning-of-current-entry): Now works as advertised.
+	(allout-end-of-current-entry): Remove of superfluous allout-show-entry.
+	(allout-isearch-rectification): Refine condition for isearching.
+	(allout-isearch-abort, allout-enwrap-isearch)
+	(allout-flag-region, my-region-active-p): Relocate some macros.
+	(allout-title): Fallback title is '(buffer-name)', not
+	non-existing '(current-buffer-name)'.
+	(subst-char-in-string): Define if absent (for some XEmacs versions).
+
+2005-10-20  Jari Aalto  <jari.aalto@cante.net>
+
+	* mail/sendmail.el (mail-setup-hook, mail-aliases)
+	(mail-yank-prefix, mail-indentation-spaces, mail-yank-hooks)
+	(mail-citation-prefix-regexp, mail-signature-file)
+	(mail-default-headers, mail-bury-selects-summary)
+	(mail-send-nonascii): Add autoload cookies.
+
+2005-10-20  Emanuele Giaquinta  <emanuele.giaquinta@gmail.com>  (tiny change)
+
+	* frame.el (blink-cursor-mode): Add `mac' to the list of
+	window-system's that support blinking cursor.
+
+2005-10-20  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* textmodes/org.el (org-level-color-stars-only): Fix typo in docstring.
+
+2005-10-20  Eli Zaretskii  <eliz@gnu.org>
+
+	* makefile.w32-in ($(lisp)/mh-e/mh-loaddefs.el):
+	Bind find-file-suppress-same-file-warnings to t, to avoid warnings due
+	to different drive letter case in D:/foo/bar.el vs d:/foo/bar.el.
+
+2005-10-20  Kim F. Storm  <storm@cua.dk>
+
+	* ido.el (ido-is-tramp-root): Simplify regexp matching tramp root.
+	(ido-set-current-directory): Don't add / after final @.
+	(ido-file-name-all-completions-1): Adapt to fixed tramp completion.
+	Explicitly handle ange-ftp completion oddities.
+	(ido-make-file-list): Don't rotate list at tramp root to avoid
+	triggering tramp file handler for expand-file-name via get-file-buffer.
+
+2005-10-19  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* simple.el (eval-expression-print-format): Put the char-string
+	inside the parenthesis, like the other alternative notations.
+	(kill-new): Use push.
+	(copy-to-buffer): Use with-current-buffer.
+	(completion-setup-function): Simplify.
+	(minibuffer-local-must-match-map): Don't add redundant bindings which
+	are already present in its parent (minibuffer-local-completion-map).
+
+	* savehist.el (savehist-coding-system): Revert to checking XEmacs.
+
+2005-10-19  Jay Belanger  <belanger@truman.edu>
+
+	* calc/calc-units.el (math-standard-units): Add units, adjust
+	symbols and update values.
+	(math-unit-prefixes):  Add more prefixes.
+
+2005-10-19  Romain Francoise  <romain@orebokech.com>
+
+	* bookmark.el (bookmark-menu-heading): New face.
+	(bookmark-bmenu-list): Use it.
+	Don't fiddle with `baud-rate' at top-level.
+
+2005-10-18  Chong Yidong  <cyd@stupidchicken.com>
+
+	* image.el (create-image, find-image): Mention max-image-size in
+	docstring.
+
+2005-10-18  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* savehist.el (savehist-load): Revert to checking XEmacs.
+
+	* textmodes/conf-mode.el: Don't use font-lock-defaults-alist.
+	Various docstring and line-width fixups.
+	(conf-mode): Use cond.
+	Set font-lock-defaults.  Don't set comment-use-syntax.
+
+2005-10-18  David Ponce  <david@dponce.com>
+
+	* tree-widget.el (tree-widget-button-click): New function.
+	(tree-widget-button-keymap): Use it.
+
+2005-10-18  Romain Francoise  <romain@orebokech.com>
+
+	* bookmark.el (bookmark-insert-location, bookmark-bmenu-list)
+	(bookmark-bmenu-hide-filenames): Add follow-link property.
+	Improve help-echo text.
+
+	* ffap.el (find-file-at-point): Doc fix.
+
+2005-10-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* mouse.el (mouse-set-region): Don't do sit-for on a mac frame.
+
+2005-10-18  Masatake YAMATO  <jet@gyve.org>
+
+	Install to the CVS repository what I forgot to install in my
+	2005-10-16 changes.
+
+	* progmodes/python.el (python-complete-symbol): Pass the common
+	prefix substring of completion to `display-completion-list'.
+
+	* textmodes/org.el (org-complete): Ditto.
+
+2005-10-18  Masatake YAMATO  <jet@gyve.org>
+
+	Fix a bug reported by Sven Joachim <sven_joachim@web.de>.
+
+	* woman.el (WoMan-xref-man-page): New button type derived
+	from `Man-abstract-xref-man-page'.
+	(woman-mode): Pass `WoMan-xref-man-page' to `Man-highlight-references'.
+
+	* man.el (Man-abstract-xref-man-page): New button type.
+	(Man-xref-man-page): Make it derived from `Man-abstract-xref-man-page'.
+	(Man-highlight-references): Add new optional argument `xref-man-type'.
+
+2005-10-18  Nick Roberts  <nickrob@snap.net.nz>
+
+	* progmodes/gud.el (gud-menu-map): Correct condition for fringe.
+
+2005-10-17  Chong Yidong  <cyd@stupidchicken.com>
+
+	* cus-edit.el (Custom-move-and-invoke): Delete.
+	(custom-mode-map): Bind mouse-1 to widget-move-and-invoke.
+
+	* wid-edit.el (widget-move-and-invoke): New function, from
+	Custom-move-and-invoke.
+
+2005-10-17  Bill Wohler  <wohler@newt.com>
+
+	Move all remaining images from lisp/toolbar to etc/images, move
+	lisp/toolbar/tool-bar to lisp and "delete" lisp/toolbar.  Place
+	the low resolution images in their own directory (low-color).
+
+	* toolbar/attach.*, toolbar/cancel.*, toolbar/close.*,
+	* toolbar/copy.*, toolbar/cut.*, toolbar/diropen.*, toolbar/exit.*:
+	* toolbar/help.*, toolbar/home.*, toolbar/index.*, toolbar/info.*:
+	* toolbar/mail.*, toolbar/new.*, toolbar/open.*, toolbar/paste.*:
+	* toolbar/preferences.*, toolbar/print.*, toolbar/save.*:
+	* toolbar/saveas.*, toolbar/search.*, toolbar/search-replace.*:
+	* toolbar/spell.*, toolbar/undo.*: Move to etc/images.
+
+	* toolbar/lc-copy.*: Move to etc/images/low-color/copy.*.
+	* toolbar/lc-cut.*: Move to etc/images/low-color/cut.*.
+	* toolbar/lc-help.*: Move to etc/images/low-color/help.*.
+	* toolbar/lc-home.*: Move to etc/images/low-color/home.*.
+	* toolbar/lc-index.*: Move to etc/images/low-color/index.*.
+	* toolbar/lc-new.*: Move to etc/images/low-color/new.*.
+	* toolbar/lc-open.*: Move to etc/images/low-color/open.*.
+	* toolbar/lc-paste.*: Move to etc/images/low-color/paste.*.
+	* toolbar/lc-preferences.*: Move to etc/images/low-color/preferences.*.
+	* toolbar/lc-print.*: Move to etc/images/low-color/print.*.
+	* toolbar/lc-save.*: Move to etc/images/low-color/save.*.
+	* toolbar/lc-saveas.*: Move to etc/images/low-color/saveas.*.
+	* toolbar/lc-search.*: Move to etc/images/low-color/search.*.
+	* toolbar/lc-spell.*: Move to etc/images/low-color/spell.*.
+	* toolbar/lc-undo.*: Move to etc/images/low-color/undo.*.
+
+	To conform with convention, replace the underscore (_) in the
+	following image names with dash (-) or (/) as appropriate.
+
+	* toolbar/back_arrow.*: Move to etc/images/back-arrow.*.
+	* toolbar/fld_open.*: Move to etc/images/fld-open.*.
+	* toolbar/fwd_arrow.*: Move to etc/images/fwd-arrow.*.
+	* toolbar/jump_to.*: Move to etc/images/jump-to.*.
+	* toolbar/left_arrow.*: Move to etc/images/left-arrow.*.
+	* toolbar/right_arrow.*: Move to etc/images/right-arrow.*.
+	* toolbar/up_arrow.*: Move to etc/images/up-arrow.*.
+	* toolbar/lc-back_arrow.*: Move to etc/images/low-color/back-arrow.*.
+	* toolbar/lc-fwd_arrow.*: Move to etc/images/low-color/fwd-arrow.*.
+	* toolbar/lc-jump_to.*: Move to etc/images/low-color/jump-to.*.
+	* toolbar/lc-left_arrow.*: Move to etc/images/low-color/left-arrow.*.
+	* toolbar/lc-right_arrow.*: Move to etc/images/low-color/right-arrow.*.
+	* toolbar/lc-up_arrow.*: Move to etc/images/low-color/up-arrow.*.
+	* toolbar/mail_compose.*: Move to etc/images/mail/compose.*.
+	* toolbar/mail_send.*: Move to etc/images/mail/send.*.
+
+	* info.el (info-tool-bar-map): Replace underscores in image names
+	with dashes.
+
+	* makefile.w32-in (WINS): Remove toolbar.
+
+	* menu-bar.el: Replace toolbar/tool-bar.el with tool-bar.el in comment.
+
+	* tool-bar.el: Move to lisp from toolbar.  Now that
+	toolbar is empty, it should be deleted when folks run "cvs up -P".
+
+2005-10-18  Jay Belanger  <belanger@truman.edu>
+
+	* calc/calc-store.el (calc-store-into): Get the proper variable name
+	to display in message.
+
+2005-10-18  Nick Roberts  <nickrob@snap.net.nz>
+
+	* progmodes/gdb-ui.el (gdb-var-create-handler): Make watch
+	expressions display in speedbar for all buffers when debugging.
+	(gdb-speedbar-expand-node): Ensure node contraction is always updated.
+
+	* speedbar.el (speedbar-set-mode-line-format): Indent properly.
+	(speedbar-insert-button, speedbar-make-button):
+	Use add-text-properties.
+	(speedbar-update-localized-contents)
+	(speedbar-update-directory-contents)
+	(speedbar-update-special-contents): Use dolist.
+	(speedbar-buffer-easymenu-definition): Add a menu separator.
+
+2005-10-17  Jason Rumney  <jasonr@gnu.org>
+
+	* makefile.w32-in: Use $(lisp) consistently.
+	(pre-mh-loaddefs.el-SH, pre-mh-loaddefs.el-CMD): New targets
+	for shell specific generation of mh-autoloads.
+
+2005-10-17  Richard M. Stallman  <rms@gnu.org>
+
+	* textmodes/tex-mode.el (tex-font-lock-keywords-2): Undo prev change.
+
+2005-10-17  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* jit-lock.el (jit-lock-fontify-now):
+	Move jit-lock-context-unfontify-pos to avoid wasted work.
+
+2005-10-17  Michael Albinus  <michael.albinus@gmx.de>
+
+	* net/tramp.el (tramp-completion-mode): New defvar.  Used in
+	`tramp-completion-mode' for checking if we are in completion mode.
+	(tramp-completion-handle-file-name-all-completions): Reorder code
+	in order to complete for file names only in case there are no
+	method/user/host completions.  This is necessary for cooperation
+	with ido.  Reported by Kim F. Storm <storm@cua.dk>.
+
+2005-10-16  Chong Yidong  <cyd@stupidchicken.com>
+
+	* longlines.el (longlines-search-forward)
+	(longlines-search-backward): Match any number of spaces.
+
+2005-10-16  Thien-Thi Nguyen  <ttn@gnu.org>
+
+	* diff-mode.el (diff-mode): Doc fix.
+
+2005-10-16  David Reitter <david.reitter@gmail.com>
+
+	* mail/sendmail.el (send-mail-function): Use mailclient-send-it
+	as default on darwin and windows systems.
+
+2005-10-16  Sven Joachim  <svenjoac@gmx.de>  (tiny change)
+
+	* arc-mode.el (archive-zip-extract): Doc fix.
+
+2005-10-16  Romain Francoise  <romain@orebokech.com>
+
+	* mouse.el (mouse-1-click-follows-link): Doc fix.
+
+2005-10-16  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* savehist.el: Don't require CL at runtime.
+	(savehist-xemacs): Remove.
+	(savehist-coding-system): Use utf-8 if present, regardless of religion.
+	(savehist-no-conversion): Use (featurep 'xemacs).
+	(savehist-load): Check existence of start-itimer rather than XEmacs.
+	Use an idle timer.
+	(savehist-process-for-saving): Replace use of CL funs `subseq' and
+	`delete-if-not'.
+
+2005-10-16  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* savehist.el: Newer version.
+	(savehist-autosave-interval, savehist-coding-system, savehist-timer)
+	(savehist-last-checksum, savehist-no-conversion): New vars.
+	(savehist-autosave, savehist-process-for-saving, savehist-printable):
+	New functions.
+	(savehist-load, savehist-save): Use them.
+	(savehist-delimit): Remove.
+
+2005-10-16  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* progmodes/compile.el (compilation-goto-locus): Display the
+	compilation buffer first and the source buffer second, in case they're
+	in overlapping frames.  Don't raise the compilation frame if it was the
+	selected window upon entry.  Pass the `other-window' arg to
+	pop-to-buffer.
+
+	* info.el (Info-fontify-node): Use dolist.
+	Change add-text-properties to put-text-property.
+
+2005-10-16  Roland Winkler  <Roland.Winkler@physik.uni-erlangen.de>
+
+	* textmodes/bibtex.el (bibtex-font-lock-url): Catch when point past
+	bound of search.
+
+2005-10-16  Masatake YAMATO  <jet@gyve.org>
+
+	* dabbrev.el (dabbrev-completion): Pass the common
+	prefix substring of completion to `display-completion-list'.
+
+	* filecache.el (file-cache-minibuffer-complete)
+	(file-cache-complete): Ditto.
+
+	* tempo.el (tempo-display-completions): Ditto.
+
+	* wid-edit.el (widget-file-complete, widget-color-complete): Ditto.
+
+	* emacs-lisp/lisp.el (lisp-complete-symbol): Ditto.
+
+	* eshell/em-hist.el (eshell-list-history): Ditto.
+
+	* mail/mailabbrev.el (mail-abbrev-complete-alias): Ditto.
+
+	* mail/mailalias.el (mail-complete): Ditto.
+
+	* progmodes/etags.el (complete-tag): Ditto.
+
+	* progmodes/make-mode.el (makefile-complete): Ditto.
+
+	* progmodes/meta-mode.el (meta-complete-symbol): Ditto.
+
+	* progmodes/octave-mod.el (octave-complete-symbol): Ditto.
+
+	* progmodes/pascal.el (pascal-complete-word)
+	(pascal-show-completions): Ditto.
+
+	* textmodes/bibtex.el (bibtex-complete-internal): Ditto.
+
+	* simple.el (completion-common-substring): New variable.
+	(completion-setup-function): Use `completion-common-substring'
+	to put faces.
+
+2005-10-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* term/mac-win.el: Apply 2005-10-09 change for term/x-win.el.
+	(x-get-selection, mac-select-convert-to-string): Convert from/to
+	UTF-16 clipboard data as in native byte order, no BOM.
+
+2005-10-16  Nick Roberts  <nickrob@snap.net.nz>
+
+	* progmodes/gud.el (gud-tool-bar-map): Rename the images
+	appropriately (gud/next, gud/nexti, gud/step, gud/stepi).
+	(gud-sentinel): Use speedbar-frame to check for speedbar.
+
+2005-10-15  Richard M. Stallman  <rms@gnu.org>
+
+	* savehist.el: New file.
+
+2005-10-14  Karl Chen  <quarl@cs.berkeley.edu>
+
+	* textmodes/tex-mode.el (tex-font-lock-keywords-2):
+	Fix bug in \bf fontification.
+
+2005-10-15  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* pcvs.el (cvs-edit-log-files): New var.
+	(cvs-mode-edit-log): New arg `file'.
+	(cvs-edit-log-minor-wrap): Don't set the ignore-marks property.
+	Instead force the use of the original file and nothing else.
+	(cvs-edit-log-filelist): Don't use the cvs-mode-* function unless
+	the cvs-minor-wrap-function is set.
+	(cvs-do-edit-log): Obey the vars set in cvs-edit-log-minor-wrap.
+
+2005-10-14  Bill Wohler  <wohler@newt.com>
+
+	* toolbar/gud-break.*: Moved to etc/images/gud/break.*.
+	* toolbar/gud-cont.*: Moved to etc/images/gud/cont.*.
+	* toolbar/gud-down.*: Moved to etc/images/gud/down.*.
+	* toolbar/gud-finish.*: Moved to etc/images/gud/finish.*.
+	* toolbar/gud-ni.*: Moved to etc/images/gud/ni.*.
+	* toolbar/gud-n.*: Moved to etc/images/gud/n.*.
+	* toolbar/gud-print.*: Moved to etc/images/gud/print.*.
+	* toolbar/gud-pstar.*: Moved to etc/images/gud/pstar.*.
+	* toolbar/gud-remove.*: Moved to etc/images/gud/remove.*.
+	* toolbar/gud-run.*: Moved to etc/images/gud/run.*.
+	* toolbar/gud-si.*: Moved to etc/images/gud/si.*.
+	* toolbar/gud-s.*: Moved to etc/images/gud/s.*.
+	* toolbar/gud-until.*: Moved to etc/images/gud/until.*.
+	* toolbar/gud-up.*: Moved to etc/images/gud/up.*.
+	* toolbar/gud-watch.*: Moved to etc/images/gud/watch.*.
+
+	* progmodes/gud.el (gud-tool-bar-map): Rename the images
+	appropriately (for example, gud-break to gud/break).
+
 2005-10-14  Chong Yidong  <cyd@stupidchicken.com>
 
 	* longlines.el (longlinges-search-function)
-	(longlines-search-forward, longlines-search-backward): New
-	functions.
+	(longlines-search-forward, longlines-search-backward): New functions.
 	(longlines-mode): Set isearch-search-fun-function to
 	longlinges-search-function.
 
@@ -45,6 +632,11 @@
 	Handle the case that ucs-mule-to-mule-unicode translates a character to
 	ASCII (usually for IPA characters).
 
+2005-10-12  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* info.el (Info-fontify-node): Don't be fooled by a lone "...".
+	Don't hide the underline of titles if font-lock-mode is disabled.
+
 2005-10-12  Bill Wohler  <wohler@newt.com>
 
 	* makefile.w32-in (MH-E-SRC): New. Used by mh-autoloads.
@@ -10075,8 +10667,8 @@
 	minibuffer-with-setup-hook (which breaks turning on/off
 	file-name-shadow-mode while in the prompt).
 
-	* complete.el (PC-read-include-file-name-internal): Use
-	test-completion.
+	* complete.el (PC-read-include-file-name-internal):
+	Use test-completion.
 
 2005-03-28  Luc Teirlinck  <teirllm@auburn.edu>
 
--- a/lisp/ChangeLog.10	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/ChangeLog.10	Mon Jan 16 06:59:21 2006 +0000
@@ -14639,7 +14639,7 @@
 	* font-lock.el (font-lock-defaults, font-lock-defaults-alist)
 	(font-lock-multiline, font-lock-fontified, font-lock-mode)
 	(turn-on-font-lock, font-lock-add-keywords, global-font-lock-mode)
-	(font-lock-global-modes): Moved to font-core.el.
+	(font-lock-global-modes): Move to font-core.el.
 	(font-lock-set-defaults-1): Partially moved to font-core.el.
 
 	* font-core.el: New file, with functions taken from font-lock.el.
--- a/lisp/allout.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/allout.el	Mon Jan 16 06:59:21 2006 +0000
@@ -3,10 +3,10 @@
 ;; Copyright (C) 1992, 1993, 1994, 2001, 2002, 2003, 2004,
 ;;   2005 Free Software Foundation, Inc.
 
-;; Author: Ken Manheimer <klm@zope.com>
-;; Maintainer: Ken Manheimer <klm@zope.com>
+;; Author: Ken Manheimer <ken dot manheimer at gmail dot com>
+;; Maintainer: Ken Manheimer <ken dot manheimer at gmail dot com>
 ;; Created: Dec 1991 - first release to usenet
-;; Keywords: outlines mode wp languages
+;; Keywords: outlines wp languages
 
 ;; This file is part of GNU Emacs.
 
@@ -34,43 +34,68 @@
 ;; programming languages.  (For an example, see the allout code
 ;; itself, which is organized in ;; an outline framework.)
 ;;
-;; In addition to outline navigation and exposure, allout includes:
+;; Some features:
 ;;
-;;  - topic-oriented repositioning, cut, and paste
-;;  - integral outline exposure-layout
-;;  - incremental search with dynamic exposure and reconcealment of hidden text
+;;  - classic outline-mode topic-oriented navigation and exposure adjustment
+;;  - topic-oriented editing including coherent topic and subtopic
+;;    creation, promotion, demotion, cut/paste across depths, etc
+;;  - incremental search with dynamic exposure and reconcealment of text
+;;  - customizable bullet format enbles programming-language specific
+;;    outlining, for ultimate code-folding editing.  (allout code itself is
+;;    formatted as an outline - do ESC-x eval-current-buffer in allout.el
+;;    to try it out.)
+;;  - configurable per-file initial exposure settings
+;;  - symmetric-key and key-pair topic encryption, plus reliable key
+;;    verification and user-supplied hint maintenance.  (see
+;;    allout-toggle-current-subtree-encryption docstring.)
 ;;  - automatic topic-number maintenance
-;;  - "Hot-spot" operation, for single-keystroke maneuvering and
-;;    exposure control.  (See the `allout-mode' docstring.)
+;;  - "hot-spot" operation, for single-keystroke maneuvering and
+;;    exposure control (see the allout-mode docstring)
+;;  - easy rendering of exposed portions into numbered, latex, indented, etc
+;;    outline styles
 ;;
-;; and many other features.
+;; and more.
 ;;
 ;; The outline menubar additions provide quick reference to many of
-;; the features, and see the docstring of the function `allout-init'
-;; for instructions on priming your Emacs session for automatic
-;; activation of `allout-mode'.
+;; the features, and see the docstring of the variable `allout-init'
+;; for instructions on priming your emacs session for automatic
+;; activation of allout-mode.
 ;;
 ;; See the docstring of the variables `allout-layout' and
 ;; `allout-auto-activation' for details on automatic activation of
-;; allout `allout-mode' as a minor mode.  (It has changed since allout
+;; `allout-mode' as a minor mode.  (It has changed since allout
 ;; 3.x, for those of you that depend on the old method.)
 ;;
 ;; Note - the lines beginning with `;;;_' are outline topic headers.
 ;;        Just `ESC-x eval-current-buffer' to give it a whirl.
 
-;; Ken Manheimer	klm@zope.com
+;; ken manheimer (ken dot manheimer at gmail dot com)
 
 ;;; Code:
 
 ;;;_* Provide
+;(provide 'outline)
 (provide 'allout)
 
+;;;_* Dependency autoloads
+(eval-when-compile 'cl)                 ; otherwise, flet compilation fouls
+(autoload 'crypt-encrypt-buffer "crypt++")
+(setq-default crypt-encryption-type 'gpg)
+
+(autoload 'mc-encrypt "mailcrypt"
+  "*Encrypt the current buffer")
+(autoload 'mc-activate-passwd "mailcrypt"
+  "Activate the passphrase matching ID, using PROMPT for a prompt.
+Return the passphrase.  If PROMPT is nil, only return value if cached.")
+(autoload 'mc-gpg-process-region "mc-gpg")
+(autoload 'mc-dectivate-passwd "mailcrypt"
+  "*Deactivate the passphrase cache.")
+
 ;;;_* USER CUSTOMIZATION VARIABLES:
 (defgroup allout nil
   "Extensive outline mode for use alone and with other modes."
   :prefix "allout-"
-  :group 'editing
-  :version "22.1")
+  :group 'outlines)
 
 ;;;_ + Layout, Mode, and Topic Header Configuration
 
@@ -111,8 +136,8 @@
 
 A list value specifies a default layout for the current buffer, to be
 applied upon activation of `allout-mode'.  Any non-nil value will
-automatically trigger `allout-mode', provided `allout-init'
-has been called to enable it.
+automatically trigger `allout-mode' \(provided `allout-init' has been called
+to enable this behavior).
 
 See the docstring for `allout-init' for details on setting up for
 auto-mode-activation, and for `allout-expose-topic' for the format of
@@ -171,7 +196,7 @@
   :group 'allout)
 (make-variable-buffer-local 'allout-primary-bullet)
 ;;;_  = allout-plain-bullets-string
-(defcustom allout-plain-bullets-string ".:,;"
+(defcustom allout-plain-bullets-string ".,"
   "*The bullets normally used in outline topic prefixes.
 
 See `allout-distinctive-bullets-string' for the other kind of
@@ -185,7 +210,7 @@
   :group 'allout)
 (make-variable-buffer-local 'allout-plain-bullets-string)
 ;;;_  = allout-distinctive-bullets-string
-(defcustom allout-distinctive-bullets-string "*+-=>([{}&!?#%\"X@$~_\\"
+(defcustom allout-distinctive-bullets-string "*+-=>()[{}&!?#%\"X@$~_\\:;^"
   "*Persistent outline header bullets used to distinguish special topics.
 
 These bullets are used to distinguish topics from the run-of-the-mill
@@ -198,12 +223,13 @@
  `?' question topics
  `\(' parenthetic comment \(with a matching close paren inside)
  `[' meta-note \(with a matching close ] inside)
- `\"' a quote
+ `\"' a quotation
  `=' value settings
  `~' \"more or less\"
-
-... just for example.  (`#' typically has a special meaning to the
-software, according to the value of `allout-numbered-bullet'.)
+ `^' see above
+
+ ... for example.  (`#' typically has a special meaning to the software,
+according to the value of `allout-numbered-bullet'.)
 
 See `allout-plain-bullets-string' for the selection of
 alternating bullets.
@@ -337,7 +363,6 @@
 Set this var to the bullet you want to use for file cross-references."
   :type '(choice (const nil) string)
   :group 'allout)
-
 ;;;_  = allout-presentation-padding
 (defcustom allout-presentation-padding 2
   "*Presentation-format white-space padding factor, for greater indent."
@@ -381,7 +406,7 @@
   :type 'string
   :group 'allout)
 ;;;_  - allout-title
-(defcustom allout-title '(or buffer-file-name (current-buffer-name))
+(defcustom allout-title '(or buffer-file-name (buffer-name))
   "*Expression to be evaluated to determine the title for LaTeX
 formatted copy."
   :type 'sexp
@@ -397,6 +422,94 @@
   :type 'string
   :group 'allout)
 
+;;;_ + Topic encryption
+;;;_  = allout-topic-encryption-bullet
+(defcustom allout-topic-encryption-bullet "~"
+  "*Bullet signifying encryption of the entry's body."
+  :type '(choice (const nil) string)
+  :group 'allout)
+;;;_  = allout-default-encryption-scheme
+(defcustom allout-default-encryption-scheme 'mc-scheme-gpg
+  "*Default allout outline topic encryption mode.
+
+See mailcrypt variable `mc-schemes' and mailcrypt docs for encryption schemes."
+  :type 'symbol
+  :group 'allout)
+;;;_  = allout-key-verifier-handling
+(defcustom allout-key-verifier-handling 'situate
+  "*Dictate outline encryption key verifier handling.
+
+The key verifier is string associated with a file that is encrypted with
+the file's current symmetric encryption key.  It is used, if present, to
+confirm that the key entered by the user is the same as the established
+one, or explicitly presenting the user with the choice to go with a
+new key when a difference is encountered.
+
+The range of values are:
+
+ situate - include key verifier string as text in the file's local-vars
+           section
+ transient - establish the value as a variable in the file's buffer, but
+             don't preserve it as a file variable.
+ disabled - don't establish or do verification.
+
+See the docstring for the `allout-enable-file-variable-adjustment'
+variable for details about allout ajustment of file variables."
+  :type '(choice (const situate)
+                 (const transient)
+                 (const disabled))
+  :group 'allout)
+(make-variable-buffer-local 'allout-key-verifier-handling)
+;;;_  = allout-key-hint-handling
+(defcustom allout-key-hint-handling 'always
+  "*Dictate outline encryption key reminder handling:
+
+ always - always show reminder when prompting
+ needed - show reminder on key entry failure
+ manage - never present reminder, but still manage a file-var entry for it
+ disabled - don't even manage the file variable entry
+
+See the docstring for the `allout-enable-file-variable-adjustment'
+variable for details about allout ajustment of file variables."
+  :type '(choice (const always)
+                 (const needed)
+                 (const manage)
+                 (const disabled))
+  :group 'allout)
+(make-variable-buffer-local 'allout-key-hint-handling)
+;;;_  = allout-encrypt-unencrypted-on-saves
+(defcustom allout-encrypt-unencrypted-on-saves 'except-current
+  "*When saving, should topics pending encryption be encrypted?
+
+The idea is to prevent file-system exposure of any un-encrypted stuff, and
+mostly covers both deliberate file writes and auto-saves.
+
+ - Yes: encrypt all topics pending encryption, even if it's the one
+        currently being edited.  \(In that case, the currently edited topic
+        will be automatically decrypted before any user interaction, so they
+        can continue editing but the copy on the file system will be
+        encrypted.)
+        Auto-saves will use the \"All except current topic\" mode if this
+        one is selected, to avoid practical difficulties - see below.
+ - All except current topic: skip the topic currently being edited, even if
+       it's pending encryption.  This may expose the current topic on the
+       file sytem, but avoids the nuisance of prompts for the encryption
+       key in the middle of editing for, eg, autosaves.
+       This mode is used for auto-saves for both this option and \"Yes\".
+ - No: leave it to the user to encrypt any unencrypted topics.
+
+For practical reasons, auto-saves always use the 'except-current policy
+when auto-encryption is enabled.  \(Otherwise, spurious key prompts and
+unavoidable timing collisions are too disruptive.)  If security for a file
+requires that even the current topic is never auto-saved in the clear,
+disable auto-saves for that file."
+
+  :type '(choice (const :tag "Yes" t)
+                 (const :tag "All except current topic" except-current)
+                 (const :tag "No" nil))
+  :group 'allout)
+(make-variable-buffer-local 'allout-encrypt-unencrypted-on-saves)
+
 ;;;_ + Miscellaneous customization
 
 ;;;_  = allout-command-prefix
@@ -422,13 +535,15 @@
         ("\C-f" allout-forward-current-level)
         ("\C-b" allout-backward-current-level)
         ("\C-a" allout-beginning-of-current-entry)
-        ("\C-e" allout-end-of-current-entry)
+        ("\C-e" allout-end-of-entry)
                                         ; Exposure commands:
         ("\C-i" allout-show-children)
         ("\C-s" allout-show-current-subtree)
         ("\C-h" allout-hide-current-subtree)
+        ("h" allout-hide-current-subtree)
         ("\C-o" allout-show-current-entry)
         ("!" allout-show-all)
+        ("x" allout-toggle-current-subtree-encryption)
                                         ; Alteration commands:
         (" " allout-open-sibtopic)
         ("." allout-open-subtopic)
@@ -489,19 +604,22 @@
 
 (make-variable-buffer-local 'allout-reindent-bodies)
 
-;;;_  = allout-inhibit-protection
-(defcustom allout-inhibit-protection nil
-  "*Non-nil disables warnings and confirmation-checks for concealed-text edits.
-
-Outline mode uses Emacs change-triggered functions to detect unruly
-changes to concealed regions.  Set this var non-nil to disable the
-protection, potentially increasing text-entry responsiveness a bit.
-
-This var takes effect at `allout-mode' activation, so you may have to
-deactivate and then reactivate the mode if you want to toggle the
-behavior."
+;;;_  = allout-enable-file-variable-adjustment
+(defcustom allout-enable-file-variable-adjustment t
+  "*If non-nil, some allout outline actions can edit Emacs file variables text.
+
+This can range from changes to existing entries, addition of new ones,
+and creation of a new local variables section when necessary.
+
+Emacs file variables adjustments are also inhibited if `enable-local-variables'
+is nil.
+
+Operations potentially causing edits include allout encryption routines.
+See the docstring for `allout-toggle-current-subtree-encryption' for
+details."
   :type 'boolean
   :group 'allout)
+(make-variable-buffer-local 'allout-enable-file-variable-adjustment)
 
 ;;;_* CODE - no user customizations below.
 
@@ -728,7 +846,16 @@
 			      (car (cdr cell)))))))
 	    keymap-list)
     map))
-
+;;;_   = allout-prior-bindings - being deprecated.
+(defvar allout-prior-bindings nil
+  "Variable for use in V18, with allout-added-bindings, for
+resurrecting, on mode deactivation, bindings that existed before
+activation.  Being deprecated.")
+;;;_   = allout-added-bindings - being deprecated
+(defvar allout-added-bindings nil
+  "Variable for use in V18, with allout-prior-bindings, for
+resurrecting, on mode deactivation, bindings that existed before
+activation.  Being deprecated.")
 ;;;_  : Menu bar
 (defvar allout-mode-exposure-menu)
 (defvar allout-mode-editing-menu)
@@ -759,7 +886,11 @@
 		      ["Shift Topic Out" allout-shift-out t]
 		      ["Rebullet Topic" allout-rebullet-topic t]
 		      ["Rebullet Heading" allout-rebullet-current-heading t]
-		      ["Number Siblings" allout-number-siblings t]))
+		      ["Number Siblings" allout-number-siblings t]
+		      "----"
+                      ["Toggle Topic Encryption"
+                       allout-toggle-current-subtree-encryption
+                       (> (allout-current-depth) 1)]))
   (easy-menu-define allout-mode-navigation-menu
 		    allout-mode-map
 		    "Allout outline navigation menu."
@@ -775,7 +906,7 @@
 		      "----"
 		      ["Beginning of Entry"
 		       allout-beginning-of-current-entry t]
-		      ["End of Entry" allout-end-of-current-entry t]
+		      ["End of Entry" allout-end-of-entry t]
 		      ["End of Subtree" allout-end-of-current-subtree t]))
   (easy-menu-define allout-mode-misc-menu
 		    allout-mode-map
@@ -855,13 +986,6 @@
           (setq allout-mode-prior-settings rebuild)))))
   )
 ;;;_  : Mode-specific incidentals
-;;;_   = allout-during-write-cue nil
-(defvar allout-during-write-cue nil
-  "Used to inhibit outline change-protection during file write.
-
-See also `allout-post-command-business', `allout-write-file-hook',
-`allout-before-change-protect', and `allout-post-command-business'
-functions.")
 ;;;_   = allout-pre-was-isearching nil
 (defvar allout-pre-was-isearching nil
   "Cue for isearch-dynamic-exposure mechanism, implemented in
@@ -869,22 +993,28 @@
 (make-variable-buffer-local 'allout-pre-was-isearching)
 ;;;_   = allout-isearch-prior-pos nil
 (defvar allout-isearch-prior-pos nil
-  "Cue for isearch-dynamic-exposure tracking, used by `allout-isearch-expose'.")
+  "Cue for isearch-dynamic-exposure tracking, used by
+`allout-isearch-expose'.")
 (make-variable-buffer-local 'allout-isearch-prior-pos)
-;;;_   = allout-override-protect nil
-(defvar allout-override-protect nil
-  "Used in `allout-mode' for regulate of concealed-text protection mechanism.
-
-Allout outline mode regulates alteration of concealed text to protect
-against inadvertent, unnoticed changes.  This is for use by specific,
-native outline functions to temporarily override that protection.
-It's automatically reset to nil after every buffer modification.")
-(make-variable-buffer-local 'allout-override-protect)
+;;;_   = allout-isearch-did-quit
+(defvar allout-isearch-did-quit nil
+  "Distinguishes isearch conclusion and cancellation.
+
+Maintained by allout-isearch-abort \(which is wrapped around the real
+isearch-abort), and monitored by allout-isearch-expose for action.")
+(make-variable-buffer-local 'allout-isearch-did-quit)
 ;;;_   > allout-unprotected (expr)
-(defmacro allout-unprotected (expression)
-  "Evaluate EXPRESSION with `allout-override-protect' let-bound to t."
-  `(let ((allout-override-protect t))
-     ,expression))
+(defmacro allout-unprotected (expr)
+  "Enable internal outline operations to alter read-only text."
+  `(let ((was-inhibit-r-o inhibit-read-only))
+     (unwind-protect
+         (progn
+           (setq inhibit-read-only t)
+           ,expr)
+       (setq inhibit-read-only was-inhibit-r-o)
+       )
+     )
+  )
 ;;;_   = allout-undo-aggregation
 (defvar allout-undo-aggregation 30
   "Amount of successive self-insert actions to bunch together per undo.
@@ -897,14 +1027,109 @@
   "Horrible hack used to prevent invalid multiple triggering of outline
 mode from prop-line file-var activation.  Used by `allout-mode' function
 to track repeats.")
-;;;_   > allout-write-file-hook ()
-(defun allout-write-file-hook ()
-  "In `allout-mode', run as a `write-contents-functions' activity.
-
-Currently just sets `allout-during-write-cue', so outline change-protection
-knows to keep inactive during file write."
-  (setq allout-during-write-cue t)
-  nil)
+;;;_   = allout-file-key-verifier-string
+(defvar allout-file-key-verifier-string nil
+  "Name for use as a file variable for verifying encryption key across
+sessions.")
+(make-variable-buffer-local 'allout-file-key-verifier-string)
+;;;_   = allout-encryption-scheme
+(defvar allout-encryption-scheme nil
+  "*Allout outline topic encryption scheme pending for the current buffer.
+
+Intended as a file-specific (buffer local) setting, it defaults to the
+value of allout-default-encryption-scheme if nil.")
+(make-variable-buffer-local 'allout-encryption-scheme)
+;;;_   = allout-key-verifier-string
+(defvar allout-key-verifier-string nil
+  "Setting used to test solicited encryption keys against that already
+associated with a file.
+
+It consists of an encrypted random string useful only to verify that a key
+entered by the user is effective for decryption.  The key itself is \*not*
+recorded in the file anywhere, and the encrypted contents are random binary
+characters to avoid exposing greater susceptibility to search attacks.
+
+The verifier string is retained as an Emacs file variable, as well as in
+the emacs buffer state, if file variable adjustments are enabled.  See
+`allout-enable-file-variable-adjustment' for details about that.")
+(make-variable-buffer-local 'allout-key-verifier-string)
+(setq-default allout-key-verifier-string nil)
+;;;_   = allout-key-hint-string
+(defvar allout-key-hint-string ""
+  "Variable used to retain a reminder string for a file's encryption key.
+
+See the description of `allout-key-hint-handling' for details about how
+the reminder is deployed.
+
+The hint is retained as an Emacs file variable, as well as in the emacs buffer
+state, if file variable adjustments are enabled.  See
+`allout-enable-file-variable-adjustment' for details about that.")
+(make-variable-buffer-local 'allout-key-hint-string)
+(setq-default allout-key-hint-string "")
+;;;_   = allout-after-save-decrypt
+(defvar allout-after-save-decrypt nil
+  "Internal variable, is nil or has the value of two points:
+
+ - the location of a topic to be decrypted after saving is done
+ - where to situate the cursor after the decryption is performed
+
+This is used to decrypt the topic that was currently being edited, if it
+was encrypted automatically as part of a file write or autosave.")
+(make-variable-buffer-local 'allout-after-save-decrypt)
+;;;_   > allout-write-file-hook-handler ()
+(defun allout-write-file-hook-handler ()
+  "Implement `allout-encrypt-unencrypted-on-saves' policy for file writes."
+
+  (if (or (not (boundp 'allout-encrypt-unencrypted-on-saves))
+          (not allout-encrypt-unencrypted-on-saves))
+      nil
+    (let ((except-mark (and (equal allout-encrypt-unencrypted-on-saves
+                                   'except-current)
+                            (point-marker))))
+      (if (save-excursion (goto-char (point-min))
+                          (allout-next-topic-pending-encryption except-mark))
+          (progn
+            (message "auto-encrypting pending topics")
+            (sit-for 2)
+            (condition-case failure
+                (setq allout-after-save-decrypt
+                      (allout-encrypt-decrypted except-mark))
+              (error (progn
+                       (message
+                        "allout-write-file-hook-handler suppressing error %s"
+                        failure)
+                       (sit-for 2))))))
+      ))
+    nil)
+;;;_   > allout-auto-save-hook-handler ()
+(defun allout-auto-save-hook-handler ()
+  "Implement `allout-encrypt-unencrypted-on-saves' policy for auto saves."
+
+  (if  allout-encrypt-unencrypted-on-saves
+      ;; Always implement 'except-current policy when enabled.
+      (let ((allout-encrypt-unencrypted-on-saves 'except-current))
+        (allout-write-file-hook-handler))))
+;;;_   > allout-after-saves-handler ()
+(defun allout-after-saves-handler ()
+  "Decrypt topic encrypted for save, if it's currently being edited.
+
+Ie, if it was pending encryption and contained the point in its body before
+the save.
+
+We use values stored in `allout-after-save-decrypt' to locate the topic
+and the place for the cursor after the decryption is done."
+  (if (not (and (allout-mode-p)
+                (boundp 'allout-after-save-decrypt)
+                allout-after-save-decrypt))
+      t
+    (goto-char (car allout-after-save-decrypt))
+    (let ((was-modified (buffer-modified-p)))
+      (allout-toggle-current-subtree-encryption)
+      (if (not was-modified)
+          (set-buffer-modified-p nil)))
+    (goto-char (cadr allout-after-save-decrypt))
+    (setq allout-after-save-decrypt nil))
+  )
 
 ;;;_ #2 Mode activation
 ;;;_  = allout-mode
@@ -916,11 +1141,10 @@
   'allout-mode)
 ;;;_  = allout-explicitly-deactivated
 (defvar allout-explicitly-deactivated nil
-  "Non-nil if `allout-mode' was last deliberately deactivated.
+  "If t, `allout-mode's last deactivation was deliberate.
 So `allout-post-command-business' should not reactivate it...")
 (make-variable-buffer-local 'allout-explicitly-deactivated)
 ;;;_  > allout-init (&optional mode)
-;;;###autoload
 (defun allout-init (&optional mode)
   "Prime `allout-mode' to enable/disable auto-activation, wrt `allout-layout'.
 
@@ -939,9 +1163,9 @@
 the `allout-layout' variable.  (See `allout-layout' and
 `allout-expose-topic' docstrings for more details on auto layout).
 
-`allout-init' works by setting up (or removing)
-`allout-find-file-hook' in `find-file-hook', and giving
-`allout-auto-activation' a suitable setting.
+`allout-init' works by setting up (or removing) the `allout-mode'
+find-file-hook, and giving `allout-auto-activation' a suitable
+setting.
 
 To prime your Emacs session for full auto-outline operation, include
 the following two lines in your Emacs init file:
@@ -949,32 +1173,35 @@
 \(require 'allout)
 \(allout-init t)"
 
-  (interactive
-   (let ((m (completing-read
-	     (concat "Select outline auto setup mode "
-		     "(empty for report, ? for options) ")
-	     '(("nil")("full")("activate")("deactivate")
-	       ("ask") ("report") (""))
-	     nil
-	     t)))
-     (if (string= m "") 'report
-       (intern-soft m))))
+  (interactive)
+  (if (interactive-p)
+      (progn
+	(setq mode
+	      (completing-read
+	       (concat "Select outline auto setup mode "
+		       "(empty for report, ? for options) ")
+	       '(("nil")("full")("activate")("deactivate")
+		 ("ask") ("report") (""))
+	       nil
+	       t))
+	(if (string= mode "")
+	    (setq mode 'report)
+	  (setq mode (intern-soft mode)))))
   (let
       ;; convenience aliases, for consistent ref to respective vars:
       ((hook 'allout-find-file-hook)
        (curr-mode 'allout-auto-activation))
 
     (cond ((not mode)
-	   (setq find-file-hook (delq hook find-file-hook))
+	   (setq find-file-hooks (delq hook find-file-hooks))
 	   (if (interactive-p)
 	       (message "Allout outline mode auto-activation inhibited.")))
 	  ((eq mode 'report)
-	   (if (memq hook find-file-hook)
-	       ;; Just punt and use the reports from each of the modes:
-	       (allout-init (symbol-value curr-mode))
-	     (allout-init nil)
-	     (message "Allout outline mode auto-activation inhibited.")))
-	  (t (add-hook 'find-file-hook hook)
+	   (if (not (memq hook find-file-hooks))
+	       (allout-init nil)
+	     ;; Just punt and use the reports from each of the modes:
+	     (allout-init (symbol-value curr-mode))))
+	  (t (add-hook 'find-file-hooks hook)
 	     (set curr-mode		; `set', not `setq'!
 		  (cond ((eq mode 'activate)
 			 (message
@@ -1022,10 +1249,11 @@
 
 In addition to outline navigation and exposure, allout includes:
 
- - topic-oriented repositioning, cut, and paste
+ - topic-oriented repositioning, promotion/demotion, cut, and paste
  - integral outline exposure-layout
  - incremental search with dynamic exposure and reconcealment of hidden text
  - automatic topic-number maintenance
+ - easy topic encryption and decryption
  - \"Hot-spot\" operation, for single-keystroke maneuvering and
     exposure control.  \(See the allout-mode docstring.)
 
@@ -1035,7 +1263,7 @@
 special `allout-mode' features and terminology.  See also the outline
 menubar additions for quick reference to many of the features, and see
 the docstring of the function `allout-init' for instructions on
-priming your Emacs session for automatic activation of `allout-mode'.
+priming your emacs session for automatic activation of `allout-mode'.
 
 
 The bindings are dictated by the `allout-keybindings-list' and
@@ -1048,7 +1276,7 @@
 C-c C-u allout-up-current-level         | C-c C-s allout-show-current-subtree
 C-c C-f allout-forward-current-level    | C-c C-o allout-show-current-entry
 C-c C-b allout-backward-current-level   | ^U C-c C-s allout-show-all
-C-c C-e allout-end-of-current-entry     |	   allout-hide-current-leaves
+C-c C-e allout-end-of-entry             |	   allout-hide-current-leaves
 C-c C-a allout-beginning-of-current-entry, alternately, goes to hot-spot
 
 	Topic Header Production:
@@ -1064,7 +1292,7 @@
 C-c<CR>	allout-rebullet-topic	Reconcile bullets of topic and its offspring
 				- distinctive bullets are not changed, others
 				  alternated according to nesting depth.
-C-c *	allout-rebullet-current-heading Prompt for alternate bullet for
+C-c b	allout-rebullet-current-heading Prompt for alternate bullet for
 					 current topic.
 C-c #	allout-number-siblings	Number bullets of topic and siblings - the
 				offspring are not affected.  With repeat
@@ -1087,8 +1315,8 @@
 C-c C-SPC allout-mark-topic
 C-c = c	allout-copy-exposed-to-buffer
 				Duplicate outline, sans concealed text, to
-				buffer with name derived from derived from
-				that of current buffer - \"*XXX exposed*\".
+				buffer with name derived from derived from that
+				of current buffer - \"*BUFFERNAME exposed*\".
 C-c = p	allout-flatten-exposed-to-buffer
 				Like above 'copy-exposed', but convert topic
 				prefixes to section.subsection... numeric
@@ -1096,6 +1324,19 @@
 ESC ESC (allout-init t)	Setup Emacs session for outline mode
 				auto-activation.
 
+                  Encrypted Entries
+
+Outline mode supports easily togglable gpg encryption of topics, with
+niceities like support for symmetric and key-pair modes, key timeout, key
+consistency checking, user-provided hinting for symmetric key mode, and
+auto-encryption of topics pending encryption on save.  The aim is to enable
+reliable topic privacy while preventing accidents like neglected
+encryption, encryption with a mistaken key, forgetting which key was used,
+and other practical pitfalls.
+
+See the `allout-toggle-current-subtree-encryption' function and
+`allout-encrypt-unencrypted-on-saves' customization variable for details.
+
 		 HOT-SPOT Operation
 
 Hot-spot operation provides a means for easy, single-keystroke outline
@@ -1148,11 +1389,11 @@
 
 HEADER:	The first line of a topic, include the topic PREFIX and header
 	text.
-PREFIX: The leading text of a topic which distinguishes it from
-	normal text.  It has a strict form, which consists of a
-	prefix-lead string, padding, and a bullet.  The bullet may be
-	followed by a number, indicating the ordinal number of the
-	topic among its siblings, a space, and then the header text.
+PREFIX: The leading text of a topic which distinguishes it from normal
+        text.  It has a strict form, which consists of a prefix-lead
+        string, padding, and a bullet.  The bullet may be followed by a
+        number, indicating the ordinal number of the topic among its
+        siblings, a space, and then the header text.
 
 	The relative length of the PREFIX determines the nesting depth
 	of the topic.
@@ -1223,7 +1464,7 @@
      ;; off on second invocation, so we detect it as best we can, and
      ;; skip everything.
      ((and same-complex-command		; Still in same complex command
-					; as last time `allout-mode' invoked.
+                                        ; as last time `allout-mode' invoked.
 	  active			; Already activated.
 	  (not explicit-activation)	; Prop-line file-vars don't have args.
 	  (string-match "^19.1[89]"	; Bug only known to be in v19.18 and
@@ -1238,6 +1479,19 @@
 				       ; active state or *de*activation
 				       ; specifically requested:
       (setq allout-explicitly-deactivated t)
+      (if (string-match "^18\." emacs-version)
+				       ; Revoke those keys that remain
+				       ; as we set them:
+	  (let ((curr-loc (current-local-map)))
+	   (mapcar (function
+		    (lambda (cell)
+		      (if (eq (lookup-key curr-loc (car cell))
+			      (car (cdr cell)))
+			  (define-key curr-loc (car cell)
+			    (assq (car cell) allout-prior-bindings)))))
+		   allout-added-bindings)
+	   (allout-resumptions 'allout-added-bindings)
+	   (allout-resumptions 'allout-prior-bindings)))
 
       (if allout-old-style-prefixes
 	  (progn
@@ -1246,9 +1500,12 @@
       (allout-resumptions 'selective-display)
       (if (and (boundp 'before-change-functions) before-change-functions)
 	  (allout-resumptions 'before-change-functions))
-      (setq write-contents-functions
-	    (delq 'allout-write-file-hook
-		  write-contents-functions))
+      (setq local-write-file-hooks
+	   (delq 'allout-write-file-hook-handler
+		 local-write-file-hooks))
+      (setq auto-save-hook
+	   (delq 'allout-auto-save-hook-handler
+		 auto-save-hook))
       (allout-resumptions 'paragraph-start)
       (allout-resumptions 'paragraph-separate)
       (allout-resumptions (if (string-match "^18" emacs-version)
@@ -1288,25 +1545,27 @@
 		     (cons '(allout-mode . allout-mode-map)
 			   minor-mode-map-alist))))
 
+				       ; V18 minor-mode key bindings:
+				       ; Stash record of added bindings
+				       ; for later revocation:
+	(allout-resumptions 'allout-added-bindings
+			    (list allout-keybindings-list))
+	(allout-resumptions 'allout-prior-bindings
+			    (list (current-local-map)))
 				       ; and add them:
 	(use-local-map (produce-allout-mode-map allout-keybindings-list
 						(current-local-map)))
 	)
 
 				       ; selective-display is the
-				       ; Emacs conditional exposure
+				       ; emacs conditional exposure
 				       ; mechanism:
       (allout-resumptions 'selective-display '(t))
-      (if allout-inhibit-protection
-	  t
-	(allout-resumptions 'before-change-functions
-			    '(allout-before-change-protect)))
       (add-hook 'pre-command-hook 'allout-pre-command-business)
       (add-hook 'post-command-hook 'allout-post-command-business)
-				       ; Temporarily set by any outline
-				       ; functions that can be trusted to
-				       ; deal properly with concealed text.
-      (add-hook 'write-contents-functions 'allout-write-file-hook)
+      (add-hook 'local-write-file-hooks 'allout-write-file-hook-handler)
+      (make-variable-buffer-local 'auto-save-hook)
+      (add-hook 'auto-save-hook 'allout-auto-save-hook-handler)
 				       ; Custom auto-fill func, to support
 				       ; respect for topic headline,
 				       ; hanging-indents, etc:
@@ -1337,7 +1596,8 @@
       (if allout-layout
 	  (setq do-layout t))
 
-      (if allout-isearch-dynamic-expose
+      (if (and allout-isearch-dynamic-expose
+	       (not (fboundp 'allout-real-isearch-abort)))
 	  (allout-enwrap-isearch))
 
       (run-hooks 'allout-mode-hook)
@@ -1376,7 +1636,6 @@
     )					; let*
   )  					; defun
 ;;;_  > allout-minor-mode
-;;; XXX released verion doesn't do this?
 (defalias 'allout-minor-mode 'allout-mode)
 
 ;;;_ #3 Internal Position State-Tracking - "allout-recent-*" funcs
@@ -1400,12 +1659,12 @@
   "Buffer point last returned by `allout-end-of-current-subtree'.")
 (make-variable-buffer-local 'allout-recent-end-of-subtree)
 ;;;_  > allout-prefix-data (beg end)
-(defmacro allout-prefix-data (beginning end)
+(defmacro allout-prefix-data (beg end)
   "Register allout-prefix state data - BEGINNING and END of prefix.
 
 For reference by `allout-recent' funcs.  Returns BEGINNING."
   `(setq allout-recent-prefix-end ,end
-         allout-recent-prefix-beginning ,beginning))
+         allout-recent-prefix-beginning ,beg))
 ;;;_  > allout-recent-depth ()
 (defmacro allout-recent-depth ()
   "Return depth of last heading encountered by an outline maneuvering function.
@@ -1612,9 +1871,12 @@
   "Produce a location \"chart\" of subtopics of the containing topic.
 
 Optional argument LEVELS specifies the depth \(relative to start
-depth) for the chart.
-
-Charts are used to capture outline structure, so that outline altering
+depth) for the chart.  Subsequent optional args are not for public
+use.
+
+Point is left at the end of the subtree.
+
+Charts are used to capture outline structure, so that outline-altering
 routines need assess the structure only once, and then use the chart
 for their elaborate manipulations.
 
@@ -1625,11 +1887,9 @@
 The chart for a topics' offspring precedes the entry for the topic
 itself.
 
-\(fn &optional LEVELS)"
-
-  ;; The other function parameters are for internal recursion, and should
-  ;; not be specified by external callers.  ORIG-DEPTH is depth of topic at
-  ;; starting point, and PREV-DEPTH is depth of prior topic."
+The other function parameters are for internal recursion, and should
+not be specified by external callers.  ORIG-DEPTH is depth of topic at
+starting point, and PREV-DEPTH is depth of prior topic."
 
   (let ((original (not orig-depth))	; `orig-depth' set only in recursion.
 	chart curr-depth)
@@ -1835,11 +2095,18 @@
   (if (re-search-forward allout-line-boundary-regexp nil 'move)
       (prog1 (goto-char (match-beginning 0))
              (allout-prefix-data (match-beginning 2)(match-end 2)))))
-;;;_   > allout-end-of-current-subtree ()
-(defun allout-end-of-current-subtree ()
-  "Put point at the end of the last leaf in the currently visible topic."
-  (interactive)
-  (allout-back-to-current-heading)
+;;;_   > allout-end-of-subtree (&optional current)
+(defun allout-end-of-subtree (&optional current)
+  "Put point at the end of the last leaf in the containing topic.
+
+If optional CURRENT is true (default false), then put point at the end of
+the containing visible topic.
+
+Returns the value of point."
+  (interactive "P")
+  (if current
+      (allout-back-to-current-heading)
+    (allout-goto-prefix))
   (let ((level (allout-recent-depth)))
     (allout-next-heading)
     (while (and (not (eobp))
@@ -1851,9 +2118,16 @@
                '(?\n ?\r))
          (forward-char -1))
     (setq allout-recent-end-of-subtree (point))))
+;;;_   > allout-end-of-current-subtree ()
+(defun allout-end-of-current-subtree ()
+  "Put point at end of last leaf in currently visible containing topic.
+
+Returns the value of point."
+  (interactive)
+  (allout-end-of-subtree t))
 ;;;_   > allout-beginning-of-current-entry ()
 (defun allout-beginning-of-current-entry ()
-  "When not already there, position point at beginning of current topic's body.
+  "When not already there, position point at beginning of current topic header.
 
 If already there, move cursor to bullet for hot-spot operation.
 \(See `allout-mode' doc string for details on hot-spot operation.)"
@@ -1863,11 +2137,10 @@
     (if (and (interactive-p)
 	     (= (point) start-point))
 	(goto-char (allout-current-bullet-pos)))))
-;;;_   > allout-end-of-current-entry ()
-(defun allout-end-of-current-entry ()
+;;;_   > allout-end-of-entry ()
+(defun allout-end-of-entry ()
   "Position the point at the end of the current topics' entry."
   (interactive)
-  (allout-show-entry)
   (prog1 (allout-pre-next-preface)
     (if (and (not (bobp))(looking-at "^$"))
         (forward-char -1))))
@@ -1875,9 +2148,27 @@
 (defun allout-end-of-current-heading ()
   (interactive)
   (allout-beginning-of-current-entry)
-  (forward-line -1)
-  (end-of-line))
+  (re-search-forward "[\n\r]" nil t)
+  (forward-char -1))
 (defalias 'allout-end-of-heading 'allout-end-of-current-heading)
+;;;_   > allout-get-body-text ()
+(defun allout-get-body-text ()
+  "Return the unmangled body text of the topic immediately containing point."
+  (save-excursion
+    (allout-end-of-prefix)
+    (if (not (re-search-forward "[\n\r]" nil t))
+        nil
+      (backward-char 1)
+      (let ((pre-body (point)))
+        (if (not pre-body)
+            nil
+          (allout-end-of-entry)
+          (if (not (= pre-body (point)))
+              (buffer-substring-no-properties (1+ pre-body) (point))))
+        )
+      )
+    )
+  )
 
 ;;;_  - Depth-wise
 ;;;_   > allout-ascend-to-depth (depth)
@@ -1892,12 +2183,16 @@
         (if (= (allout-recent-depth) depth)
             (progn (goto-char allout-recent-prefix-beginning)
                    depth)
-          (goto-char last-good)))))
+          (goto-char last-good)
+          nil))
+    (if (interactive-p) (allout-end-of-prefix))))
 ;;;_   > allout-ascend ()
 (defun allout-ascend ()
   "Ascend one level, returning t if successful, nil if not."
-  (if (allout-beginning-of-level)
-      (allout-previous-heading)))
+  (prog1
+      (if (allout-beginning-of-level)
+	  (allout-previous-heading))
+    (if (interactive-p) (allout-end-of-prefix))))
 ;;;_   > allout-descend-to-depth (depth)
 (defun allout-descend-to-depth (depth)
   "Descend to depth DEPTH within current topic.
@@ -1917,13 +2212,13 @@
       nil))
   )
 ;;;_   > allout-up-current-level (arg &optional dont-complain)
-(defun allout-up-current-level (arg &optional dont-complain interactive)
+(defun allout-up-current-level (arg &optional dont-complain)
   "Move out ARG levels from current visible topic.
 
 Positions on heading line of containing topic.  Error if unable to
 ascend that far, or nil if unable to ascend but optional arg
 DONT-COMPLAIN is non-nil."
-  (interactive "p\np")
+  (interactive "p")
   (allout-back-to-current-heading)
   (let ((present-level (allout-recent-depth))
 	(last-good (point))
@@ -1944,12 +2239,12 @@
     (if (or failed
 	    (> arg 0))
 	(progn (goto-char last-good)
-	       (if interactive (allout-end-of-prefix))
+	       (if (interactive-p) (allout-end-of-prefix))
 	       (if (not dont-complain)
 		   (error "Can't ascend past outermost level")
-		 (if interactive (allout-end-of-prefix))
+		 (if (interactive-p) (allout-end-of-prefix))
 		 nil))
-      (if interactive (allout-end-of-prefix))
+      (if (interactive-p) (allout-end-of-prefix))
       allout-recent-prefix-beginning)))
 
 ;;;_  - Linear
@@ -1981,7 +2276,7 @@
         nil))))
 ;;;_   > allout-previous-sibling (&optional depth backward)
 (defun allout-previous-sibling (&optional depth backward)
-  "Like `allout-forward-current-level', but backwards & respect invisible topics.
+  "Like `allout-forward-current-level' backwards, respecting invisible topics.
 
 Optional DEPTH specifies depth to traverse, default current depth.
 
@@ -2015,7 +2310,7 @@
   (let ((depth (allout-depth)))
     (while (allout-previous-sibling depth nil))
     (prog1 (allout-recent-depth)
-      (allout-end-of-prefix))))
+      (if (interactive-p) (allout-end-of-prefix)))))
 ;;;_   > allout-next-visible-heading (arg)
 (defun allout-next-visible-heading (arg)
   "Move to the next ARG'th visible heading line, backward if arg is negative.
@@ -2053,13 +2348,13 @@
   (interactive "p")
   (allout-next-visible-heading (- arg)))
 ;;;_   > allout-forward-current-level (arg)
-(defun allout-forward-current-level (arg &optional interactive)
+(defun allout-forward-current-level (arg)
   "Position point at the next heading of the same level.
 
 Takes optional repeat-count, goes backward if count is negative.
 
 Returns resulting position, else nil if none found."
-  (interactive "p\np")
+  (interactive "p")
   (let ((start-depth (allout-current-depth))
 	(start-point (point))
 	(start-arg arg)
@@ -2087,7 +2382,7 @@
 		  (= (allout-recent-depth) start-depth)))
 	allout-recent-prefix-beginning
       (goto-char last-good)
-      (if (not interactive)
+      (if (not (interactive-p))
 	  nil
 	(allout-end-of-prefix)
 	(error "Hit %s level %d topic, traversed %d of %d requested"
@@ -2096,10 +2391,10 @@
 	       (- (abs start-arg) arg)
 	       (abs start-arg))))))
 ;;;_   > allout-backward-current-level (arg)
-(defun allout-backward-current-level (arg &optional interactive)
+(defun allout-backward-current-level (arg)
   "Inverse of `allout-forward-current-level'."
-  (interactive "p\np")
-  (if interactive
+  (interactive "p")
+  (if (interactive-p)
       (let ((current-prefix-arg (* -1 arg)))
 	(call-interactively 'allout-forward-current-level))
     (allout-forward-current-level (* -1 arg))))
@@ -2107,121 +2402,6 @@
 ;;;_ #5 Alteration
 
 ;;;_  - Fundamental
-;;;_   > allout-before-change-protect (beg end)
-(defun allout-before-change-protect (beg end)
-  "Outline before-change hook, regulates changes to concealed text.
-
-Reveal concealed text that would be changed by current command, and
-offer user choice to commit or forego the change.  Unchanged text is
-reconcealed.  User has option to have changed text reconcealed.
-
-Undo commands are specially treated - the user is not prompted for
-choice, the undoes are always committed (based on presumption that the
-things being undone were already subject to this regulation routine),
-and undoes always leave the changed stuff exposed.
-
-Changes to concealed regions are ignored while file is being written.
-\(This is for the sake of functions that do change the file during
-writes, like crypt and zip modes.)
-
-Locally bound in outline buffers to `before-change-functions', which
-in Emacs 19 is run before any change to the buffer.
-
-Any functions which set [`this-command' to `undo', or which set]
-`allout-override-protect' non-nil (as does, eg, allout-flag-chars)
-are exempt from this restriction."
-  (if (and (allout-mode-p)
-					; allout-override-protect
-					; set by functions that know what
-					; they're doing, eg outline internals:
-	   (not allout-override-protect)
-	   (not allout-during-write-cue)
-	   (save-match-data		; Preserve operation position state.
-					; Both beginning and end chars must
-					; be exposed:
-	     (save-excursion (if (memq this-command '(newline open-line))
-				 ;; Compensate for stupid Emacs {new,
-				 ;; open-}line display optimization:
-				 (setq beg (1+ beg)
-				       end (1+ end)))
-			     (goto-char beg)
-			     (or (allout-hidden-p)
-				 (and (not (= beg end))
-				      (goto-char end)
-				      (allout-hidden-p))))))
-      (save-match-data
-	(if (equal this-command 'undo)
-		 ;; Allow undo without inhibition.
-		 ;; - Undoing new and open-line hits stupid Emacs redisplay
-		 ;;   optimization (em 19 cmds.c, ~ line 200).
-		 ;; - Presumably, undoing what was properly protected when
-		 ;;   done.
-		 ;; - Undo may be users' only recourse in protection faults.
-		 ;; So, expose what getting changed:
-	    (progn (message "Undo! - exposing concealed target...")
-		   (if (allout-hidden-p)
-		       (allout-show-children))
-		   (message "Undo!"))
-	  (let (response
-		(rehide-completely (save-excursion (allout-goto-prefix)
-						   (allout-hidden-p)))
-		rehide-place)
-
-	    (save-excursion
-	      (if (condition-case err
-		      ;; Condition case to catch keyboard quits during reads.
-		      (progn
-					; Give them a peek where
-			(save-excursion
-			  (if (eolp) (setq rehide-place
-					   (allout-goto-prefix)))
-			  (allout-show-entry))
-					; Present the message, but...
-					; leave the cursor at the location
-					; until they respond:
-					; Then interpret the response:
-			(while
-			    (progn
-			      (message (concat "Change inside concealed"
-					       " region - do it? "
-					       "(n or 'y'/'r'eclose)"))
-			      (setq response (read-char))
-			      (not
-			       (cond ((memq response '(?r ?R))
-				      (setq response 'reclose))
-				     ((memq response '(?y ?Y ? ))
-				      (setq response t))
-				     ((memq response '(?n ?N 127))
-				      (setq response nil)
-				      t)
-				     ((eq response ??)
-				      (message
-				       "`r' means `yes, then reclose'")
-				      nil)
-				     (t (message "Please answer y, n, or r")
-					(sit-for 1)
-					nil)))))
-			response)
-		    ('quit nil))
-					; Continue:
-		  (if (eq response 'reclose)
-		      (save-excursion
-			(if rehide-place (goto-char rehide-place))
-			(if rehide-completely
-			    (allout-hide-current-entry-completely)
-			  (allout-hide-current-entry)))
-		    (if (allout-ascend-to-depth (1- (allout-recent-depth)))
-			(allout-show-children)
-		      (allout-show-to-offshoot)))
-					; Prevent:
-		(if rehide-completely
-		    (save-excursion
-		      (if rehide-place (goto-char rehide-place))
-		      (allout-hide-current-entry-completely))
-		  (allout-hide-current-entry))
-		(error "Change within concealed region prevented"))))))
-    )	; if
-  )	; defun
 ;;;_   = allout-post-goto-bullet
 (defvar allout-post-goto-bullet nil
   "Outline internal var, for `allout-pre-command-business' hot-spot operation.
@@ -2236,24 +2416,20 @@
 (defun allout-post-command-business ()
   "Outline `post-command-hook' function.
 
-- Null `allout-override-protect', so it's not left open.
-
 - Implement (and clear) `allout-post-goto-bullet', for hot-spot
   outline commands.
 
-- Massages `buffer-undo-list' so successive, standard character self-inserts
-  are aggregated.  This kludge compensates for lack of undo bunching when
-  `before-change-functions' is used."
+- Decrypt topic currently being edited if it was encrypted for a save.
+
+- Massage buffer-undo-list so successive, standard character self-inserts are
+  aggregated.  This kludge compensates for lack of undo bunching when
+  before-change-functions is used."
 
 					; Apply any external change func:
   (if (not (allout-mode-p))		; In allout-mode.
       nil
-    (setq allout-override-protect nil)
     (if allout-isearch-dynamic-expose
 	(allout-isearch-rectification))
-    (if allout-during-write-cue
-	;; Was used by allout-before-change-protect, done with it now:
-	(setq allout-during-write-cue nil))
     ;; Undo bunching business:
     (if (and (listp buffer-undo-list)	; Undo history being kept.
 	     (equal this-command 'self-insert-command)
@@ -2282,6 +2458,11 @@
 	      (setq buffer-undo-list
 		    (cons (cons prev-from cur-to)
 			  (cdr (cdr (cdr buffer-undo-list))))))))
+
+    (if (and (boundp 'allout-after-save-decrypt)
+             allout-after-save-decrypt)
+        (allout-after-saves-handler))
+
     ;; Implement -post-goto-bullet, if set: (must be after undo business)
     (if (and allout-post-goto-bullet
 	     (allout-current-bullet-pos))
@@ -2304,8 +2485,9 @@
 char.  When in this mode you can use regular cursor-positioning
 command/keystrokes to relocate the cursor off of a bullet character to
 return to regular interpretation of self-insert characters."
+
   (if (not (allout-mode-p))
-      ;; Shouldn't be invoked if not in allout allout-mode, but just in case:
+      ;; Shouldn't be invoked if not in allout-mode, but just in case:
       nil
     ;; Register isearch status:
     (if (and (boundp  'isearch-mode) isearch-mode)
@@ -2317,7 +2499,9 @@
 	(let* ((this-key-num (cond
 			      ((numberp last-command-char)
 			       last-command-char)
-			      ((fboundp 'char-to-int)
+			      ;; Only xemacs has characterp.
+			      ((and (fboundp 'characterp)
+				    (characterp last-command-char))
 			       (char-to-int last-command-char))
 			      (t 0)))
 	       mapped-binding)
@@ -2340,7 +2524,7 @@
 		      this-command mapped-binding)))))))
 ;;;_   > allout-find-file-hook ()
 (defun allout-find-file-hook ()
-  "Activate `allout-mode' when `allout-auto-activation' & `allout-layout' are non-nil.
+  "Activate `allout-mode' when `allout-auto-activation', `allout-layout' non-nil.
 
 See `allout-init' for setup instructions."
   (if (and allout-auto-activation
@@ -2353,7 +2537,7 @@
 
 Called as part of `allout-post-command-business'."
 
-  (let ((isearching isearch-mode))
+  (let ((isearching (and (boundp 'isearch-mode) isearch-mode)))
     (cond ((and isearching (not allout-pre-was-isearching))
 	   (allout-isearch-expose 'start))
 	  ((and isearching allout-pre-was-isearching)
@@ -2361,24 +2545,11 @@
 	  ((and (not isearching) allout-pre-was-isearching)
 	   (allout-isearch-expose 'final))
 	  ;; Not and wasn't isearching:
-	  (t (setq allout-isearch-prior-pos nil)))))
+	  (t (setq allout-isearch-prior-pos nil)
+	     (setq allout-isearch-did-quit nil)))))
 ;;;_   = allout-isearch-was-font-lock
 (defvar allout-isearch-was-font-lock
   (and (boundp 'font-lock-mode) font-lock-mode))
-
-;;;_   > allout-flag-region (from to flag)
-(defmacro allout-flag-region (from to flag)
-  "Hide or show lines from FROM to TO, via Emacs `selective-display' FLAG char.
-Ie, text following flag C-m \(carriage-return) is hidden until the
-next C-j (newline) char.
-
-Returns the endpoint of the region."
-  `(let ((buffer-read-only nil)
-	   (allout-override-protect t))
-       (subst-char-in-region ,from ,to
-			     (if (= ,flag ?\n) ?\r ?\n)
-			     ,flag t)))
-
 ;;;_   > allout-isearch-expose (mode)
 (defun allout-isearch-expose (mode)
   "MODE is either 'clear, 'start, 'continue, or 'final."
@@ -2403,21 +2574,56 @@
       (setq allout-isearch-prior-pos nil)
     (if (not (eq mode 'final))
 	(setq allout-isearch-prior-pos (cons (point) (allout-show-entry)))
-      (if isearch-mode-end-hook-quit
+      (if allout-isearch-did-quit
 	  nil
 	(setq allout-isearch-prior-pos nil)
-	(allout-show-children)))))
+	(allout-show-children))))
+  (setq allout-isearch-did-quit nil))
 ;;;_   > allout-enwrap-isearch ()
 (defun allout-enwrap-isearch ()
-  "Impose `isearch-abort' wrapper for dynamic exposure in isearch.
+  "Impose `allout-mode' isearch-abort wrapper for dynamic exposure in isearch.
 
 The function checks to ensure that the rebinding is done only once."
-  (add-hook 'isearch-mode-end-hook 'allout-isearch-rectification))
+
+  (add-hook 'isearch-mode-end-hook 'allout-isearch-rectification)
+  (if (fboundp 'allout-real-isearch-abort)
+      ;;
+      nil
+                                        ; Ensure load of isearch-mode:
+    (if (or (and (fboundp 'isearch-mode)
+                 (fboundp 'isearch-abort))
+            (condition-case error
+                (load-library "isearch-mode")
+              ('file-error (message
+			    "Skipping isearch-mode provisions - %s '%s'"
+			    (car (cdr error))
+			    (car (cdr (cdr error))))
+			   (sit-for 1)
+			   ;; Inhibit subsequent tries and return nil:
+			   (setq allout-isearch-dynamic-expose nil))))
+        ;; Isearch-mode loaded, encapsulate specific entry points for
+        ;; outline dynamic-exposure business:
+        (progn
+	  ;; stash crucial isearch-mode funcs under known, private
+	  ;; names, then register wrapper functions under the old
+	  ;; names, in their stead:
+          (fset 'allout-real-isearch-abort (symbol-function 'isearch-abort))
+          (fset 'isearch-abort 'allout-isearch-abort)))))
+;;;_   > allout-isearch-abort ()
+(defun allout-isearch-abort ()
+  "Wrapper for allout-real-isearch-abort \(which see), to register
+actual quits."
+  (interactive)
+  (setq allout-isearch-did-quit nil)
+  (condition-case what
+      (allout-real-isearch-abort)
+    ('quit (setq allout-isearch-did-quit t)
+	  (signal 'quit nil))))
 
 ;;; Prevent unnecessary font-lock while isearching!
 (defvar isearch-was-font-locking nil)
 (defun isearch-inhibit-font-lock ()
-  "Inhibit `font-lock-mode' while isearching - for use on `isearch-mode-hook'."
+  "Inhibit `font-lock' while isearching - for use on `isearch-mode-hook'."
   (if (and (allout-mode-p) (boundp 'font-lock-mode) font-lock-mode)
       (setq isearch-was-font-locking t
 	    font-lock-mode nil)))
@@ -2465,6 +2671,14 @@
                  (if prefix
                      (allout-get-prefix-bullet prefix)
                    (allout-get-bullet)))))
+;;;_   > allout-encrypted-type-prefix (&optional prefix)
+(defun allout-encrypted-type-prefix (&optional prefix)
+  "True if current header prefix bullet is for an encrypted entry \(body)."
+  (and allout-topic-encryption-bullet
+        (string= allout-topic-encryption-bullet
+                 (if prefix
+                     (allout-get-prefix-bullet prefix)
+                   (allout-get-bullet)))))
 ;;;_   > allout-bullet-for-depth (&optional depth)
 (defun allout-bullet-for-depth (&optional depth)
   "Return outline topic bullet suited to optional DEPTH, or current depth."
@@ -2625,15 +2839,15 @@
                                    ((allout-sibling-index))))))
     )
   )
-;;;_   > allout-open-topic (relative-depth &optional before use-sib-bullet)
-(defun allout-open-topic (relative-depth &optional before use-sib-bullet)
-  "Open a new topic at depth RELATIVE-DEPTH.
+;;;_   > allout-open-topic (relative-depth &optional before use_recent_bullet)
+(defun allout-open-topic (relative-depth &optional before use_recent_bullet)
+  "Open a new topic at depth DEPTH.
 
 New topic is situated after current one, unless optional flag BEFORE
 is non-nil, or unless current line is complete empty (not even
 whitespace), in which case open is done on current line.
 
-If USE-SIB-BULLET is true, use the bullet of the prior sibling.
+If USE_RECENT_BULLET is true, offer to use the bullet of the prior sibling.
 
 Nuances:
 
@@ -2660,9 +2874,11 @@
   (let* ((depth (+ (allout-current-depth) relative-depth))
          (opening-on-blank (if (looking-at "^\$")
                                (not (setq before nil))))
-         opening-numbered	; Will get while computing ref-topic, below
-         ref-depth		; Will get while computing ref-topic, below
-         ref-bullet		; Will get while computing ref-topic, next
+         ;; bunch o vars set while computing ref-topic
+         opening-numbered
+         opening-encrypted
+         ref-depth
+         ref-bullet
          (ref-topic (save-excursion
                       (cond ((< relative-depth 0)
                              (allout-ascend-to-depth depth))
@@ -2680,6 +2896,13 @@
                                        (allout-descend-to-depth depth))
                                    (if (allout-numbered-type-prefix)
                                        allout-numbered-bullet))))
+                      (setq opening-encrypted
+                            (save-excursion
+                              (and allout-topic-encryption-bullet
+                                   (or (<= relative-depth 0)
+                                       (allout-descend-to-depth depth))
+                                   (if (allout-numbered-type-prefix)
+                                       allout-numbered-bullet))))
                       (point)))
          dbl-space
          doing-beginning)
@@ -2718,19 +2941,24 @@
                             (if (not (bobp))
                                 (allout-previous-heading)))
 	    (if (and before (bobp))
-		(allout-unprotected (open-line 1))))
+		(allout-unprotected (allout-open-line-not-read-only))))
 
           (if (<= relative-depth 0)
               ;; Not going inwards, don't snug up:
               (if doing-beginning
-		  (allout-unprotected (open-line (if dbl-space 2 1)))
+                  (allout-unprotected
+                   (if (not dbl-space)
+                       (allout-open-line-not-read-only)
+                     (allout-open-line-not-read-only)
+                     (allout-open-line-not-read-only)))
 		(if before
 		    (progn (end-of-line)
 			   (allout-pre-next-preface)
 			   (while (= ?\r (following-char))
                              (forward-char 1))
 			   (if (not (looking-at "^$"))
-			       (allout-unprotected (open-line 1))))
+			       (allout-unprotected
+                                (allout-open-line-not-read-only))))
 		  (allout-end-of-current-subtree)))
             ;; Going inwards - double-space if first offspring is,
             ;; otherwise snug up.
@@ -2748,38 +2976,47 @@
                       (progn (forward-line -1)
                              (looking-at "^\\s-*$"))))
                 (progn (forward-line 1)
-                       (allout-unprotected (open-line 1))))
+                       (allout-unprotected
+                        (allout-open-line-not-read-only))
+                       (forward-line 1)))
             (end-of-line))
           ;;(if doing-beginning (goto-char doing-beginning))
           (if (not (bobp))
+              ;; We insert a newline char rather than using open-line to
+              ;; avoid rear-stickiness inheritence of read-only property.
               (progn (if (and (not (> depth ref-depth))
                               (not before))
-                         (allout-unprotected (open-line 1))
+                         (allout-unprotected
+                          (allout-open-line-not-read-only))
 		       (if (> depth ref-depth)
-			   (allout-unprotected (newline 1))
+                         (allout-unprotected
+                          (allout-open-line-not-read-only))
 			 (if dbl-space
-			     (allout-unprotected (open-line 1))
+                             (allout-unprotected
+                              (allout-open-line-not-read-only))
 			   (if (not before)
 			       (allout-unprotected (newline 1))))))
                      (if dbl-space
-			 (allout-unprotected (newline  1)))
+			 (allout-unprotected (newline 1)))
                      (if (and (not (eobp))
                               (not (bolp)))
                          (forward-char 1))))
           ))
     (insert (concat (allout-make-topic-prefix opening-numbered
-					       t
-					       depth)
-		    " "))
+                                              t
+                                              depth)
+                           " "))
 
     ;;(if doing-beginning (save-excursion (newline (if dbl-space 2 1))))
 
 
-    (allout-rebullet-heading (and use-sib-bullet ref-bullet);;; solicit
+    (allout-rebullet-heading (and use_recent_bullet         ;;; solicit
+                                   ref-bullet)
                               depth			     ;;; depth
                               nil 			     ;;; number-control
                               nil			     ;;; index
-                              t)     (end-of-line)
+                              t)
+    (end-of-line)
     )
   )
 ;;;_    . open-topic contingencies
@@ -2795,6 +3032,13 @@
 ;;;_     ; buffer boundaries - special provisions for beginning and end ob
 ;;;_     ; level 1 topics have special provisions also - double space.
 ;;;_     ; location of new topic
+;;;_   > allout-open-line-not-read-only ()
+(defun allout-open-line-not-read-only ()
+  "Open line and remove inherited read-only text prop from new char, if any."
+  (open-line 1)
+  (if (plist-get (text-properties-at (point)) 'read-only)
+      (allout-unprotected
+       (remove-text-properties (point) (+ 1 (point)) '(read-only nil)))))
 ;;;_   > allout-open-subtopic (arg)
 (defun allout-open-subtopic (arg)
   "Open new topic header at deeper level than the current one.
@@ -2802,7 +3046,7 @@
 Negative universal arg means to open deeper, but place the new topic
 prior to the current one."
   (interactive "p")
-  (allout-open-topic 1 (> 0 arg)))
+  (allout-open-topic 1 (> 0 arg) (< 1 arg)))
 ;;;_   > allout-open-sibtopic (arg)
 (defun allout-open-sibtopic (arg)
   "Open new topic header at same level as the current one.
@@ -2812,7 +3056,7 @@
 Negative universal arg means to place the new topic prior to the current
 one."
   (interactive "p")
-  (allout-open-topic 0 (> 0 arg) (< 1 arg)))
+  (allout-open-topic 0 (> 0 arg) (not (= 1 arg))))
 ;;;_   > allout-open-supertopic (arg)
 (defun allout-open-supertopic (arg)
   "Open new topic header at shallower level than the current one.
@@ -2821,7 +3065,7 @@
 topic prior to the current one."
 
   (interactive "p")
-  (allout-open-topic -1 (> 0 arg)))
+  (allout-open-topic -1 (> 0 arg) (< 1 arg)))
 
 ;;;_  - Outline Alteration
 ;;;_   : Topic Modification
@@ -2877,15 +3121,15 @@
 		  (setq old-indent-begin (match-beginning 1)
 			old-indent-end (match-end 1))
 		  (not (looking-at allout-regexp)))
-	   (if (> 0 (setq excess (- (current-column)
-				     old-margin)))
+	   (if (> 0 (setq excess (- (- old-indent-end old-indent-begin)
+                                    old-margin)))
 	       ;; Text starts left of old margin - don't adjust:
 	       nil
 	     ;; Text was hanging at or right of old left margin -
 	     ;; reindent it, preserving its existing indentation
 	     ;; beyond the old margin:
 	     (delete-region old-indent-begin old-indent-end)
-	     (indent-to (+ new-margin excess)))))))))
+             (indent-to (+ new-margin excess (current-column))))))))))
 ;;;_    > allout-rebullet-current-heading (arg)
 (defun allout-rebullet-current-heading (arg)
   "Solicit new bullet for current visible heading."
@@ -2922,28 +3166,30 @@
 
   "Adjust bullet of current topic prefix.
 
+All args are optional.
+
 If SOLICIT is non-nil, then the choice of bullet is solicited from
 user.  If it's a character, then that character is offered as the
 default, otherwise the one suited to the context \(according to
 distinction or depth) is offered.  If non-nil, then the
 context-specific bullet is just used.
 
-Second arg NEW-DEPTH forces the topic prefix to that depth, regardless
+Second arg DEPTH forces the topic prefix to that depth, regardless
 of the topic's current depth.
 
 Third arg NUMBER-CONTROL can force the prefix to or away from
 numbered form.  It has effect only if `allout-numbered-bullet' is
 non-nil and soliciting was not explicitly invoked (via first arg).
 Its effect, numbering or denumbering, then depends on the setting
-of the fourth arg, INDEX.
-
-If NUMBER-CONTROL is non-nil and fourth arg INDEX is nil, then the
+of the forth arg, INDEX.
+
+If NUMBER-CONTROL is non-nil and forth arg INDEX is nil, then the
 prefix of the topic is forced to be non-numbered.  Null index and
 non-nil NUMBER-CONTROL forces denumbering.  Non-nil INDEX (and
 non-nil NUMBER-CONTROL) forces a numbered-prefix form.  If non-nil
 INDEX is a number, then that number is used for the numbered
 prefix.  Non-nil and non-number means that the index for the
-numbered prefix will be derived by `allout-make-topic-prefix'.
+numbered prefix will be derived by allout-make-topic-prefix.
 
 Fifth arg DO-SUCCESSORS t means re-resolve count on succeeding
 siblings.
@@ -2986,9 +3232,10 @@
 					; Put in new prefix:
       (allout-unprotected (insert new-prefix))
 
-      ;; Reindent the body if elected and margin changed:
+      ;; Reindent the body if elected, margin changed, and not encrypted body:
       (if (and allout-reindent-bodies
-	       (not (= new-depth current-depth)))
+	       (not (= new-depth current-depth))
+               (not (allout-encrypted-topic-p)))
 	  (allout-reindent-body current-depth new-depth))
 
       ;; Recursively rectify successive siblings of orig topic if
@@ -3010,7 +3257,7 @@
   ) ; defun
 ;;;_    > allout-rebullet-topic (arg)
 (defun allout-rebullet-topic (arg)
-  "Like `allout-rebullet-topic-grunt', but start from topic visible at point.
+  "Rebullet the visible topic containing point and all contained subtopics.
 
 Descends into invisible as well as visible topics, however.
 
@@ -3036,18 +3283,18 @@
                                                starting-point
                                                index
                                                do-successors)
-
-  "Rebullet the topic at point, visible or invisible, and all
-contained subtopics.  See `allout-rebullet-heading' for rebulleting
-behavior.
-
-Arg RELATIVE-DEPTH means to shift the depth of the entire
+  "Like `allout-rebullet-topic', but on nearest containing topic
+\(visible or not).
+
+See `allout-rebullet-heading' for rebulleting behavior.
+
+All arguments are optional.
+
+First arg RELATIVE-DEPTH means to shift the depth of the entire
 topic that amount.
 
-\(fn &optional RELATIVE-DEPTH)"
-
-  ;; All args except the first one are for internal recursive use by the
-  ;; function itself.
+The rest of the args are for internal recursive use by the function
+itself.  The are STARTING-DEPTH, STARTING-POINT, and INDEX."
 
   (let* ((relative-depth (or relative-depth 0))
          (new-depth (allout-depth))
@@ -3177,13 +3424,42 @@
         (setq more (allout-next-sibling depth nil))))))
 ;;;_    > allout-shift-in (arg)
 (defun allout-shift-in (arg)
-  "Increase depth of current heading and any topics collapsed within it."
+  "Increase depth of current heading and any topics collapsed within it.
+
+We disallow shifts that would result in the topic having a depth more than
+one level greater than the immediately previous topic, to avoid containment
+discontinuity.  The first topic in the file can be adjusted to any positive
+depth, however."
   (interactive "p")
+  (if (> arg 0)
+      (save-excursion
+        (allout-back-to-current-heading)
+        (if (not (bobp))
+            (let* ((current-depth (allout-recent-depth))
+                   (start-point (point))
+                   (predecessor-depth (progn
+                                        (forward-char -1)
+                                        (allout-goto-prefix)
+                                        (if (< (point) start-point)
+                                            (allout-recent-depth)
+                                          0))))
+              (if (and (> predecessor-depth 0)
+                       (> (+ current-depth arg)
+                          (1+ predecessor-depth)))
+                  (error (concat "May not shift deeper than offspring depth"
+                                 " of previous topic")))))))
   (allout-rebullet-topic arg))
 ;;;_    > allout-shift-out (arg)
 (defun allout-shift-out (arg)
-  "Decrease depth of current heading and any topics collapsed within it."
+  "Decrease depth of current heading and any topics collapsed within it.
+
+We disallow shifts that would result in the topic having a depth more than
+one level greater than the immediately previous topic, to avoid containment
+discontinuity.  The first topic in the file can be adjusted to any positive
+depth, however."
   (interactive "p")
+  (if (< arg 0)
+      (allout-shift-in (* arg -1)))
   (allout-rebullet-topic (* arg -1)))
 ;;;_   : Surgery (kill-ring) functions with special provisions for outlines:
 ;;;_    > allout-kill-line (&optional arg)
@@ -3191,24 +3467,56 @@
   "Kill line, adjusting subsequent lines suitably for outline mode."
 
   (interactive "*P")
-  (if (not (and (allout-mode-p)		; active outline mode,
-		allout-numbered-bullet		; numbers may need adjustment,
-		(bolp)				; may be clipping topic head,
-		(looking-at allout-regexp)))	; are clipping topic head.
-      ;; Above conditions do not obtain - just do a regular kill:
-      (kill-line arg)
-    ;; Ah, have to watch out for adjustments:
-    (let* ((depth (allout-depth)))
-                                        ; Do the kill:
-      (kill-line arg)
+
+  (let ((start-point (point))
+        (leading-kill-ring-entry (car kill-ring))
+        binding)
+
+    (condition-case err
+
+        (if (not (and (allout-mode-p)        ; active outline mode,
+                      allout-numbered-bullet ; numbers may need adjustment,
+                      (bolp)                  ; may be clipping topic head,
+                      (looking-at allout-regexp))) ; are clipping topic head.
+            ;; Above conditions do not obtain - just do a regular kill:
+            (kill-line arg)
+          ;; Ah, have to watch out for adjustments:
+          (let* ((depth (allout-depth))
+                 (start-point (point))
+                 binding)
+                                        ; Do the kill, presenting option
+                                        ; for read-only text:
+            (kill-line arg)
                                         ; Provide some feedback:
-      (sit-for 0)
-      (save-excursion
+          (sit-for 0)
+          (save-excursion
                                         ; Start with the topic
                                         ; following killed line:
-        (if (not (looking-at allout-regexp))
-            (allout-next-heading))
-        (allout-renumber-to-depth depth)))))
+            (if (not (looking-at allout-regexp))
+                (allout-next-heading))
+            (allout-renumber-to-depth depth))))
+      ;; condition case handler:
+      (text-read-only
+       (goto-char start-point)
+       (setq binding (where-is-internal 'allout-kill-topic nil t))
+       (cond ((not binding) (setq binding ""))
+             ((arrayp binding)
+              (setq binding (mapconcat 'key-description (list binding) ", ")))
+             (t (setq binding (format "%s" binding))))
+       ;; ensure prior kill-ring leader is properly restored:
+       (if (eq leading-kill-ring-entry (cadr kill-ring))
+           ;; Aborted kill got pushed on front - ditch it:
+           (pop kill-ring)
+         ;; Aborted kill got appended to prior - resurrect prior:
+         (setcar kill-ring leading-kill-ring-entry))
+       ;; make last-command skip this failed command, so kill-appending
+       ;; conditions track:
+       (setq this-command last-command)
+       (error (concat "read-only text hit - use %s allout-kill-topic to"
+                      " discard collapsed stuff")
+              binding)))
+    )
+  )
 ;;;_    > allout-kill-topic ()
 (defun allout-kill-topic ()
   "Kill topic together with subtopics.
@@ -3236,14 +3544,14 @@
 		       (>= (allout-recent-depth) depth))))
 	    (forward-char 1)))
 
-    (kill-region beg (point))
+    (allout-unprotected (kill-region beg (point)))
     (sit-for 0)
     (save-excursion
       (allout-renumber-to-depth depth))))
 ;;;_    > allout-yank-processing ()
 (defun allout-yank-processing (&optional arg)
 
-  "Incidental outline specific business to be done just after text yanks.
+  "Incidental outline-specific business to be done just after text yanks.
 
 Does depth adjustment of yanked topics, when:
 
@@ -3259,7 +3567,7 @@
 
 The point is left in front of yanked, adjusted topics, rather than
 at the end (and vice-versa with the mark).  Non-adjusted yanks,
-however, are left exactly like normal, not outline specific yanks."
+however, are left exactly like normal, non-allout-specific yanks."
 
   (interactive "*P")
 					; Get to beginning, leaving
@@ -3463,6 +3771,60 @@
 ;;;_ #6 Exposure Control
 
 ;;;_  - Fundamental
+;;;_   > allout-flag-region (from to flag)
+(defun allout-flag-region (from to flag)
+  "Hide or show lines from FROM to TO, via Emacs selective-display FLAG char.
+Ie, text following flag C-m \(carriage-return) is hidden until the
+next C-j (newline) char.
+
+Returns the endpoint of the region."
+  ;; "OFR-" prefixes to avoid collisions with vars in code calling the macro.
+  ;; ie, elisp macro vars are not 'hygenic', so distinct names are necessary.
+  (let ((was-inhibit-r-o inhibit-read-only)
+        (was-undo-list buffer-undo-list)
+        (was-modified (buffer-modified-p))
+        trans)
+    (unwind-protect
+     (save-excursion
+       (setq inhibit-read-only t)
+       (setq buffer-undo-list t)
+       (if (> from to)
+           (setq trans from from to to trans))
+       (subst-char-in-region from to
+                             (if (= flag ?\n) ?\r ?\n)
+                             flag t)
+       ;; adjust character read-protection on all the affected lines.
+       ;; we handle the region line-by-line.
+       (goto-char to)
+       (end-of-line)
+       (setq to (min (+ 2 (point)) (point-max)))
+       (goto-char from)
+       (beginning-of-line)
+       (while (< (point) to)
+         ;; handle from start of exposed to beginning of hidden, or eol:
+         (remove-text-properties (point)
+                                 (progn (if (re-search-forward "[\r\n]"
+                                                               nil t)
+                                            (forward-char -1))
+                                        (point))
+                                 '(read-only nil))
+         ;; handle from start of hidden, if any, to eol:
+         (if (and (not (eobp)) (= (char-after (point)) ?\r))
+             (put-text-property (point) (progn (end-of-line) (point))
+                                'read-only t))
+         ;; Handle the end-of-line to beginning of next line:
+         (if (not (eobp))
+             (progn (forward-char 1)
+                    (remove-text-properties (1- (point)) (point)
+                                            '(read-only nil)))))
+       )
+     (if (not was-modified)
+         (set-buffer-modified-p nil))
+     (setq inhibit-read-only was-inhibit-r-o)
+     (setq buffer-undo-list was-undo-list)
+     )
+    )
+  )
 ;;;_   > allout-flag-current-subtree (flag)
 (defun allout-flag-current-subtree (flag)
   "Hide or show subtree of currently-visible topic.
@@ -3471,9 +3833,9 @@
 
   (save-excursion
     (allout-back-to-current-heading)
-    (allout-flag-region (point)
-			 (progn (allout-end-of-current-subtree) (1- (point)))
-			 flag)))
+    (let ((from (point))
+          (to (progn (allout-end-of-current-subtree) (1- (point)))))
+      (allout-flag-region from to flag))))
 
 ;;;_  - Topic-specific
 ;;;_   > allout-show-entry ()
@@ -3482,7 +3844,7 @@
 
 This is a way to give restricted peek at a concealed locality without the
 expense of exposing its context, but can leave the outline with aberrant
-exposure.  `allout-hide-current-entry-completely' or `allout-show-to-offshoot'
+exposure.  `allout-hide-current-entry-completely' or `allout-show-offshoot'
 should be used after the peek to rectify the exposure."
 
   (interactive)
@@ -3602,7 +3964,7 @@
   (allout-back-to-current-heading)
   (save-excursion
    (allout-flag-region (point)
-                        (progn (allout-end-of-current-entry) (point))
+                        (progn (allout-end-of-entry) (point))
                         ?\r)))
 ;;;_   > allout-show-current-entry (&optional arg)
 (defun allout-show-current-entry (&optional arg)
@@ -3614,8 +3976,9 @@
       (allout-hide-current-entry)
     (save-excursion
       (allout-flag-region (point)
-			   (progn (allout-end-of-current-entry) (point))
-			   ?\n))))
+			   (progn (allout-end-of-entry) (point))
+			   ?\n)
+      )))
 ;;;_   > allout-hide-current-entry-completely ()
 ; ... allout-hide-current-entry-completely also for isearch dynamic exposure:
 (defun allout-hide-current-entry-completely ()
@@ -3846,7 +4209,11 @@
       max-pos)))
 ;;;_   > allout-old-expose-topic (spec &rest followers)
 (defun allout-old-expose-topic (spec &rest followers)
-  "Dictate wholesale exposure scheme for current topic, according to SPEC.
+
+  "Deprecated.  Use `allout-expose-topic' \(with different schema
+format) instead.
+
+Dictate wholesale exposure scheme for current topic, according to SPEC.
 
 SPEC is either a number or a list.  Optional successive args
 dictate exposure for subsequent siblings of current topic.
@@ -3918,9 +4285,6 @@
       (allout-old-expose-topic (car followers))
       (setq followers (cdr followers)))
     max-pos))
-(make-obsolete 'allout-old-expose-topic
-               "use `allout-expose-topic' (with different schema format) instead."
-               "19.23")
 ;;;_   > allout-new-exposure '()
 (defmacro allout-new-exposure (&rest spec)
   "Literal frontend for `allout-expose-topic', doesn't evaluate arguments.
@@ -3929,6 +4293,8 @@
 
 Cursor is left at start position.
 
+Use this instead of obsolete `allout-exposure'.
+
 Examples:
 \(allout-new-exposure (-1 () () () 1) 0)
 	Close current topic at current level so only the immediate
@@ -4151,13 +4517,20 @@
 				 (cdr format)))))))
       ;; Put the list with first at front, to last at back:
       (nreverse result))))
+;;;_   > my-region-active-p ()
+(defmacro my-region-active-p ()
+  (if (fboundp 'region-active-p)
+      '(region-active-p)
+    'mark-active))
 ;;;_   > allout-process-exposed (&optional func from to frombuf
 ;;;					    tobuf format)
 (defun allout-process-exposed (&optional func from to frombuf tobuf
-					  format start-num)
+					  format &optional start-num)
   "Map function on exposed parts of current topic; results to another buffer.
 
-Apply FUNC to exposed portions FROM position TO position in buffer
+All args are options; default values itemized below.
+
+Apply FUNCTION to exposed portions FROM position TO position in buffer
 FROMBUF to buffer TOBUF.  Sixth optional arg, FORMAT, designates an
 alternate presentation form:
 
@@ -4170,7 +4543,7 @@
 		       except for distinctive bullets.
 
 Defaults:
-  FUNC:		`allout-insert-listified'
+  FUNCTION:	`allout-insert-listified'
   FROM:		region start, if region active, else start of buffer
   TO:		region end, if region active, else end of buffer
   FROMBUF:	current buffer
@@ -4219,9 +4592,7 @@
 
  \`(depth prefix text)'
 
-or
-
- \`(depth prefix text bullet-plus)'
+or \`(depth prefix text bullet-plus)'
 
 If `bullet-plus' is specified, it is inserted just after the entire prefix."
   (setq listified (cdr listified))
@@ -4237,7 +4608,7 @@
     (while text
       (insert (car text))
       (if (setq text (cdr text))
-	  (insert "\n")))
+	  (insert-string "\n")))
     (insert "\n")))
 ;;;_   > allout-copy-exposed-to-buffer (&optional arg tobuf format)
 (defun allout-copy-exposed-to-buffer (&optional arg tobuf format)
@@ -4440,14 +4811,14 @@
 	 body-content bop)
 					; Do the head line:
     (insert (concat "\\OneHeadLine{\\verb\1 "
-		    (allout-latex-verb-quote bullet)
-		    "\1}{"
-		    depth
-		    "}{\\verb\1 "
-		    (if head-line
-			(allout-latex-verb-quote head-line)
-		      "")
-		    "\1}\n"))
+                    (allout-latex-verb-quote bullet)
+                    "\1}{"
+                    depth
+                    "}{\\verb\1 "
+                    (if head-line
+                        (allout-latex-verb-quote head-line)
+                      "")
+                    "\1}\n"))
     (if (not body-lines)
 	nil
       ;;(insert "\\beginlines\n")
@@ -4509,7 +4880,615 @@
     (pop-to-buffer buf)
     (goto-char start-pt)))
 
-;;;_ #8 miscellaneous
+;;;_ #8 Encryption
+;;;_  > allout-toggle-current-subtree-encryption (&optional fetch-key)
+(defun allout-toggle-current-subtree-encryption (&optional fetch-key)
+  "Encrypt clear text or decrypt encoded contents of a topic.
+
+Contents includes body and subtopics.
+
+Currently only GnuPG encryption is supported.
+
+\**NOTE WELL** that the encrypted text must be ascii-armored.  For gnupg
+encryption, include the option ``armor'' in your ~/.gnupg/gpg.conf file.
+
+Both symmetric-key and key-pair encryption is implemented.  Symmetric is
+the default, use a single \(x4) universal argument for keypair mode.
+
+Encrypted topic's bullet is set to a `~' to signal that the contents of the
+topic \(body and subtopics, but not heading) is pending encryption or
+encrypted.  An `*' asterisk immediately after the bullet signals that the
+body is encrypted, its absence means it's meant to be encrypted but is not
+- it's \"disclosed\".  When a file with disclosed topics is saved, the user
+prompted for an ok to \(symmetric-key) encrypt the disclosed topics.  NOTE
+WELL that you must explicitly \(re)encrypt key-pair encrypted topics if you
+want them to continue to be in key-pair mode.
+
+Level-1 topics, with prefix consisting solely of an `*' asterisk, cannot be
+encrypted.  If you want to encrypt the contents of a top-level topic, use
+\\[allout-shift-in] to increase its depth.
+
+Failed transformation does not change the an entry being encrypted -
+instead, the key is re-solicited and the transformation is retried.
+\\[keyboard-quit] to abort.
+
+Decryption does symmetric or key-pair key mode depending on how the text
+was encrypted.  The encryption key is solicited if not currently available
+from the key cache from a recent prior encryption action.
+
+Optional FETCH-KEY universal argument is used for two purposes - to provoke
+key-pair instead of symmetric encryption, or to provoke clearing of the key
+cache so keys are freshly fetched.
+
+ - Without any universal arguments, then the appropriate key for the is
+   obtained from the cache, if available, else from the user.
+
+ - If FETCH-KEY is the result of one universal argument - ie, equal to 4 -
+   then key-pair encryption is used.
+
+ - With repeated universal argument - equal to 16 - then the key cache is
+   cleared before any encryption transformations, to force prompting of the
+   user for the key.
+
+The solicited key is retained for reuse in a buffer-specific cache for some
+set period of time \(default, 60 seconds), after which the string is
+nulled.  `mailcrypt' provides the key caching functionality.  You can
+adjust the key cache timeout by ajdusting the setting of the elisp variable
+`mc-passwd-timeout'.
+
+If the file previously had no associated key, or had a different key than
+specified, the user is prompted to repeat the new one for corroboration.  A
+random string encrypted by the new key is set on the buffer-specific
+variable `allout-key-verifier-string', for confirmation of the key when
+next obtained, before encrypting or decrypting anything with it.  This
+helps avoid mistakenly shifting between keys.
+
+If allout customization var `allout-key-verifier-handling' is non-nil, an
+entry for `allout-key-verifier-string' and its value is added to an Emacs
+'local variables' section at the end of the file, which is created if
+necessary.  That setting is for retention of the key verifier across emacs
+sessions.
+
+Similarly, `allout-key-hint-string' stores a user-provided reminder about
+their key, and `allout-key-hint-handling' specifies when the hint is
+presented, or if key hints are disabled.  If enabled \(see the
+`allout-key-hint-handling' docstring for details), the hint string is
+stored in the local-variables section of the file, and solicited whenever
+the key is changed."
+
+;;; This routine handles allout-specific business, dispatching
+;;; encryption-specific business to allout-encrypt-string.
+
+  (interactive "P")
+  (save-excursion
+    (allout-end-of-prefix t)
+
+    (if (= (allout-recent-depth) 1)
+        (error (concat "Cannot encrypt or decrypt level 1 topics -"
+                       " shift it in to make it encryptable")))
+
+    (if (and fetch-key
+             (not (equal fetch-key '(4))))
+        (mc-deactivate-passwd))
+
+    (let* ((allout-buffer (current-buffer))
+           ;; Asses location:
+           (after-bullet-pos (point))
+           (was-encrypted
+            (progn (if (= (point-max) after-bullet-pos)
+                       (error "no body to encrypt"))
+                   (looking-at "\\*")))
+           (was-collapsed (if (not (re-search-forward "[\n\r]" nil t))
+                              nil
+                            (backward-char 1)
+                            (looking-at "\r")))
+           (subtree-beg (1+ (point)))
+           (subtree-end (allout-end-of-subtree))
+           (subject-text (buffer-substring-no-properties subtree-beg
+                                                         subtree-end))
+           (subtree-end-char (char-after (1- subtree-end)))
+           (subtree-trailling-char (char-after subtree-end))
+           (place-holder (if (or (string= "" subject-text)
+                                 (string= "\n" subject-text))
+                             (error "No topic contents to %scrypt"
+                                    (if was-encrypted "de" "en"))))
+           ;; Assess key parameters:
+           (key-type (or
+                      ;; detect the type by which it is already encrypted
+                      (and was-encrypted
+                           (allout-encrypted-text-type subject-text))
+                      (and (member fetch-key '(4 (4)))
+                           (yes-or-no-p "Use key-pair encryption instead? ")
+                           'keypair)
+                      'symmetric))
+           (fetch-key (and fetch-key (not (member fetch-key '(16 (16))))))
+           result-text)
+
+      (setq result-text
+            (allout-encrypt-string subject-text was-encrypted
+                                    (current-buffer) key-type fetch-key))
+
+       ;; Replace the subtree with the processed product.
+      (allout-unprotected
+       (progn
+         (set-buffer allout-buffer)
+         (delete-region subtree-beg subtree-end)
+         (insert result-text)
+         (if was-collapsed
+             (allout-flag-region subtree-beg (1- (point)) ?\r))
+         ;; adjust trailling-blank-lines to preserve topic spacing:
+         (if (not was-encrypted)
+             (if (and (member subtree-end-char '(?\r ?\n))
+                      (member subtree-trailling-char '(?\r ?\n)))
+                 (insert subtree-trailling-char)))
+         ;; Ensure that the item has an encrypted-entry bullet:
+         (if (not (string= (buffer-substring-no-properties
+                            (1- after-bullet-pos) after-bullet-pos)
+                           allout-topic-encryption-bullet))
+             (progn (goto-char (1- after-bullet-pos))
+                    (delete-char 1)
+                    (insert allout-topic-encryption-bullet)))
+         (if was-encrypted
+             ;; Remove the is-encrypted bullet qualifier:
+             (progn (goto-char after-bullet-pos)
+                    (delete-char 1))
+           ;; Add the is-encrypted bullet qualifier:
+           (goto-char after-bullet-pos)
+           (insert "*"))
+         )
+       )
+      )
+    )
+  )
+;;;_  > allout-encrypt-string (text decrypt allout-buffer key-type rekey
+;;;                                  &optional retried verifying)
+(defun allout-encrypt-string (text decrypt allout-buffer key-type rekey
+                                    &optional retried verifying)
+  "Encrypt or decrypt a string TEXT using KEY.
+
+If optional DECRYPT is true (default false), then decrypt instead of
+encrypt.
+
+Optional REKEY (default false) provokes clearing of the key cache to force
+fresh prompting for the key.
+
+Optional RETRIED is for internal use - conveys the number of failed keys have
+been solicited in sequence leading to this current call.
+
+Optional VERIFYING is for internal use, signifying processing of text
+solely for verification of the cached key.
+
+Returns the resulting string, or nil if the transformation fails."
+
+  ;; Ensure that we have an alternate handle on the real mc-activate-passwd:
+  (if (not (fboundp 'real-mc-activate-passwd))
+      ;; Force loads of the primary mailcrypt packages, so flet below holds.
+      (progn (require 'mailcrypt)
+             (load "mc-toplev")
+             (fset 'real-mc-activate-passwd
+                   (symbol-function 'mc-activate-passwd))))
+
+  (if (and rekey (not verifying)) (mc-deactivate-passwd))
+
+  (catch 'encryption-failed
+    (save-excursion
+
+      (let* ((mc-default-scheme (or allout-encryption-scheme
+                                    allout-default-encryption-scheme))
+             (id (format "%s-%s" key-type
+                         (or (buffer-file-name allout-buffer)
+                             (buffer-name allout-buffer))))
+             (cached (real-mc-activate-passwd id nil))
+             (comment "Processed by allout driving mailcrypt")
+             key work-buffer result result-text encryption-process-status)
+
+        (unwind-protect
+
+            ;; Interject our mc-activate-passwd wrapper:
+            (flet ((mc-activate-passwd (id &optional prompt)
+                                       (allout-mc-activate-passwd id prompt)))
+
+              (setq work-buffer
+                    (set-buffer (allout-encryption-produce-work-buffer text)))
+
+              (cond
+
+               ;; symmetric:
+               ((equal key-type 'symmetric)
+                (setq key (if verifying
+                              (real-mc-activate-passwd id nil)
+                            (allout-mc-activate-passwd id)))
+                (setq encryption-process-status
+                      (crypt-encrypt-buffer key decrypt))
+                (if (zerop encryption-process-status)
+                    t
+                  (if verifying
+                      (throw 'encryption-failed nil)
+                    (mc-deactivate-passwd)
+                    (error "Symmetric-key encryption failed (%s) - wrong key?"
+                           encryption-process-status))))
+
+               ;; encrypt 'keypair:
+               ((not decrypt)
+                (condition-case result
+                    (mailcrypt-encrypt 1)
+                  (error (mc-deactivate-passwd)
+                         (error "encryption failed: %s"
+                                (cadr result)))))
+
+               ;; decrypt 'keypair:
+               (t (condition-case result
+                      (mc-decrypt)
+                    (error (mc-deactivate-passwd)
+                           (error "decryption failed: %s"
+                                  (cadr result))))))
+
+              (setq result-text (if (or (equal key-type 'keypair)
+                                        (not decrypt))
+                                    (buffer-substring 1 (1- (point-max)))
+                                  (buffer-string)))
+              ;; validate result - non-empty
+              (cond ((not result-text)
+                     (if verifying
+                         nil
+                       ;; Transformation was fruitless - retry with new key.
+                       (mc-deactivate-passwd)
+                       (allout-encrypt-string text allout-buffer decrypt nil
+                                               (if retried (1+ retried) 1)
+                                               verifying)))
+
+                    ;; Barf if encryption yields extraordinary control chars:
+                    ((and (not decrypt)
+                          (string-match "[\C-a\C-k\C-o-\C-z\C-@]" result-text))
+                     (error (concat "encryption produced unusable"
+                                    " non-armored text - reconfigure!")))
+
+                    ;; valid result and just verifying or non-symmetric:
+                    ((or verifying (not (equal key-type 'symmetric)))
+                     result-text)
+
+                    ;; valid result and regular symmetric - situate validator:
+                    (t
+                     ;; valid result and verifier needs to be situated in
+                     ;; allout-buffer:
+                     (set-buffer allout-buffer)
+                     (if (and (or rekey (not cached))
+                              (not (allout-verify-key key allout-buffer)))
+                         (allout-situate-encryption-key-verifier key id))
+                     result-text)
+                    )
+              )
+
+          ;; unwind-protect emergence:
+          (if work-buffer
+              (kill-buffer work-buffer))
+          )
+        )
+      )
+    )
+  )
+;;;_  > allout-mc-activate-passwd (id &optional prompt)
+(defun allout-mc-activate-passwd (id &optional prompt)
+  "Substituted for mc-activate-passwd during allout outline encryption.
+
+We add key-verification to vanilla mc-activate-passwd.
+
+We depend in some cases on values of the following allout-encrypt-string
+internal or prevailing variables:
+  - key-type - 'symmetric or 'keypair
+  - id - id associated with current key in key cache
+  - allout-buffer - where subject text resides
+  - retried - number of current attempts to obtain this key
+  - rekey - user asked to present a new key - needs to be confirmed"
+
+;;  - if we're doing non-symmetric key, just do normal mc-activate-passwd
+;;  - otherwise, if we are have a cached version of the key, then assume
+;;    it's verified and return it
+;;  - otherwise, prompt for a key, and:
+;;    - if we have a key verifier \(a string value which should decrypt
+;;      against a symmetric key), validate against the verifier
+;;      - if successful, return the verified key
+;;      - if unsuccessful:
+;;        - offer to use the new key
+;;          - if accepted, do confirm process
+;;          - if refused, try again until we get a correctly spelled one or the
+;;            user quits
+;;    - if no key verifier, resolicit the key to get corroboration and return
+;;      the corroborated key if spelled identically, or error if not.
+
+  (if (not (equal key-type 'symmetric))
+      ;; do regular mc-activate-passwd on non-symmetric key
+      (real-mc-activate-passwd id prompt)
+
+    ;; Symmetric hereon:
+
+    (save-excursion
+      (set-buffer allout-buffer)
+      (let* ((hint (if (and (not (string= allout-key-hint-string ""))
+                            (or (equal allout-key-hint-handling 'always)
+                                (and (equal allout-key-hint-handling 'needed)
+                                     retried)))
+                       (format " [%s]" allout-key-hint-string)
+                     ""))
+             (retry-message (if retried (format " (%s retry)" retried) ""))
+             (prompt-sans-hint (format "'%s' symmetric key%s: "
+                                       (buffer-name allout-buffer)
+                                       retry-message))
+             (full-prompt (format "'%s' symmetric key%s%s: "
+                                  (buffer-name allout-buffer)
+                                  hint retry-message))
+             (prompt full-prompt)
+             (verifier-string (allout-get-encryption-key-verifier))
+             ;; force retention of cached passwords for five minutes while
+             ;; we're in this particular routine:
+             (mc-passwd-timeout 300)
+             (cached (real-mc-activate-passwd id nil))
+             (got (or cached (real-mc-activate-passwd id full-prompt)))
+             confirmation)
+
+        (if (not got)
+            nil
+
+          ;; Duplicate our handle on the key so it's not clobbered by
+          ;; deactivate-passwd memory clearing:
+          (setq got (format "%s" got))
+
+          (cond (verifier-string
+                 (if (and (not (allout-encrypt-string
+                                verifier-string 'decrypt allout-buffer
+                                'symmetric nil 0 'verifying))
+                          (if (yes-or-no-p
+                               (concat "Key differs from established"
+                                       " - use new one instead? "))
+                              ;; deactivate password for subsequent
+                              ;; confirmation:
+                              (progn (mc-deactivate-passwd)
+                                     (setq prompt prompt-sans-hint)
+                                     nil)
+                            t))
+                     (progn (mc-deactivate-passwd)
+                            (error "Wrong key."))))
+                ;; Force confirmation by repetition for new key:
+                ((or rekey (not cached)) (mc-deactivate-passwd))))
+        ;; we have a key and it's either verified and cached.
+        ;; confirmation vs new input - doing mc-activate-passwd will do the
+        ;; right thing, in either case:
+        (setq confirmation
+              (real-mc-activate-passwd id (concat prompt
+                                                  " ... confirm spelling: ")))
+        (prog1
+            (if (equal got confirmation)
+                confirmation
+              (if (yes-or-no-p (concat "spelling of original and"
+                                       " confirmation differ - retry? "))
+                  (progn (setq retried (if retried (1+ retried) 1))
+                         (mc-deactivate-passwd)
+                         ;; recurse to this routine:
+                         (mc-activate-passwd id prompt-sans-hint))
+                (mc-deactivate-passwd)
+                (error "Confirmation failed.")))
+          ;; reduce opportunity for memory cherry-picking by zeroing duplicate:
+          (dotimes (i (length got))
+            (aset got i 0))
+          )
+        )
+      )
+    )
+  )
+;;;_  > allout-encryption-produce-work-buffer (text)
+(defun allout-encryption-produce-work-buffer (text)
+  "Establish a new buffer filled with TEXT, for outline encrypion processing.
+
+TEXT is massaged so outline collapsing, if any, is removed."
+  (let ((work-buffer (generate-new-buffer " *allout encryption*")))
+    (save-excursion
+      (set-buffer work-buffer)
+      (insert (subst-char-in-string ?\r ?\n text)))
+    work-buffer))
+;;;_  > allout-encrypted-topic-p ()
+(defun allout-encrypted-topic-p ()
+  "True if the current topic is encryptable and encrypted."
+  (save-excursion
+    (allout-end-of-prefix t)
+    (and (string= (buffer-substring-no-properties (1- (point)) (point))
+                  allout-topic-encryption-bullet)
+         (looking-at "\\*"))
+    )
+  )
+;;;_  > allout-encrypted-text-type (text)
+;;; XXX gpg-specific, not generic!
+(defun allout-encrypted-text-type (text)
+  "For gpg encrypted text, return 'symmetric or 'keypair."
+
+  ;; Ensure mc-gpg-path has a value:
+  (if (not (boundp 'mc-gpg-path))
+      (load-library "mc-gpg"))
+
+  (save-excursion
+    (let* ((work-buffer (set-buffer
+                         (allout-encryption-produce-work-buffer text)))
+           (result (mc-gpg-process-region (point-min) (point-max)
+                                          nil mc-gpg-path
+                                          '("--batch" "--decrypt")
+                                          'mc-gpg-decrypt-parser
+                                          work-buffer nil)))
+      (cond ((equal (nth 0 result) 'symmetric)
+             'symmetric)
+            ((equal (nth 0 result) t)
+             'keypair)
+            (t (error "Unrecognized/unsupported encryption type %S"
+                      (nth 0 result))))
+      )
+    )
+  )
+;;;_  > allout-create-encryption-key-verifier (key id)
+(defun allout-create-encryption-key-verifier (key id)
+  "Encrypt a random message for later validation of symmetric key."
+  ;; use 20 random ascii characters, across the entire ascii range.
+  (random t)
+  (let ((spew (make-string 20 ?\0)))
+    (dotimes (i (length spew))
+      (aset spew i (1+ (random 254))))
+    (allout-encrypt-string spew nil nil 'symmetric nil nil t))
+  )
+;;;_  > allout-situate-encryption-key-verifier (key id)
+(defun allout-situate-encryption-key-verifier (key id)
+  "Establish key verifier string on file variable.
+
+We also prompt for and situate a new reminder, if reminders are enabled.
+
+We massage the string to simplify programmatic adjustment.  File variable
+is `allout-file-key-verifier-string'."
+  (let ((verifier-string
+         ;; Collapse to a single line and enclose in string quotes:
+         (subst-char-in-string ?\n ?\C-a
+                               (allout-create-encryption-key-verifier
+                                key id)))
+        (reminder (if (not (equal allout-key-hint-handling 'disabled))
+                      (read-from-minibuffer
+                       "Key hint to jog your memory next time: "
+                       allout-key-hint-string))))
+    (setq allout-key-verifier-string verifier-string)
+    (allout-adjust-file-variable "allout-key-verifier-string"
+                                  verifier-string)
+    (cond ((equal allout-key-hint-handling 'disabled)
+           nil)
+          ((not (string= reminder allout-key-hint-string))
+           (setq allout-key-hint-string reminder)
+           (allout-adjust-file-variable "allout-key-hint-string"
+                                         reminder)))
+    )
+  )
+;;;_  > allout-get-encryption-key-verifier ()
+(defun allout-get-encryption-key-verifier ()
+  "Return the text of the encrypt key verifier, unmassaged, or nil if none.
+
+Derived from value of `allout-file-key-verifier-string'."
+
+  (let ((verifier-string (and (boundp 'allout-key-verifier-string)
+                              allout-key-verifier-string)))
+    (if verifier-string
+        ;; Return it uncollapsed
+        (subst-char-in-string ?\C-a ?\n verifier-string)
+      nil)
+   )
+  )
+;;;_  > allout-verify-key (key)
+(defun allout-verify-key (key allout-buffer)
+  "True if key successfully decrypts key verifier, nil otherwise.
+
+\"Otherwise\" includes absence of key verifier."
+  (save-excursion
+    (set-buffer allout-buffer)
+    (and (boundp 'allout-key-verifier-string)
+         allout-key-verifier-string
+         (allout-encrypt-string (allout-get-encryption-key-verifier)
+                                 'decrypt allout-buffer 'symmetric
+                                 nil nil 'verifying)
+         t)))
+;;;_  > allout-next-topic-pending-encryption (&optional except-mark)
+(defun allout-next-topic-pending-encryption (&optional except-mark)
+  "Return the point of the next topic pending encryption, or nil if none.
+
+EXCEPT-MARK identifies a point whose containing topics should be excluded
+from encryption.  This supports 'except-current mode of
+`allout-encrypt-unencrypted-on-saves'.
+
+Such a topic has the allout-topic-encryption-bullet without an
+immediately following '*' that would mark the topic as being encrypted.  It
+must also have content."
+  (let (done got content-beg)
+    (while (not done)
+
+      (if (not (re-search-forward
+                (format "\\(\\`\\|[\n\r]\\)%s *%s[^*]"
+                        (regexp-quote allout-header-prefix)
+                        (regexp-quote allout-topic-encryption-bullet))
+                nil t))
+          (setq got nil
+                done t)
+        (goto-char (setq got (match-beginning 0)))
+        (if (looking-at "[\n\r]")
+            (forward-char 1))
+        (setq got (point)))
+
+      (cond ((not got)
+             (setq done t))
+
+            ((not (re-search-forward "[\n\r]"))
+             (setq got nil
+                   done t))
+
+            ((eobp)
+             (setq got nil
+                   done t))
+
+            (t
+             (setq content-beg (point))
+             (backward-char 1)
+             (allout-end-of-subtree)
+             (if (or (<= (point) content-beg)
+                     (and except-mark
+                          (<= content-beg except-mark)
+                          (>= (point) except-mark)))
+                 ;; Continue looking
+                 (setq got nil)
+               ;; Got it!
+               (setq done t)))
+            )
+      )
+    (if got
+        (goto-char got))
+    )
+  )
+;;;_  > allout-encrypt-decrypted (&optional except-mark)
+(defun allout-encrypt-decrypted (&optional except-mark)
+  "Encrypt topics pending encryption except those containing exemption point.
+
+EXCEPT-MARK identifies a point whose containing topics should be excluded
+from encryption.  This supports 'except-current mode of
+`allout-encrypt-unencrypted-on-saves'.
+
+If a topic that is currently being edited was encrypted, we return a list
+containing the location of the topic and the location of the cursor just
+before the topic was encrypted.  This can be used, eg, to decrypt the topic
+and exactly resituate the cursor if this is being done as part of a file
+save.  See `allout-encrypt-unencrypted-on-saves' for more info."
+
+  (interactive "p")
+  (save-excursion
+    (let ((current-mark (point-marker))
+          was-modified
+          bo-subtree
+          editing-topic editing-point)
+      (goto-char (point-min))
+      (while (allout-next-topic-pending-encryption except-mark)
+        (setq was-modified (buffer-modified-p))
+        (if (save-excursion
+              (and (boundp 'allout-encrypt-unencrypted-on-saves)
+                   allout-encrypt-unencrypted-on-saves
+                   (setq bo-subtree (re-search-forward "[\n\r]"))
+                   ;; Not collapsed:
+                   (string= (match-string 0) "\n")
+                   (>= current-mark (point))
+                   (allout-end-of-current-subtree)
+                   (<= current-mark (point))))
+            (setq editing-topic (point)
+                  ;; we had to wait for this 'til now so prior topics are
+                  ;; encrypted, any relevant text shifts are in place:
+                  editing-point (marker-position current-mark)))
+        (allout-toggle-current-subtree-encryption)
+        (if (not was-modified)
+            (set-buffer-modified-p nil))
+        )
+      (if (not was-modified)
+         (set-buffer-modified-p nil))
+      (if editing-topic (list editing-topic editing-point))
+      )
+    )
+  )
+
+;;;_ #9 miscellaneous
 ;;;_  > allout-mark-topic ()
 (defun allout-mark-topic ()
   "Put the region around topic currently containing point."
@@ -4538,22 +5517,100 @@
 	t
       (allout-open-topic 2)
       (insert (concat "Dummy outline topic header - see"
-		      "`allout-mode' docstring: `^Hm'."))
-      (forward-line 1)
+                      "`allout-mode' docstring: `^Hm'."))
+      (allout-adjust-file-variable
+       "allout-layout" (format "%s" (or allout-layout '(-1 : 0)))))))
+;;;_  > allout-file-vars-section-data ()
+(defun allout-file-vars-section-data ()
+  "Return data identifying the file-vars section, or nil if none.
+
+Returns list `(beginning-point prefix-string suffix-string)'."
+  ;; minimally gleaned from emacs 21.4 files.el hack-local-variables function.
+  (let (beg prefix suffix)
+    (save-excursion
       (goto-char (point-max))
-      (open-line 1)
-      (allout-open-topic 0)
-      (insert "Local emacs vars.\n")
-      (allout-open-topic 1)
-      (insert "(`allout-layout' is for allout.el allout-mode)\n")
-      (allout-open-topic 0)
-      (insert "Local variables:\n")
-      (allout-open-topic 0)
-      (insert (format "allout-layout: %s\n"
-			     (or allout-layout
-				 '(-1 : 0))))
-      (allout-open-topic 0)
-      (insert "End:\n"))))
+      (search-backward "\n\^L" (max (- (point-max) 3000) (point-min)) 'move)
+      (if (let ((case-fold-search t))
+	    (not (search-forward "Local Variables:" nil t)))
+          nil
+        (setq beg (- (point) 16))
+        (setq suffix (buffer-substring-no-properties
+                      (point)
+                      (progn (if (re-search-forward "[\n\r]" nil t)
+                                 (forward-char -1))
+                             (point))))
+        (setq prefix (buffer-substring-no-properties
+                      (progn (if (re-search-backward "[\n\r]" nil t)
+                                 (forward-char 1))
+                             (point))
+                      beg))
+        (list beg prefix suffix))
+      )
+    )
+  )
+;;;_  > allout-adjust-file-variable (varname value)
+(defun allout-adjust-file-variable (varname value)
+  "Adjust the setting of an emacs file variable named VARNAME to VALUE.
+
+This activity is inhibited if either `enable-local-variables'
+`allout-enable-file-variable-adjustment' are nil.
+
+When enabled, an entry for the variable is created if not already present,
+or changed if established with a different value.  The section for the file
+variables, itself, is created if not already present.  When created, the
+section lines \(including the section line) exist as second-level topics in
+a top-level topic at the end of the file.
+
+enable-local-variables must be true for any of this to happen."
+  (if (not (and enable-local-variables
+                allout-enable-file-variable-adjustment))
+      nil
+    (save-excursion
+      (let ((section-data (allout-file-vars-section-data))
+            beg prefix suffix)
+        (if section-data
+            (setq beg (car section-data)
+                  prefix (cadr section-data)
+                  suffix (car (cddr section-data)))
+          ;; create the section
+          (goto-char (point-max))
+          (open-line 1)
+          (allout-open-topic 0)
+          (end-of-line)
+          (insert "Local emacs vars.\n")
+          (allout-open-topic 1)
+          (setq beg (point)
+                suffix ""
+                prefix (buffer-substring-no-properties (progn
+                                                         (beginning-of-line)
+                                                         (point))
+                                                       beg))
+          (goto-char beg)
+          (insert "Local variables:\n")
+          (allout-open-topic 0)
+          (insert "End:\n")
+          )
+        ;; look for existing entry or create one, leaving point for insertion
+        ;; of new value:
+        (goto-char beg)
+        (allout-show-to-offshoot)
+        (if (search-forward (concat "\n" prefix varname ":") nil t)
+            (let* ((value-beg (point))
+                   (line-end (progn (if (re-search-forward "[\n\r]" nil t)
+                                        (forward-char -1))
+                                    (point)))
+                   (value-end (- line-end (length suffix))))
+              (if (> value-end value-beg)
+                  (delete-region value-beg value-end)))
+          (end-of-line)
+          (open-line 1)
+          (forward-line 1)
+          (insert (concat prefix varname ":")))
+        (insert (format " %S%s" value suffix))
+        )
+      )
+    )
+  )
 ;;;_  > solicit-char-in-string (prompt string &optional do-defaulting)
 (defun solicit-char-in-string (prompt string &optional do-defaulting)
   "Solicit (with first arg PROMPT) choice of a character from string STRING.
@@ -4594,8 +5651,7 @@
 Representations of actual backslashes - '\\\\\\\\' - are left as a
 single backslash.
 
-\(fn REGEXP)"
-;; Optional arg SUCCESSIVE-BACKSLASHES is used internally for recursion.
+Optional arg SUCCESSIVE-BACKSLASHES is used internally for recursion."
 
   (if (string= regexp "")
       ""
@@ -4611,11 +5667,6 @@
 		(regexp-sans-escapes (substring regexp 1)))
       ;; Exclude first char, but maintain count:
       (regexp-sans-escapes (substring regexp 1) successive-backslashes))))
-;;;_  > my-region-active-p ()
-(defmacro my-region-active-p ()
-  (if (fboundp 'region-active-p)
-      '(region-active-p)
-    'mark-active))
 ;;;_  - add-hook definition for divergent emacsen
 ;;;_   > add-hook (hook function &optional append)
 (if (not (fboundp 'add-hook))
@@ -4636,17 +5687,30 @@
 	       (if append
 		   (nconc (symbol-value hook) (list function))
 		 (cons function (symbol-value hook)))))))
+;;;_  > subst-char-in-string if necessary
+(if (not (fboundp 'subst-char-in-string))
+    (defun subst-char-in-string (fromchar tochar string &optional inplace)
+      "Replace FROMCHAR with TOCHAR in STRING each time it occurs.
+Unless optional argument INPLACE is non-nil, return a new string."
+      (let ((i (length string))
+            (newstr (if inplace string (copy-sequence string))))
+        (while (> i 0)
+          (setq i (1- i))
+          (if (eq (aref newstr i) fromchar)
+              (aset newstr i tochar)))
+        newstr)))
+
 ;;;_  : my-mark-marker to accommodate divergent emacsen:
 (defun my-mark-marker (&optional force buffer)
   "Accommodate the different signature for `mark-marker' across Emacsen.
 
-XEmacs takes two optional args, while GNU Emacs does not,
+XEmacs takes two optional args, while mainline GNU Emacs does not,
 so pass them along when appropriate."
-  (if (featurep 'xemacs)
+  (if (string-match " XEmacs " emacs-version)
       (mark-marker force buffer)
     (mark-marker)))
 
-;;;_ #9 Under development
+;;;_ #10 Under development
 ;;;_  > allout-bullet-isearch (&optional bullet)
 (defun allout-bullet-isearch (&optional bullet)
   "Isearch \(regexp) for topic with bullet BULLET."
--- a/lisp/arc-mode.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/arc-mode.el	Mon Jan 16 06:59:21 2006 +0000
@@ -225,8 +225,7 @@
     '("unzip" "-qq" "-c"))
   "*Program and its options to run in order to extract a zip file member.
 Extraction should happen to standard output.  Archive and member name will
-be added.  If `archive-zip-use-pkzip' is non-nil then this program is
-expected to extract to a file junking the directory part of the name."
+be added."
   :type '(list (string :tag "Program")
 		(repeat :tag "Options"
 			:inline t
--- a/lisp/bookmark.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/bookmark.el	Mon Jan 16 06:59:21 2006 +0000
@@ -198,6 +198,13 @@
   :group 'bookmark)
 
 
+(defface bookmark-menu-heading
+  '((t (:inherit font-lock-type-face)))
+  "Face used to highlight the heading in bookmark menu buffers."
+  :group 'bookmark
+  :version "22.1")
+
+
 ;;; No user-serviceable parts beyond this point.
 
 ;; Is it XEmacs?
@@ -211,12 +218,6 @@
 ;; suggested for lucid compatibility by david hughes:
 (or (fboundp 'frame-height)  (defalias 'frame-height 'screen-height))
 
-;; This variable is probably obsolete now...
-(or (boundp 'baud-rate)
-    ;; some random value higher than 9600
-    (setq baud-rate 19200))
-
-
 
 ;;; Keymap stuff:
 
@@ -1175,12 +1176,14 @@
     (prog1
 	(insert (bookmark-location bookmark)) ; *Return this line*
       (if (and (display-color-p) (display-mouse-p))
-	  (add-text-properties start
-			       (save-excursion (re-search-backward
-						"[^ \t]")
+	  (add-text-properties
+	   start
+	   (save-excursion (re-search-backward
+			    "[^ \t]")
 					       (1+ (point)))
-			       '(mouse-face highlight
-				 help-echo "mouse-2: go to this bookmark"))))))
+	   '(mouse-face highlight
+	     follow-link t
+	     help-echo "mouse-2: go to this bookmark in other window"))))))
 
 ;;;###autoload
 (defalias 'bookmark-locate 'bookmark-insert-location)
@@ -1553,6 +1556,8 @@
   (let ((inhibit-read-only t))
     (erase-buffer)
     (insert "% Bookmark\n- --------\n")
+    (add-text-properties (point-min) (point)
+			 '(font-lock-face bookmark-menu-heading))
     (bookmark-maybe-sort-alist)
     (mapcar
      (lambda (full-record)
@@ -1566,12 +1571,14 @@
 	 (let ((start (point)))
 	   (insert (bookmark-name-from-full-record full-record))
 	   (if (and (display-color-p) (display-mouse-p))
-	       (add-text-properties start
-				    (save-excursion (re-search-backward
-						     "[^ \t]")
-						    (1+ (point)))
-				    '(mouse-face highlight
-				      help-echo "mouse-2: go to this bookmark")))
+	       (add-text-properties
+		start
+		(save-excursion (re-search-backward
+				 "[^ \t]")
+				(1+ (point)))
+		'(mouse-face highlight
+		  follow-link t
+		  help-echo "mouse-2: go to this bookmark in other window")))
 	   (insert "\n")
 	   )))
      bookmark-alist))
@@ -1695,13 +1702,15 @@
 		(let ((start (point)))
 		  (insert (car bookmark-bmenu-hidden-bookmarks))
 		  (if (and (display-color-p) (display-mouse-p))
-		      (add-text-properties start
-					   (save-excursion (re-search-backward
-							    "[^ \t]")
-							   (1+ (point)))
-					   '(mouse-face highlight
-					     help-echo
-					     "mouse-2: go to this bookmark"))))
+		      (add-text-properties
+		       start
+		       (save-excursion (re-search-backward
+					"[^ \t]")
+				       (1+ (point)))
+		       '(mouse-face highlight
+			 follow-link t
+			 help-echo
+			 "mouse-2: go to this bookmark in other window"))))
                 (setq bookmark-bmenu-hidden-bookmarks
                       (cdr bookmark-bmenu-hidden-bookmarks))
                 (forward-line 1))))))))
--- a/lisp/calc/calc-store.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/calc/calc-store.el	Mon Jan 16 06:59:21 2006 +0000
@@ -71,7 +71,7 @@
                                       (if (not (cdr var)) "")
                                       (if (not (cdr var)) 1))))
                (message (concat "Stored to variable \"%s\"" msg)
-                        (calc-var-name var)))
+                        (calc-var-name (car (car var)))))
 	     (setq var (cdr var))))))))
 
 (defun calc-store-plus (&optional var)
--- a/lisp/calc/calc-units.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/calc/calc-units.el	Mon Jan 16 06:59:21 2006 +0000
@@ -43,200 +43,208 @@
 ;;; for CODATA 1998 see one of
 ;;; - Journal of Physical and Chemical Reference Data, 28(6), 1713-1852, 1999.
 ;;; - Reviews of Modern Physics, 72(2), 351-495, 2000.
+;;; for CODATA 2005 see
 ;;; - http://physics.nist.gov/cuu/Constants/index.html
 
 (defvar math-standard-units
   '( ;; Length
-    ( m       nil		     "*Meter" )
-    ( in      "2.54 cm"             "Inch" )
-    ( ft      "12 in"		     "Foot" )
-    ( yd      "3 ft"		     "Yard" )
-    ( mi      "5280 ft"	     "Mile" )
-    ( au      "149597870691 m"      "Astronomical Unit" ) ;; NASA JPL (http://neo.jpl.nasa.gov/glossary/au.html)
-    ( lyr     "9460536207068016 m"  "Light Year" )
-    ( pc      "206264.80625 au"     "Parsec" )
-    ( nmi     "1852 m"		     "Nautical Mile" )
-    ( fath    "6 ft"		     "Fathom" )
-    ( u       "1 um"		     "Micron" )
-    ( mil     "in/1000"	     "Mil" )
-    ( point   "in/72"		     "Point (1/72 inch)" )
-    ( tpt     "in/72.27"	     "Point (TeX conventions)" )
-    ( Ang     "1e-10 m"	     "Angstrom" )
-    ( mfi     "mi+ft+in"	     "Miles + feet + inches" )
+    ( m       nil                    "*Meter" )
+    ( in      "2.54 cm"           "Inch" )
+    ( ft      "12 in"                "Foot" )
+    ( yd      "3 ft"                 "Yard" )
+    ( mi      "5280 ft"              "Mile" )
+    ( au      "149597870691 m"       "Astronomical Unit" ) ;; NASA JPL (http://neo.jpl.nasa.gov/glossary/au.html)
+    ( lyr     "9460536207068016 m"   "Light Year" )
+    ( pc      "206264.80625 au"      "Parsec" )
+    ( nmi     "1852 m"               "Nautical Mile" )
+    ( fath    "6 ft"                 "Fathom" )
+    ( mu      "1 um"                 "Micron" )
+    ( mil     "in/1000"              "Mil" )
+    ( point   "in/72"                "Point (1/72 inch)" )
+    ( Ang     "1e-10 m"              "Angstrom" )
+    ( mfi     "mi+ft+in"             "Miles + feet + inches" )
+    ;; TeX lengths
+    ( texpt   "in/72.27"             "Point (TeX conventions)" )
+    ( texpc   "12 texpt"             "Pica" )
+    ( texbp   "point"                "Big point (TeX conventions)" )
+    ( texdd   "1238/1157 texpt"      "Didot point" )
+    ( texcc   "12 texdd"             "Cicero" )
+    ( texsp   "1/66536 texpt"        "Scaled TeX point" )
 
     ;; Area
-    ( hect    "10000 m^2"	     "*Hectare" )
-    ( acre    "mi^2 / 640"	     "Acre" )
-    ( b       "1e-28 m^2"	     "Barn" )
+    ( hect    "10000 m^2"            "*Hectare" )
+    ( a       "100 m^2"              "Are")
+    ( acre    "mi^2 / 640"           "Acre" )
+    ( b       "1e-28 m^2"            "Barn" )
 
     ;; Volume
-    ( l       "1e-3 m^3"	     "*Liter" )
-    ( L       "1e-3 m^3"	     "Liter" )
-    ( gal     "4 qt"		     "US Gallon" )
-    ( qt      "2 pt"		     "Quart" )
-    ( pt      "2 cup"		     "Pint" )
-    ( cup     "8 ozfl"		     "Cup" )
-    ( ozfl    "2 tbsp"		     "Fluid Ounce" )
-    ( floz    "2 tbsp"		     "Fluid Ounce" )
-    ( tbsp    "3 tsp"		     "Tablespoon" )
-    ( tsp     "4.92892159375 ml"    "Teaspoon" )
+    ( L       "1e-3 m^3"             "*Liter" )
+    ( l       "L"                    "Liter" )
+    ( gal     "4 qt"                 "US Gallon" )
+    ( qt      "2 pt"                 "Quart" )
+    ( pt      "2 cup"                "Pint" )
+    ( cup     "8 ozfl"               "Cup" )
+    ( ozfl    "2 tbsp"               "Fluid Ounce" )
+    ( floz    "2 tbsp"               "Fluid Ounce" )
+    ( tbsp    "3 tsp"                "Tablespoon" )
+    ( tsp     "4.92892159375 ml"     "Teaspoon" )
     ( vol     "tsp+tbsp+ozfl+cup+pt+qt+gal" "Gallons + ... + teaspoons" )
-    ( galC    "4.54609 l"	     "Canadian Gallon" )
-    ( galUK   "4.546092 l"	     "UK Gallon" )
+    ( galC    "4.54609 L"            "Canadian Gallon" )
+    ( galUK   "4.546092 L"           "UK Gallon" )
 
     ;; Time
-    ( s       nil		     "*Second" )
-    ( sec     "s"		     "Second" )
-    ( min     "60 s"		     "Minute" )
-    ( hr      "60 min"		     "Hour" )
-    ( day     "24 hr"		     "Day" )
-    ( wk      "7 day"		     "Week" )
-    ( hms     "wk+day+hr+min+s"     "Hours, minutes, seconds" )
-    ( yr      "365.25 day"	     "Year" )
-    ( Hz      "1/s"		     "Hertz" )
+    ( s       nil                    "*Second" )
+    ( sec     "s"                    "Second" )
+    ( min     "60 s"                 "Minute" )
+    ( hr      "60 min"               "Hour" )
+    ( day     "24 hr"                "Day" )
+    ( wk      "7 day"                "Week" )
+    ( hms     "wk+day+hr+min+s"      "Hours, minutes, seconds" )
+    ( yr      "365.25 day"           "Year" )
+    ( Hz      "1/s"                  "Hertz" )
 
     ;; Speed
-    ( mph     "mi/hr"		     "*Miles per hour" )
-    ( kph     "km/hr"		     "Kilometers per hour" )
-    ( knot    "nmi/hr"		     "Knot" )
-    ( c       "2.99792458e8 m/s"    "Speed of light" )
+    ( mph     "mi/hr"                "*Miles per hour" )
+    ( kph     "km/hr"                "Kilometers per hour" )
+    ( knot    "nmi/hr"               "Knot" )
+    ( c       "299792458 m/s"        "Speed of light" ) ;;; CODATA 2005
 
     ;; Acceleration
-    ( ga      "9.80665 m/s^2"	     "*\"g\" acceleration" )
+    ( ga      "9.80665 m/s^2"        "*\"g\" acceleration" ) ;; CODATA 2005
 
     ;; Mass
-    ( g       nil                   "*Gram" )
-    ( lb      "16 oz"		     "Pound (mass)" )
-    ( oz      "28.349523125 g"	     "Ounce (mass)" )
-    ( ton     "2000 lb"	     "Ton" )
-    ( tpo     "ton+lb+oz"	     "Tons + pounds + ounces (mass)" )
-    ( t       "1000 kg"	     "Metric ton" )
-    ( tonUK   "1016.0469088 kg"     "UK ton" )
-    ( lbt     "12 ozt"		     "Troy pound" )
-    ( ozt     "31.103475 g"	     "Troy ounce" )
-    ( ct      ".2 g"		     "Carat" )
-    ( amu     "1.66053873e-27 kg"   "Unified atomic mass" ) ;; CODATA 1998
+    ( g       nil                    "*Gram" )
+    ( lb      "16 oz"                "Pound (mass)" )
+    ( oz      "28.349523125 g"       "Ounce (mass)" )
+    ( ton     "2000 lb"              "Ton" )
+    ( tpo     "ton+lb+oz"            "Tons + pounds + ounces (mass)" )
+    ( t       "1000 kg"              "Metric ton" )
+    ( tonUK   "1016.0469088 kg"      "UK ton" )
+    ( lbt     "12 ozt"               "Troy pound" )
+    ( ozt     "31.103475 g"          "Troy ounce" )
+    ( ct      ".2 g"                 "Carat" )
+    ( u       "1.66053886e-27 kg"    "Unified atomic mass" ) ;; CODATA 2005
 
     ;; Force
-    ( N       "m kg/s^2"	     "*Newton" )
-    ( dyn     "1e-5 N"		     "Dyne" )
-    ( gf      "ga g"		     "Gram (force)" )
-    ( lbf     "4.44822161526 N"     "Pound (force)" )
-    ( kip     "1000 lbf"	     "Kilopound (force)" )
-    ( pdl     "0.138255 N"	     "Poundal" )
+    ( N       "m kg/s^2"             "*Newton" )
+    ( dyn     "1e-5 N"               "Dyne" )
+    ( gf      "ga g"                 "Gram (force)" )
+    ( lbf     "4.44822161526 N"      "Pound (force)" )
+    ( kip     "1000 lbf"             "Kilopound (force)" )
+    ( pdl     "0.138255 N"           "Poundal" )
 
     ;; Energy
-    ( J       "N m"		     "*Joule" )
-    ( erg     "1e-7 J"		     "Erg" )
-    ( cal     "4.1868 J"	     "International Table Calorie" )
-    ( Btu     "1055.05585262 J"     "International Table Btu" )
-    ( eV      "ech V"               "Electron volt" )
-    ( ev      "eV"                  "Electron volt" )
-    ( therm   "105506000 J"	     "EEC therm" )
-    ( invcm   "h c/cm"	  	     "Energy in inverse centimeters" )
-    ( Kayser  "invcm"		     "Kayser (inverse centimeter energy)" )
-    ( men     "100/invcm"	     "Inverse energy in meters" )
-    ( Hzen    "h Hz"		     "Energy in Hertz")
-    ( Ken     "k K"		     "Energy in Kelvins")
+    ( J       "N m"                  "*Joule" )
+    ( erg     "1e-7 J"               "Erg" )
+    ( cal     "4.1868 J"             "International Table Calorie" )
+    ( Btu     "1055.05585262 J"      "International Table Btu" )
+    ( eV      "ech V"                "Electron volt" )
+    ( ev      "eV"                   "Electron volt" )
+    ( therm   "105506000 J"          "EEC therm" )
+    ( invcm   "h c/cm"               "Energy in inverse centimeters" )
+    ( Kayser  "invcm"                "Kayser (inverse centimeter energy)" )
+    ( men     "100/invcm"            "Inverse energy in meters" )
+    ( Hzen    "h Hz"                 "Energy in Hertz")
+    ( Ken     "k K"                  "Energy in Kelvins")
     ( Wh      "W hr"                 "Watt hour")
-    ( Ws      "W s"                 "Watt second")
+    ( Ws      "W s"                  "Watt second")
 
     ;; Power
-    ( W       "J/s"		     "*Watt" )
-    ( hp      "745.7 W"	     "Horsepower" )
+    ( W       "J/s"                  "*Watt" )
+    ( hp      "745.7 W"              "Horsepower" )
 
     ;; Temperature
-    ( K       nil                   "*Degree Kelvin"     K )
-    ( dK      "K"		     "Degree Kelvin"	  K )
-    ( degK    "K"		     "Degree Kelvin"	  K )
-    ( dC      "K"		     "Degree Celsius"	  C )
-    ( degC    "K"      	     "Degree Celsius"	  C )
-    ( dF      "(5/9) K"	     "Degree Fahrenheit"  F )
-    ( degF    "(5/9) K"	     "Degree Fahrenheit"  F )
+    ( K       nil                    "*Degree Kelvin"     K )
+    ( dK      "K"                    "Degree Kelvin"      K )
+    ( degK    "K"                    "Degree Kelvin"      K )
+    ( dC      "K"                    "Degree Celsius"     C )
+    ( degC    "K"                    "Degree Celsius"     C )
+    ( dF      "(5/9) K"              "Degree Fahrenheit"  F )
+    ( degF    "(5/9) K"              "Degree Fahrenheit"  F )
 
     ;; Pressure
-    ( Pa      "N/m^2"		     "*Pascal" )
-    ( bar     "1e5 Pa"		     "Bar" )
-    ( atm     "101325 Pa"	     "Standard atmosphere" )
-    ( torr    " 1.333224e2 Pa"	     "Torr" ) ;; NIST (http://physics.nist.gov/Pubs/SP811/appenB9.html)
-    ( mHg     "1000 torr"	     "Meter of mercury" )
-    ( inHg    "25.4 mmHg"	     "Inch of mercury" )
-    ( inH2O   "2.490889e2 Pa"	     "Inch of water" ) ;; NIST (http://physics.nist.gov/Pubs/SP811/appenB9.html)
-    ( psi     "6894.75729317 Pa"    "Pound per square inch" )
+    ( Pa      "N/m^2"                "*Pascal" )
+    ( bar     "1e5 Pa"               "Bar" )
+    ( atm     "101325 Pa"            "Standard atmosphere" ) ;; CODATA 2005
+    ( Torr    " 1.333224e2 Pa"       "Torr" ) ;; NIST (http://physics.nist.gov/Pubs/SP811/appenB9.html)
+    ( mHg     "1000 Torr"            "Meter of mercury" )
+    ( inHg    "25.4 mmHg"            "Inch of mercury" )
+    ( inH2O   "2.490889e2 Pa"        "Inch of water" ) ;; NIST (http://physics.nist.gov/Pubs/SP811/appenB9.html)
+    ( psi     "6894.75729317 Pa"     "Pound per square inch" )
 
     ;; Viscosity
-    ( P       "0.1 Pa s"	     "*Poise" )
-    ( St      "1e-4 m^2/s"	     "Stokes" )
+    ( P       "0.1 Pa s"              "*Poise" )
+    ( St      "1e-4 m^2/s"            "Stokes" )
 
     ;; Electromagnetism
-    ( A       nil                   "*Ampere" )
-    ( C       "A s"		     "Coulomb" )
-    ( Fdy     "ech Nav"  	     "Faraday" )
-    ( e       "1.602176462e-19 C"   "Elementary charge" ) ;; CODATA 1998
-    ( ech     "1.602176462e-19 C"   "Elementary charge" ) ;; CODATA 1998
-    ( V       "W/A"		     "Volt" )
-    ( ohm     "V/A"		     "Ohm" )
-    ( mho     "A/V"		     "Mho" )
-    ( S       "A/V"		     "Siemens" )
-    ( F       "C/V"		     "Farad" )
-    ( H       "Wb/A"		     "Henry" )
-    ( T       "Wb/m^2"		     "Tesla" )
-    ( G       "1e-4 T"		     "Gauss" )
-    ( Wb      "V s"		     "Weber" )
+    ( A       nil                     "*Ampere" )
+    ( C       "A s"                   "Coulomb" )
+    ( Fdy     "ech Nav"               "Faraday" )
+    ( e       "1.60217653e-19 C"      "Elementary charge" ) ;; CODATA 2005
+    ( ech     "1.60217653e-19 C"      "Elementary charge" ) ;; CODATA 2005
+    ( V       "W/A"                   "Volt" )
+    ( ohm     "V/A"                   "Ohm" )
+    ( mho     "A/V"                   "Mho" )
+    ( S       "A/V"                   "Siemens" )
+    ( F       "C/V"                   "Farad" )
+    ( H       "Wb/A"                  "Henry" )
+    ( T       "Wb/m^2"                "Tesla" )
+    ( Gs      "1e-4 T"                "Gauss" )
+    ( Wb      "V s"                   "Weber" )
 
     ;; Luminous intensity
-    ( cd      nil                   "*Candela" )
-    ( sb      "1e4 cd/m^2"	     "Stilb" )
-    ( lm      "cd sr"		     "Lumen" )
-    ( lx      "lm/m^2"		     "Lux" )
-    ( ph      "1e4 lx"		     "Phot" )
-    ( fc      "10.76391 lx"	     "Footcandle" ) ;; NIST (http://physics.nist.gov/Pubs/SP811/appenB9.html)
-    ( lam     "1e4 lm/m^2"	     "Lambert" )
-    ( flam    "3.426259 cd/m^2"     "Footlambert" ) ;; NIST (http://physics.nist.gov/Pubs/SP811/appenB9.html)
+    ( cd      nil                     "*Candela" )
+    ( sb      "1e4 cd/m^2"            "Stilb" )
+    ( lm      "cd sr"                 "Lumen" )
+    ( lx      "lm/m^2"                "Lux" )
+    ( ph      "1e4 lx"                "Phot" )
+    ( fc      "10.76391 lx"           "Footcandle" ) ;; NIST (http://physics.nist.gov/Pubs/SP811/appenB9.html)
+    ( lam     "1e4 lm/m^2"            "Lambert" )
+    ( flam    "3.426259 cd/m^2"       "Footlambert" ) ;; NIST (http://physics.nist.gov/Pubs/SP811/appenB9.html)
 
     ;; Radioactivity
-    ( Bq      "1/s"  		     "*Becquerel" )
-    ( Ci      "3.7e10 Bq"	     "Curie" )
-    ( Gy      "J/kg"		     "Gray" )
-    ( Sv      "Gy"		     "Sievert" )
-    ( R       "2.58e-4 C/kg"	     "Roentgen" )
-    ( rd      ".01 Gy"		     "Rad" )
-    ( rem     "rd"		     "Rem" )
+    ( Bq      "1/s"                    "*Becquerel" )
+    ( Ci      "3.7e10 Bq"              "Curie" )
+    ( Gy      "J/kg"                   "Gray" )
+    ( Sv      "Gy"                     "Sievert" )
+    ( R       "2.58e-4 C/kg"           "Roentgen" )
+    ( rd      ".01 Gy"                 "Rad" )
+    ( rem     "rd"                     "Rem" )
 
     ;; Amount of substance
-    ( mol     nil                   "*Mole" )
+    ( mol     nil                      "*Mole" )
 
     ;; Plane angle
-    ( rad     nil                   "*Radian" )
-    ( circ    "2 pi rad"	     "Full circle" )
-    ( rev     "circ"		     "Full revolution" )
-    ( deg     "circ/360"            "Degree" )
-    ( arcmin  "deg/60"		     "Arc minute" )
-    ( arcsec  "arcmin/60"	     "Arc second" )
-    ( grad    "circ/400"            "Grade" )
-    ( rpm     "rev/min"	     "Revolutions per minute" )
+    ( rad     nil                      "*Radian" )
+    ( circ    "2 pi rad"               "Full circle" )
+    ( rev     "circ"                   "Full revolution" )
+    ( deg     "circ/360"               "Degree" )
+    ( arcmin  "deg/60"                 "Arc minute" )
+    ( arcsec  "arcmin/60"              "Arc second" )
+    ( grad    "circ/400"               "Grade" )
+    ( rpm     "rev/min"                "Revolutions per minute" )
 
     ;; Solid angle
-    ( sr      nil		     "*Steradian" )
+    ( sr      nil                      "*Steradian" )
 
-    ;; Other physical quantities (CODATA 1998)
-    ( h       "6.62606876e-34 J s"     "*Planck's constant" )
+    ;; Other physical quantities
+    ( h       "6.6260693e-34 J s"     "*Planck's constant" ) ;; CODATA 2005
     ( hbar    "h / 2 pi"               "Planck's constant" )
     ( mu0     "4 pi 1e-7 H/m"          "Permeability of vacuum" )
-    ( Grav    "6.673e-11 m^3/kg^1/s^2" "Gravitational constant" )
-    ( Nav     "6.02214199e23 / mol"    "Avagadro's constant" )
-    ( me      "9.10938188e-31 kg"      "Electron rest mass" )
-    ( mp      "1.67262158e-27 kg"      "Proton rest mass" )
-    ( mn      "1.67492716e-27 kg"      "Neutron rest mass" )
-    ( mu      "1.88353109e-28 kg"      "Muon rest mass" )
-    ( Ryd     "10973731.568549 /m"     "Rydberg's constant" )
-    ( k       "1.3806503e-23 J/K"      "Boltzmann's constant" )
-    ( fsc     "7.297352533e-3"         "Fine structure constant" )
-    ( muB     "927.400899e-26 J/T"     "Bohr magneton" )
-    ( muN     "5.05078317e-27 J/T"     "Nuclear magneton" )
-    ( mue     "-928.476362e-26 J/T"    "Electron magnetic moment" )
-    ( mup     "1.410606633e-26 J/T"    "Proton magnetic moment" )
-    ( R0      "8.314472 J/mol/K"       "Molar gas constant" )
+    ( G       "6.6742e-11 m^3/kg^1/s^2" "Gravitational constant" ) ;; CODATA 2005
+    ( Nav     "6.02214115e23 / mol"    "Avagadro's constant" ) ;; CODATA 2005
+    ( me      "9.1093826e-31 kg"       "Electron rest mass" ) ;; CODATA 2005
+    ( mp      "1.67262171e-27 kg"      "Proton rest mass" ) ;; CODATA 2005
+    ( mn      "1.67492728e-27 kg"      "Neutron rest mass" ) ;; CODATA 2005
+    ( mmu     "1.88353140e-28 kg"      "Muon rest mass" ) ;; CODATA 2005
+    ( Ryd     "10973731.568525 /m"     "Rydberg's constant" ) ;; CODATA 2005
+    ( k       "1.3806505e-23 J/K"      "Boltzmann's constant" ) ;; CODATA 2005
+    ( alpha   "7.297352568e-3"         "Fine structure constant" ) ;; CODATA 2005
+    ( muB     "927.400949e-26 J/T"     "Bohr magneton" ) ;; CODATA 2005
+    ( muN     "5.05078343e-27 J/T"     "Nuclear magneton" ) ;; CODATA 2005
+    ( mue     "-928.476412e-26 J/T"    "Electron magnetic moment" ) ;; CODATA 2005
+    ( mup     "1.41060671e-26 J/T"     "Proton magnetic moment" ) ;; CODATA 2005
+    ( R0      "8.314472 J/mol/K"       "Molar gas constant" ) ;; CODATA 2005
     ( V0      "22.710981e-3 m^3/mol"   "Standard volume of ideal gas" )))
 
 
@@ -247,7 +255,9 @@
 that the combined units table will be rebuilt.")
 
 (defvar math-unit-prefixes
-  '( ( ?E  (float 1 18)  "Exa"    )
+  '( ( ?Y  (float 1 24)  "Yotta"  )
+     ( ?Z  (float 1 21)  "Zetta"  )
+     ( ?E  (float 1 18)  "Exa"    )
      ( ?P  (float 1 15)  "Peta"   )
      ( ?T  (float 1 12)  "Tera"	  )
      ( ?G  (float 1 9)   "Giga"	  )
@@ -265,7 +275,9 @@
      ( ?n  (float 1 -9)  "Nano"	  )
      ( ?p  (float 1 -12) "Pico"	  )
      ( ?f  (float 1 -15) "Femto"  )
-     ( ?a  (float 1 -18) "Atto"   )))
+     ( ?a  (float 1 -18) "Atto"   )
+     ( ?z  (float 1 -21) "zepto"  )
+     ( ?y  (float 1 -24) "yocto"  )))
 
 (defvar math-standard-units-systems
   '( ( base  nil )
--- a/lisp/cus-edit.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/cus-edit.el	Mon Jan 16 06:59:21 2006 +0000
@@ -4245,20 +4245,10 @@
     (define-key map "u" 'Custom-goto-parent)
     (define-key map "n" 'widget-forward)
     (define-key map "p" 'widget-backward)
-    (define-key map [mouse-1] 'Custom-move-and-invoke)
+    (define-key map [mouse-1] 'widget-move-and-invoke)
     map)
   "Keymap for `custom-mode'.")
 
-(defun Custom-move-and-invoke (event)
-  "Move to where you click, and if it is an active field, invoke it."
-  (interactive "e")
-  (mouse-set-point event)
-  (if (widget-event-point event)
-      (let* ((pos (widget-event-point event))
-	     (button (get-char-property pos 'button)))
-	(if button
-	    (widget-button-click event)))))
-
 (easy-menu-define Custom-mode-menu
     custom-mode-map
   "Menu used in customization buffers."
--- a/lisp/cus-face.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/cus-face.el	Mon Jan 16 06:59:21 2006 +0000
@@ -47,7 +47,7 @@
 	  (dolist (frame (frame-list))
 	    (face-spec-set face value frame)))
 	;; When making a face after frames already exist
-	(if (memq window-system '(x w32))
+	(if (memq window-system '(x w32 mac))
 	    (make-face-x-resource-internal face))))
     ;; Don't record SPEC until we see it causes no errors.
     (put face 'face-defface-spec spec)
--- a/lisp/dabbrev.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/dabbrev.el	Mon Jan 16 06:59:21 2006 +0000
@@ -461,7 +461,8 @@
       ;; * String is a common substring completion already.  Make list.
       (message "Making completion list...")
       (with-output-to-temp-buffer "*Completions*"
-	(display-completion-list (all-completions init my-obarray)))
+	(display-completion-list (all-completions init my-obarray)
+				 init))
       (message "Making completion list...done")))
     (and (window-minibuffer-p (selected-window))
 	 (message nil))))
--- a/lisp/desktop.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/desktop.el	Mon Jan 16 06:59:21 2006 +0000
@@ -293,9 +293,8 @@
 
 ;; We skip .log files because they are normally temporary.
 ;;         (ftp) files because they require passwords and whatnot.
-;;         TAGS files to save time (tags-file-name is saved instead).
 (defcustom desktop-buffers-not-to-save
-  "\\(^nn\\.a[0-9]+\\|\\.log\\|(ftp)\\|^tags\\|^TAGS\\)$"
+  "\\(^nn\\.a[0-9]+\\|\\.log\\|(ftp)\\)$"
   "Regexp identifying buffers that are to be excluded from saving."
   :type 'regexp
   :group 'desktop)
@@ -307,7 +306,9 @@
   :type 'regexp
   :group 'desktop)
 
-(defcustom desktop-modes-not-to-save nil
+;; We skip TAGS files to save time (tags-file-name is saved instead).
+(defcustom desktop-modes-not-to-save
+  '(tags-table-mode)
   "List of major modes whose buffers should not be saved."
   :type '(repeat symbol)
   :group 'desktop)
--- a/lisp/diff-mode.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/diff-mode.el	Mon Jan 16 06:59:21 2006 +0000
@@ -967,7 +967,7 @@
 headers for you on-the-fly.
 
 You can also switch between context diff and unified diff with \\[diff-context->unified],
-or vice versa with \\[diff-unified->context] and you can also revert the direction of
+or vice versa with \\[diff-unified->context] and you can also reverse the direction of
 a diff with \\[diff-reverse-direction]."
   (set (make-local-variable 'font-lock-defaults) diff-font-lock-defaults)
   (set (make-local-variable 'outline-regexp) diff-outline-regexp)
--- a/lisp/disp-table.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/disp-table.el	Mon Jan 16 06:59:21 2006 +0000
@@ -145,7 +145,7 @@
   "Display character C as character SC in the g1 character set.
 This function assumes that your terminal uses the SO/SI characters;
 it is meaningless for an X frame."
-  (if (memq window-system '(x w32))
+  (if (memq window-system '(x w32 mac))
       (error "Cannot use string glyphs in a windowing system"))
   (or standard-display-table
       (setq standard-display-table (make-display-table)))
@@ -157,7 +157,7 @@
   "Display character C as character GC in graphics character set.
 This function assumes VT100-compatible escapes; it is meaningless for an
 X frame."
-  (if (memq window-system '(x w32))
+  (if (memq window-system '(x w32 mac))
       (error "Cannot use string glyphs in a windowing system"))
   (or standard-display-table
       (setq standard-display-table (make-display-table)))
@@ -217,7 +217,7 @@
 	       (equal (aref standard-display-table 161) [161])))
       (progn
 	(standard-display-default 160 255)
-	(unless (or (memq window-system '(x w32)))
+	(unless (or (memq window-system '(x w32 mac)))
 	  (and (terminal-coding-system)
 	       (set-terminal-coding-system nil))))
 
--- a/lisp/emacs-lisp/find-func.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/emacs-lisp/find-func.el	Mon Jan 16 06:59:21 2006 +0000
@@ -141,7 +141,7 @@
       (unless (string-match "elc" suffix) (push suffix suffixes)))))
 
 (defun find-library-name (library)
-  "Return the full name of the elisp source of LIBRARY."
+  "Return the absolute file name of the Lisp source of LIBRARY."
   ;; If the library is byte-compiled, try to find a source library by
   ;; the same name.
   (if (string-match "\\.el\\(c\\(\\..*\\)?\\)\\'" library)
--- a/lisp/emacs-lisp/lisp.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/emacs-lisp/lisp.el	Mon Jan 16 06:59:21 2006 +0000
@@ -586,7 +586,7 @@
 			 (setq list (cdr list)))
 		       (setq list (nreverse new))))
 		 (with-output-to-temp-buffer "*Completions*"
-		   (display-completion-list list)))
+		   (display-completion-list list pattern)))
 	       (message "Making completion list...%s" "done")))))))
 
 ;;; arch-tag: aa7fa8a4-2e6f-4e9b-9cd9-fef06340e67e
--- a/lisp/emacs-lisp/syntax.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/emacs-lisp/syntax.el	Mon Jan 16 06:59:21 2006 +0000
@@ -83,10 +83,14 @@
     (setq syntax-ppss-cache (cdr syntax-ppss-cache)))
   ;; Throw away `last' value if made invalid.
   (when (< beg (or (car syntax-ppss-last) 0))
-    (if (< beg (or (car (nth 10 syntax-ppss-last))
-		   (nth 9 syntax-ppss-last)
-		   (nth 2 syntax-ppss-last)
-		   0))
+    ;; If syntax-begin-function jumped to BEG, then the old state at BEG can
+    ;; depend on the text after BEG (which is presumably changed).  So if
+    ;; BEG=(car (nth 10 syntax-ppss-last)) don't reuse that data because the
+    ;; assumed nil state at BEG may not be valid any more.
+    (if (<= beg (or (car (nth 10 syntax-ppss-last))
+                    (nth 9 syntax-ppss-last)
+                    (nth 3 syntax-ppss-last)
+                    0))
 	(setq syntax-ppss-last nil)
       (setcar syntax-ppss-last nil)))
   ;; Unregister if there's no cache left.  Sadly this doesn't work
@@ -293,5 +297,5 @@
 
 (provide 'syntax)
 
-;;; arch-tag: 302f1eeb-e77c-4680-a8c5-c543e01161a5
+;; arch-tag: 302f1eeb-e77c-4680-a8c5-c543e01161a5
 ;;; syntax.el ends here
--- a/lisp/eshell/em-hist.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/eshell/em-hist.el	Mon Jan 16 06:59:21 2006 +0000
@@ -507,7 +507,7 @@
 	;; Change "completion" to "history reference"
 	;; to make the display accurate.
 	(with-output-to-temp-buffer history-buffer
-	  (display-completion-list history)
+	  (display-completion-list history prefix)
 	  (set-buffer history-buffer)
 	  (forward-line 3)
 	  (while (search-backward "completion" nil 'move)
--- a/lisp/ffap.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/ffap.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1380,9 +1380,7 @@
 With a prefix, this command behaves exactly like `ffap-file-finder'.
 If `ffap-require-prefix' is set, the prefix meaning is reversed.
 See also the variables `ffap-dired-wildcards', `ffap-newfile-prompt',
-and the functions `ffap-file-at-point' and `ffap-url-at-point'.
-
-See <ftp://ftp.mathcs.emory.edu/pub/mic/emacs/> for latest version."
+and the functions `ffap-file-at-point' and `ffap-url-at-point'."
   (interactive)
   (if (and (interactive-p)
 	   (if ffap-require-prefix (not current-prefix-arg)
--- a/lisp/filecache.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/filecache.el	Mon Jan 16 06:59:21 2006 +0000
@@ -607,7 +607,7 @@
 			    completion-setup-hook)))
 		    )
 		(with-output-to-temp-buffer file-cache-completions-buffer
-		  (display-completion-list completion-list))
+		  (display-completion-list completion-list string))
 		)
 	      )
 	  (setq file-cache-string (file-cache-file-name completion-string))
@@ -700,7 +700,7 @@
 	   )
 	  (t
 	   (with-output-to-temp-buffer "*Completions*"
-	     (display-completion-list all))
+	     (display-completion-list all pattern))
 	   ))
     ))
 
--- a/lisp/font-core.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/font-core.el	Mon Jan 16 06:59:21 2006 +0000
@@ -118,17 +118,14 @@
 
  (global-font-lock-mode t)
 
-There are a number of support modes that may be used to speed up Font Lock mode
-in various ways, specified via the variable `font-lock-support-mode'.  Where
-major modes support different levels of fontification, you can use the variable
-`font-lock-maximum-decoration' to specify which level you generally prefer.
-When you turn Font Lock mode on/off the buffer is fontified/defontified, though
-fontification occurs only if the buffer is less than `font-lock-maximum-size'.
+Where major modes support different levels of fontification, you can use
+the variable `font-lock-maximum-decoration' to specify which level you
+generally prefer.  When you turn Font Lock mode on/off the buffer is
+fontified/defontified, though fontification occurs only if the buffer is
+less than `font-lock-maximum-size'.
 
-For example, to specify that Font Lock mode uses Lazy Lock mode as a support
-mode and use maximum levels of fontification, put in your ~/.emacs:
+For example, to use maximum levels of fontification, put in your ~/.emacs:
 
- (setq font-lock-support-mode 'lazy-lock-mode)
  (setq font-lock-maximum-decoration t)
 
 To add your own highlighting for some major mode, and modify the highlighting
--- a/lisp/font-lock.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/font-lock.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1048,8 +1048,7 @@
           (setq beg (line-beginning-position (- 1 font-lock-lines-before)))
 	  ;; check to see if we should expand the beg/end area for
 	  ;; proper multiline matches
-	  (when (and font-lock-multiline
-		     (> beg (point-min))
+	  (when (and (> beg (point-min))
 		     (get-text-property (1- beg) 'font-lock-multiline))
 	    ;; We are just after or in a multiline match.
 	    (setq beg (or (previous-single-property-change
@@ -1057,10 +1056,9 @@
 			  (point-min)))
 	    (goto-char beg)
 	    (setq beg (line-beginning-position)))
-	  (when font-lock-multiline
-	    (setq end (or (text-property-any end (point-max)
-					     'font-lock-multiline nil)
-			  (point-max))))
+          (setq end (or (text-property-any end (point-max)
+                                           'font-lock-multiline nil)
+                        (point-max)))
 	  (goto-char end)
 	  ;; Round up to a whole line.
           (unless (bolp) (setq end (line-beginning-position 2)))
@@ -1184,35 +1182,35 @@
 
 ;; For completeness: this is to `remove-text-properties' as `put-text-property'
 ;; is to `add-text-properties', etc.
-;(defun remove-text-property (start end property &optional object)
-;  "Remove a property from text from START to END.
-;Argument PROPERTY is the property to remove.
-;Optional argument OBJECT is the string or buffer containing the text.
-;Return t if the property was actually removed, nil otherwise."
-;  (remove-text-properties start end (list property) object))
+;;(defun remove-text-property (start end property &optional object)
+;;  "Remove a property from text from START to END.
+;;Argument PROPERTY is the property to remove.
+;;Optional argument OBJECT is the string or buffer containing the text.
+;;Return t if the property was actually removed, nil otherwise."
+;;  (remove-text-properties start end (list property) object))
 
 ;; For consistency: maybe this should be called `remove-single-property' like
 ;; `next-single-property-change' (not `next-single-text-property-change'), etc.
-;(defun remove-single-text-property (start end prop value &optional object)
-;  "Remove a specific property value from text from START to END.
-;Arguments PROP and VALUE specify the property and value to remove.  The
-;resulting property values are not equal to VALUE nor lists containing VALUE.
-;Optional argument OBJECT is the string or buffer containing the text."
-;  (let ((start (text-property-not-all start end prop nil object)) next prev)
-;    (while start
-;      (setq next (next-single-property-change start prop object end)
-;	    prev (get-text-property start prop object))
-;      (cond ((and (symbolp prev) (eq value prev))
-;	     (remove-text-property start next prop object))
-;	    ((and (listp prev) (memq value prev))
-;	     (let ((new (delq value prev)))
-;	       (cond ((null new)
-;		      (remove-text-property start next prop object))
-;		     ((= (length new) 1)
-;		      (put-text-property start next prop (car new) object))
-;		     (t
-;		      (put-text-property start next prop new object))))))
-;      (setq start (text-property-not-all next end prop nil object)))))
+;;(defun remove-single-text-property (start end prop value &optional object)
+;;  "Remove a specific property value from text from START to END.
+;;Arguments PROP and VALUE specify the property and value to remove.  The
+;;resulting property values are not equal to VALUE nor lists containing VALUE.
+;;Optional argument OBJECT is the string or buffer containing the text."
+;;  (let ((start (text-property-not-all start end prop nil object)) next prev)
+;;    (while start
+;;      (setq next (next-single-property-change start prop object end)
+;;	    prev (get-text-property start prop object))
+;;      (cond ((and (symbolp prev) (eq value prev))
+;;	     (remove-text-property start next prop object))
+;;	    ((and (listp prev) (memq value prev))
+;;	     (let ((new (delq value prev)))
+;;	       (cond ((null new)
+;;		      (remove-text-property start next prop object))
+;;		     ((= (length new) 1)
+;;		      (put-text-property start next prop (car new) object))
+;;		     (t
+;;		      (put-text-property start next prop new object))))))
+;;      (setq start (text-property-not-all next end prop nil object)))))
 
 ;;; End of Additional text property functions.
 
@@ -1534,7 +1532,8 @@
 		   (if (memq (get-text-property (match-beginning 0) 'face)
 			     '(font-lock-string-face font-lock-doc-face
 			       font-lock-comment-face))
-		       font-lock-warning-face)
+		       (list 'face font-lock-warning-face
+                             'help-echo "Looks like a toplevel defun: escape the parenthesis"))
 		   prepend)))))
     keywords))
 
@@ -1602,7 +1601,7 @@
     (let* ((defaults (or font-lock-defaults
 			 (cdr (assq major-mode
 				    (with-no-warnings
-				     font-lock-defaults-alist)))))
+                                      font-lock-defaults-alist)))))
 	   (keywords
 	    (font-lock-choose-keywords (nth 0 defaults)
 				       (font-lock-value-in-major-mode font-lock-maximum-decoration)))
@@ -1854,95 +1853,95 @@
 ;; buttons and when they are on or off needs tweaking.  I have assumed that the
 ;; mechanism is via `menu-toggle' and `menu-selected' symbol properties.  sm.
 
-;;;;###autoload
-;(progn
-;  ;; Make the Font Lock menu.
-;  (defvar font-lock-menu (make-sparse-keymap "Syntax Highlighting"))
-;  ;; Add the menu items in reverse order.
-;  (define-key font-lock-menu [fontify-less]
-;    '("Less In Current Buffer" . font-lock-fontify-less))
-;  (define-key font-lock-menu [fontify-more]
-;    '("More In Current Buffer" . font-lock-fontify-more))
-;  (define-key font-lock-menu [font-lock-sep]
-;    '("--"))
-;  (define-key font-lock-menu [font-lock-mode]
-;    '("In Current Buffer" . font-lock-mode))
-;  (define-key font-lock-menu [global-font-lock-mode]
-;    '("In All Buffers" . global-font-lock-mode)))
-;
-;;;;###autoload
-;(progn
-;  ;; We put the appropriate `menu-enable' etc. symbol property values on when
-;  ;; font-lock.el is loaded, so we don't need to autoload the three variables.
-;  (put 'global-font-lock-mode 'menu-toggle t)
-;  (put 'font-lock-mode 'menu-toggle t)
-;  (put 'font-lock-fontify-more 'menu-enable '(identity))
-;  (put 'font-lock-fontify-less 'menu-enable '(identity)))
-;
-; ;; Put the appropriate symbol property values on now.  See above.
-;(put 'global-font-lock-mode 'menu-selected 'global-font-lock-mode)
-;(put 'font-lock-mode 'menu-selected 'font-lock-mode)
-;(put 'font-lock-fontify-more 'menu-enable '(nth 2 font-lock-fontify-level))
-;(put 'font-lock-fontify-less 'menu-enable '(nth 1 font-lock-fontify-level))
-;
-;(defvar font-lock-fontify-level nil)	; For less/more fontification.
-;
-;(defun font-lock-fontify-level (level)
-;  (let ((font-lock-maximum-decoration level))
-;    (when font-lock-mode
-;      (font-lock-mode))
-;    (font-lock-mode)
-;    (when font-lock-verbose
-;      (message "Fontifying %s... level %d" (buffer-name) level))))
-;
-;(defun font-lock-fontify-less ()
-;  "Fontify the current buffer with less decoration.
-;See `font-lock-maximum-decoration'."
-;  (interactive)
-;  ;; Check in case we get called interactively.
-;  (if (nth 1 font-lock-fontify-level)
-;      (font-lock-fontify-level (1- (car font-lock-fontify-level)))
-;    (error "No less decoration")))
-;
-;(defun font-lock-fontify-more ()
-;  "Fontify the current buffer with more decoration.
-;See `font-lock-maximum-decoration'."
-;  (interactive)
-;  ;; Check in case we get called interactively.
-;  (if (nth 2 font-lock-fontify-level)
-;      (font-lock-fontify-level (1+ (car font-lock-fontify-level)))
-;    (error "No more decoration")))
-;
-; ;; This should be called by `font-lock-set-defaults'.
-;(defun font-lock-set-menu ()
-;  ;; Activate less/more fontification entries if there are multiple levels for
-;  ;; the current buffer.  Sets `font-lock-fontify-level' to be of the form
-;  ;; (CURRENT-LEVEL IS-LOWER-LEVEL-P IS-HIGHER-LEVEL-P) for menu activation.
-;  (let ((keywords (or (nth 0 font-lock-defaults)
-;		      (nth 1 (assq major-mode font-lock-defaults-alist))))
-;	(level (font-lock-value-in-major-mode font-lock-maximum-decoration)))
-;    (make-local-variable 'font-lock-fontify-level)
-;    (if (or (symbolp keywords) (= (length keywords) 1))
-;	(font-lock-unset-menu)
-;      (cond ((eq level t)
-;	     (setq level (1- (length keywords))))
-;	    ((or (null level) (zerop level))
-;	     ;; The default level is usually, but not necessarily, level 1.
-;	     (setq level (- (length keywords)
-;			    (length (member (eval (car keywords))
-;					    (mapcar 'eval (cdr keywords))))))))
-;      (setq font-lock-fontify-level (list level (> level 1)
-;					  (< level (1- (length keywords))))))))
-;
-; ;; This should be called by `font-lock-unset-defaults'.
-;(defun font-lock-unset-menu ()
-;  ;; Deactivate less/more fontification entries.
-;  (setq font-lock-fontify-level nil))
+;;;;;###autoload
+;;(progn
+;;  ;; Make the Font Lock menu.
+;;  (defvar font-lock-menu (make-sparse-keymap "Syntax Highlighting"))
+;;  ;; Add the menu items in reverse order.
+;;  (define-key font-lock-menu [fontify-less]
+;;    '("Less In Current Buffer" . font-lock-fontify-less))
+;;  (define-key font-lock-menu [fontify-more]
+;;    '("More In Current Buffer" . font-lock-fontify-more))
+;;  (define-key font-lock-menu [font-lock-sep]
+;;    '("--"))
+;;  (define-key font-lock-menu [font-lock-mode]
+;;    '("In Current Buffer" . font-lock-mode))
+;;  (define-key font-lock-menu [global-font-lock-mode]
+;;    '("In All Buffers" . global-font-lock-mode)))
+;;
+;;;;;###autoload
+;;(progn
+;;  ;; We put the appropriate `menu-enable' etc. symbol property values on when
+;;  ;; font-lock.el is loaded, so we don't need to autoload the three variables.
+;;  (put 'global-font-lock-mode 'menu-toggle t)
+;;  (put 'font-lock-mode 'menu-toggle t)
+;;  (put 'font-lock-fontify-more 'menu-enable '(identity))
+;;  (put 'font-lock-fontify-less 'menu-enable '(identity)))
+;;
+;; ;; Put the appropriate symbol property values on now.  See above.
+;;(put 'global-font-lock-mode 'menu-selected 'global-font-lock-mode)
+;;(put 'font-lock-mode 'menu-selected 'font-lock-mode)
+;;(put 'font-lock-fontify-more 'menu-enable '(nth 2 font-lock-fontify-level))
+;;(put 'font-lock-fontify-less 'menu-enable '(nth 1 font-lock-fontify-level))
+;;
+;;(defvar font-lock-fontify-level nil)	; For less/more fontification.
+;;
+;;(defun font-lock-fontify-level (level)
+;;  (let ((font-lock-maximum-decoration level))
+;;    (when font-lock-mode
+;;      (font-lock-mode))
+;;    (font-lock-mode)
+;;    (when font-lock-verbose
+;;      (message "Fontifying %s... level %d" (buffer-name) level))))
+;;
+;;(defun font-lock-fontify-less ()
+;;  "Fontify the current buffer with less decoration.
+;;See `font-lock-maximum-decoration'."
+;;  (interactive)
+;;  ;; Check in case we get called interactively.
+;;  (if (nth 1 font-lock-fontify-level)
+;;      (font-lock-fontify-level (1- (car font-lock-fontify-level)))
+;;    (error "No less decoration")))
+;;
+;;(defun font-lock-fontify-more ()
+;;  "Fontify the current buffer with more decoration.
+;;See `font-lock-maximum-decoration'."
+;;  (interactive)
+;;  ;; Check in case we get called interactively.
+;;  (if (nth 2 font-lock-fontify-level)
+;;      (font-lock-fontify-level (1+ (car font-lock-fontify-level)))
+;;    (error "No more decoration")))
+;;
+;; ;; This should be called by `font-lock-set-defaults'.
+;;(defun font-lock-set-menu ()
+;;  ;; Activate less/more fontification entries if there are multiple levels for
+;;  ;; the current buffer.  Sets `font-lock-fontify-level' to be of the form
+;;  ;; (CURRENT-LEVEL IS-LOWER-LEVEL-P IS-HIGHER-LEVEL-P) for menu activation.
+;;  (let ((keywords (or (nth 0 font-lock-defaults)
+;;		      (nth 1 (assq major-mode font-lock-defaults-alist))))
+;;	(level (font-lock-value-in-major-mode font-lock-maximum-decoration)))
+;;    (make-local-variable 'font-lock-fontify-level)
+;;    (if (or (symbolp keywords) (= (length keywords) 1))
+;;	(font-lock-unset-menu)
+;;      (cond ((eq level t)
+;;	     (setq level (1- (length keywords))))
+;;	    ((or (null level) (zerop level))
+;;	     ;; The default level is usually, but not necessarily, level 1.
+;;	     (setq level (- (length keywords)
+;;			    (length (member (eval (car keywords))
+;;					    (mapcar 'eval (cdr keywords))))))))
+;;      (setq font-lock-fontify-level (list level (> level 1)
+;;					  (< level (1- (length keywords))))))))
+;;
+;; ;; This should be called by `font-lock-unset-defaults'.
+;;(defun font-lock-unset-menu ()
+;;  ;; Deactivate less/more fontification entries.
+;;  (setq font-lock-fontify-level nil))
 
 ;;; End of Menu support.
 
 ;;; Various regexp information shared by several modes.
-; ;; Information specific to a single mode should go in its load library.
+;; ;; Information specific to a single mode should go in its load library.
 
 ;; Font Lock support for C, C++, Objective-C and Java modes is now in
 ;; cc-fonts.el (and required by cc-mode.el).  However, the below function
--- a/lisp/frame.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/frame.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1053,9 +1053,9 @@
   "Return the number of screens associated with DISPLAY."
   (let ((frame-type (framep-on-display display)))
     (cond
-     ((memq frame-type '(x w32))
+     ((memq frame-type '(x w32 mac))
       (x-display-screens display))
-     (t	;; FIXME: is this correct for the Mac?
+     (t
       1))))
 
 (defun display-pixel-height (&optional display)
@@ -1263,7 +1263,7 @@
   :init-value (not (or noninteractive
 		       no-blinking-cursor
 		       (eq system-type 'ms-dos)
-		       (not (memq window-system '(x w32)))))
+		       (not (memq window-system '(x w32 mac)))))
   :initialize 'custom-initialize-safe-default
   :group 'cursor
   :global t
--- a/lisp/gnus/ChangeLog	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/gnus/ChangeLog	Mon Jan 16 06:59:21 2006 +0000
@@ -1,3 +1,53 @@
+2005-10-20  Hiroshi Fujishima  <hiroshi.fujishima@gmail.com>  (tiny change)
+
+	* mail-source.el (mail-source-fetch-pop): Require pop3.
+	(mail-source-check-pop): Ditto.
+
+2005-10-20  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2047.el (rfc2047-decode-encoded-words): Fix the handling of
+	errors.
+
+2005-10-19  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-treat-strip-trailing-blank-lines)
+	(gnus-treat-strip-leading-blank-lines): Improve doc string.
+
+	* message.el (message-tool-bar-local-item-from-menu): Fix comment.
+
+2005-10-19  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2047.el (rfc2047-allow-incomplete-encoded-text): New variable.
+	(rfc2047-charset-to-coding-system): New function.
+	(rfc2047-decode-encoded-words): New function.
+	(rfc2047-decode-region): Use them.
+	(rfc2047-decode-cte): Remove.
+	(rfc2047-parse-and-decode): Remove.
+	(rfc2047-decode): Remove.
+
+2005-10-15  Kenichi Handa  <handa@m17n.org>
+
+	* rfc2047.el (rfc2047-decode-cte): New function.
+	(rfc2047-decode-region): Change the way to decode successive
+	encoded-words: decode B- or Q-encoding in each encoded-word,
+	concatenate them, and decode it as charset.
+
+2005-10-17  Chong Yidong  <cyd@stupidchicken.com>
+
+	* gnus-cus.el (gnus-custom-map): New variable.  Bind mouse-1 to
+	widget-move-and-invoke.
+	(gnus-custom-mode): Use gnus-custom-map.
+
+2005-10-15  Bill Wohler  <wohler@newt.com>
+
+	* message.el (message-tool-bar-map): Renamed image file from
+	mail_send to mail/send.
+
+2005-10-16  Masatake YAMATO  <jet@gyve.org>
+
+	* message.el (message-expand-group): Pass the common
+	prefix substring of completion to `display-completion-list'.
+
 2005-10-09  Daniel Brockman <daniel@brockman.se>
 
 	* format-spec.el (format-spec): Propagate text properties of % spec.
--- a/lisp/gnus/gnus-art.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/gnus/gnus-art.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1181,7 +1181,10 @@
 (defcustom gnus-treat-strip-trailing-blank-lines nil
   "Strip trailing blank lines.
 Valid values are nil, t, `head', `last', an integer or a predicate.
-See Info node `(gnus)Customizing Articles' for details."
+See Info node `(gnus)Customizing Articles' for details.
+
+When set to t, it also strips trailing blanks in all MIME parts.
+Consider to use `last' instead."
   :group 'gnus-article-treat
   :link '(custom-manual "(gnus)Customizing Articles")
   :type gnus-article-treat-custom)
@@ -1189,7 +1192,9 @@
 (defcustom gnus-treat-strip-leading-blank-lines nil
   "Strip leading blank lines.
 Valid values are nil, t, `head', `last', an integer or a predicate.
-See Info node `(gnus)Customizing Articles' for details."
+See Info node `(gnus)Customizing Articles' for details.
+
+When set to t, it also strips trailing blanks in all MIME parts."
   :group 'gnus-article-treat
   :link '(custom-manual "(gnus)Customizing Articles")
   :type gnus-article-treat-custom)
--- a/lisp/gnus/gnus-cus.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/gnus/gnus-cus.el	Mon Jan 16 06:59:21 2006 +0000
@@ -36,6 +36,14 @@
 
 ;;; Widgets:
 
+(defvar gnus-custom-map
+  (let ((map (make-keymap)))
+    (set-keymap-parent map widget-keymap)
+    (suppress-keymap map)
+    (define-key map [mouse-1] 'widget-move-and-invoke)
+    map)
+  "Keymap for editing Gnus customization buffers.")
+
 (defun gnus-custom-mode ()
   "Major mode for editing Gnus customization buffers.
 
@@ -51,7 +59,7 @@
   (kill-all-local-variables)
   (setq major-mode 'gnus-custom-mode
 	mode-name "Gnus Customize")
-  (use-local-map widget-keymap)
+  (use-local-map gnus-custom-map)
   ;; Emacs 21 stuff:
   (when (and (facep 'custom-button-face)
 	     (facep 'custom-button-pressed-face))
@@ -479,7 +487,7 @@
 	    (widget-create 'sexp
 			   :tag "Method"
 			   :value (gnus-info-method info))))
-    (use-local-map widget-keymap)
+    (use-local-map gnus-custom-map)
     (widget-setup)
     (buffer-enable-undo)
     (goto-char (point-min))))
@@ -873,7 +881,7 @@
 			 '(repeat :inline t
 				  :tag "Unknown entries"
 				  sexp)))
-    (use-local-map widget-keymap)
+    (use-local-map gnus-custom-map)
     (widget-setup)))
 
 (defun gnus-score-customize-done (&rest ignore)
@@ -1050,7 +1058,7 @@
 
       (gnus-agent-cat-prepare-category-field agent-enable-undownloaded-faces)
 
-      (use-local-map widget-keymap)
+      (use-local-map gnus-custom-map)
       (widget-setup)
       (buffer-enable-undo))))
 
--- a/lisp/gnus/mail-source.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/gnus/mail-source.el	Mon Jan 16 06:59:21 2006 +0000
@@ -740,6 +740,7 @@
 	      (funcall function mail-source-crash-box))
 	     ;; The default is to use pop3.el.
 	     (t
+	      (require 'pop3)
 	      (let ((pop3-password password)
 		    (pop3-maildrop user)
 		    (pop3-mailhost server)
@@ -801,6 +802,7 @@
 	     (function)
 	     ;; The default is to use pop3.el.
 	     (t
+	      (require 'pop3)
 	      (let ((pop3-password password)
 		    (pop3-maildrop user)
 		    (pop3-mailhost server)
--- a/lisp/gnus/message.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/gnus/message.el	Mon Jan 16 06:59:21 2006 +0000
@@ -6565,9 +6565,8 @@
 
 (defun message-tool-bar-local-item-from-menu (command icon in-map &optional from-map &rest props)
   ;; We need to make tool bar entries in local keymaps with
-  ;; `tool-bar-local-item-from-menu' in Emacs > 21.3
+  ;; `tool-bar-local-item-from-menu' in Emacs >= 22
   (if (fboundp 'tool-bar-local-item-from-menu)
-      ;; This is for Emacs 21.3
       (tool-bar-local-item-from-menu command icon in-map from-map props)
     (tool-bar-add-item-from-menu command icon from-map props)))
 
@@ -6586,7 +6585,7 @@
 					   write-file dired open-file))
 		 (define-key tool-bar-map (vector key) nil))
 	       (message-tool-bar-local-item-from-menu
-		'message-send-and-exit "mail_send" tool-bar-map message-mode-map)
+		'message-send-and-exit "mail/send" tool-bar-map message-mode-map)
 	       (message-tool-bar-local-item-from-menu
 		'message-kill-buffer "close" tool-bar-map message-mode-map)
 	       (message-tool-bar-local-item-from-menu
@@ -6691,7 +6690,7 @@
 	  (let ((buffer-read-only nil))
 	    (erase-buffer)
 	    (let ((standard-output (current-buffer)))
-	      (display-completion-list (sort completions 'string<)))
+	      (display-completion-list (sort completions 'string<) string))
 	    (goto-char (point-min))
 	    (delete-region (point) (progn (forward-line 3) (point))))))))))
 
--- a/lisp/gnus/rfc2047.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/gnus/rfc2047.el	Mon Jan 16 06:59:21 2006 +0000
@@ -812,6 +812,85 @@
 (defvar rfc2047-quote-decoded-words-containing-tspecials nil
   "If non-nil, quote decoded words containing special characters.")
 
+(defvar rfc2047-allow-incomplete-encoded-text t
+  "*Non-nil means allow incomplete encoded-text in successive encoded-words.
+Dividing of encoded-text in the place other than character boundaries
+violates RFC2047 section 5, while we have a capability to decode it.
+If it is non-nil, the decoder will decode B- or Q-encoding in each
+encoded-word, concatenate them, and decode it by charset.  Otherwise,
+the decoder will fully decode each encoded-word before concatenating
+them.")
+
+(defun rfc2047-charset-to-coding-system (charset)
+  "Return coding-system corresponding to MIME CHARSET.
+If your Emacs implementation can't decode CHARSET, return nil."
+  (when (stringp charset)
+    (setq charset (intern (downcase charset))))
+  (when (or (not charset)
+	    (eq 'gnus-all mail-parse-ignored-charsets)
+	    (memq 'gnus-all mail-parse-ignored-charsets)
+	    (memq charset mail-parse-ignored-charsets))
+    (setq charset mail-parse-charset))
+  (let ((cs (mm-coding-system-p (mm-charset-to-coding-system charset))))
+    (cond ((eq cs 'ascii)
+	   (setq cs (or (mm-charset-to-coding-system mail-parse-charset)
+			'raw-text)))
+	  (cs)
+	  ((and charset
+		(listp mail-parse-ignored-charsets)
+		(memq 'gnus-unknown mail-parse-ignored-charsets))
+	   (setq cs (mm-charset-to-coding-system mail-parse-charset))))
+    (if (eq cs 'ascii)
+	'raw-text
+      cs)))
+
+(defun rfc2047-decode-encoded-words (words)
+  "Decode successive encoded-words in WORDS and return a decoded string.
+Each element of WORDS looks like (CHARSET ENCODING ENCODED-TEXT
+ENCODED-WORD)."
+  (let (word charset cs encoding text rest)
+    (while words
+      (setq word (pop words))
+      (if (and (or (setq cs (rfc2047-charset-to-coding-system
+			     (setq charset (car word))))
+		   (progn
+		     (message "Unknown charset: %s" charset)
+		     nil))
+	       (condition-case code
+		   (cond ((char-equal ?B (nth 1 word))
+			  (setq text (base64-decode-string
+				      (rfc2047-pad-base64 (nth 2 word)))))
+			 ((char-equal ?Q (nth 1 word))
+			  (setq text (quoted-printable-decode-string
+				      (mm-subst-char-in-string
+				       ?_ ?  (nth 2 word) t)))))
+		 (error
+		  (message "%s" (error-message-string code))
+		  nil)))
+	  (if (and rfc2047-allow-incomplete-encoded-text
+		   (eq cs (caar rest)))
+	      ;; Concatenate text of which the charset is the same.
+	      (setcdr (car rest) (concat (cdar rest) text))
+	    (push (cons cs text) rest))
+	;; Don't decode encoded-word.
+	(push (cons nil (nth 3 word)) rest)))
+    (while rest
+      (setq words (concat
+		   (or (and (setq cs (caar rest))
+			    (condition-case code
+				(mm-decode-coding-string (cdar rest) cs)
+			      (error
+			       (message "%s" (error-message-string code))
+			       nil)))
+		       (concat (when (cdr rest) " ")
+			       (cdar rest)
+			       (when (and words
+					  (not (eq (string-to-char words) ? )))
+				 " ")))
+		   words)
+	    rest (cdr rest)))
+    words))
+
 ;; Fixme: This should decode in place, not cons intermediate strings.
 ;; Also check whether it needs to worry about delimiting fields like
 ;; encoding.
@@ -826,32 +905,32 @@
   "Decode MIME-encoded words in region between START and END."
   (interactive "r")
   (let ((case-fold-search t)
-	b e)
+	(eword-regexp (eval-when-compile
+			;; Ignore whitespace between encoded-words.
+			(concat "[\n\t ]*\\(" rfc2047-encoded-word-regexp
+				"\\)")))
+	b e match words)
     (save-excursion
       (save-restriction
 	(narrow-to-region start end)
-	(goto-char (point-min))
-	;; Remove whitespace between encoded words.
-	(while (re-search-forward
-		(eval-when-compile
-		  (concat "\\(" rfc2047-encoded-word-regexp "\\)"
-			  "\\(\n?[ \t]\\)+"
-			  "\\(" rfc2047-encoded-word-regexp "\\)"))
-		nil t)
-	  (delete-region (goto-char (match-end 1)) (match-beginning 7)))
-	;; Decode the encoded words.
-	(setq b (goto-char (point-min)))
-	(while (re-search-forward rfc2047-encoded-word-regexp nil t)
-	  (setq e (match-beginning 0))
-	  (insert (rfc2047-parse-and-decode
-		   (prog1
-		       (match-string 0)
-		     (delete-region e (match-end 0)))))
-	  (while (looking-at rfc2047-encoded-word-regexp)
-	    (insert (rfc2047-parse-and-decode
-		     (prog1
-			 (match-string 0)
-		       (delete-region (point) (match-end 0))))))
+	(goto-char (setq b start))
+	;; Look for the encoded-words.
+	(while (setq match (re-search-forward eword-regexp nil t))
+	  (setq e (match-beginning 1)
+		end (match-end 0)
+		words nil)
+	  (while match
+	    (push (list (match-string 2) ;; charset
+			(char-after (match-beginning 4)) ;; encoding
+			(match-string 5) ;; encoded-text
+			(match-string 1)) ;; encoded-word
+		  words)
+	    ;; Look for the subsequent encoded-words.
+	    (when (setq match (looking-at eword-regexp))
+	      (goto-char (setq end (match-end 0)))))
+	  ;; Replace the encoded-words with the decoded one.
+	  (delete-region e end)
+	  (insert (rfc2047-decode-encoded-words (nreverse words)))
 	  (save-restriction
 	    (narrow-to-region e (point))
 	    (goto-char e)
@@ -957,21 +1036,6 @@
 	    (mm-decode-coding-string string mail-parse-charset))
 	(mm-string-as-multibyte string)))))
 
-(defun rfc2047-parse-and-decode (word)
-  "Decode WORD and return it if it is an encoded word.
-Return WORD if it is not not an encoded word or if the charset isn't
-decodable."
-  (if (not (string-match rfc2047-encoded-word-regexp word))
-      word
-    (or
-     (condition-case nil
-	 (rfc2047-decode
-	  (match-string 1 word)
-	  (string-to-char (match-string 3 word))
-	  (match-string 4 word))
-       (error word))
-     word)))				; un-decodable
-
 (defun rfc2047-pad-base64 (string)
   "Pad STRING to quartets."
   ;; Be more liberal to accept buggy base64 strings. If
@@ -987,36 +1051,6 @@
       (2 (concat string "=="))
       (3 (concat string "=")))))
 
-(defun rfc2047-decode (charset encoding string)
-  "Decode STRING from the given MIME CHARSET in the given ENCODING.
-Valid ENCODINGs are the characters \"B\" and \"Q\".
-If your Emacs implementation can't decode CHARSET, return nil."
-  (if (stringp charset)
-      (setq charset (intern (downcase charset))))
-  (if (or (not charset)
-	  (eq 'gnus-all mail-parse-ignored-charsets)
-	  (memq 'gnus-all mail-parse-ignored-charsets)
-	  (memq charset mail-parse-ignored-charsets))
-      (setq charset mail-parse-charset))
-  (let ((cs (mm-charset-to-coding-system charset)))
-    (if (and (not cs) charset
-	     (listp mail-parse-ignored-charsets)
-	     (memq 'gnus-unknown mail-parse-ignored-charsets))
-	(setq cs (mm-charset-to-coding-system mail-parse-charset)))
-    (when cs
-      (when (eq cs 'ascii)
-	(setq cs (or mail-parse-charset 'raw-text)))
-      (mm-decode-coding-string
-       (cond
-	((char-equal ?B encoding)
-	 (base64-decode-string
-	  (rfc2047-pad-base64 string)))
-	((char-equal ?Q encoding)
-	 (quoted-printable-decode-string
-	  (mm-subst-char-in-string ?_ ? string t)))
-	(t (error "Invalid encoding: %c" encoding)))
-       cs))))
-
 (provide 'rfc2047)
 
 ;;; arch-tag: a07fe3d4-22b5-4c4a-bd89-b1f82d5d36f6
--- a/lisp/ido.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/ido.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1084,9 +1084,9 @@
 	  (setq truncate-lines t)))))
 
 (defun ido-is-tramp-root (&optional dir)
-  (setq dir (or dir ido-current-directory))
   (and ido-enable-tramp-completion
-       (string-match "\\`/[^/][^/]+:\\([^/:@]+@\\)?\\'" dir)))
+       (string-match "\\`/[^/]+[@:]\\'"
+		     (or dir ido-current-directory))))
 
 (defun ido-is-root-directory (&optional dir)
   (setq dir (or dir ido-current-directory))
@@ -1507,11 +1507,16 @@
 
 (defun ido-set-current-directory (dir &optional subdir no-merge)
   ;; Set ido's current directory to DIR or DIR/SUBDIR
-  (setq dir (ido-final-slash dir t))
+  (unless (and ido-enable-tramp-completion
+	       (string-match "\\`/[^/]*@\\'" dir))
+    (setq dir (ido-final-slash dir t)))
   (setq ido-use-merged-list nil
 	ido-try-merged-list (not no-merge))
-  (if subdir
-      (setq dir (ido-final-slash (concat dir subdir) t)))
+  (when subdir
+    (setq dir (concat dir subdir))
+    (unless (and ido-enable-tramp-completion
+		 (string-match "\\`/[^/]*@\\'" dir))
+      (setq dir (ido-final-slash dir t))))
   (if (equal dir ido-current-directory)
       nil
     (ido-trace "cd" dir)
@@ -3102,27 +3107,29 @@
    ((ido-nonreadable-directory-p dir) '())
    ;; do not check (ido-directory-too-big-p dir) here.
    ;; Caller must have done that if necessary.
+
    ((and ido-enable-tramp-completion
-	 (string-match "\\`/\\([^/:]+:\\([^/:@]+@\\)?\\)\\'" dir))
-
-    ;; Trick tramp's file-name-all-completions handler to DTRT, as it
-    ;; has some pretty obscure requirements.  This seems to work...
-    ;; /ftp:		=> (f-n-a-c "/ftp:" "")
-    ;; /ftp:kfs:	=> (f-n-a-c "" "/ftp:kfs:")
-    ;; /ftp:kfs@      => (f-n-a-c "ftp:kfs@" "/")
-    ;; /ftp:kfs@kfs:  => (f-n-a-c "" "/ftp:kfs@kfs:")
-    ;; Currently no attempt is made to handle multi: stuff.
-
-    (let* ((prefix (match-string 1 dir))
-	   (user-flag (match-beginning 2))
-	   (len (and prefix (length prefix)))
-	   compl)
-      (if user-flag
-	  (setq dir (substring dir 1)))
-      (require 'tramp nil t)
-      (ido-trace "tramp complete" dir)
-      (setq compl (file-name-all-completions dir (if user-flag "/" "")))
-      (if (> len 0)
+	 (or (fboundp 'tramp-completion-mode)
+	     (require 'tramp nil t))
+	 (string-match "\\`/[^/]+[:@]\\'" dir))
+    ;; Strip method:user@host: part of tramp completions.
+    ;; Tramp completions do not include leading slash.
+    (let ((len (1- (length dir)))
+	  (compl
+	   (or (file-name-all-completions "" dir)
+	       ;; work around bug in ange-ftp.
+	       ;; /ftp:user@host: => nil
+	       ;; /ftp:user@host:./ => ok
+	       (and
+		(not (string= "/ftp:" dir))
+		(tramp-tramp-file-p dir)
+		(fboundp 'tramp-ftp-file-name-p)
+		(funcall 'tramp-ftp-file-name-p dir)
+		(string-match ":\\'" dir)
+		(file-name-all-completions "" (concat dir "./"))))))
+      (if (and compl
+	       (> (length (car compl)) len)
+	       (string= (substring (car compl) 0 len) (substring dir 1)))
 	  (mapcar (lambda (c) (substring c len)) compl)
 	compl)))
    (t
@@ -3193,13 +3200,14 @@
 			      (if ido-file-extensions-order
 				  #'ido-file-extension-lessp
 				#'ido-file-lessp)))
-    (let ((default-directory ido-current-directory))
-      (ido-to-end ;; move ftp hosts and visited files to end
-       (delq nil (mapcar
-		  (lambda (x) (if (or (string-match "..:\\'" x)
-				      (and (not (ido-final-slash x))
-					   (get-file-buffer x))) x))
-		  ido-temp-list))))
+    (unless (ido-is-tramp-root ido-current-directory)
+      (let ((default-directory ido-current-directory))
+	(ido-to-end ;; move ftp hosts and visited files to end
+	 (delq nil (mapcar
+		    (lambda (x) (if (or (string-match "..:\\'" x)
+					(and (not (ido-final-slash x))
+					     (get-file-buffer x))) x))
+		    ido-temp-list)))))
     (ido-to-end  ;; move . files to end
      (delq nil (mapcar
 		(lambda (x) (if (string-equal (substring x 0 1) ".") x))
--- a/lisp/image.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/image.el	Mon Jan 16 06:59:21 2006 +0000
@@ -33,7 +33,7 @@
   :group 'multimedia)
 
 
-(defconst image-type-regexps
+(defconst image-type-header-regexps
   '(("\\`/[\t\n\r ]*\\*.*XPM.\\*/" . xpm)
     ("\\`P[1-6]" . pbm)
     ("\\`GIF8" . gif)
@@ -49,6 +49,21 @@
 with one argument, a string containing the image data.  If PREDICATE returns
 a non-nil value, TYPE is the image's type.")
 
+(defconst image-type-file-name-regexps
+  '(("\\.png\\'" . png)
+    ("\\.gif\\'" . gif)
+    ("\\.jpe?g\\'" . jpeg)
+    ("\\.bmp\\'" . bmp)
+    ("\\.xpm\\'" . xpm)
+    ("\\.pbm\\'" . pbm)
+    ("\\.xbm\\'" . xbm)
+    ("\\.ps\\'" . postscript)
+    ("\\.tiff?\\'" . tiff))
+  "Alist of (REGEXP . IMAGE-TYPE) pairs used to identify image files.
+When the name of an image file match REGEXP, it is assumed to
+be of image type IMAGE-TYPE.")
+
+
 (defvar image-load-path
   (list (file-name-as-directory (expand-file-name "images" data-directory))
 	'data-directory 'load-path)
@@ -87,18 +102,50 @@
   "Determine the image type from image data DATA.
 Value is a symbol specifying the image type or nil if type cannot
 be determined."
-  (let ((types image-type-regexps)
+  (let ((types image-type-header-regexps)
 	type)
-    (while (and types (null type))
+    (while types
       (let ((regexp (car (car types)))
 	    (image-type (cdr (car types))))
-	(when (or (and (symbolp image-type)
-		       (string-match regexp data))
-		  (and (consp image-type)
-		       (funcall (car image-type) data)
-		       (setq image-type (cdr image-type))))
-	  (setq type image-type))
-	(setq types (cdr types))))
+	(if (or (and (symbolp image-type)
+		     (string-match regexp data))
+		(and (consp image-type)
+		     (funcall (car image-type) data)
+		     (setq image-type (cdr image-type))))
+	    (setq type image-type
+		  types nil)
+	  (setq types (cdr types)))))
+    type))
+
+
+;;;###autoload
+(defun image-type-from-buffer ()
+  "Determine the image type from data in the current buffer.
+Value is a symbol specifying the image type or nil if type cannot
+be determined."
+  (let ((types image-type-header-regexps)
+	type
+	(opoint (point)))
+    (goto-char (point-min))
+    (while types
+      (let ((regexp (car (car types)))
+	    (image-type (cdr (car types)))
+	    data)
+	(if (or (and (symbolp image-type)
+		     (looking-at regexp))
+		(and (consp image-type)
+		     (funcall (car image-type)
+			      (or data
+				  (setq data
+					(buffer-substring
+					 (point-min)
+					 (min (point-max)
+					      (+ (point-min) 256))))))
+		     (setq image-type (cdr image-type))))
+	    (setq type image-type
+		  types nil)
+	  (setq types (cdr types)))))
+    (goto-char opoint)
     type))
 
 
@@ -107,14 +154,30 @@
   "Determine the type of image file FILE from its first few bytes.
 Value is a symbol specifying the image type, or nil if type cannot
 be determined."
-  (unless (file-name-directory file)
-    (setq file (expand-file-name file data-directory)))
-  (setq file (expand-file-name file))
-  (let ((header (with-temp-buffer
-		  (set-buffer-multibyte nil)
-		  (insert-file-contents-literally file nil 0 256)
-		  (buffer-string))))
-    (image-type-from-data header)))
+  (unless (or (file-readable-p file)
+	      (file-name-absolute-p file))
+    (setq file (image-search-load-path file)))
+  (and file
+       (file-readable-p file)
+       (with-temp-buffer
+	 (set-buffer-multibyte nil)
+	 (insert-file-contents-literally file nil 0 256)
+	 (image-type-from-buffer))))
+
+
+;;;###autoload
+(defun image-type-from-file-name (file)
+  "Determine the type of image file FILE from its name.
+Value is a symbol specifying the image type, or nil if type cannot
+be determined."
+  (let ((types image-type-file-name-regexps)
+	type)
+    (while types
+      (if (string-match (car (car types)) file)
+	  (setq type (cdr (car types))
+		types nil)
+	(setq types (cdr types))))
+    type))
 
 
 ;;;###autoload
@@ -124,6 +187,7 @@
   (and (fboundp 'init-image-library)
        (init-image-library type image-library-alist)))
 
+
 ;;;###autoload
 (defun create-image (file-or-data &optional type data-p &rest props)
   "Create an image.
@@ -135,7 +199,9 @@
 Optional DATA-P non-nil means FILE-OR-DATA is a string containing image data.
 Optional PROPS are additional image attributes to assign to the image,
 like, e.g. `:mask MASK'.
-Value is the image created, or nil if images of type TYPE are not supported."
+Value is the image created, or nil if images of type TYPE are not supported.
+
+Images should not be larger than specified by `max-image-size'."
   (when (and (not data-p) (not (stringp file-or-data)))
     (error "Invalid image file name `%s'" file-or-data))
   (cond ((null data-p)
@@ -279,27 +345,29 @@
 	  (delete-overlay overlay)))
       (setq overlays (cdr overlays)))))
 
-(defun image-search-load-path (file path)
-  (let (element found pathname)
+(defun image-search-load-path (file &optional path)
+  (unless path
+    (setq path image-load-path))
+  (let (element found filename)
     (while (and (not found) (consp path))
       (setq element (car path))
       (cond
        ((stringp element)
 	(setq found
 	      (file-readable-p
-	       (setq pathname (expand-file-name file element)))))
+	       (setq filename (expand-file-name file element)))))
        ((and (symbolp element) (boundp element))
 	(setq element (symbol-value element))
 	(cond
 	 ((stringp element)
 	  (setq found
 		(file-readable-p
-		 (setq pathname (expand-file-name file element)))))
+		 (setq filename (expand-file-name file element)))))
 	 ((consp element)
-	  (if (setq pathname (image-search-load-path file element))
+	  (if (setq filename (image-search-load-path file element))
 	      (setq found t))))))
       (setq path (cdr path)))
-    (if found pathname)))
+    (if found filename)))
 
 ;;;###autoload
 (defun find-image (specs)
@@ -317,7 +385,9 @@
 specification to be returned.  Return nil if no specification is
 satisfied.
 
-The image is looked for in `image-load-path'."
+The image is looked for in `image-load-path'.
+
+Image files should not be larger than specified by `max-image-size'."
   (let (image)
     (while (and specs (null image))
       (let* ((spec (car specs))
@@ -327,8 +397,7 @@
 	     found)
 	(when (image-type-available-p type)
 	  (cond ((stringp file)
-		 (if (setq found (image-search-load-path
-				  file image-load-path))
+		 (if (setq found (image-search-load-path file))
 		     (setq image
 			   (cons 'image (plist-put (copy-sequence spec)
 						   :file found)))))
--- a/lisp/info.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/info.el	Mon Jan 16 06:59:21 2006 +0000
@@ -2819,7 +2819,8 @@
 	   (car (car Info-index-alternatives))
 	   (nth 2 (car Info-index-alternatives))
 	   (if (cdr Info-index-alternatives)
-	       "(`,' tries to find next)"
+	       (format "(%s total; use `,' for next)"
+		       (length Info-index-alternatives))
 	     "(Only match)")))
 
 (defun Info-find-index-name (name)
@@ -3161,14 +3162,14 @@
   (if (display-graphic-p)
       (let ((map (make-sparse-keymap)))
 	(tool-bar-local-item-from-menu 'Info-exit "close" map Info-mode-map)
-	(tool-bar-local-item-from-menu 'Info-prev "left_arrow" map Info-mode-map)
-	(tool-bar-local-item-from-menu 'Info-next "right_arrow" map Info-mode-map)
-	(tool-bar-local-item-from-menu 'Info-up "up_arrow" map Info-mode-map)
-	(tool-bar-local-item-from-menu 'Info-history-back "back_arrow" map Info-mode-map)
-	(tool-bar-local-item-from-menu 'Info-history-forward "fwd_arrow" map Info-mode-map)
+	(tool-bar-local-item-from-menu 'Info-prev "left-arrow" map Info-mode-map)
+	(tool-bar-local-item-from-menu 'Info-next "right-arrow" map Info-mode-map)
+	(tool-bar-local-item-from-menu 'Info-up "up-arrow" map Info-mode-map)
+	(tool-bar-local-item-from-menu 'Info-history-back "back-arrow" map Info-mode-map)
+	(tool-bar-local-item-from-menu 'Info-history-forward "fwd-arrow" map Info-mode-map)
 	(tool-bar-local-item-from-menu 'Info-top-node "home" map Info-mode-map)
 	(tool-bar-local-item-from-menu 'Info-index "index" map Info-mode-map)
-	(tool-bar-local-item-from-menu 'Info-goto-node "jump_to" map Info-mode-map)
+	(tool-bar-local-item-from-menu 'Info-goto-node "jump-to" map Info-mode-map)
 	(tool-bar-local-item-from-menu 'Info-search "search" map Info-mode-map)
 	map)))
 
@@ -3847,17 +3848,15 @@
               (paragraph-separate ".*\\.[ \t]*\n[ \t]\\|[ \t]*[-*]\\|[ \t\f]*$")
               (adaptive-fill-mode nil))
           (goto-char (point-max))
-          (while paragraph-markers
-            (let ((m (car paragraph-markers)))
-              (setq paragraph-markers (cdr paragraph-markers))
-              (when (< m (point))
-                (goto-char m)
-                (beginning-of-line)
-                (let ((beg (point)))
-                  (when (zerop (forward-paragraph))
-                    (fill-individual-paragraphs beg (point) nil nil)
-                    (goto-char beg))))
-              (set-marker m nil)))))
+          (dolist (m paragraph-markers)
+            (when (< m (point))
+              (goto-char m)
+              (beginning-of-line)
+              (let ((beg (point)))
+                (when (zerop (forward-paragraph))
+                  (fill-individual-paragraphs beg (point) nil nil)
+                  (goto-char beg))))
+            (set-marker m nil))))
 
       ;; Fontify menu items
       (goto-char (point-min))
@@ -3889,33 +3888,32 @@
 			       "mouse-2: go to this node")
 		  'mouse-face 'highlight)))
 	      (when (or not-fontified-p fontify-visited-p)
-		(add-text-properties
+		(put-text-property
 		 (match-beginning 1) (match-end 1)
-		 (list
-		  'font-lock-face
-		  ;; Display visited menu items in a different face
-		  (if (and Info-fontify-visited-nodes
-			   (save-match-data
-			     (let ((node (if (equal (match-string 3) "")
-					     (match-string 1)
-					   (match-string 3)))
-				   (file (file-name-nondirectory Info-current-file))
-				   (hl Info-history-list)
-				   res)
-			       (if (string-match "(\\([^)]+\\))\\([^)]*\\)" node)
-				   (setq file (file-name-nondirectory
-					       (match-string 1 node))
-					 node (if (equal (match-string 2 node) "")
-						  "Top"
-						(match-string 2 node))))
-			       (while hl
-				 (if (and (string-equal node (nth 1 (car hl)))
-					  (string-equal file
-							(file-name-nondirectory
-							 (nth 0 (car hl)))))
-				     (setq res (car hl) hl nil)
-				   (setq hl (cdr hl))))
-			       res))) 'info-xref-visited 'info-xref))))
+                 'font-lock-face
+                 ;; Display visited menu items in a different face
+                 (if (and Info-fontify-visited-nodes
+                          (save-match-data
+                            (let ((node (if (equal (match-string 3) "")
+                                            (match-string 1)
+                                          (match-string 3)))
+                                  (file (file-name-nondirectory Info-current-file))
+                                  (hl Info-history-list)
+                                  res)
+                              (if (string-match "(\\([^)]+\\))\\([^)]*\\)" node)
+                                  (setq file (file-name-nondirectory
+                                              (match-string 1 node))
+                                        node (if (equal (match-string 2 node) "")
+                                                 "Top"
+                                               (match-string 2 node))))
+                              (while hl
+                                (if (and (string-equal node (nth 1 (car hl)))
+                                         (string-equal file
+                                                       (file-name-nondirectory
+                                                        (nth 0 (car hl)))))
+                                    (setq res (car hl) hl nil)
+                                  (setq hl (cdr hl))))
+                              res))) 'info-xref-visited 'info-xref)))
 	      (when (and not-fontified-p (memq Info-hide-note-references '(t hide)))
 		(put-text-property (match-beginning 2) (1- (match-end 6))
 				   'invisible t)
--- a/lisp/jit-lock.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/jit-lock.el	Mon Jan 16 06:59:21 2006 +0000
@@ -349,6 +349,13 @@
 	   (goto-char next)  (setq next (line-beginning-position 2))
 	   (goto-char start) (setq start (line-beginning-position))
 
+           ;; Make sure the contextual refontification doesn't re-refontify
+           ;; what's already been refontified.
+           (when (and jit-lock-context-unfontify-pos
+                      (< jit-lock-context-unfontify-pos next)
+                      (>= jit-lock-context-unfontify-pos start))
+             (setq jit-lock-context-unfontify-pos next))
+
 	   ;; Fontify the chunk, and mark it as fontified.
 	   ;; We mark it first, to make sure that we don't indefinitely
 	   ;; re-execute this fontification if an error occurs.
@@ -566,9 +573,14 @@
       ;; Mark the change for deferred contextual refontification.
       (when jit-lock-context-unfontify-pos
 	(setq jit-lock-context-unfontify-pos
+              ;; Here we use `start' because nothing guarantees that the
+              ;; text between start and end will be otherwise refontified:
+              ;; usually it will be refontified by virtue of being
+              ;; displayed, but if it's outside of any displayed area in the
+              ;; buffer, only jit-lock-context-* will re-fontify it.
 	      (min jit-lock-context-unfontify-pos start))))))
 
 (provide 'jit-lock)
 
-;;; arch-tag: 56b5de6e-f581-453b-bb97-49c39372ff9e
+;; arch-tag: 56b5de6e-f581-453b-bb97-49c39372ff9e
 ;;; jit-lock.el ends here
--- a/lisp/language/vietnamese.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/language/vietnamese.el	Mon Jan 16 06:59:21 2006 +0000
@@ -106,6 +106,7 @@
   :charset-list '(tcvn-5712)
   :suitable-for-file-name t)
 (define-coding-system-alias 'tcvn 'vietnamese-tcvn)
+(define-coding-system-alias 'tcvn-5712 'vietnamese-tcvn)
 
 (provide 'vietnamese)
 
--- a/lisp/loadhist.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/loadhist.el	Mon Jan 16 06:59:21 2006 +0000
@@ -53,24 +53,23 @@
     (car (feature-symbols feature))))
 
 (defun file-loadhist-lookup (file)
-  "Return the `load-history' element for FILE."
+  "Return the `load-history' element for FILE.
+FILE can be a file name, or a library name.
+A library name is equivalent to the file name that `load-library' would load."
   ;; First look for FILE as given.
   (let ((symbols (assoc file load-history)))
     ;; Try converting a library name to an absolute file name.
     (and (null symbols)
-	 (let ((absname (find-library-name file)))
-	   (if (not (equal absname file))
-	       (setq symbols (cdr (assoc absname load-history))))))
-    ;; Try converting an absolute file name to a library name.
-    (and (null symbols) (string-match "[.]el\\'" file)
-	 (let ((libname (file-name-nondirectory file)))
-	   (string-match "[.]el\\'" libname)
-	   (setq libname (substring libname 0 (match-beginning 0)))
-	   (setq symbols (cdr (assoc libname load-history)))))
+	 (let ((absname 
+		(locate-file file load-path load-suffixes)))
+	   (and absname (not (equal absname file))
+		(setq symbols (cdr (assoc absname load-history))))))
     symbols))
 
 (defun file-provides (file)
-  "Return the list of features provided by FILE."
+  "Return the list of features provided by FILE as it was loaded.
+FILE can be a file name, or a library name.
+A library name is equivalent to the file name that `load-library' would load."
   (let ((symbols (file-loadhist-lookup file))
 	provides)
     (mapc (lambda (x)
@@ -80,7 +79,9 @@
     provides))
 
 (defun file-requires (file)
-  "Return the list of features required by FILE."
+  "Return the list of features required by FILE as it was loaded.
+FILE can be a file name, or a library name.
+A library name is equivalent to the file name that `load-library' would load."
   (let ((symbols (file-loadhist-lookup file))
 	requires)
     (mapc (lambda (x)
@@ -98,7 +99,9 @@
 
 (defun file-dependents (file)
   "Return the list of loaded libraries that depend on FILE.
-This can include FILE itself."
+This can include FILE itself.
+FILE can be a file name, or a library name.
+A library name is equivalent to the file name that `load-library' would load."
   (let ((provides (file-provides file))
 	(dependents nil))
     (dolist (x load-history dependents)
--- a/lisp/longlines.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/longlines.el	Mon Jan 16 06:59:21 2006 +0000
@@ -398,11 +398,11 @@
       'longlines-search-backward))))
 
 (defun longlines-search-forward (string &optional bound noerror count)
-  (let ((search-spaces-regexp "[ \n]"))
+  (let ((search-spaces-regexp "[ \n]+"))
     (re-search-forward (regexp-quote string) bound noerror count)))
 
 (defun longlines-search-backward (string &optional bound noerror count)
-  (let ((search-spaces-regexp "[ \n]"))
+  (let ((search-spaces-regexp "[ \n]+"))
     (re-search-backward (regexp-quote string) bound noerror count)))
 
 ;; Loading and saving
--- a/lisp/mail/mailabbrev.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/mail/mailabbrev.el	Mon Jan 16 06:59:21 2006 +0000
@@ -587,7 +587,8 @@
 		(prog2
 		    (message "Making completion list...")
 		    (all-completions alias mail-abbrevs)
-		  (message "Making completion list...done"))))))))
+		  (message "Making completion list...done"))
+		alias))))))
 
 (defun mail-abbrev-next-line (&optional arg)
   "Expand any mail abbrev, then move cursor vertically down ARG lines.
--- a/lisp/mail/sendmail.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/mail/sendmail.el	Mon Jan 16 06:59:21 2006 +0000
@@ -120,7 +120,10 @@
 
 ;; Useful to set in site-init.el
 ;;;###autoload
-(defcustom send-mail-function 'sendmail-send-it
+(defcustom send-mail-function 
+  (if (and window-system (memq system-type '(darwin windows-nt)))
+      'mailclient-send-it
+    'sendmail-send-it)
   "Function to call to send the current buffer as mail.
 The headers should be delimited by a line which is
 not a valid RFC822 header or continuation line,
@@ -182,6 +185,7 @@
   :type '(choice (const nil) file)
   :group 'sendmail)
 
+;;;###autoload
 (defcustom mail-setup-hook nil
   "Normal hook, run each time a new outgoing mail message is initialized.
 The function `mail-setup' runs this hook."
@@ -189,6 +193,7 @@
   :options '(fortune-to-signature spook mail-abbrevs-setup)
   :group 'sendmail)
 
+;;;###autoload
 (defvar mail-aliases t
   "Alist of mail address aliases,
 or t meaning should be initialized from your mail aliases file.
@@ -200,17 +205,20 @@
 (defvar mail-alias-modtime nil
   "The modification time of your mail alias file when it was last examined.")
 
+;;;###autoload
 (defcustom mail-yank-prefix nil
   "*Prefix insert on lines of yanked message being replied to.
 nil means use indentation."
   :type '(choice (const nil) string)
   :group 'sendmail)
 
+;;;###autoload
 (defcustom mail-indentation-spaces 3
   "*Number of spaces to insert at the beginning of each cited line.
 Used by `mail-yank-original' via `mail-indent-citation'."
   :type 'integer
   :group 'sendmail)
+
 (defvar mail-yank-hooks nil
   "Obsolete hook for modifying a citation just inserted in the mail buffer.
 Each hook function can find the citation between (point) and (mark t).
@@ -239,6 +247,7 @@
 This enables the hook functions to see the whole message header
 regardless of what part of it (if any) is included in the cited text.")
 
+;;;###autoload
 (defcustom mail-citation-prefix-regexp "[ \t]*[-a-z0-9A-Z]*>+[ \t]*\\|[ \t]*"
   "*Regular expression to match a citation prefix plus whitespace.
 It should match whatever sort of citation prefixes you want to handle,
@@ -278,6 +287,7 @@
   :group 'sendmail)
 (put 'mail-signature 'risky-local-variable t)
 
+;;;###autoload
 (defcustom mail-signature-file "~/.signature"
   "*File containing the text inserted at end of mail buffer."
   :type 'file
@@ -298,6 +308,7 @@
 (put 'mail-reply-action 'permanent-local t)
 (put 'mail-send-actions 'permanent-local t)
 
+;;;###autoload
 (defcustom mail-default-headers nil
   "*A string containing header lines, to be inserted in outgoing messages.
 It is inserted before you edit the message,
@@ -305,6 +316,7 @@
   :type '(choice (const nil) string)
   :group 'sendmail)
 
+;;;###autoload
 (defcustom mail-bury-selects-summary t
   "*If non-nil, try to show RMAIL summary buffer after returning from mail.
 The functions \\[mail-send-on-exit] or \\[mail-dont-send] select
@@ -313,6 +325,7 @@
   :type 'boolean
   :group 'sendmail)
 
+;;;###autoload
 (defcustom mail-send-nonascii 'mime
   "*Specify whether to allow sending non-ASCII characters in mail.
 If t, that means do allow it.  nil means don't allow it.
--- a/lisp/makefile.w32-in	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/makefile.w32-in	Mon Jan 16 06:59:21 2006 +0000
@@ -94,14 +94,13 @@
 	progmodes \
 	term \
 	textmodes \
-	toolbar \
 	url
 
 doit:
 
-cus-load.el:
+$(lisp)/cus-load.el:
 	touch $@
-custom-deps: cus-load.el doit
+custom-deps: $(lisp)/cus-load.el doit
 	@echo Directories: $(WINS)
 	-$(emacs) -l cus-dep --eval $(ARGQUOTE)(setq find-file-hook nil)$(ARGQUOTE) -f custom-make-dependencies $(lisp) $(WINS)
 
@@ -109,7 +108,7 @@
 	@echo Directories: $(WINS)
 	$(emacs) -l finder -f finder-compile-keywords-make-dist $(lisp) $(WINS)
 
-loaddefs.el:
+$(lisp)/loaddefs.el:
 	$(MAKE) $(MFLAGS) loaddefs.el-$(SHELLTYPE)
 	cp loaddefs.el-$(SHELLTYPE) $@
 	rm loaddefs.el-$(SHELLTYPE)
@@ -142,7 +141,7 @@
 	echo (autoload 'define-derived-mode "derived")>> $@
 	echo (autoload 'encoded-kbd-mode "encoded-kb")>> $@
 	echo (defvar cvs-global-menu nil)>> $@
-	echo ;;; >> $@
+	echo.>> $@
 	echo ;;; Local Variables:>> $@
 	echo ;;; version-control: never>> $@
 	echo ;;; no-byte-compile: t>> $@
@@ -150,7 +149,7 @@
 	echo ;;; End:>> $@
 	echo ;;; loaddefs.el ends here>> $@
 
-autoloads: loaddefs.el doit
+autoloads: $(lisp)/loaddefs.el doit
 	@echo Directories: $(WINS)
 	$(emacs) -l autoload \
 		--eval $(ARGQUOTE)(setq find-file-hook nil \
@@ -159,19 +158,19 @@
 			  $(DQUOTE)$(lisp)/loaddefs.el$(DQUOTE))$(ARGQUOTE) \
 		-f batch-update-autoloads $(lisp) $(WINS)
 
-subdirs.el:
+$(lisp)/subdirs.el:
 	$(MAKE) $(MFLAGS) update-subdirs
 
 # Need separate version for sh and native cmd.exe
 update-subdirs: update-subdirs-$(SHELLTYPE)
 
 update-subdirs-CMD: doit
-	echo ;; -*- no-byte-compile: t -*->subdirs.el
-	echo ;; In load-path, after this directory should come>> subdirs.el
-	echo ;; certain of its subdirectories.  Here we specify them.>> subdirs.el
-	echo (normal-top-level-add-to-load-path $(SQUOTE)(>> subdirs.el
-	@for %%d in ($(WINS)) do if not (%%d)==(term) echo "%%d">> subdirs.el
-	echo ))>> subdirs.el
+	echo ;; -*- no-byte-compile: t -*-> $(lisp)/subdirs.el
+	echo ;; In load-path, after this directory should come>> $(lisp)/subdirs.el
+	echo ;; certain of its subdirectories.  Here we specify them.>> $(lisp)/subdirs.el
+	echo (normal-top-level-add-to-load-path $(SQUOTE)(>> $(lisp)/subdirs.el
+	@for %%d in ($(WINS)) do if not (%%d)==(term) echo "%%d">> $(lisp)/subdirs.el
+	echo ))>> $(lisp)/subdirs.el
 
 update-subdirs-SH: doit
 	$(srcdir)/update-subdirs $(lisp); \
@@ -210,7 +209,7 @@
 # compiled find the right files.
 
 # Need separate version for sh and native cmd.exe
-compile: subdirs.el mh-autoloads compile-$(SHELLTYPE) doit
+compile: $(lisp)/subdirs.el mh-autoloads compile-$(SHELLTYPE) doit
 
 compile-CMD:
 #	-for %%f in ($(lisp) $(WINS)) do for %%g in (%%f\*.elc) do @attrib -r %%g
@@ -239,7 +238,7 @@
 # unconditionally.  Some files don't actually get compiled because they
 # set the local variable no-byte-compile.
 
-compile-always: subdirs.el compile-always-$(SHELLTYPE) doit
+compile-always: $(lisp)/subdirs.el compile-always-$(SHELLTYPE) doit
 
 compile-always-CMD:
 #	-for %%f in ($(lisp) $(WINS)) do for %%g in (%%f\*.elc) do @attrib -r %%g
@@ -303,6 +302,18 @@
 
 mh-autoloads: $(lisp)/mh-e/mh-loaddefs.el
 $(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC)
+	$(MAKE) $(MFLAGS) pre-mh-loaddefs.el-$(SHELLTYPE)
+	cp pre-mh-loaddefs.el-$(SHELLTYPE) $@
+	rm pre-mh-loaddefs.el-$(SHELLTYPE)
+	$(EMACS) $(EMACSOPT) \
+	   -l autoload \
+	   --eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \
+	   --eval "(setq generated-autoload-file \"$(lisp)/mh-e/mh-loaddefs.el\")" \
+	   --eval "(setq find-file-suppress-same-file-warnings t)" \
+	   --eval "(setq make-backup-files nil)" \
+	   -f batch-update-autoloads $(lisp)/mh-e
+
+pre-mh-loaddefs.el-SH:
 	echo ";;; mh-loaddefs.el --- automatically extracted autoloads" > $@
 	echo ";;" >> $@
 	echo ";;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc." >> $@
@@ -311,12 +322,6 @@
 	echo ";;; Commentary:" >> $@
 	echo ";;; Change Log:" >> $@
 	echo ";;; Code:" >> $@
-	$(EMACS) $(EMACSOPT) \
-	   -l autoload \
-	   --eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \
-	   --eval "(setq generated-autoload-file \"$(lisp)/mh-e/mh-loaddefs.el\")" \
-	   --eval "(setq make-backup-files nil)" \
-	   -f batch-update-autoloads $(lisp)/mh-e
 	echo "" >> $@
 	echo "(provide 'mh-loaddefs)" >> $@
 	echo ";;; Local Variables:" >> $@
@@ -326,6 +331,24 @@
 	echo ";;; End:" >> $@
 	echo ";;; mh-loaddefs.el ends here" >> $@
 
+pre-mh-loaddefs.el-CMD:
+	echo ;;; mh-loaddefs.el --- automatically extracted autoloads> $@
+	echo ;;>> $@
+	echo ;;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.>> $@
+	echo ;;; Author: Bill Wohler (wohler@newt.com)>> $@
+	echo ;;; Keywords: mail>> $@
+	echo ;;; Commentary:>> $@
+	echo ;;; Change Log:>> $@
+	echo ;;; Code:>> $@
+	echo.>> $@
+	echo (provide 'mh-loaddefs)>> $@
+	echo ;;; Local Variables:>> $@
+	echo ;;; version-control: never>> $@
+	echo ;;; no-byte-compile: t>> $@
+	echo ;;; no-update-autoloads: t>> $@
+	echo ;;; End:>> $@
+	echo ;;; mh-loaddefs.el ends here>> $@
+
 # Prepare a bootstrap in the lisp subdirectory.
 #
 # Build loaddefs.el to make sure it's up-to-date.  If it's not, that
@@ -340,7 +363,7 @@
 # sources only.
 
 # Need separate version for sh and native cmd.exe
-bootstrap-clean: bootstrap-clean-$(SHELLTYPE) loaddefs.el
+bootstrap-clean: bootstrap-clean-$(SHELLTYPE) $(lisp)/loaddefs.el
 
 bootstrap-clean-CMD:
 #	if exist $(EMACS) $(MAKE) $(MFLAGS) autoloads
--- a/lisp/man.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/man.el	Mon Jan 16 06:59:21 2006 +0000
@@ -415,10 +415,18 @@
   (define-key Man-mode-map "?"    'describe-mode))
 
 ;; buttons
-(define-button-type 'Man-xref-man-page
-  'action (lambda (button) (man-follow (button-label button)))
+(define-button-type 'Man-abstract-xref-man-page
   'follow-link t
-  'help-echo "mouse-2, RET: display this man page")
+  'help-echo "mouse-2, RET: display this man page"
+  'func nil
+  'action (lambda (button) (funcall 
+			    (button-get button 'func)
+			    (button-label button))))
+
+(define-button-type 'Man-xref-man-page 
+  :supertype 'Man-abstract-xref-man-page
+  'func 'man-follow)
+
 
 (define-button-type 'Man-xref-header-file
     'action (lambda (button)
@@ -903,14 +911,17 @@
 			 'face Man-overstrike-face)))
   (message "%s man page formatted" Man-arguments))
 
-(defun Man-highlight-references ()
+(defun Man-highlight-references (&optional xref-man-type)
   "Highlight the references on mouse-over.
 References include items in the SEE ALSO section,
-header file (#include <foo.h>) and files in FILES."
+header file (#include <foo.h>) and files in FILES.
+If XREF-MAN-TYPE is used as the button type for items
+in SEE ALSO section. If it is nil, default type, 
+`Man-xref-man-page' is used."
   (let ((dummy 0))
     (Man-highlight-references0
      Man-see-also-regexp Man-reference-regexp 1 dummy
-     'Man-xref-man-page)
+     (or xref-man-type 'Man-xref-man-page))
     (Man-highlight-references0
      Man-synopsis-regexp Man-header-regexp 0 2
      'Man-xref-header-file)
--- a/lisp/menu-bar.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/menu-bar.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1733,7 +1733,7 @@
 	  :help "Terminate input and exit minibuffer")))
 
 ;;;###autoload
-;; This comment is taken from toolbar/tool-bar.el near
+;; This comment is taken from tool-bar.el near
 ;; (put 'tool-bar-mode ...)
 ;; We want to pretend the menu bar by standard is on, as this will make
 ;; customize consider disabling the menu bar a customization, and save
--- a/lisp/mh-e/ChangeLog	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/mh-e/ChangeLog	Mon Jan 16 06:59:21 2006 +0000
@@ -1,9 +1,74 @@
+2005-10-17  Peter S Galbraith  <psg@debian.org>
+
+	* mh-identity.el (mh-identity-field-handler): Use
+	`assoc-ignore-case' to compare against header field for mixed-case
+	"From:".
+
+2005-10-17  Bill Wohler  <wohler@newt.com>
+
+	* mh-customize.el (mh-folder-tool-bar-map): Renamed image file
+	left_arrow to left-arrow, right_arrow to right-arrow, mail_compose
+	to mail/compose, fld_open to fld-open.
+	(mh-letter-tool-bar-map): Renamed image file mail_send to
+	mail/send.
+
+2005-10-16  Bill Wohler  <wohler@newt.com>
+
+	* mh-comp.el (mh-display-completion-list-compat): New macro which
+	calls `display-completion-list' correctly in older environments.
+	Versions of Emacs prior to version 22 lacked a COMMON-SUBSTRING
+	argument.
+	(mh-complete-word): Use it.
+
+	* mh-init.el (mh-image-load-path): Use locate-library to find
+	MH-E. This simplified the code a lot. Flattened out nested
+	statements even more.
+
+2005-10-16  Satyaki Das  <satyaki@theforce.stanford.edu>
+
+	* mh-init.el (mh-image-load-path): Remove use of pushnew since it
+	causes a compiler warning.
+
+	* mh-utils.el (mh-display-msg): Do MIME cleanup before inserting
+	the message to be viewed (closes SF #1306141).
+
+2005-10-16  Masatake YAMATO  <jet@gyve.org>
+
+	* mh-comp.el (mh-complete-word): Pass the common
+	prefix substring of completion to `display-completion-list'.
+
+2005-10-15  Satyaki Das  <satyaki@theforce.stanford.edu>
+
+	* mh-init.el (mh-image-load-path-called-flag): New variable which
+	is used by mh-image-load-path so that it runs only once.
+	(mh-image-load-path): Modified so that it gets run only once. Also
+	flatten out heavily nested if statements to make it clearer.
+
+	* mh-e.el (mh-folder-mode): Call mh-image-load-path to allow Emacs
+	to find images used in the toolbar.
+
+	* mh-customize.el (:folder): Remove call to mh-image-load-path.
+
+2005-10-14  Bill Wohler  <wohler@newt.com>
+
+	* mh-e.el (Version, mh-version): Added +cvs to version.
+
+2005-10-14  Bill Wohler	 <wohler@newt.com>
+
+	Released MH-E version 7.85.
+	  
+	* mh-e.el (Version, mh-version): Updated for release 7.85.
+	
 2005-10-14  Bill Wohler  <wohler@newt.com>
 
 	* mh-e.el, mh-funcs.el, mh-init.el, mh-mime.el, mh-pick.el:
 	* mh-seq.el, mh-utils.el: Ran mh-unit. Continued copyright lines
 	need to be indented. 
 	
+	* mh-e.el: mh-folder-tick-face had been renamed to mh-folder-tick
+	but the code that invoked the face had not been updated. Tick
+	highlighting working again.
+
 	* mh-seq.el (mh-non-seq-mode-line-annotation): Moved
 	make-variable-buffer-local call to top level to avoid warnings in
 	CVS Emacs.
--- a/lisp/mh-e/mh-comp.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/mh-e/mh-comp.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1633,6 +1633,16 @@
 
 (mh-do-in-xemacs (defvar mail-abbrevs))
 
+(defmacro mh-display-completion-list-compat (word choices)
+  "Completes WORD from CHOICES using `display-completion-list'.
+Calls `display-completion-list' correctly in older environments.
+Versions of Emacs prior to version 22 lacked a COMMON-SUBSTRING argument
+which is used to highlight the next possible character you can enter
+in the current list of completions."
+  (if (>= emacs-major-version 22)
+      `(display-completion-list (all-completions ,word ,choices) ,word)
+    `(display-completion-list (all-completions ,word ,choices))))
+
 ;;;###mh-autoload
 (defun mh-complete-word (word choices begin end)
   "Complete WORD at from CHOICES.
@@ -1650,7 +1660,7 @@
           ((stringp completion)
            (if (equal word completion)
                (with-output-to-temp-buffer completions-buffer
-                 (display-completion-list (all-completions word choices)))
+                 (mh-display-completion-list-compat word choices))
              (ignore-errors
                (kill-buffer completions-buffer))
              (delete-region begin end)
--- a/lisp/mh-e/mh-customize.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/mh-e/mh-customize.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1897,7 +1897,6 @@
                             for y in letter-docs
                             collect `(const :tag ,y ,x)))))))
 
-(mh-image-load-path)
 (mh-tool-bar-define
     ((:folder mh-inc-folder mh-mime-save-parts mh-previous-undeleted-msg
               mh-page-msg  mh-next-undeleted-msg mh-delete-msg mh-refile-msg
@@ -1917,12 +1916,12 @@
     "Save MIME parts from this message
 This button runs `mh-mime-save-parts' which saves a message's
 different parts into separate files.")
-  (mh-previous-undeleted-msg (folder) "left_arrow"
+  (mh-previous-undeleted-msg (folder) "left-arrow"
     "Go to the previous undeleted message
 This button runs `mh-previous-undeleted-msg'")
   (mh-page-msg (folder) "page-down"
     "Page the current message forwards\nThis button runs `mh-page-msg'")
-  (mh-next-undeleted-msg (folder) "right_arrow"
+  (mh-next-undeleted-msg (folder) "right-arrow"
     "Go to the next undeleted message\nThe button runs `mh-next-undeleted-msg'")
   (mh-delete-msg (folder) "close"
     "Mark this message for deletion\nThis button runs `mh-delete-msg'")
@@ -1945,7 +1944,7 @@
   (mh-alias-grab-from-field (folder) "mail/alias"
     "Grab From alias\nThis button runs `mh-alias-grab-from-field'"
     (and (mh-extract-from-header-value) (not (mh-alias-for-from-p))))
-  (mh-send (folder) "mail_compose"
+  (mh-send (folder) "mail/compose"
     "Compose new message\nThis button runs `mh-send'")
   (mh-rescan-folder (folder) "refresh"
     "Rescan this folder\nThis button runs `mh-rescan-folder'")
@@ -1953,10 +1952,10 @@
     "Repack this folder\nThis button runs `mh-pack-folder'")
   (mh-tool-bar-search (folder) "search"
     "Search\nThis button runs `mh-tool-bar-search-function'")
-  (mh-visit-folder (folder) "fld_open"
+  (mh-visit-folder (folder) "fld-open"
     "Visit other folder\nThis button runs `mh-visit-folder'")
   ;; Letter buffer buttons
-  (mh-send-letter (letter) "mail_send" "Send this letter")
+  (mh-send-letter (letter) "mail/send" "Send this letter")
   (mh-compose-insertion (letter) "attach" "Insert attachment")
   (ispell-message (letter) "spell" "Check spelling")
   (save-buffer (letter) "save" "Save current buffer to its file"
--- a/lisp/mh-e/mh-e.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/mh-e/mh-e.el	Mon Jan 16 06:59:21 2006 +0000
@@ -6,7 +6,7 @@
 
 ;; Author: Bill Wohler <wohler@newt.com>
 ;; Maintainer: Bill Wohler <wohler@newt.com>
-;; Version: 7.84+cvs
+;; Version: 7.85+cvs
 ;; Keywords: mail
 
 ;; This file is part of GNU Emacs.
@@ -98,7 +98,7 @@
 (defvar font-lock-auto-fontify)
 (defvar font-lock-defaults)
 
-(defconst mh-version "7.84+cvs" "Version number of MH-E.")
+(defconst mh-version "7.85+cvs" "Version number of MH-E.")
 
 (defvar mh-partial-folder-mode-line-annotation "select"
   "Annotation when displaying part of a folder.
@@ -408,7 +408,7 @@
                      (list (list ',func (list 1 '',face 'prepend t))))))))
 
 (mh-generate-sequence-font-lock mh-unseen-seq unseen bold)
-(mh-generate-sequence-font-lock mh-tick-seq tick mh-folder-tick-face)
+(mh-generate-sequence-font-lock mh-tick-seq tick mh-folder-tick)
 
 
 
@@ -1561,6 +1561,7 @@
 
 \\{mh-folder-mode-map}"
 
+  (mh-image-load-path)
   (make-local-variable 'font-lock-defaults)
   (setq font-lock-defaults '(mh-folder-font-lock-keywords t))
   (make-local-variable 'desktop-save-buffer)
--- a/lisp/mh-e/mh-identity.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/mh-e/mh-identity.el	Mon Jan 16 06:59:21 2006 +0000
@@ -124,7 +124,7 @@
 `:', then it must have a special handler defined in
 `mh-identity-handlers', else return an error since it is not a valid
 header field."
-  (or (cdr (assoc (downcase field) mh-identity-handlers))
+  (or (cdr (assoc-ignore-case field mh-identity-handlers))
       (and (eq (aref field 0) ?:)
            (error "Field %s - unknown mh-identity-handler" field))
       (cdr (assoc ":default" mh-identity-handlers))
--- a/lisp/mh-e/mh-init.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/mh-e/mh-init.el	Mon Jan 16 06:59:21 2006 +0000
@@ -300,13 +300,8 @@
                     (add-to-list 'mh-variants variant)))))
       mh-variants)))
 
-;;; XXX The two calls to message in this function should really be calls to
-;;; error. However, when this function is compiled via the top-level call in
-;;; mh-customize.el, it is actually called, and in a compile environment, the
-;;; errors are triggered which botches the compile. As a workaround, the calls
-;;; to error have been changed to calls to message, and code following was
-;;; inserted as an else clause. This is not robust, so if you can fix this,
-;;; please do!
+(defvar mh-image-load-path-called-flag nil)
+
 ;;;###mh-autoload
 (defun mh-image-load-path ()
   "Ensure that the MH-E images are accessible by `find-image'.
@@ -314,36 +309,21 @@
 `lisp/mh-e'. If `image-load-path' exists (since Emacs 22), then the images
 directory is added to it if isn't already there. Otherwise, the images
 directory is added to the `load-path' if it isn't already there."
-  (let (mh-load-path mh-image-load-path)
-    ;; First, find mh-e in the load-path.
-    (let ((path load-path))
-      (while path
-        (let* ((directory (directory-file-name (car path))))
-          (setq mh-load-path
-                (if (and (equal (file-name-nondirectory directory) "mh-e")
-                         (file-exists-p directory))
-                    directory
-                  nil))
-          (setq path (if mh-load-path nil (cdr path)))))
-      (if (not mh-load-path)
-          ;; This message be error; there shouldn't be an else. Blame compiler.
-          (message "Can not find mh-e in load-path (OK when compiling)")
-        ;; Create the image path associated with this mh-e directory.
-        (setq mh-image-load-path (expand-file-name
-                                  (concat (file-name-directory mh-load-path)
-                                          "../etc/images")))))
-    (if (or (not mh-image-load-path)
-            (not (file-exists-p mh-image-load-path)))
-        ;; This message be error; there shouldn't be an else. Blame compiler.
-        (message "Can not find image directory %s (OK when compiling)"
-                 mh-image-load-path)
-      ;; If image-load-path exists, and the image path isn't there add it.
+  (unless mh-image-load-path-called-flag
+    (let (mh-library-name mh-image-load-path)
+      ;; First, find mh-e in the load-path.
+      (setq mh-library-name (locate-library "mh-e"))
+      (if (not mh-library-name)
+        (error "Can not find MH-E in load-path"))
+      (setq mh-image-load-path
+            (expand-file-name (concat (file-name-directory mh-library-name)
+                                      "../../etc/images")))
+      (if (not (file-exists-p mh-image-load-path))
+          (error "Can not find image directory %s" mh-image-load-path))
       (if (boundp 'image-load-path)
-          (if (not (member mh-image-load-path image-load-path))
-              (push mh-image-load-path image-load-path))
-        ;; Otherwise, if the image path isn't in the load-path, add it there.
-        (if (not (member mh-image-load-path load-path))
-            (push mh-image-load-path load-path))))))
+          (add-to-list 'image-load-path mh-image-load-path)
+        (add-to-list 'load-path mh-image-load-path)))
+    (setq mh-image-load-path-called-flag t)))
 
 (provide 'mh-init)
 
--- a/lisp/mh-e/mh-utils.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/mh-e/mh-utils.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1718,6 +1718,8 @@
       (cond ((not (equal msg-filename buffer-file-name))
              (mh-unvisit-file)
              (setq buffer-read-only nil)
+             ;; Cleanup old mime handles
+             (mh-mime-cleanup)
              (erase-buffer)
              ;; Changing contents, so this hook needs to be reinitialized.
              ;; pgp.el uses this.
@@ -1729,8 +1731,6 @@
                                              (list "-form" formfile))
                                          msg-filename)
                (insert-file-contents-literally msg-filename))
-             ;; Cleanup old mime handles
-             (mh-mime-cleanup)
              ;; Use mm to display buffer
              (when (and mh-decode-mime-flag (not formfile))
                (mh-add-missing-mime-version-header)
--- a/lisp/mouse.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/mouse.el	Mon Jan 16 06:59:21 2006 +0000
@@ -54,7 +54,7 @@
 
 With the default setting, an ordinary Mouse-1 click on a link
 performs the same action as Mouse-2 on that link, while a longer
-Mouse-1 click \(hold down the Mouse-1 button for more than 350
+Mouse-1 click \(hold down the Mouse-1 button for more than 450
 milliseconds) performs the original Mouse-1 binding \(which
 typically sets point where you click the mouse).
 
@@ -78,7 +78,7 @@
   :version "22.1"
   :type '(choice (const :tag "Disabled" nil)
 		 (const :tag "Double click" double)
-                 (number :tag "Single click time limit" :value 350)
+                 (number :tag "Single click time limit" :value 450)
                  (other :tag "Single click" t))
   :group 'mouse)
 
@@ -663,7 +663,7 @@
     ;; If mark is highlighted, no need to bounce the cursor.
     ;; On X, we highlight while dragging, thus once again no need to bounce.
     (or transient-mark-mode
-	(memq (framep (selected-frame)) '(x pc w32))
+	(memq (framep (selected-frame)) '(x pc w32 mac))
 	(sit-for 1))
     (push-mark)
     (set-mark (point))
--- a/lisp/net/ange-ftp.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/net/ange-ftp.el	Mon Jan 16 06:59:21 2006 +0000
@@ -2686,7 +2686,12 @@
 	 ;; Require the previous column to end in a digit.
 	 ;; This avoids recognizing `1 may 1997' as a date in the line:
 	 ;; -r--r--r--   1 may      1997        1168 Oct 19 16:49 README
-    (concat "[0-9]" s "\\(" western "\\|" japanese "\\)" s))
+	 ;; albinus:
+         ;; Require also the following column to start in a digit.
+	 ;; This avoids recognizing `kfs 10' as a date in the line:
+	 ;; -rw-------   1 kfs                    10 May 27  2003 .autorun.lck
+;;  (concat "[0-9]" s "\\(" western "\\|" japanese "\\)" s))
+    (concat "[0-9]" s "\\(" western "\\|" japanese "\\)" s "+[0-9]"))
   "Regular expression to match up to the column before the file name in a
 directory listing.  This regular expression is designed to recognize dates
 regardless of the language.")
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/net/rcirc.el	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,1720 @@
+;;; rcirc.el --- default, simple IRC client.
+
+;; Copyright (C) 2005 Free Software Foundation, Inc.
+
+;; Author: Ryan Yeske
+;; URL: http://www.nongnu.org/rcirc
+;; Keywords: comm
+
+;; This file is part of GNU Emacs.
+
+;; This file is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; This file 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., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+
+;; rcirc is an Internet Relay Chat (IRC) client for Emacs
+
+;; IRC is a form of instant communication over the Internet. It is
+;; mainly designed for group (many-to-many) communication in
+;; discussion forums called channels, but also allows one-to-one
+;; communication.
+
+;; Open a new irc connection with:
+;; M-x irc RET
+
+;;; Code:
+
+(require 'ring)
+(require 'time-date)
+(eval-when-compile (require 'cl))
+
+(defvar rcirc-server "irc.freenode.net"
+  "The default server to connect to.")
+
+(defvar rcirc-port 6667
+  "The default port to connect to.")
+
+(defvar rcirc-nick (user-login-name)
+  "Your nick.")
+
+(defvar rcirc-user-name (user-login-name)
+  "Your user name sent to the server when connecting.")
+
+(defvar rcirc-user-full-name (if (string= (user-full-name) "")
+				 rcirc-user-name
+			       (user-full-name))
+  "The full name sent to the server when connecting.")
+
+(defvar rcirc-startup-channels-alist nil
+  "Alist of channels to join at startup.
+Each element looks like (REGEXP . CHANNEL-LIST).")
+
+(defvar rcirc-fill-flag t
+  "*Non-nil means fill messages printed in channel buffers.")
+
+(defvar rcirc-fill-column nil
+  "*If non-nil, fill to this column, otherwise use value of `fill-column'.")
+
+(defvar rcirc-fill-prefix nil
+  "*Text to insert before filled lines.
+If nil, calculate the prefix dynamically to line up text
+underneath each nick.")
+
+(defvar rcirc-ignore-channel-activity nil
+  "If non-nil, ignore activity in this channel.")
+(make-variable-buffer-local 'rcirc-ignore-channel-activity)
+
+(defvar rcirc-ignore-all-activity-flag nil
+  "*Non-nil means track activity, but do not display it in the modeline.")
+
+(defvar rcirc-time-format "%H:%M "
+  "*Describes how timestamps are printed.
+Used as the first arg to `format-time-string'.")
+
+(defvar rcirc-input-ring-size 1024
+  "*Size of input history ring.")
+
+(defvar rcirc-read-only-flag t
+  "*Non-nil means make text in irc buffers read-only.")
+
+(defvar rcirc-buffer-maximum-lines nil
+  "*The maximum size in lines for rcirc buffers.
+Channel buffers are truncated from the top to be no greater than this
+number.	 If zero or nil, no truncating is done.")
+
+(defvar rcirc-authinfo-file-name
+  "~/.rcirc-authinfo"
+  "File containing rcirc authentication passwords.
+The file consists of a single list, with each element itself a
+list with a SERVER-REGEXP string, a NICK-REGEXP string, a METHOD
+and the remaining method specific ARGUMENTS.  The valid METHOD
+symbols are `nickserv', `chanserv' and `bitlbee'.
+
+The required ARGUMENTS for each METHOD symbol are:
+  `nickserv': PASSWORD
+  `chanserv': CHANNEL PASSWORD
+  `bitlbee': PASSWORD
+
+Example:
+ ((\"freenode\" \"bob\" nickserv \"p455w0rd\")
+  (\"freenode\" \"bob\" chanserv \"#bobland\" \"passwd99\")
+  (\"bitlbee\" \"robert\" bitlbee \"sekrit\"))")
+
+(defvar rcirc-auto-authenticate-flag (file-readable-p rcirc-authinfo-file-name)
+  "*Non-nil means automatically send authentication string to server.
+See also `rcirc-authinfo-file-name'.")
+
+(defvar rcirc-print-hooks nil
+  "Hook run after text is printed.
+Called with 5 arguments, PROCESS, SENDER, RESPONSE, TARGET and TEXT.")
+
+(defvar rcirc-prompt "%n> "
+  "Prompt string to use in irc buffers.
+
+The following replacements are made:
+%n is your nick.
+%s is the server.
+%t is the buffer target, a channel or a user.
+
+Setting this alone will not affect the prompt; 
+use `rcirc-update-prompt' after changing this variable.")
+
+(defvar rcirc-prompt-start-marker nil)
+(defvar rcirc-prompt-end-marker nil)
+
+(defvar rcirc-nick-table nil)
+
+(defvar rcirc-activity nil
+  "List of channels with unviewed activity.")
+
+(defvar rcirc-activity-string ""
+  "String displayed in modeline representing `rcirc-activity'.")
+(put 'rcirc-activity-string 'risky-local-variable t)
+
+(defvar rcirc-process nil
+  "The server process associated with this buffer.")
+
+(defvar rcirc-target nil
+  "The channel or user associated with this buffer.")
+
+(defvar rcirc-channels nil
+  "Joined channels.")
+
+(defvar rcirc-private-chats nil
+  "Private chats open.")
+
+(defvar rcirc-urls nil
+  "List of urls seen in the current buffer.")
+
+(defvar rcirc-keepalive-seconds 60
+  "Number of seconds between keepalive pings.")
+
+
+(defun rcirc-version (&optional here)
+  "Return rcirc version string.
+If optional argument HERE is non-nil, insert string at point."
+  (interactive "P")
+  (let ((version "rcirc.el 0.9 $Revision: 1.5 $"))
+    (if here
+	(insert version)
+      (if (interactive-p)
+	  (message "%s" version)
+	version))))
+
+(defvar rcirc-startup-channels nil)
+;;;###autoload
+(defun rcirc (&optional server port nick channels)
+  "Connect to IRC.
+
+If any of the the optional SERVER, PORT, NICK or CHANNELS are not
+supplied, they are taken from the variables `rcirc-server',
+`rcirc-port', `rcirc-nick', and `rcirc-startup-channels',
+respectively."
+  (interactive (list (read-string "IRC Server: " rcirc-server)
+		     (read-string "IRC Port: " (number-to-string rcirc-port))
+		     (read-string "IRC Nick: " rcirc-nick)))
+  (or server (setq server rcirc-server))
+  (or port (setq port rcirc-port))
+  (or nick (setq nick rcirc-nick))
+  (or channels
+      (setq channels
+	    (if (interactive-p)
+		(delete ""
+			(split-string
+			 (read-string "Channels: "
+				     (mapconcat 'identity
+						(rcirc-startup-channels server)
+						" "))
+			 "[, ]+"))
+	      (rcirc-startup-channels server))))
+  (or global-mode-string (setq global-mode-string '("")))
+  (and (not (memq 'rcirc-activity-string global-mode-string))
+       (setq global-mode-string
+	     (append global-mode-string '(rcirc-activity-string))))
+  (add-hook 'window-configuration-change-hook 'rcirc-update-activity)
+  (rcirc-connect server port nick rcirc-user-name rcirc-user-full-name
+		 channels))
+
+;;;###autoload
+(defalias 'irc 'rcirc)
+
+
+(defvar rcirc-process-output nil)
+(defvar rcirc-last-buffer nil)
+(defvar rcirc-topic nil)
+(defvar rcirc-keepalive-timer nil)
+(make-variable-buffer-local 'rcirc-topic)
+(defun rcirc-connect (server port nick user-name full-name startup-channels)
+  "Return a connection to SERVER on PORT.
+
+User will identify using the values of NICK, USER-NAME and
+FULL-NAME.  The variable list of channel names in
+STARTUP-CHANNELS will automatically be joined on startup."
+  (save-excursion
+    (message "Connecting to %s..." server)
+    (let* ((inhibit-eol-conversion)
+           (port-number (if (stringp port)
+                            (string-to-number port)
+                          port))
+           (process (open-network-stream server nil server port-number)))
+      ;; set up process
+      (set-process-coding-system process 'raw-text 'raw-text)
+      (set-process-filter process 'rcirc-filter)
+      (switch-to-buffer (concat "*" (process-name process) "*"))
+      (set-process-buffer process (current-buffer))
+      (set-process-sentinel process 'rcirc-sentinel)
+      (rcirc-mode process nil)
+      (make-local-variable 'rcirc-nick-table)
+      (setq rcirc-nick-table (make-hash-table :test 'equal))
+      (make-local-variable 'rcirc-server)
+      (setq rcirc-server server)
+      (make-local-variable 'rcirc-nick)
+      (setq rcirc-nick nick)
+      (make-local-variable 'rcirc-process-output)
+      (setq rcirc-process-output nil)
+      (make-local-variable 'rcirc-last-buffer)
+      (setq rcirc-last-buffer (current-buffer))
+      (make-local-variable 'rcirc-channels)
+      (setq rcirc-channels nil)
+      (make-local-variable 'rcirc-private-chats)
+      (setq rcirc-private-chats nil)
+      (make-local-variable 'rcirc-startup-channels)
+      (setq rcirc-startup-channels startup-channels)
+
+      ;; identify
+      (rcirc-send-string process (concat "NICK " nick))
+      (rcirc-send-string process (concat "USER " user-name
+                                      " hostname servername :"
+                                      full-name))
+
+      ;; setup ping timer if necessary
+      (unless rcirc-keepalive-timer
+        (setq rcirc-keepalive-timer
+              (run-at-time 0 rcirc-keepalive-seconds 'rcirc-keepalive)))
+
+      (message "Connecting to %s...done" server)
+
+      ;; return process object
+      process)))
+
+(defun rcirc-keepalive ()
+  "Send keep alive pings to active rcirc processes."
+  (if (rcirc-process-list)
+      (mapc (lambda (process)
+              (with-current-buffer (process-buffer process)
+                (rcirc-send-string process (concat "PING " rcirc-server))))
+            (rcirc-process-list))
+    (cancel-timer rcirc-keepalive-timer)
+    (setq rcirc-keepalive-timer nil)))
+
+(defvar rcirc-log-buffer "*rcirc log*")
+(defvar rcirc-log-p nil
+  "If non-nil, write information to `rcirc-log-buffer'.")
+(defun rcirc-log (process text)
+  "Add an entry to the debug log including PROCESS and TEXT.
+Debug text is written to `rcirc-log-buffer' if `rcirc-log-p' is
+non-nil."
+  (when rcirc-log-p
+    (save-excursion
+      (save-window-excursion
+        (set-buffer (get-buffer-create rcirc-log-buffer))
+        (goto-char (point-max))
+        (insert (concat
+                 "["
+                 (format-time-string "%Y-%m-%dT%T ") (process-name process)
+                 "] "
+                 text))))))
+               
+(defvar rcirc-sentinel-hooks nil
+  "Hook functions called when the process sentinel is called.
+Functions are called with PROCESS and SENTINEL arguments.")
+
+(defun rcirc-sentinel (process sentinel)
+  "Called when PROCESS receives SENTINEL."
+  (let ((sentinel (replace-regexp-in-string "\n" "" sentinel)))
+    (rcirc-log process (format "SENTINEL: %S %S\n" process sentinel))
+    (with-current-buffer (process-buffer process)
+      (dolist (target (append rcirc-channels
+                              rcirc-private-chats
+                              (list (current-buffer))))
+        (rcirc-print process "rcirc.el" "ERROR" target
+                     (format "%s: %s (%S)"
+                             (process-name process)
+                             sentinel
+                             (process-status process)) t)
+	;; remove the prompt from buffers
+	(with-current-buffer (if (eq target (current-buffer))
+				 (current-buffer)
+			       (rcirc-get-buffer process target))
+	  (let ((inhibit-read-only t))
+	    (delete-region rcirc-prompt-start-marker
+			   rcirc-prompt-end-marker)))))
+    (run-hook-with-args 'rcirc-sentinel-hooks process sentinel)))
+
+(defun rcirc-process-list ()
+  "Return a list of rcirc processes."
+  (let (ps)
+    (mapc (lambda (p)
+            (when (process-buffer p)
+              (with-current-buffer (process-buffer p)
+                (when (eq major-mode 'rcirc-mode)
+                  (setq ps (cons p ps))))))
+          (process-list))
+    ps))
+
+(defvar rcirc-receive-message-hooks nil
+  "Hook functions run when a message is recieved from server.
+Function is called with PROCESS COMMAND SENDER ARGS and LINE.")
+(defun rcirc-filter (process output)
+  "Called when PROCESS receives OUTPUT."
+  (rcirc-log process output)
+  (with-current-buffer (process-buffer process)
+    (setq rcirc-process-output (concat rcirc-process-output output))
+    (when (= (aref rcirc-process-output
+                   (1- (length rcirc-process-output))) ?\n)
+      (mapc (lambda (line)
+              (rcirc-process-server-response process line))
+            (delete "" (split-string rcirc-process-output "[\n\r]")))
+      (setq rcirc-process-output nil))))
+
+(defvar rcirc-trap-errors nil)
+(defun rcirc-process-server-response (process text)
+  (if rcirc-trap-errors
+      (condition-case err
+          (rcirc-process-server-response-1 process text)
+        (error
+         (rcirc-print process "RCIRC" "ERROR" nil
+                      (format "rcirc: error processing: \"%s\" %s" text err))))
+    (rcirc-process-server-response-1 process text)))
+
+(defun rcirc-process-server-response-1 (process text)
+  (if (string-match "^\\(:\\([^ ]+\\) \\)?\\([^ ]+\\) \\(.+\\)$" text)
+      (let* ((sender (match-string 2 text))
+             (cmd (match-string 3 text))
+             (args (match-string 4 text))
+             (handler (intern-soft (concat "rcirc-handler-" cmd))))
+        (string-match "^\\([^:]*\\):?\\(.+\\)?$" args)
+        (let* ((args1 (match-string 1 args))
+               (args2 (match-string 2 args))
+               (args (append (delete "" (split-string args1 " "))
+                             (list args2))))
+        (if (not (fboundp handler))
+            (rcirc-handler-generic process cmd sender args text)
+          (funcall handler process sender args text))
+        (run-hook-with-args 'rcirc-receive-message-hooks
+                            process cmd sender args text)))
+    (message "UNHANDLED: %s" text)))
+
+(defun rcirc-handler-generic (process command sender args text)
+  "Generic server response handler."
+  (rcirc-print process sender command nil
+               (mapconcat 'identity (cdr args) " ")))
+
+(defun rcirc-send-string (process string)
+  "Send PROCESS a STRING plus a newline."
+  (let ((string (concat (encode-coding-string string
+                                              buffer-file-coding-system)
+                        "\n")))
+    (rcirc-log process string)
+    (process-send-string process string)))
+
+(defun rcirc-server (process)
+  "Return PROCESS server, given by the 001 response."
+  (with-current-buffer (process-buffer process)
+    rcirc-server))
+
+(defun rcirc-nick (process)
+  "Return PROCESS nick."
+  (with-current-buffer (process-buffer process)
+    rcirc-nick))
+
+(defvar rcirc-max-message-length 450
+  "Messages longer than this value will be split.")
+
+(defun rcirc-send-message (process target message &optional noticep)
+  "Send TARGET associated with PROCESS a privmsg with text MESSAGE.
+If NOTICEP is non-nil, send a notice instead of privmsg."
+  ;; max message length is 512 including CRLF
+  (let* ((response (if noticep "NOTICE" "PRIVMSG"))
+         (oversize (> (length message) rcirc-max-message-length))
+         (text (if oversize
+                   (substring message 0 rcirc-max-message-length)
+                 message))
+         (text (if (string= text "")
+                   " "
+                 text))
+         (more (if oversize
+                   (substring message rcirc-max-message-length))))
+    (rcirc-print process (rcirc-nick process) response target text)
+    (rcirc-send-string process (concat response " " target " :" text))
+    (if more
+        (rcirc-send-message process target more noticep))))
+
+(defvar rcirc-input-ring nil)
+(defvar rcirc-input-ring-index 0)
+(defun rcirc-prev-input-string (arg)
+  (ring-ref rcirc-input-ring (+ rcirc-input-ring-index arg)))
+
+(defun rcirc-insert-prev-input (arg)
+  (interactive "p")
+  (when (<= rcirc-prompt-end-marker (point))
+    (delete-region rcirc-prompt-end-marker (point-max))
+    (insert (rcirc-prev-input-string 0))
+    (setq rcirc-input-ring-index (1+ rcirc-input-ring-index))))
+
+(defun rcirc-insert-next-input (arg)
+  (interactive "p")
+  (when (<= rcirc-prompt-end-marker (point))
+    (delete-region rcirc-prompt-end-marker (point-max))
+    (setq rcirc-input-ring-index (1- rcirc-input-ring-index))
+    (insert (rcirc-prev-input-string -1))))
+
+(defvar rcirc-nick-completions nil)
+(defvar rcirc-nick-completion-start-offset nil)
+(defun rcirc-complete-nick ()
+  "Cycle through nick completions from list of nicks in channel."
+  (interactive)
+  (if (eq last-command 'rcirc-complete-nick)
+      (setq rcirc-nick-completions
+            (append (cdr rcirc-nick-completions)
+                    (list (car rcirc-nick-completions))))
+    (setq rcirc-nick-completion-start-offset
+          (- (save-excursion
+               (if (re-search-backward " " rcirc-prompt-end-marker t)
+                   (1+ (point))
+                 rcirc-prompt-end-marker))
+             rcirc-prompt-end-marker))
+    (setq rcirc-nick-completions
+          (let ((completion-ignore-case t))
+            (all-completions 
+	     (buffer-substring 
+	      (+ rcirc-prompt-end-marker
+		 rcirc-nick-completion-start-offset)
+	      (point))
+	     (mapcar (lambda (x) (cons x nil))
+		     (rcirc-channel-nicks rcirc-process
+					  (rcirc-buffer-target)))))))
+  (let ((completion (car rcirc-nick-completions)))
+    (when completion
+      (delete-region (+ rcirc-prompt-end-marker 
+                        rcirc-nick-completion-start-offset)
+                     (point))
+      (insert (concat completion
+                      (if (= (+ rcirc-prompt-end-marker 
+                                rcirc-nick-completion-start-offset)
+                             rcirc-prompt-end-marker)
+                          ": "))))))
+
+(defun rcirc-buffer-target (&optional buffer)
+  "Return the name of target for BUFFER.
+If buffer is nil, return the target of the current buffer."
+  (with-current-buffer (or buffer (current-buffer))
+    rcirc-target))
+
+(defvar rcirc-mode-map (make-sparse-keymap)
+  "Keymap for rcirc mode.")
+
+(define-key rcirc-mode-map (kbd "RET") 'rcirc-send-input)
+(define-key rcirc-mode-map (kbd "M-p") 'rcirc-insert-prev-input)
+(define-key rcirc-mode-map (kbd "M-n") 'rcirc-insert-next-input)
+(define-key rcirc-mode-map (kbd "TAB") 'rcirc-complete-nick)
+(define-key rcirc-mode-map (kbd "C-c C-b") 'rcirc-browse-url)
+(define-key rcirc-mode-map (kbd "C-c C-c") 'rcirc-edit-multiline)
+(define-key rcirc-mode-map (kbd "C-c C-j") 'rcirc-cmd-join)
+(define-key rcirc-mode-map (kbd "C-c C-k") 'rcirc-cmd-kick)
+(define-key rcirc-mode-map (kbd "C-c C-l") 'rcirc-cmd-list)
+(define-key rcirc-mode-map (kbd "C-c C-d") 'rcirc-cmd-mode)
+(define-key rcirc-mode-map (kbd "C-c C-m") 'rcirc-cmd-msg)
+(define-key rcirc-mode-map (kbd "C-c C-r") 'rcirc-cmd-nick) ; rename
+(define-key rcirc-mode-map (kbd "C-c C-o") 'rcirc-cmd-oper)
+(define-key rcirc-mode-map (kbd "C-c C-p") 'rcirc-cmd-part)
+(define-key rcirc-mode-map (kbd "C-c C-q") 'rcirc-cmd-query)
+(define-key rcirc-mode-map (kbd "C-c C-t") 'rcirc-cmd-topic)
+(define-key rcirc-mode-map (kbd "C-c C-n") 'rcirc-cmd-names)
+(define-key rcirc-mode-map (kbd "C-c C-w") 'rcirc-cmd-whois)
+(define-key rcirc-mode-map (kbd "C-c C-x") 'rcirc-cmd-quit)
+(define-key rcirc-mode-map (kbd "C-c TAB") ; C-i
+  'rcirc-toggle-ignore-channel-activity)
+(define-key rcirc-mode-map (kbd "C-c C-s") 'rcirc-switch-to-server-buffer)
+(define-key rcirc-mode-map (kbd "C-c C-a") 'rcirc-jump-to-first-unread-line)
+
+(define-key global-map (kbd "C-c `") 'rcirc-next-active-buffer)
+(define-key global-map (kbd "C-c C-@") 'rcirc-next-active-buffer)
+(define-key global-map (kbd "C-c C-SPC") 'rcirc-next-active-buffer)
+
+(defvar rcirc-mode-hook nil
+  "Hook run when setting up rcirc buffer.")
+
+(defun rcirc-mode (process target)
+  "Major mode for irc channel buffers.
+
+\\{rcirc-mode-map}"
+  (kill-all-local-variables)
+  (use-local-map rcirc-mode-map)
+  (setq mode-name "rcirc")
+  (setq major-mode 'rcirc-mode)
+
+  (make-local-variable 'rcirc-input-ring)
+  (setq rcirc-input-ring (make-ring rcirc-input-ring-size))
+  (make-local-variable 'rcirc-process)
+  (setq rcirc-process process)
+  (make-local-variable 'rcirc-target)
+  (setq rcirc-target target)
+  (make-local-variable 'rcirc-urls)
+  (setq rcirc-urls nil)
+  (setq use-hard-newlines t)
+  (when (rcirc-channel-p rcirc-target)
+    (setq header-line-format 'rcirc-topic))
+
+  ;; setup the prompt and markers
+  (make-local-variable 'rcirc-prompt-start-marker)
+  (setq rcirc-prompt-start-marker (make-marker))
+  (set-marker rcirc-prompt-start-marker (point-max))
+  (make-local-variable 'rcirc-prompt-end-marker)
+  (setq rcirc-prompt-end-marker (make-marker))
+  (set-marker rcirc-prompt-end-marker (point-max))
+  (rcirc-update-prompt)
+  (goto-char rcirc-prompt-end-marker)
+  (make-local-variable 'overlay-arrow-position)
+  (setq overlay-arrow-position (make-marker))
+  (set-marker overlay-arrow-position nil)
+
+  (run-hooks 'rcirc-mode-hook))
+
+(defmacro with-rcirc-process-buffer (process &rest body)
+  (declare (indent 1) (debug t))
+  `(with-current-buffer (process-buffer ,process)
+     ,@body))
+
+(defun rcirc-update-prompt ()
+  "Reset the prompt string in the current buffer."
+  (let ((inhibit-read-only t)
+        (prompt (or rcirc-prompt "")))
+    (mapc (lambda (rep)
+            (setq prompt 
+		  (replace-regexp-in-string (car rep) (cdr rep) prompt)))
+          (list (cons "%n" (with-rcirc-process-buffer rcirc-process
+			     rcirc-nick))
+                (cons "%s" (with-rcirc-process-buffer rcirc-process 
+			     rcirc-server))
+                (cons "%t" (or rcirc-target ""))))
+    (save-excursion
+      (delete-region rcirc-prompt-start-marker rcirc-prompt-end-marker)
+      (goto-char rcirc-prompt-start-marker)
+      (let ((start (point)))
+        (insert-before-markers prompt)
+        (set-marker rcirc-prompt-start-marker start)
+        (when (not (zerop (- rcirc-prompt-end-marker
+                             rcirc-prompt-start-marker)))
+          (add-text-properties rcirc-prompt-start-marker
+                               rcirc-prompt-end-marker
+                               (list 'face 'rcirc-prompt-face
+                                     'read-only t 'field t
+                                     'front-sticky t 'rear-nonsticky t)))))))
+
+(defun rcirc-channel-p (target)
+  "Return t if TARGET is a channel name."
+  (and target
+       (not (zerop (length target)))
+       (or (eq (aref target 0) ?#)
+           (eq (aref target 0) ?&))))
+
+(defun rcirc-kill-buffer-hook ()
+  "Part the channel when killing an rcirc buffer."
+  (when (eq major-mode 'rcirc-mode)
+    (rcirc-clear-activity (current-buffer))
+    (when (and rcirc-process
+               (eq (process-status rcirc-process) 'open))
+      (if (rcirc-channel-p rcirc-target)
+          (rcirc-cmd-part "" rcirc-process rcirc-target)
+        ;; remove target from privchat list
+        (when rcirc-target
+          (let ((target (downcase rcirc-target)))
+            (with-rcirc-process-buffer rcirc-process
+              (setq rcirc-private-chats
+		    (delete target rcirc-private-chats)))))))))
+(add-hook 'kill-buffer-hook 'rcirc-kill-buffer-hook)
+
+(defun rcirc-get-buffer-name (process target)
+  "Return buffer name based on PROCESS and TARGET."
+  (concat (and target (downcase target)) "@" (process-name process)))
+
+(defun rcirc-get-buffer (process target &optional error)
+  "Return the buffer associated with the PROCESS and TARGET.
+If TARGET is nil and ERROR is nil, return the process buffer."
+  (let ((buffer (and target 
+                     (get-buffer (rcirc-get-buffer-name process target)))))
+    (if (and buffer (buffer-live-p buffer))
+        buffer
+      (if error
+          (error "Buffer associated with %s does not exist" target)
+        (process-buffer process)))))
+
+(defun rcirc-get-buffer-create (process target)
+  "Return the buffer named associated with the PROCESS and TARGET.
+Create the buffer if it doesn't exist.  If TARGET is nil, return
+the process buffer."
+  (with-current-buffer (process-buffer process)
+    (if (not target)
+        (current-buffer)
+      (let ((target (downcase target)))
+        ;; add private chats to list.  we dont add channels here, they
+        ;; are managed by the join/part/quit handlers
+        (when (and (not (rcirc-channel-p target))
+                   (not (member target rcirc-private-chats)))
+          (with-rcirc-process-buffer process
+            (setq rcirc-private-chats (cons target rcirc-private-chats))))
+        ;; create and setup a buffer, or return the existing one
+        (let ((bufname (rcirc-get-buffer-name process target)))
+          (with-current-buffer (get-buffer-create bufname)
+            (if (or (not rcirc-process)
+                    (not (equal (process-status rcirc-process) 'open)))
+                (rcirc-mode process target)
+              (setq rcirc-target target))
+            (current-buffer)))))))
+
+(defun rcirc-send-input ()
+  "Send input to target associated with the current buffer."
+  (interactive)
+  (if (not (eq (process-status rcirc-process) 'open))
+      (error "Network connection to %s is not open" 
+             (process-name rcirc-process))
+    ;; update last buffer
+    (rcirc-set-last-buffer rcirc-process (current-buffer))
+    (if (< (point) rcirc-prompt-end-marker)
+        ;; copy the line down to the input area
+        (progn
+          (forward-line 0)
+          (let ((start (if (eq (point) (point-min))
+                           (point)
+                         (if (get-text-property (1- (point)) 'hard)
+                             (point)
+                           (previous-single-property-change (point) 'hard))))
+                (end (next-single-property-change (1+ (point)) 'hard)))
+            (goto-char (point-max))
+            (insert (replace-regexp-in-string
+                     "\n\\s-+" " "
+                     (buffer-substring-no-properties start end)))))
+      ;; assume text has been read
+      (when (marker-position overlay-arrow-position)
+	(set-marker overlay-arrow-position nil))
+      ;; process input
+      (goto-char (point-max))
+      (let ((target (rcirc-buffer-target))
+            (start rcirc-prompt-end-marker))
+        (when (not (equal 0 (- (point) start)))
+          ;; delete a trailing newline
+          (when (eq (point) (point-at-bol))
+            (delete-backward-char 1))
+          (let ((input (buffer-substring-no-properties
+                        rcirc-prompt-end-marker (point))))
+            ;; process a /cmd
+            (if (string-match "^/\\([^ ]+\\) ?\\(.*\\)$" input)
+                (let* ((command (match-string 1 input))
+                       (fun (intern-soft (concat "rcirc-cmd-" command)))
+                       (args (match-string 2 input)))
+                  (newline)
+                  (with-current-buffer (current-buffer)
+                    (delete-region rcirc-prompt-end-marker (point))
+                    (if (string= command "me")
+                        (rcirc-print rcirc-process (rcirc-nick rcirc-process) 
+                                     "ACTION" target args)
+                      (rcirc-print rcirc-process (rcirc-nick rcirc-process) 
+                                   "COMMAND" target input))
+                    (set-marker rcirc-prompt-end-marker (point))
+                    (if (fboundp fun)
+                        (funcall fun args rcirc-process target)
+                      (rcirc-send-string rcirc-process
+					 (concat command " " args)))))
+              ;; send message to server
+              (if (not rcirc-target)
+                  (message "Not joined")
+                (delete-region rcirc-prompt-end-marker (point))
+                (mapc (lambda (message)
+                        (rcirc-send-message rcirc-process target message))
+                      (split-string input "\n"))))
+            ;; add to input-ring
+            (save-excursion
+              (ring-insert rcirc-input-ring input)
+              (setq rcirc-input-ring-index 0))))))))
+
+(defvar rcirc-parent-buffer nil)
+(defvar rcirc-window-configuration nil)
+(defun rcirc-edit-multiline ()
+  "Move current edit to a dedicated buffer."
+  (interactive)
+  (let ((pos (1+ (- (point) rcirc-prompt-end-marker))))
+    (goto-char (point-max))
+    (let ((text (buffer-substring rcirc-prompt-end-marker (point)))
+          (parent (buffer-name))
+          (process rcirc-process))
+      (delete-region rcirc-prompt-end-marker (point))
+      (setq rcirc-window-configuration (current-window-configuration))
+      (pop-to-buffer (concat "*multiline " parent "*"))
+      (rcirc-multiline-edit-mode)
+      (setq rcirc-parent-buffer parent)
+      (setq rcirc-process process)
+      (insert text)
+      (and (> pos 0) (goto-char pos)))))
+
+(define-derived-mode rcirc-multiline-edit-mode
+  text-mode "rcirc multi"
+  "Major mode for multiline edits
+\\{rcirc-multiline-edit-mode-map}"
+  (make-local-variable 'rcirc-parent-buffer)
+  (make-local-variable 'rcirc-process))
+
+(define-key rcirc-multiline-edit-mode-map
+  (kbd "C-c C-c") 'rcirc-multiline-edit-submit)
+(define-key rcirc-multiline-edit-mode-map
+  (kbd "C-x C-s") 'rcirc-multiline-edit-submit)
+(define-key rcirc-multiline-edit-mode-map
+  (kbd "C-c C-k") 'rcirc-multiline-edit-cancel)
+(define-key rcirc-multiline-edit-mode-map
+  (kbd "ESC ESC ESC") 'rcirc-multiline-edit-cancel)
+
+(defun rcirc-multiline-edit-submit ()
+  "Send the text in buffer back to parent buffer."
+  (interactive)
+  (assert (and (eq major-mode 'rcirc-multiline-edit-mode)))
+  (assert rcirc-parent-buffer)
+  (let ((text (buffer-substring (point-min) (point-max)))
+        (buffer (current-buffer))
+        (pos (point)))
+    (set-buffer rcirc-parent-buffer)
+    (goto-char (point-max))
+    (insert text)
+    (goto-char (+ rcirc-prompt-end-marker (1- pos)))
+    (kill-buffer buffer)
+    (set-window-configuration rcirc-window-configuration)))
+
+(defun rcirc-multiline-edit-cancel ()
+  "Cancel the multiline edit."
+  (interactive)
+  (assert (and (eq major-mode 'rcirc-multiline-edit-mode)))
+  (kill-buffer (current-buffer))
+  (set-window-configuration rcirc-window-configuration))
+
+(defun rcirc-last-buffer (process)
+  "Return the last working buffer for PROCESS.
+Used for displaying messages that don't have an explicit destination."
+  (with-current-buffer (process-buffer process)
+    (or (and rcirc-last-buffer
+             (buffer-live-p rcirc-last-buffer)
+             rcirc-last-buffer)
+        (current-buffer))))
+
+(defun rcirc-set-last-buffer (process buffer)
+  "Set the last working buffer for PROCESS to BUFFER."
+  (with-current-buffer (process-buffer process)
+    (setq rcirc-last-buffer buffer)))
+
+(defun rcirc-format-response-string (process sender response target text)
+  (concat (when rcirc-time-format
+            (format-time-string rcirc-time-format (current-time)))
+          (cond ((or (string= response "PRIVMSG")
+                     (string= response "NOTICE")
+                     (string= response "ACTION"))
+                 (let (first middle end)
+                   (cond ((string= response "PRIVMSG")
+                          (setq first "<" middle "> "))
+                         ((string= response "NOTICE")
+                          (setq first "-" middle "- "))
+                         (t
+                          (setq first "[" middle " " end "]")))
+                   (concat first 
+                           (rcirc-facify (rcirc-user-nick sender)
+                                         (if (string= sender
+                                                      (rcirc-nick process))
+                                             'rcirc-my-nick-face
+                                           'rcirc-other-nick-face))
+                           middle
+                           (rcirc-mangle-text process text)
+                           end)))
+                ((string= response "COMMAND")
+                 text)
+                ((string= response "ERROR")
+                 (propertize text 'face 'font-lock-warning-face))
+                (t
+                 (rcirc-mangle-text
+                  process
+                  (rcirc-facify
+                   (concat "*** "
+			   (when (not (string= sender (rcirc-server process)))
+			     (concat (rcirc-user-nick sender) " "))
+			   (when (zerop (string-to-number response))
+			     (concat response " "))
+                           (when (and target (not (string= target rcirc-target)))
+                             (concat target " "))
+                           text)
+                   'rcirc-server-face))))))
+
+(defvar rcirc-activity-type nil)
+(make-variable-buffer-local 'rcirc-activity-type)
+(defun rcirc-print (process sender response target text &optional activity)
+  "Print TEXT in the buffer associated with TARGET.
+Format based on SENDER and RESPONSE.  If ACTIVITY is non-nil,
+record activity."
+  (let* ((buffer (cond ((bufferp target) 
+                        target)
+                       ((not target)
+                        (rcirc-last-buffer process))
+                       ((not (rcirc-channel-p target)) 
+                        (rcirc-get-buffer-create process target))
+                       ((rcirc-get-buffer process target))
+                       (t (process-buffer process))))
+         (inhibit-read-only t))
+    (with-current-buffer buffer
+      (let ((moving (= (point) rcirc-prompt-end-marker))
+            (old-point (point-marker))
+            (fill-start (marker-position rcirc-prompt-start-marker)))
+
+        (unless (string= sender (rcirc-nick process))
+	  ;; only decode text from other senders, not ours
+	  (setq text (decode-coding-string text buffer-file-coding-system))
+	  ;; mark the line with overlay arrow
+	  (unless (or (marker-position overlay-arrow-position)
+		      (get-buffer-window (current-buffer)))
+	    (set-marker overlay-arrow-position 
+			(marker-position rcirc-prompt-start-marker))))
+
+        ;; temporarily set the marker insertion-type because
+        ;; insert-before-markers results in hidden text in new buffers
+        (goto-char rcirc-prompt-start-marker)
+        (set-marker-insertion-type rcirc-prompt-start-marker t)
+        (set-marker-insertion-type rcirc-prompt-end-marker t)
+        (insert
+	 (rcirc-format-response-string process sender response target text)
+	 (propertize "\n" 'hard t))
+        (set-marker-insertion-type rcirc-prompt-start-marker nil)
+        (set-marker-insertion-type rcirc-prompt-end-marker nil)
+
+        ;; fill the text we just inserted, maybe
+        (when (and rcirc-fill-flag
+		   (not (string= response "372"))) ;/motd
+          (let ((fill-prefix
+                 (or rcirc-fill-prefix
+                     (make-string
+                      (+ (if rcirc-time-format
+                             (length (format-time-string 
+                                      rcirc-time-format))
+                           0)
+                         (cond ((or (string= response "PRIVMSG")
+				    (string= response "NOTICE"))
+				(+ (length (rcirc-user-nick sender))
+				   2))	; <>
+			       ((string= response "ACTION")
+				(+ (length (rcirc-user-nick sender))
+				   1))		; [
+			       (t 3))		; ***
+                         1)
+                      ? )))
+                (fill-column (or rcirc-fill-column fill-column)))
+            (fill-region fill-start rcirc-prompt-start-marker 'left t)))
+
+        ;; truncate buffer if it is very long
+        (save-excursion
+          (when (and rcirc-buffer-maximum-lines
+                     (> rcirc-buffer-maximum-lines 0)
+                     (= (forward-line (- rcirc-buffer-maximum-lines)) 0))
+            (delete-region (point-min) (point))))
+
+        ;; set inserted text to be read-only
+        (when rcirc-read-only-flag
+          (put-text-property rcirc-prompt-start-marker fill-start 'read-only t)
+          (let ((inhibit-read-only t))
+            (put-text-property rcirc-prompt-start-marker fill-start 
+			       'front-sticky t)
+            (put-text-property (1- (point)) (point) 'rear-nonsticky t)))
+
+        ;; set the window point for buffers show in windows
+        (walk-windows (lambda (w)
+                        (unless (eq (selected-window) w)
+                          (when (and (eq (current-buffer) 
+					 (window-buffer w))
+                                     (>= (window-point w) 
+					 rcirc-prompt-end-marker))
+                            (set-window-point w (point-max)))))
+                      nil t)
+
+        ;; restore the point
+        (goto-char (if moving rcirc-prompt-end-marker old-point))
+
+        ;; flush undo (can we do something smarter here?)
+	(buffer-disable-undo)
+	(buffer-enable-undo))
+
+      ;; record modeline activity
+      (when activity
+        (let ((nick-match
+	       (string-match (concat "\\b"
+				     (regexp-quote (rcirc-nick process))
+				     "\\b")
+			     text)))
+          (when (or (not rcirc-ignore-channel-activity)
+                    ;; always notice when our nick is mentioned, even
+                    ;; if ignoring channel activity
+                    nick-match)
+            (rcirc-record-activity
+	     (current-buffer) 
+	     (when (or nick-match (not (rcirc-channel-p rcirc-target)))
+	       'nick)))))
+
+      (run-hook-with-args 'rcirc-print-hooks
+                          process sender response target text))))
+
+(defun rcirc-startup-channels (server)
+  "Return the list of startup channels for server."
+  (let (channels)
+    (dolist (i rcirc-startup-channels-alist)
+      (if (string-match (car i) server)
+          (setq channels (append channels (cdr i)))))
+    channels))
+
+(defun rcirc-join-channels (process channels)
+  "Join CHANNELS."
+  (save-window-excursion
+    (mapc (lambda (channel)
+            (with-current-buffer (process-buffer process)
+              (let (rcirc-last-buffer)  ; make sure /join text is
+                                        ; printed in server buffer
+                (rcirc-print process (rcirc-nick process) "COMMAND"
+                             nil (concat "/join " channel)))
+              (rcirc-cmd-join channel process)))
+          channels)))
+
+;;; nick management
+(defun rcirc-user-nick (user)
+  "Return the nick from USER.  Remove any non-nick junk."
+  (if (string-match "^[@%+]?\\([^! ]+\\)!?" (or user ""))
+      (match-string 1 user)
+    user))
+
+(defun rcirc-user-non-nick (user)
+  "Return the non-nick portion of USER."
+  (if (string-match "^[@+]?[^! ]+!?\\(.*\\)" (or user ""))
+      (match-string 1 user)
+    user))
+
+(defun rcirc-nick-channels (process nick)
+  "Return list of channels for NICK."
+  (let ((nick (rcirc-user-nick nick)))
+    (with-current-buffer (process-buffer process)
+      (mapcar (lambda (x) (car x))
+              (gethash nick rcirc-nick-table)))))
+
+(defun rcirc-put-nick-channel (process nick channel)
+  "Add CHANNEL to list associated with NICK."
+  (with-current-buffer (process-buffer process)
+    (let* ((nick (rcirc-user-nick nick))
+           (chans (gethash nick rcirc-nick-table))
+           (record (assoc channel chans)))
+      (if record
+          (setcdr record (current-time))
+        (puthash nick (cons (cons channel (current-time))
+                            chans)
+                 rcirc-nick-table)))))
+
+(defun rcirc-nick-remove (process nick)
+  "Remove NICK from table."
+  (with-current-buffer (process-buffer process)
+    (remhash nick rcirc-nick-table)))
+
+(defun rcirc-remove-nick-channel (process nick channel)
+  "Remove the CHANNEL from list associated with NICK."
+  (with-current-buffer (process-buffer process)
+    (let* ((nick (rcirc-user-nick nick))
+           (chans (gethash nick rcirc-nick-table))
+           (newchans (assq-delete-all channel chans)))
+      (if newchans
+          (puthash nick newchans rcirc-nick-table)
+        (remhash nick rcirc-nick-table)))))
+
+(defun rcirc-channel-nicks (process channel)
+  "Return the list of nicks in CHANNEL sorted by last activity."
+  (with-current-buffer (process-buffer process)
+    (let (nicks)
+      (maphash
+       (lambda (k v)
+         (let ((record (assoc channel v)))
+           (if record
+               (setq nicks (cons (cons k (cdr record)) nicks)))))
+       rcirc-nick-table)
+      (mapcar (lambda (x) (car x))
+              (sort nicks (lambda (x y) (time-less-p (cdr y) (cdr x))))))))
+
+;;; activity tracking
+(or (assq 'rcirc-ignore-channel-activity minor-mode-alist)
+    (setq minor-mode-alist
+          (cons '(rcirc-ignore-channel-activity " Ignore") minor-mode-alist)))
+
+(defun rcirc-toggle-ignore-channel-activity (&optional all)
+  "Toggle the value of `rcirc-ignore-channel-activity'.
+If ALL is non-nil, instead toggle the value of
+`rcirc-ignore-all-activity-flag'."
+  (interactive "P")
+  (if all
+      (progn
+        (setq rcirc-ignore-all-activity-flag
+              (not rcirc-ignore-all-activity-flag))
+        (message (concat "Global activity "
+                         (if rcirc-ignore-all-activity-flag
+                             "hidden"
+                           "displayed")))
+        (rcirc-update-activity-string))
+    (setq rcirc-ignore-channel-activity
+          (not rcirc-ignore-channel-activity)))
+  (force-mode-line-update))
+
+(defvar rcirc-switch-to-buffer-function 'switch-to-buffer
+  "Function to use when switching buffers.
+Possible values are `switch-to-buffer', `pop-to-buffer', and
+`display-buffer'.")
+
+(defun rcirc-switch-to-server-buffer ()
+  "Switch to the server buffer associated with current channel buffer."
+  (interactive)
+  (funcall rcirc-switch-to-buffer-function (process-buffer rcirc-process)))
+
+(defun rcirc-jump-to-first-unread-line ()
+  "Move the point to the first unread line in this buffer."
+  (interactive)
+  (when (marker-position overlay-arrow-position)
+    (goto-char overlay-arrow-position)))
+
+(defvar rcirc-last-non-irc-buffer nil
+  "The buffer to switch to when there is no more activity.")
+
+(defun rcirc-next-active-buffer (arg)
+  "Go to the ARGth rcirc buffer with activity.
+The function given by `rcirc-switch-to-buffer-function' is used to
+show the buffer."
+  (interactive "p")
+  (if rcirc-activity
+      (progn
+        (unless (eq major-mode 'rcirc-mode)
+          (setq rcirc-last-non-irc-buffer (current-buffer)))
+        (if (and (> arg 0)
+                 (<= arg (length rcirc-activity)))
+            (funcall rcirc-switch-to-buffer-function 
+		     (nth (1- arg) rcirc-activity))
+          (message "Invalid arg: %d" arg)))
+    (if (eq major-mode 'rcirc-mode)
+        (if (not (and rcirc-last-non-irc-buffer
+                      (buffer-live-p rcirc-last-non-irc-buffer)))
+            (message "No last buffer.")
+          (funcall rcirc-switch-to-buffer-function rcirc-last-non-irc-buffer)
+          (setq rcirc-last-non-irc-buffer nil))
+      (message "No channel activity.  Go start something."))))
+
+(defvar rcirc-activity-hooks nil
+  "Hook to be run when there is channel activity.
+
+Functions are called with a single argument, the buffer with the
+activity.  Only run if the buffer is not visible and
+`rcirc-ignore-channel-activity' is non-nil.")
+
+(defun rcirc-record-activity (buffer type)
+  "Record BUFFER activity with TYPE."
+  (with-current-buffer buffer
+    (when (not (get-buffer-window (current-buffer) t))
+      (add-to-list 'rcirc-activity (current-buffer) 'append)
+      (if (not rcirc-activity-type)
+          (setq rcirc-activity-type type))
+      (rcirc-update-activity-string)))
+  (run-hook-with-args 'rcirc-activity-hooks buffer))
+
+(defun rcirc-clear-activity (buffer)
+  "Clear the BUFFER activity."
+  (setq rcirc-activity (delete buffer rcirc-activity))
+  (with-current-buffer buffer
+    (setq rcirc-activity-type nil)))
+
+(defun rcirc-update-activity-string ()
+  "Update mode-line string."
+  (setq rcirc-activity-string
+        (if (or rcirc-ignore-all-activity-flag
+                (not rcirc-activity))
+            ""
+          (concat " [" (mapconcat 
+			(lambda (b)
+			  (let ((s (rcirc-short-buffer-name b)))
+			    (with-current-buffer b
+			      (if (not (eq rcirc-activity-type 'nick))
+				  s
+				(rcirc-facify s 
+					      'rcirc-mode-line-nick-face)))))
+			rcirc-activity ",") "]"))))
+
+(defun rcirc-short-buffer-name (buffer)
+  "Return a short name for BUFFER to use in the modeline indicator."
+  (with-current-buffer buffer
+    (or rcirc-target (process-name rcirc-process))))
+
+(defun rcirc-update-activity ()
+  "Go through visible windows and remove buffers from activity list."
+  (walk-windows (lambda (w) (rcirc-clear-activity (window-buffer w))))
+  (rcirc-update-activity-string))
+
+
+;;; /commands these are called with 3 args: PROCESS, TARGET, which is
+;; the current buffer/channel/user, and ARGS, which is a string
+;; containing the text following the /cmd.
+
+(defmacro defun-rcirc-command (command argument docstring interactive-form 
+                                       &rest body)
+  "Define a command."
+  `(defun ,(intern (concat "rcirc-cmd-" (symbol-name command)))
+     (,@argument &optional process target)
+     ,(concat docstring "\n\nNote: If PROCESS or TARGET are nil, the values of"
+              "\nbuffer local variables `rcirc-process' and `rcirc-target',"
+              "\nwill be used.")
+     ,interactive-form
+     (let ((process (or process rcirc-process))
+           (target (or target rcirc-target)))
+       ,@body)))
+
+(defun-rcirc-command msg (message)
+  "Send private MESSAGE to TARGET."
+  (interactive "i")
+  (if (null message)
+      (progn
+        (setq target (completing-read "Message nick: "
+                                      (with-current-buffer
+                                          (process-buffer rcirc-process)
+                                        rcirc-nick-table)))
+        (when (> (length target) 0)
+          (setq message (read-string (format "Message %s: " target)))
+          (when (> (length message) 0)
+            (rcirc-send-message process target message))))
+    (if (not (string-match "\\([^ ]+\\) \\(.+\\)" message))
+        (message "Not enough args, or something.")
+      (setq target (match-string 1 message)
+            message (match-string 2 message))
+      (rcirc-send-message process target message))))
+
+(defun-rcirc-command query (nick)
+  "Open a private chat buffer to NICK."
+  (interactive (list (completing-read "Query nick: "
+                                      (with-current-buffer
+                                          (process-buffer rcirc-process)
+                                        rcirc-nick-table))))
+  (let ((new-buffer (eq (rcirc-get-buffer rcirc-process nick)
+                        (process-buffer rcirc-process))))
+    (switch-to-buffer (rcirc-get-buffer-create process nick))
+    (when new-buffer
+      (rcirc-cmd-whois nick))))
+
+(defun-rcirc-command join (args)
+  "Join CHANNEL."
+  (interactive "sJoin channel: ")
+  (let* ((channel (car (split-string args)))
+         (buffer (rcirc-get-buffer-create process channel)))
+    (when (not (eq (selected-window) (minibuffer-window)))
+      (funcall rcirc-switch-to-buffer-function buffer))
+    (rcirc-send-string process (concat "JOIN " args))
+    (rcirc-set-last-buffer process buffer)))
+
+(defun-rcirc-command part (channel)
+  "Part CHANNEL."
+  (interactive "sPart channel: ")
+  (let ((channel (if (> (length channel) 0) channel target)))
+    (rcirc-send-string process (concat "PART " channel " :" (rcirc-version)))))
+
+(defun-rcirc-command quit (reason)
+  "Send a quit message to server with REASON."
+  (interactive "sQuit reason: ")
+  (rcirc-send-string process (concat "QUIT :" reason)))
+
+(defun-rcirc-command nick (nick)
+  "Change nick to NICK."
+  (interactive "i")
+  (when (null nick)
+    (setq nick (read-string "New nick: " (rcirc-nick process))))
+  (rcirc-send-string process (concat "NICK " nick)))
+
+(defun-rcirc-command names (channel)
+  "Display list of names in CHANNEL or in current channel if CHANNEL is nil.
+If called interactively, prompt for a channel when prefix arg is supplied."
+  (interactive "P")
+  (if (interactive-p)
+      (if channel
+          (setq channel (read-string "List names in channel: " target))))
+  (let ((channel (if (> (length channel) 0)
+                     channel
+                   target)))
+    (rcirc-send-string process (concat "NAMES " channel))))
+
+(defun-rcirc-command topic (topic)
+  "List TOPIC for the TARGET channel.
+With a prefix arg, prompt for new topic."
+  (interactive "P")
+  (if (and (interactive-p) topic)
+      (setq topic (read-string "New Topic: " rcirc-topic)))
+  (rcirc-send-string process (concat "TOPIC " target
+                                     (when (> (length topic) 0)
+                                       (concat " :" topic)))))
+
+(defun-rcirc-command whois (nick)
+  "Request information from server about NICK."
+  (interactive (list
+                (completing-read "Whois: "
+                                 (with-current-buffer
+                                     (process-buffer rcirc-process)
+                                   rcirc-nick-table))))
+  (rcirc-set-last-buffer rcirc-process (current-buffer))
+  (rcirc-send-string process (concat "WHOIS " nick)))
+
+(defun-rcirc-command mode (args)
+  "Set mode with ARGS."
+  (interactive (list (concat (read-string "Mode nick or channel: ")
+                             " " (read-string "Mode: "))))
+  (rcirc-send-string process (concat "MODE " args)))
+
+(defun-rcirc-command list (channels)
+  "Request information on CHANNELS from server."
+  (interactive "sList Channels: ")
+  (rcirc-send-string process (concat "LIST " channels)))
+
+(defun-rcirc-command oper (args)
+  "Send operator command to server."
+  (interactive "sOper args: ")
+  (rcirc-send-string process (concat "OPER " args)))
+
+(defun-rcirc-command quote (message)
+  "Send MESSAGE literally to server."
+  (interactive "sServer message: ")
+  (rcirc-send-string process message))
+
+(defun-rcirc-command kick (arg)
+  "Kick NICK from current channel."
+  (interactive (list
+                (concat (completing-read "Kick nick: "
+                                         (rcirc-channel-nicks rcirc-process
+                                                              rcirc-target))
+                        (read-from-minibuffer "Kick reason: "))))
+  (let* ((arglist (split-string arg))
+         (argstring (concat (car arglist) " :" 
+                            (mapconcat 'identity (cdr arglist) " "))))
+    (rcirc-send-string process (concat "KICK " target " " argstring))))
+
+(defun rcirc-cmd-ctcp (args &optional process target)
+  (if (string-match "^\\([^ ]+\\)\\s-+\\(.+\\)$" args)
+      (let ((target (match-string 1 args))
+            (request (match-string 2 args)))
+        (rcirc-send-message process target 
+                            (concat "\C-a" (upcase request) "\C-a")))
+    (rcirc-print process (rcirc-nick process) "ERROR" target
+                 "usage: /ctcp NICK REQUEST")))
+
+(defun rcirc-cmd-me (args &optional process target)
+  (rcirc-send-string process (format "PRIVMSG %s :\C-aACTION %s\C-a"
+                                     target args)))
+
+(defun rcirc-message-leader (sender face)
+  "Return a string with SENDER propertized with FACE."
+  (rcirc-facify (concat "<" (rcirc-user-nick sender) "> ") face))
+  
+(defun rcirc-facify (string face)
+  "Return a copy of STRING with FACE property added."
+  (propertize (or string "") 'face face 'rear-nonsticky t))
+
+;; shy grouping must be used within this regexp
+(defvar rcirc-url-regexp
+  "\\b\\(?:\\(?:www\\.\\|\\(?:s?https?\\|ftp\\|file\\|gopher\\|news\\|telnet\
+\\|wais\\|mailto\\):\\)\\(?://[-a-zA-Z0-9_.]+:[0-9]*\\)?\\(?:[-a-zA-Z0-9_=!?#$\
+@~`%&*+|\\/:;.,]\\|\\w\\)+\\(?:[-a-zA-Z0-9_=#$@~`%&*+|\\/]\\|\\w\\)\\)"
+  "Regexp matching URL's.  Set to nil to disable URL features in rcirc.")
+
+(defun rcirc-browse-url (&optional arg)
+  "Prompt for url to browse based on urls in buffer."
+  (interactive)
+  (let ((completions (mapcar (lambda (x) (cons x nil)) rcirc-urls))
+        (initial-input (car rcirc-urls))
+        (history (cdr rcirc-urls)))
+    (browse-url (completing-read "rcirc browse-url: "
+                                 completions nil nil initial-input 'history)
+                arg)))
+
+(defun rcirc-map-regexp (function regexp string)
+  "Return a copy of STRING after calling FUNCTION for each REGEXP match.
+FUNCTION takes 3 arguments, MATCH-START, MATCH-END, and STRING."
+  (let ((start 0))
+    (while (string-match regexp string start)
+      (setq start (match-end 0))
+      (funcall function (match-beginning 0) (match-end 0) string)))
+  string)
+
+(defvar rcirc-nick-syntax-table
+  (let ((table (make-syntax-table text-mode-syntax-table)))
+    (mapc (lambda (c) (modify-syntax-entry c "w" table))
+          "[]\\`_^{|}-")
+    (modify-syntax-entry ?' "_" table)
+    table)
+  "Syntax table which includes all nick characters as word constituents.")
+
+(defun rcirc-mangle-text (process text)
+  "Return TEXT with properties added based on various patterns."
+  ;; ^B
+  (setq text
+        (rcirc-map-regexp (lambda (start end string)
+                            (add-text-properties
+                             start end
+                             (list 'face 'bold 'rear-nonsticky t)
+                             string))
+                          ".*?"
+                          text))
+  (while (string-match "\\(.*\\)[]\\(.*\\)" text) ; deal with 
+    (setq text (concat (match-string 1 text)
+                       (match-string 2 text))))
+  ;; my nick
+  (setq text
+        (with-syntax-table rcirc-nick-syntax-table
+          (rcirc-map-regexp (lambda (start end string)
+                              (add-text-properties
+                               start end
+                               (list 'face 'rcirc-nick-in-message-face
+                                     'rear-nonsticky t)
+                               string))
+                            (concat "\\b"
+                                    (regexp-quote (rcirc-nick process))
+                                    "\\b")
+                            text)))
+  ;; urls
+  (setq text
+        (rcirc-map-regexp
+	 (lambda (start end string)
+	   (let ((orig-face (get-text-property start 'face string)))
+	     (add-text-properties start end
+				  (list 'face (list orig-face 'bold)
+					'rear-nonsticky t)
+				  string))
+	     (push (substring string start end) rcirc-urls))
+	   rcirc-url-regexp
+	   text))
+  text)
+
+
+;;; handlers
+;; these are called with the server PROCESS, the SENDER, which is a
+;; server or a user, depending on the command, the ARGS, which is a
+;; list of strings, and the TEXT, which is the original server text,
+;; verbatim
+(defun rcirc-handler-001 (process sender args text)
+  (rcirc-handler-generic process "001" sender args text)
+  ;; set the real server name
+  (with-current-buffer (process-buffer process)
+    (setq rcirc-server sender)
+    (setq rcirc-nick (car args))
+    (rcirc-update-prompt)
+    (when rcirc-auto-authenticate-flag (rcirc-authenticate))
+    (let (rcirc-last-buffer)
+      (rcirc-join-channels process rcirc-startup-channels))))
+
+(defun rcirc-handler-PRIVMSG (process sender args text)
+  (let ((target (if (rcirc-channel-p (car args))
+                    (car args)
+                  (rcirc-user-nick sender)))
+        (message (or (cadr args) "")))
+    (if (string-match "^\C-a\\(.*\\)\C-a$" message)
+        (rcirc-handler-CTCP process target sender (match-string 1 message))
+      (rcirc-print process sender "PRIVMSG" target message t))
+    ;; update nick timestamp
+    (if (member target (rcirc-nick-channels process sender))
+        (rcirc-put-nick-channel process sender target))))
+
+(defun rcirc-handler-NOTICE (process sender args text)
+  (let ((target (car args))
+        (message (cadr args)))
+    (rcirc-print process sender "NOTICE"
+                 (cond ((rcirc-channel-p target)
+                        target)
+                       ((string-match "^\\[\\(#[^ ]+\\)\\]" message)
+                        (match-string 1 message))
+                       (sender
+                        (if (string= sender (rcirc-server process))
+                            (process-buffer process)
+                          (rcirc-user-nick sender))))
+                 message t)
+    (and sender (rcirc-put-nick-channel process sender target))))
+
+(defun rcirc-handler-WALLOPS (process sender args text)
+  (let ((target (rcirc-user-nick sender)))
+    (rcirc-print process sender "WALLOPS" target (car args) t)))
+
+(defun rcirc-handler-JOIN (process sender args text)
+  (let ((channel (downcase (car args)))
+        (nick (rcirc-user-nick sender)))
+    (rcirc-get-buffer-create process channel)
+    (rcirc-print process sender "JOIN" channel "")
+
+    ;; print in private chat buffer if it exists
+    (if (not (eq (process-buffer rcirc-process)
+                 (rcirc-get-buffer rcirc-process nick)))
+        (rcirc-print process sender "JOIN" nick channel))
+
+    (rcirc-put-nick-channel process sender channel)
+    (if (string= nick (rcirc-nick process))
+        (setq rcirc-channels (cons channel rcirc-channels)))))
+
+;; PART and KICK are handled the same way
+(defun rcirc-handler-PART-or-KICK (process response channel sender nick args)
+  (rcirc-print process sender response channel (concat channel " " args))
+
+  ;; print in private chat buffer if it exists
+  (when (not (eq (process-buffer rcirc-process)
+                 (rcirc-get-buffer rcirc-process nick)))
+    (rcirc-print process sender response nick (concat channel " " args)))
+
+  (if (not (string= nick (rcirc-nick process)))
+      ;; this is someone else leaving
+  (rcirc-remove-nick-channel process nick channel)
+  ;; this is us leaving
+  (mapc (lambda (n)
+          (rcirc-remove-nick-channel process n channel))
+        (rcirc-channel-nicks process channel))
+  (setq rcirc-channels (delete channel rcirc-channels))
+  (with-current-buffer (rcirc-get-buffer process channel)
+    (setq rcirc-target nil))))
+
+(defun rcirc-handler-PART (process sender args text)
+  (rcirc-handler-PART-or-KICK process "PART"
+                              (car args) sender (rcirc-user-nick sender)
+                              (cadr args)))
+
+(defun rcirc-handler-KICK (process sender args text)
+  (rcirc-handler-PART-or-KICK process "KICK" (car args) sender (cadr args) 
+                              (caddr args)))
+
+(defun rcirc-handler-QUIT (process sender args text)
+  (let ((nick (rcirc-user-nick sender)))
+    (mapc (lambda (channel)
+            (rcirc-print process sender "QUIT" channel (apply 'concat args)))
+          (rcirc-nick-channels process nick))
+
+    ;; print in private chat buffer if it exists
+    (if (not (eq (process-buffer rcirc-process)
+                 (rcirc-get-buffer rcirc-process nick)))
+        (rcirc-print process sender "QUIT" nick (apply 'concat args)))
+
+    (rcirc-nick-remove process nick)))
+
+(defun rcirc-handler-NICK (process sender args text)
+  (let* ((old-nick (rcirc-user-nick sender))
+         (new-nick (car args))
+         (channels (rcirc-nick-channels process old-nick)))
+    ;; print message to nick's channels
+    (dolist (target channels)
+      (rcirc-print process sender "NICK" target new-nick))
+    ;; update private chat buffer, if it exists
+    (with-current-buffer (rcirc-get-buffer process old-nick)
+      (when (not (equal (process-buffer rcirc-process)
+                        (current-buffer)))
+        (rcirc-print process sender "NICK" old-nick new-nick)
+        (setq rcirc-target new-nick)
+        (rename-buffer (rcirc-get-buffer-name process new-nick))))
+    ;; remove old nick and add new one
+    (with-current-buffer (process-buffer process)
+      (let ((v (gethash old-nick rcirc-nick-table)))
+        (remhash old-nick rcirc-nick-table)
+        (puthash new-nick v rcirc-nick-table))
+      ;; if this is our nick...
+      (when (string= old-nick rcirc-nick)
+        (setq rcirc-nick new-nick)
+        ;; update prompts
+        (mapc (lambda (target)
+                (with-current-buffer (rcirc-get-buffer process target)
+                  (rcirc-update-prompt)))
+              (append rcirc-channels rcirc-private-chats))
+        ;; reauthenticate
+        (when rcirc-auto-authenticate-flag (rcirc-authenticate))))))
+
+(defun rcirc-handler-PING (process sender args text)
+  (rcirc-send-string process (concat "PONG " (car args))))
+
+(defun rcirc-handler-PONG (process sender args text)
+  ;; do nothing
+  )
+
+(defun rcirc-handler-TOPIC (process sender args text)
+  (let ((topic (cadr args)))
+    (rcirc-print process sender "TOPIC" (car args) topic)
+    (with-current-buffer (rcirc-get-buffer process (car args))
+      (setq rcirc-topic topic))))
+
+(defun rcirc-handler-332 (process sender args text)
+  "RPL_TOPIC"
+  (with-current-buffer (rcirc-get-buffer process (cadr args))
+    (setq rcirc-topic (caddr args))))
+
+(defun rcirc-handler-333 (process sender args text)
+  "Not in rfc1459.txt"
+  (with-current-buffer (rcirc-get-buffer process (cadr args))
+    (let ((setter (caddr args))
+          (time (current-time-string
+                 (seconds-to-time
+                  (string-to-number (cadddr args))))))
+      (rcirc-print process sender "TOPIC" (cadr args)
+                   (format "%s (%s on %s)" rcirc-topic setter time)))))
+
+(defun rcirc-handler-477 (process sender args text)
+  "ERR_NOCHANMODES"
+  (rcirc-print process sender "477" (cadr args) (caddr args)))
+
+(defun rcirc-handler-MODE (process sender args text)
+  (let ((target (car args))
+        (msg (mapconcat 'identity (cdr args) " ")))
+    (rcirc-print process sender "MODE"
+                 (if (string= target (rcirc-nick process))
+                     nil
+                   target)
+                 msg)
+
+    ;; print in private chat buffers if they exist
+    (mapc (lambda (nick)
+            (when (not (eq (process-buffer rcirc-process)
+                           (rcirc-get-buffer rcirc-process nick)))
+              (rcirc-print process sender "MODE" nick msg)))
+          (cddr args))))
+
+(defun rcirc-get-temp-buffer-create (process channel)
+  "Return a buffer based on PROCESS and CHANNEL."
+  (let ((tmpnam (concat " " (downcase channel) "TMP" (process-name process))))
+    (get-buffer-create tmpnam)))
+
+(defun rcirc-handler-353 (process sender args text)
+  "RPL_NAMREPLY"
+  (let ((channel (downcase (caddr args))))
+    (mapc (lambda (nick)
+            (rcirc-put-nick-channel process nick channel))
+          (delete "" (split-string (cadddr args) " ")))
+    (with-current-buffer (rcirc-get-temp-buffer-create process channel)
+      (goto-char (point-max))
+      (insert (car (last args)) " "))))
+
+(defun rcirc-handler-366 (process sender args text)
+  "RPL_ENDOFNAMES"
+  (let* ((channel (cadr args))
+         (buffer (rcirc-get-temp-buffer-create process channel)))
+    (with-current-buffer buffer
+      (rcirc-print process sender "NAMES" channel
+                   (buffer-substring (point-min) (point-max))))
+    (kill-buffer buffer)))
+
+(defun rcirc-handler-433 (process sender args text)
+  "ERR_NICKNAMEINUSE"
+  (rcirc-handler-generic process "433" sender args text)
+  (let* ((new-nick (concat (cadr args) "`")))
+    (with-current-buffer (process-buffer process)
+      (rcirc-cmd-nick new-nick nil process))))
+
+(defun rcirc-authenticate ()
+  "Send authentication to process associated with current buffer.
+Passwords are read from `rcirc-authinfo-file-name' (which see)."
+  (interactive)
+  (let ((password-alist
+         (with-temp-buffer
+           (insert-file-contents-literally rcirc-authinfo-file-name)
+           (goto-char (point-min))
+           (read (current-buffer)))))
+    (with-current-buffer (process-buffer rcirc-process)
+      (dolist (i password-alist)
+        (let ((server (car i))
+              (nick (cadr i))
+              (method (caddr i))
+              (args (cdddr i)))
+          (when (and (string-match server rcirc-server)
+                     (string-match nick rcirc-nick))
+            (cond ((equal method 'nickserv)
+                   (rcirc-send-string
+                    rcirc-process
+                    (concat
+                     "PRIVMSG nickserv :identify " 
+		     (car args))))
+                  ((equal method 'chanserv)
+                   (rcirc-send-string
+                    rcirc-process
+                    (concat
+                     "PRIVMSG chanserv :identify " 
+		     (car args) " " (cadr args))))
+                  ((equal method 'bitlbee)
+                   (rcirc-send-string
+                    rcirc-process
+                    (concat "PRIVMSG #bitlbee :identify " (car args))))
+                  (t
+                   (message "No %S authentication method defined" 
+			    method)))))))))
+ 
+(defun rcirc-handler-INVITE (process sender args text)
+  (rcirc-print process sender "INVITE" nil (mapconcat 'identity args " ") t))
+
+(defun rcirc-handler-ERROR (process sender args text)
+  (rcirc-print process sender "ERROR" nil (mapconcat 'identity args " ")))
+
+(defun rcirc-handler-CTCP (process target sender text)
+  (if (string-match "^\\([^ ]+\\) *\\(.*\\)$" text)
+      (let* ((request (upcase (match-string 1 text)))
+             (args (match-string 2 text))
+             (nick (rcirc-user-nick sender))
+             (handler (intern-soft (concat "rcirc-handler-ctcp-" request))))
+        (if (not (fboundp handler))
+            (rcirc-print process sender "ERROR" target 
+                         (format "unhandled ctcp: %s" text))
+          (funcall handler process target sender args)
+          (if (not (string= request "ACTION"))
+              (rcirc-print process sender "CTCP" target
+			   (format "%s" text)))))))
+
+(defun rcirc-handler-ctcp-VERSION (process target sender args)
+  (rcirc-send-string process
+                     (concat "NOTICE " (rcirc-user-nick sender)
+                             " :\C-aVERSION " (rcirc-version)
+                             " - http://www.nongnu.org/rcirc"
+                             "\C-a")))
+
+(defun rcirc-handler-ctcp-ACTION (process target sender args)
+  (rcirc-print process sender "ACTION" target args t))
+
+(defun rcirc-handler-ctcp-TIME (process target sender args)
+  (rcirc-send-string process
+                     (concat "NOTICE " (rcirc-user-nick sender)
+                             " :\C-aTIME " (current-time-string) "\C-a")))
+
+(defface rcirc-my-nick-face
+  '((((type tty) (class color)) (:foreground "blue" :weight bold))
+    (((class color) (background light)) (:foreground "Blue"))
+    (((class color) (background dark)) (:foreground "LightSkyBlue"))
+    (t (:inverse-video t :bold t)))
+  "The rcirc face used to highlight my messages."
+  :group 'rcirc)
+
+(defface rcirc-other-nick-face
+  '((((type tty) (class color)) (:foreground "yellow" :weight light))
+    (((class grayscale) (background light))
+     (:foreground "Gray90" :bold t :italic t))
+    (((class grayscale) (background dark))
+     (:foreground "DimGray" :bold t :italic t))
+    (((class color) (background light)) (:foreground "DarkGoldenrod"))
+    (((class color) (background dark)) (:foreground "LightGoldenrod"))
+    (t (:bold t :italic t)))
+  "The rcirc face used to highlight other messages."
+  :group 'rcirc)
+
+(defface rcirc-server-face
+  '((((type tty pc) (class color) (background light)) (:foreground "red"))
+    (((type tty pc) (class color) (background dark)) (:foreground "red1"))
+    (((class grayscale) (background light))
+     (:foreground "DimGray" :bold t :italic t))
+    (((class grayscale) (background dark))
+     (:foreground "LightGray" :bold t :italic t))
+    (((class color) (background light)) (:foreground "gray40"))
+    (((class color) (background dark)) (:foreground "chocolate1"))
+    (t (:bold t :italic t)))
+  "The rcirc face used to highlight server messages."
+  :group 'rcirc)
+
+(defface rcirc-nick-in-message-face
+  '((((type tty) (class color)) (:foreground "cyan" :weight bold))
+    (((class grayscale) (background light)) (:foreground "LightGray" :bold t))
+    (((class grayscale) (background dark)) (:foreground "DimGray" :bold t))
+    (((class color) (background light)) (:foreground "Purple"))
+    (((class color) (background dark)) (:foreground "Cyan"))
+    (t (:bold t)))
+  "The rcirc face used to highlight instances of nick within messages."
+  :group 'rcirc)
+
+(defface rcirc-prompt-face
+  '((((background dark)) (:foreground "cyan"))
+    (t (:foreground "dark blue")))
+  "The rcirc face to use to highlight prompts."
+  :group 'rcirc)
+
+(defface rcirc-mode-line-nick-face
+  '((t (:bold t)))
+  "The rcirc face used indicate activity directed at you."
+  :group 'rcirc)
+
+;; When using M-x flyspell-mode, only check words past the input marker
+(put 'rcirc-mode 'flyspell-mode-predicate 'rcirc-looking-at-input)
+(defun rcirc-looking-at-input ()
+  "Returns true if point is past the input marker."
+  (>= (point) rcirc-prompt-end-marker))
+
+
+(provide 'rcirc)
+
+;; arch-tag: b471b7e8-6b5a-4399-b2c6-a3c78dfc8ffb
+;;; rcirc.el ends here
--- a/lisp/net/tramp.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/net/tramp.el	Mon Jan 16 06:59:21 2006 +0000
@@ -4384,6 +4384,7 @@
 (defun tramp-completion-mode (file)
   "Checks whether method / user name / host name completion is active."
   (cond
+   (tramp-completion-mode t)
    ((not tramp-unified-filenames) t)
    ((string-match "^/.*:.*:$" file) nil)
    ((string-match
@@ -4434,70 +4435,83 @@
   (substring
    file (length (tramp-completion-handle-file-name-directory file))))
 
+(defvar tramp-completion-mode nil
+  "If non-nil, we are in file name completion mode.")
+
 ;; Method, host name and user name completion.
 ;; `tramp-completion-dissect-file-name' returns a list of
 ;; tramp-file-name structures. For all of them we return possible completions.
 (defun tramp-completion-handle-file-name-all-completions (filename directory)
   "Like `file-name-all-completions' for partial tramp files."
 
-  (let*
-      ((fullname (concat directory filename))
-       ;; local files
-       (result
-	(if (tramp-completion-mode fullname)
-	    (tramp-run-real-handler
-	     'file-name-all-completions (list filename directory))
-	  (tramp-completion-run-real-handler
-	   'file-name-all-completions (list filename directory))))
-       ;; possible completion structures
-       (v (tramp-completion-dissect-file-name fullname)))
-
-    (while v
-      (let* ((car (car v))
-	     (multi-method (tramp-file-name-multi-method car))
-	     (method (tramp-file-name-method car))
-	     (user (tramp-file-name-user car))
-	     (host (tramp-file-name-host car))
-	     (localname (tramp-file-name-localname car))
-	     (m (tramp-find-method multi-method method user host))
-	     (tramp-current-user user) ; see `tramp-parse-passwd'
-	     all-user-hosts)
-
-	(unless (or multi-method ;; Not handled (yet).
-		    localname)        ;; Nothing to complete
-
-	  (if (or user host)
-
-	    ;; Method dependent user / host combinations
-	    (progn
-	      (mapcar
-	       (lambda (x)
-		 (setq all-user-hosts
-		       (append all-user-hosts
-			       (funcall (nth 0 x) (nth 1 x)))))
-	       (tramp-get-completion-function m))
-
-	      (setq result (append result
-	        (mapcar
-		 (lambda (x)
-		   (tramp-get-completion-user-host
-		    method user host (nth 0 x) (nth 1 x)))
-		 (delq nil all-user-hosts)))))
-
-	    ;; Possible methods
-	    (setq result
-		  (append result (tramp-get-completion-methods m)))))
-
-      (setq v (delq car v))))
-
-    ;;; unify list, remove nil elements
-    (let (result1)
-      (while result
-	(let ((car (car result)))
-	  (when car (add-to-list 'result1 car))
-	  (setq result (delq car result))))
-
-      result1)))
+  (unwind-protect
+      ;; We need to reset `tramp-completion-mode'.
+      (progn
+	(setq tramp-completion-mode t)
+	(let*
+	    ((fullname (concat directory filename))
+	     ;; possible completion structures
+	     (v (tramp-completion-dissect-file-name fullname))
+	     result result1)
+
+	  (while v
+	    (let* ((car (car v))
+		   (multi-method (tramp-file-name-multi-method car))
+		   (method (tramp-file-name-method car))
+		   (user (tramp-file-name-user car))
+		   (host (tramp-file-name-host car))
+		   (localname (tramp-file-name-localname car))
+		   (m (tramp-find-method multi-method method user host))
+		   (tramp-current-user user) ; see `tramp-parse-passwd'
+		   all-user-hosts)
+
+	      (unless (or multi-method ;; Not handled (yet).
+			  localname)   ;; Nothing to complete
+
+		(if (or user host)
+
+		    ;; Method dependent user / host combinations
+		    (progn
+		      (mapcar
+		       (lambda (x)
+			 (setq all-user-hosts
+			       (append all-user-hosts
+				       (funcall (nth 0 x) (nth 1 x)))))
+		       (tramp-get-completion-function m))
+
+		      (setq result (append result
+	                (mapcar
+			 (lambda (x)
+			   (tramp-get-completion-user-host
+			    method user host (nth 0 x) (nth 1 x)))
+			 (delq nil all-user-hosts)))))
+
+		  ;; Possible methods
+		  (setq result
+			(append result (tramp-get-completion-methods m)))))
+
+	      (setq v (cdr v))))
+
+	  ;; unify list, remove nil elements
+	  (while result
+	    (let ((car (car result)))
+	      (when car (add-to-list 'result1 car))
+	      (setq result (cdr result))))
+
+	  ;; Complete local parts
+	  (append
+	   result1
+	   (condition-case nil
+	       (if result1
+		   ;; "/ssh:" does not need to be expanded as hostname.
+		   (tramp-run-real-handler
+		    'file-name-all-completions (list filename directory))
+		 ;; No method/user/host found to be expanded.
+		 (tramp-completion-run-real-handler
+		  'file-name-all-completions (list filename directory)))
+	     (error nil)))))
+    ;; unwindform
+    (setq tramp-completion-mode nil)))
 
 ;; Method, host name and user name completion for a file.
 (defun tramp-completion-handle-file-name-completion (filename directory)
--- a/lisp/pcvs.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/pcvs.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1482,11 +1482,16 @@
 	 (point))))))
 
 (defvar cvs-edit-log-revision)
-(defun cvs-mode-edit-log (rev &optional text)
+(defvar cvs-edit-log-files) (put 'cvs-edit-log-files 'permanent-local t)
+(defun cvs-mode-edit-log (file rev &optional text)
   "Edit the log message at point.
 This is best called from a `log-view-mode' buffer."
   (interactive
    (list
+    (or (cvs-mode! (lambda ()
+                     (car (cvs-mode-files nil nil
+                                          :read-only t :file t :noquery t))))
+        (read-string "File name: "))
     (or (cvs-mode! (lambda () (cvs-prefix-get 'cvs-branch-prefix)))
 	(read-string "Revision to edit: "))
     (cvs-edit-log-text-at-point)))
@@ -1498,26 +1503,38 @@
   (let ((buf (cvs-temp-buffer "message" 'normal 'nosetup))
 	(setupfun (or (nth 2 (cdr (assoc "message" cvs-buffer-name-alist)))
 		      'log-edit)))
+    (with-current-buffer buf
+      ;; Set the filename before, so log-edit can correctly setup its
+      ;; log-edit-initial-files variable.
+      (set (make-local-variable 'cvs-edit-log-files) (list file)))
     (funcall setupfun 'cvs-do-edit-log nil 'cvs-edit-log-filelist buf)
     (when text (erase-buffer) (insert text))
     (set (make-local-variable 'cvs-edit-log-revision) rev)
-    (set (make-local-variable 'cvs-minor-wrap-function) 'cvs-edit-log-minor-wrap)
+    (set (make-local-variable 'cvs-minor-wrap-function)
+         'cvs-edit-log-minor-wrap)
     ;; (run-hooks 'cvs-mode-commit-hook)
     ))
 
 (defun cvs-edit-log-minor-wrap (buf f)
-  (let ((cvs-ignore-marks-modif (cvs-mode-mark-get-modif "commit")))
+  (let ((cvs-branch-prefix (with-current-buffer buf cvs-edit-log-revision))
+        (cvs-minor-current-files
+         (with-current-buffer buf cvs-edit-log-files))
+        ;; FIXME:  I need to force because the fileinfos are UNKNOWN
+        (cvs-force-command "/F"))
     (funcall f)))
 
 (defun cvs-edit-log-filelist ()
-  (cvs-mode-files nil nil :read-only t :file t :noquery t))
+  (if cvs-minor-wrap-function
+      (cvs-mode-files nil nil :read-only t :file t :noquery t)
+    cvs-edit-log-files))
 
 (defun cvs-do-edit-log (rev)
   "Do the actual commit, using the current buffer as the log message."
   (interactive (list cvs-edit-log-revision))
   (let ((msg (buffer-substring-no-properties (point-min) (point-max))))
-    (cvs-mode!)
-    (cvs-mode-do "admin" (list (concat "-m" rev ":" msg)) nil)))
+    (cvs-mode!
+     (lambda ()
+       (cvs-mode-do "admin" (list (concat "-m" rev ":" msg)) nil)))))
 
 
 ;;;;
--- a/lisp/progmodes/compile.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/progmodes/compile.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1678,37 +1678,20 @@
   "Jump to an error corresponding to MSG at MK.
 All arguments are markers.  If END-MK is non-nil, mark is set there
 and overlay is highlighted between MK and END-MK."
-  (if (eq (window-buffer (selected-window))
-	  (marker-buffer msg))
-      ;; If the compilation buffer window is selected,
-      ;; keep the compilation buffer in this window;
-      ;; display the source in another window.
-      (let ((pop-up-windows t))
-	(pop-to-buffer (marker-buffer mk)))
-    (if (window-dedicated-p (selected-window))
-	(pop-to-buffer (marker-buffer mk))
-      (switch-to-buffer (marker-buffer mk))))
-  ;; If narrowing gets in the way of going to the right place, widen.
-  (unless (eq (goto-char mk) (point))
-    (widen)
-    (goto-char mk))
-  (if end-mk
-      (push-mark end-mk t)
-    (if mark-active (setq mark-active)))
-  ;; If hideshow got in the way of
-  ;; seeing the right place, open permanently.
-  (dolist (ov (overlays-at (point)))
-    (when (eq 'hs (overlay-get ov 'invisible))
-      (delete-overlay ov)
-      (goto-char mk)))
-
   ;; Show compilation buffer in other window, scrolled to this error.
-  (let* ((pop-up-windows t)
-	 ;; Use an existing window if it is in a visible frame.
+  (let* ((from-compilation-buffer (eq (window-buffer (selected-window))
+                                      (marker-buffer msg)))
+         ;; Use an existing window if it is in a visible frame.
          (pre-existing (get-buffer-window (marker-buffer msg) 0))
-         (w (let ((display-buffer-reuse-frames t))
-              ;; Pop up a window.
-              (display-buffer (marker-buffer msg))))
+         (w (if (and from-compilation-buffer pre-existing)
+                ;; Calling display-buffer here may end up (partly) hiding
+                ;; the error location if the two buffers are in two
+                ;; different frames.  So don't do it if it's not necessary.
+                pre-existing
+              (let ((display-buffer-reuse-frames t)
+                    (pop-up-windows t))
+	        ;; Pop up a window.
+                (display-buffer (marker-buffer msg)))))
 	 (highlight-regexp (with-current-buffer (marker-buffer msg)
 			     ;; also do this while we change buffer
 			     (compilation-set-window w msg)
@@ -1718,6 +1701,29 @@
     ;; creating a new window.
     (unless pre-existing (compilation-set-window-height w))
 
+    (if from-compilation-buffer
+        ;; If the compilation buffer window was selected,
+        ;; keep the compilation buffer in this window;
+        ;; display the source in another window.
+        (let ((pop-up-windows t))
+          (pop-to-buffer (marker-buffer mk) 'other-window))
+      (if (window-dedicated-p (selected-window))
+          (pop-to-buffer (marker-buffer mk))
+        (switch-to-buffer (marker-buffer mk))))
+    ;; If narrowing gets in the way of going to the right place, widen.
+    (unless (eq (goto-char mk) (point))
+      (widen)
+      (goto-char mk))
+    (if end-mk
+        (push-mark end-mk t)
+      (if mark-active (setq mark-active)))
+    ;; If hideshow got in the way of
+    ;; seeing the right place, open permanently.
+    (dolist (ov (overlays-at (point)))
+      (when (eq 'hs (overlay-get ov 'invisible))
+        (delete-overlay ov)
+        (goto-char mk)))
+
     (when highlight-regexp
       (if (timerp next-error-highlight-timer)
 	  (cancel-timer next-error-highlight-timer))
--- a/lisp/progmodes/etags.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/progmodes/etags.el	Mon Jan 16 06:59:21 2006 +0000
@@ -274,6 +274,14 @@
   (run-hook-with-args-until-success 'tags-table-format-functions))
 
 ;;;###autoload
+(defun tags-table-mode ()
+  "Major mode for tags table file buffers."
+  (interactive)
+  (setq major-mode 'tags-table-mode)
+  (setq mode-name "Tags Table")
+  (initialize-new-tags-table))
+
+;;;###autoload
 (defun visit-tags-table (file &optional local)
   "Tell tags commands to use tags table file FILE.
 FILE should be the name of a file created with the `etags' program.
@@ -415,7 +423,7 @@
       ;; having changed since we last used it.
       (let (win)
 	(set-buffer (get-file-buffer file))
-	(setq win (or verify-tags-table-function (initialize-new-tags-table)))
+	(setq win (or verify-tags-table-function (tags-table-mode)))
 	(if (or (verify-visited-file-modtime (current-buffer))
 		;; Decide whether to revert the file.
 		;; revert-without-query can say to revert
@@ -434,7 +442,7 @@
 	    (and verify-tags-table-function
 		 (funcall verify-tags-table-function))
 	  (revert-buffer t t)
-	  (initialize-new-tags-table)))
+	  (tags-table-mode)))
     (and (file-exists-p file)
 	 (progn
 	   (set-buffer (find-file-noselect file))
@@ -446,7 +454,7 @@
 		     (setcar tail buffer-file-name))
 		 (if (eq file tags-file-name)
 		     (setq tags-file-name buffer-file-name))))
-	   (initialize-new-tags-table)))))
+	   (tags-table-mode)))))
 
 ;; Subroutine of visit-tags-table-buffer.  Search the current tags tables
 ;; for one that has tags for THIS-FILE (or that includes a table that
@@ -2015,7 +2023,8 @@
 	   (message "Making completion list...")
 	   (with-output-to-temp-buffer "*Completions*"
 	     (display-completion-list
-	      (all-completions pattern 'tags-complete-tag nil)))
+	      (all-completions pattern 'tags-complete-tag nil)
+	      pattern))
 	   (message "Making completion list...%s" "done")))))
 
 (dolist (x '("^No tags table in use; use .* to select one$"
--- a/lisp/progmodes/gdb-ui.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/progmodes/gdb-ui.el	Mon Jan 16 06:59:21 2006 +0000
@@ -437,6 +437,9 @@
 			 nil nil)))
 	  (push var gdb-var-list)
 	  (speedbar 1)
+	  (unless (string-equal
+		   speedbar-initial-expansion-list-name "GUD")
+	    (speedbar-change-initial-expansion-list "GUD"))
 	  (if (equal (nth 2 var) "0")
 	      (gdb-enqueue-input
 	       (list
@@ -600,7 +603,9 @@
 	 (dolist (var gdb-var-list)
 	   (if (string-match (concat token "\\.") (nth 1 var))
 	       (setq gdb-var-list (delq var gdb-var-list))))
-	 (setq gdb-var-changed t))))
+	 (setq gdb-var-changed t)
+	 (with-current-buffer gud-comint-buffer
+	   (speedbar-timer-fn)))))
 
 (defun gdb-get-target-string ()
   (with-current-buffer gud-comint-buffer
--- a/lisp/progmodes/gud.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/progmodes/gud.el	Mon Jan 16 06:59:21 2006 +0000
@@ -5,7 +5,7 @@
 ;; Keywords: unix, tools
 
 ;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001, 2002, 2003,
-;; 2004, 2005 Free Software Foundation, Inc.
+;;  2004, 2005 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
@@ -139,13 +139,13 @@
     ([remove]	menu-item "Remove Breakpoint" gud-remove
                   :enable (not gud-running)
 		  :visible (not (and (memq gud-minor-mode '(gdbmi gdba))
-				     (window-fringes))))
+				     (> (car (window-fringes)) 0))))
     ([tbreak]	menu-item "Temporary Breakpoint" gud-tbreak
 		  :enable (memq gud-minor-mode '(gdbmi gdba gdb sdb xdb bashdb)))
     ([break]	menu-item "Set Breakpoint" gud-break
                   :enable (not gud-running)
 		  :visible (not (and (memq gud-minor-mode '(gdbmi gdba))
-				     (window-fringes))))
+				     (> (car (window-fringes)) 0))))
     ([up]	menu-item "Up Stack" gud-up
 		  :enable (and (not gud-running)
 			       (memq gud-minor-mode
@@ -197,24 +197,24 @@
 (defvar gud-tool-bar-map
   (if (display-graphic-p)
       (let ((map (make-sparse-keymap)))
-	(dolist (x '((gud-break . "gud-break")
-		     (gud-remove . "gud-remove")
-		     (gud-print . "gud-print")
-		     (gud-pstar . "gud-pstar")
-		     (gud-watch . "gud-watch")
-		     (gud-cont . "gud-cont")
-		     (gud-until . "gud-until")
-		     (gud-finish . "gud-finish")
-		     (gud-run . "gud-run")
+	(dolist (x '((gud-break . "gud/break")
+		     (gud-remove . "gud/remove")
+		     (gud-print . "gud/print")
+		     (gud-pstar . "gud/pstar")
+		     (gud-watch . "gud/watch")
+		     (gud-cont . "gud/cont")
+		     (gud-until . "gud/until")
+		     (gud-finish . "gud/finish")
+		     (gud-run . "gud/run")
 		     ;; gud-s, gud-si etc. instead of gud-step,
 		     ;; gud-stepi, to avoid file-name clashes on DOS
 		     ;; 8+3 filesystems.
-		     (gud-next . "gud-n")
-		     (gud-step . "gud-s")
-		     (gud-nexti . "gud-ni")
-		     (gud-stepi . "gud-si")
-		     (gud-up . "gud-up")
-		     (gud-down . "gud-down")
+		     (gud-next . "gud/next")
+		     (gud-step . "gud/step")
+		     (gud-nexti . "gud/nexti")
+		     (gud-stepi . "gud/stepi")
+		     (gud-up . "gud/up")
+		     (gud-down . "gud/down")
 		     (gud-goto-info . "info"))
 		   map)
 	  (tool-bar-local-item-from-menu
@@ -2575,7 +2575,8 @@
 	 ;; Stop displaying an arrow in a source file.
 	 (setq gud-overlay-arrow-position nil)
 	 (set-process-buffer proc nil)
-	 (if (featurep 'speedbar)
+	 (if (and (boundp 'speedbar-frame)
+		  (string-equal speedbar-initial-expansion-list-name "GUD"))
 	     (speedbar-change-initial-expansion-list
 	      speedbar-previously-used-expansion-list-name))
 	 (if (memq gud-minor-mode-type '(gdbmi gdba))
--- a/lisp/progmodes/make-mode.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/progmodes/make-mode.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1176,7 +1176,7 @@
 	(message "Making completion list...")
 	(let ((list (all-completions try table)))
 	  (with-output-to-temp-buffer "*Completions*"
-	    (display-completion-list list)))
+	    (display-completion-list list try)))
 	(message "Making completion list...done"))))))
 
 
--- a/lisp/progmodes/meta-mode.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/progmodes/meta-mode.el	Mon Jan 16 06:59:21 2006 +0000
@@ -509,7 +509,7 @@
                  (message "Making completion list...")
                  (let ((list (all-completions symbol list nil)))
                    (with-output-to-temp-buffer "*Completions*"
-                     (display-completion-list list)))
+                     (display-completion-list list symbol)))
                  (message "Making completion list... done"))))
       (funcall (nth 1 entry)))))
 
--- a/lisp/progmodes/octave-mod.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/progmodes/octave-mod.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1252,7 +1252,7 @@
 	     ;; Taken from comint.el
 	     (message "Making completion list...")
 	     (with-output-to-temp-buffer "*Completions*"
-	       (display-completion-list list))
+	       (display-completion-list list string))
 	     (message "Hit space to flush")
 	     (let (key first)
 	       (if (save-excursion
--- a/lisp/progmodes/pascal.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/progmodes/pascal.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1378,7 +1378,7 @@
 	    ((and (not (null (cdr allcomp))) (= (length pascal-str)
 						(length match)))
 	     (with-output-to-temp-buffer "*Completions*"
-	       (display-completion-list allcomp))
+	       (display-completion-list allcomp pascal-str))
 	     ;; Wait for a keypress. Then delete *Completion*  window
 	     (momentary-string-display "" (point))
 	     (delete-window (get-buffer-window (get-buffer "*Completions*")))
@@ -1398,7 +1398,7 @@
 		    (all-completions pascal-str 'pascal-completion))))
     ;; Show possible completions in a temporary buffer.
     (with-output-to-temp-buffer "*Completions*"
-      (display-completion-list allcomp))
+      (display-completion-list allcomp pascal-str))
     ;; Wait for a keypress. Then delete *Completion*  window
     (momentary-string-display "" (point))
     (delete-window (get-buffer-window (get-buffer "*Completions*")))))
--- a/lisp/progmodes/python.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/progmodes/python.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1652,7 +1652,7 @@
 		(t
 		 (message "Making completion list...")
 		 (with-output-to-temp-buffer "*Completions*"
-		   (display-completion-list completions))
+		   (display-completion-list completions symbol))
 		 (message "Making completion list...%s" "done"))))))))
 
 (eval-when-compile (require 'hippie-exp))
--- a/lisp/progmodes/sh-script.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/progmodes/sh-script.el	Mon Jan 16 06:59:21 2006 +0000
@@ -869,7 +869,15 @@
 (defconst sh-st-symbol (string-to-syntax "_"))
 (defconst sh-here-doc-syntax (string-to-syntax "|")) ;; generic string
 
-(defconst sh-here-doc-open-re "<<-?\\s-*\\\\?\\(\\(?:['\"][^'\"]+['\"]\\|\\sw\\)+\\).*\\(\n\\)")
+(defconst sh-escaped-line-re
+  ;; Should match until the real end-of-continued line, but if that is not
+  ;; possible (because we bump into EOB or the search bound), then we should
+  ;; match until the search bound.
+  "\\(?:\\(?:.*[^\\\n]\\)?\\(?:\\\\\\\\\\)*\\\\\n\\)*.*")
+
+(defconst sh-here-doc-open-re
+  (concat "<<-?\\s-*\\\\?\\(\\(?:['\"][^'\"]+['\"]\\|\\sw\\)+\\)"
+          sh-escaped-line-re "\\(\n\\)"))
 
 (defvar sh-here-doc-markers nil)
 (make-variable-buffer-local 'sh-here-doc-markers)
@@ -883,7 +891,9 @@
          ;; A rough regexp that should find the opening <<EOF back.
 	 (sre (concat "<<\\(-?\\)\\s-*['\"\\]?"
 		      ;; Use \s| to cheaply check it's an open-heredoc.
-		      eof-re "['\"]?\\([ \t|;&)<>].*\\)?\\s|"))
+		      eof-re "['\"]?\\([ \t|;&)<>]"
+                      sh-escaped-line-re
+                      "\\)?\\s|"))
 	 ;; A regexp that will find other EOFs.
 	 (ere (concat "^" (if indented "[ \t]*") eof-re "\n"))
 	 (start (save-excursion
@@ -922,7 +932,8 @@
 START is the position of <<.
 STRING is the actual word used as delimiter (f.ex. \"EOF\").
 INDENTED is non-nil if the here document's content (and the EOF mark) can
-be indented (i.e. a <<- was used rather than just <<)."
+be indented (i.e. a <<- was used rather than just <<).
+Point is at the beginning of the next line."
   (unless (or (memq (char-before start) '(?< ?>))
 	      (sh-in-comment-or-string start))
     ;; We're looking at <<STRING, so we add "^STRING$" to the syntactic
@@ -933,6 +944,20 @@
 	(setq sh-here-doc-re
 	      (concat sh-here-doc-open-re "\\|^\\([ \t]*\\)"
 		      (regexp-opt sh-here-doc-markers t) "\\(\n\\)"))))
+    (let ((ppss (save-excursion (syntax-ppss (1- (point))))))
+      (if (nth 4 ppss)
+          ;; The \n not only starts the heredoc but also closes a comment.
+          ;; Let's close the comment just before the \n.
+          (put-text-property (1- (point)) (point) 'syntax-table '(12))) ;">"
+      (if (or (nth 5 ppss) (> (count-lines start (point)) 1))
+          ;; If the sh-escaped-line-re part of sh-here-doc-re has matched
+          ;; several lines, make sure we refontify them together.
+          ;; Furthermore, if (nth 5 ppss) is non-nil (i.e. the \n is
+          ;; escaped), it means the right \n is actually further down.
+          ;; Don't bother fixing it now, but place a multiline property so
+          ;; that when jit-lock-context-* refontifies the rest of the
+          ;; buffer, it also refontifies the current line with it.
+          (put-text-property start (point) 'font-lock-multiline t)))
     sh-here-doc-syntax))
 
 (defun sh-font-lock-here-doc (limit)
@@ -972,6 +997,8 @@
   ;; The list of special chars is taken from the single-unix spec
   ;; of the shell command language (under `quoting') but with `$' removed.
   `(("[^|&;<>()`\\\"' \t\n]\\(#+\\)" 1 ,sh-st-symbol)
+    ;; Make sure $@ and @? are correctly recognized as sexps.
+    ("\\$\\([?@]\\)" 1 ,sh-st-symbol)
     ;; Find HEREDOC starters and add a corresponding rule for the ender.
     (sh-font-lock-here-doc
      (2 (sh-font-lock-open-heredoc
--- a/lisp/replace.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/replace.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1157,7 +1157,8 @@
 			    (insert "-------\n"))
 			  (add-text-properties
 			   beg end
-			   `(occur-target ,marker help-echo "mouse-2: go to this occurrence")))))
+			   `(occur-target ,marker follow-link t
+					  help-echo "mouse-2: go to this occurrence")))))
 		    (goto-char endpt))
 		  (if endpt
 		      (progn
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/savehist.el	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,275 @@
+;;; savehist.el --- Save minibuffer history.
+
+;; Copyright (C) 1997, 2005 Free Software Foundation
+
+;; Author: Hrvoje Niksic <hniksic@xemacs.org>
+;; Keywords: minibuffer
+;; Version: 7
+
+;; 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., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+
+;; Many editors (e.g. Vim) have the feature of saving minibuffer
+;; history to an external file after exit.  This package provides the
+;; same feature in Emacs.  When Emacs is about the exit,
+;; `savehist-save' will dump the contents of various minibuffer
+;; histories (as determined by `savehist-history-variables') to a save
+;; file (`~/.emacs-history' by default).  Although the package was
+;; designed for saving the minibuffer histories, any variables can be
+;; saved that way.
+
+;; To use savehist, put the following to `~/.emacs':
+;;
+;; (require 'savehist)
+;; (savehist-load)
+
+;; Be sure to have `savehist.el' in a directory that is in your
+;; load-path, and byte-compile it.
+
+;;; Code:
+
+(require 'custom)
+
+;; User variables
+
+(defgroup savehist nil
+  "Save minibuffer history."
+  :group 'minibuffer)
+
+(defcustom savehist-history-variables
+  '(
+    ;; Catch-all minibuffer history
+    minibuffer-history
+    ;; File-oriented commands
+    file-name-history
+    ;; Regexp-related reads
+    regexp-history
+    ;; Searches in minibuffer (via `M-r' and such)
+    minibuffer-history-search-history
+    ;; Query replace
+    query-replace-history
+    ;; eval-expression (`M-:')
+    read-expression-history
+    ;; shell-command (`M-!')
+    shell-command-history
+    ;; compile
+    compile-history
+    ;; find-tag (`M-.')
+    find-tag-history
+    ;; grep
+    grep-history
+    ;; Viper stuff
+    vip-ex-history vip-search-history
+    vip-replace1-history vip-replace2-history
+    vip-shell-history vip-search-history
+
+    ;; XEmacs-specific:
+    ;; Buffer-related commands
+    buffer-history
+    ;; Reads of variables and functions
+    variable-history function-history
+    ;; Extended commands
+    read-command-history
+
+    ;; Info, lookup, and bookmark historys
+    Info-minibuffer-history
+    Info-search-history
+    Manual-page-minibuffer-history
+
+    ;; Emacs-specific:
+    ;; Extended commands
+    extended-command-history)
+  "*List of symbols to be saved.
+Every symbol should refer to a variable.  The variable will be saved
+only if it is bound and has a non-nil value.  Thus it is safe to
+specify a superset of the variables a user is expected to want to
+save.
+
+Default value contains minibuffer history variables used by Emacs, XEmacs,
+and Viper (uh-oh).  Note that, if you customize this variable, you
+can lose the benefit of future versions of Emacs adding new values to
+the list.  Because of that it might be more useful to add values using
+`add-to-list'."
+  :type '(repeat (symbol :tag "Variable"))
+  :group 'savehist)
+
+(defcustom savehist-file "~/.emacs-history"
+  "*File name to save minibuffer history to.
+The minibuffer history is a series of Lisp expressions, which should be
+loaded using `savehist-load' from your .emacs.  See `savehist-load' for
+more details."
+  :type 'file
+  :group 'savehist)
+
+(defcustom savehist-length 100
+  "*Maximum length of a minibuffer list.
+If set to nil, the length is unlimited."
+  :type '(choice integer
+		 (const :tag "Unlimited" nil))
+  :group 'savehist)
+
+(defcustom savehist-modes #o600
+  "*Default permissions of the history file.
+This is decimal, not octal.  The default is 384 (0600 in octal).
+Set to nil to use the default permissions that Emacs uses, typically
+mandated by umask.  The default is a bit more restrictive to protect
+the user's privacy."
+  :type 'integer
+  :group 'savehist)
+
+(defcustom savehist-autosave-interval (* 5 60)
+  "*The interval during which savehist should autosave the history buffer."
+  :type 'integer
+  :group 'savehist)
+
+(defvar savehist-coding-system
+  ;; UTF-8 is usually preferable to ISO-2022-8 when available, but under
+  ;; XEmacs, UTF-8 is provided by external packages, and may not always be
+  ;; available, so even if it currently is available, we prefer not to
+  ;; use is.
+  (if (featurep 'xemacs) 'iso-2022-8 'utf-8)
+  "The coding system savehist uses for saving the minibuffer history.
+Changing this value while Emacs is running is supported, but considered
+unwise, unless you know what you are doing.")
+
+;; Internal variables.
+
+(defvar savehist-timer nil)
+
+(defvar savehist-last-checksum nil)
+
+(defconst savehist-no-conversion (if (featurep 'xemacs) 'binary 'no-conversion)
+  ;; FIXME: Why not use savehist-coding-system?
+  "Coding system without conversion, only used for calculating checksums.")
+
+;; Functions
+
+;;;###autoload
+(defun savehist-load (&optional no-hook)
+  "Load the minibuffer histories from `savehist-file'.
+Unless NO-HOOK is specified, the function will also add the save function
+to `kill-emacs-hook' and on a timer, ensuring that the minibuffer contents
+will be saved before leaving Emacs.
+
+This function should be normally used from your Emacs init file.  Since it
+removes your current minibuffer histories, it is unwise to call it at any
+other time."
+  (interactive "P")
+  (unless no-hook
+    (add-hook 'kill-emacs-hook 'savehist-autosave)
+    ;; Install an invocation of savehist-autosave on a timer.  This
+    ;; should not cause a noticeable delay -- savehist-autosave
+    ;; executes in under 5 ms on my system.
+    (unless savehist-timer
+      (setq savehist-timer
+	    (if (featurep 'xemacs)
+		(start-itimer
+		 "savehist" 'savehist-autosave savehist-autosave-interval
+		 savehist-autosave-interval)
+	      (run-with-idle-timer savehist-autosave-interval savehist-autosave-interval
+                                   'savehist-autosave)))))
+  ;; Don't set coding-system-for-read here.  We rely on autodetection
+  ;; and the coding cookie to convey that information.  That way, if
+  ;; the user changes the value of savehist-coding-system, we can
+  ;; still correctly load the old file.
+  (load savehist-file t (not (interactive-p))))
+
+;;;###autoload
+(defun savehist-save (&optional auto-save)
+  "Save the histories from `savehist-history-variables' to `savehist-file'.
+Unbound symbols referenced in `savehist-history-variables' are ignored.
+If AUTO-SAVE is non-nil, compare the saved contents to the one last saved,
+ and don't save the buffer if they are the same."
+  (interactive)
+  (with-temp-buffer
+    (insert
+     (format ";; -*- mode: emacs-lisp; coding: %s -*-\n" savehist-coding-system)
+     ";; Minibuffer history file, automatically generated by `savehist'.\n\n")
+    (let ((print-length nil)
+	  (print-string-length nil)
+	  (print-level nil)
+	  (print-readably t)
+	  (print-quoted t))
+      (dolist (sym savehist-history-variables)
+	(when (boundp sym)
+	  (let ((value (savehist-process-for-saving (symbol-value sym))))
+	    (prin1 `(setq ,sym ',value) (current-buffer))
+	    (insert ?\n)))))
+    ;; If autosaving, avoid writing if nothing has changed since the
+    ;; last write.
+    (let ((checksum (md5 (current-buffer) nil nil savehist-no-conversion)))
+      (unless (and auto-save (equal checksum savehist-last-checksum))
+	;; Set file-precious-flag when saving the buffer because we
+	;; don't want a half-finished write ruining the entire
+	;; history.  (Remember that this is run from a timer and from
+	;; kill-emacs-hook.)
+	(let ((file-precious-flag t)
+	      (coding-system-for-write savehist-coding-system))
+	  (write-region (point-min) (point-max) savehist-file nil
+			(unless (interactive-p) 'quiet)))
+	(when savehist-modes
+	  (set-file-modes savehist-file savehist-modes))
+	(setq savehist-last-checksum checksum)))))
+
+(defun savehist-autosave ()
+  "Save the minibuffer history if it has been modified since the last save."
+  (savehist-save t))
+
+(defun savehist-process-for-saving (value)
+  ;; Process VALUE for saving to file.  If it is a list, retain only
+  ;; the first `savehist-length' values and prune non-printable ones.
+  ;; If VALUE is not a list, return it as-is if it is printable and
+  ;; nil otherwise.
+  (cond
+   ((listp value)
+    (when (and savehist-length (> (length value) savehist-length))
+      ;; This should be: (setq value (subseq value 0 savehist-length))
+      (setq value (copy-sequence value))
+      (setcdr (nthcdr savehist-length value) nil))
+    ;; And this should be (remove-if-not #'savehist-printable value)
+    (delq nil (mapcar (lambda (x) (if (savehist-printable x) x)) value)))
+   ((savehist-printable value) value)
+   (t nil)))
+
+(defun savehist-printable (value)
+  "Return non-nil if VALUE is printable."
+  ;; Quick response for oft-encountered types known to be printable.
+  (cond
+   ((stringp value))
+   ((numberp value))
+   ((symbolp value))
+   (t
+    ;; For others, check explicitly.
+    (condition-case nil
+	(let ((print-readably t)
+	      (print-level nil)
+	      (chars ()))
+	  ;; Print the value into a string...
+	  (prin1 value (lambda (char) (push char chars)))
+	  ;; ...and attempt to read it.
+	  (read (apply #'string (nreverse chars)))
+	  ;; The attempt worked: the object is printable.
+	  t)
+      ;; The attempt failed: the object is not printable.
+      (error nil)))))
+
+(provide 'savehist)
+
+;; arch-tag: b3ce47f4-c5ad-4ebc-ad02-73aba705cf9f
+;;; savehist.el ends here
--- a/lisp/simple.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/simple.el	Mon Jan 16 06:59:21 2006 +0000
@@ -4572,10 +4572,10 @@
 With a prefix argument, set VARIABLE to VALUE buffer-locally."
   (interactive
    (let* ((default-var (variable-at-point))
-          (var (if (symbolp default-var)
-			(read-variable (format "Set variable (default %s): " default-var)
-				       default-var)
-		      (read-variable "Set variable: ")))
+          (var (if (user-variable-p default-var)
+		   (read-variable (format "Set variable (default %s): " default-var)
+				  default-var)
+		 (read-variable "Set variable: ")))
 	  (minibuffer-help-form '(describe-variable var))
 	  (prop (get var 'variable-interactive))
           (obsolete (car (get var 'byte-obsolete-variable)))
@@ -4600,7 +4600,8 @@
                                             arg))
                    (read
                     (read-string prompt nil
-                                 'set-variable-value-history))))))
+                                 'set-variable-value-history
+				 (format "%S" (symbol-value var))))))))
      (list var val current-prefix-arg)))
 
   (and (custom-variable-p variable)
@@ -4844,10 +4845,13 @@
   "Normal hook run at the end of setting up a completion list buffer.
 When this hook is run, the current buffer is the one in which the
 command to display the completion list buffer was run.
-The completion list buffer is available as the value of `standard-output'.")
-
-;; This function goes in completion-setup-hook, so that it is called
-;; after the text of the completion list buffer is written.
+The completion list buffer is available as the value of `standard-output'.
+The common prefix substring for completion may be available as the 
+value of `completion-common-substring'. See also `display-completion-list'.")
+
+
+;; Variables and faces used in `completion-setup-function'.
+
 (defface completions-first-difference
   '((t (:inherit bold)))
   "Face put on the first uncommon character in completions in *Completions* buffer."
@@ -4867,6 +4871,17 @@
 (defvar completion-root-regexp "^/"
   "Regexp to use in `completion-setup-function' to find the root directory.")
 
+(defvar completion-common-substring nil
+  "Common prefix substring to use in `completion-setup-function' to put faces.
+The value is set by `display-completion-list' during running `completion-setup-hook'.
+
+To put faces, `completions-first-difference' and `completions-common-part' 
+into \"*Completions*\* buffer, the common prefix substring in completions is
+needed as a hint. (Minibuffer is a special case. The content of minibuffer itself 
+is the substring.)")
+
+;; This function goes in completion-setup-hook, so that it is called
+;; after the text of the completion list buffer is written.
 (defun completion-setup-function ()
   (let ((mainbuf (current-buffer))
 	(mbuf-contents (minibuffer-contents)))
@@ -4905,9 +4920,11 @@
 		      (funcall (get minibuffer-completion-table 'completion-base-size-function)))
 	      (setq completion-base-size 0))))
       ;; Put faces on first uncommon characters and common parts.
-      (when completion-base-size
+      (when (or completion-base-size completion-common-substring)
 	(let* ((common-string-length
-		(- (length mbuf-contents) completion-base-size))
+		(if completion-base-size
+		    (- (length mbuf-contents) completion-base-size)
+		  (length completion-common-substring)))
 	       (element-start (next-single-property-change
 			       (point-min)
 			       'mouse-face))
--- a/lisp/speedbar.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/speedbar.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1106,7 +1106,8 @@
 	   (or (not dframe-xemacsp)
 	       (with-no-warnings
 		 (specifier-instance has-modeline-p)))
-	   speedbar-buffer)      (save-excursion
+	   speedbar-buffer)
+      (save-excursion
 	(set-buffer speedbar-buffer)
 	(let* ((w (or (speedbar-frame-width) 20))
 	       (p1 "<<")
@@ -1677,9 +1678,8 @@
     (speedbar-make-button start (point) face mouse function token))
   (let ((start (point)))
     (insert "\n")
-    (put-text-property start (point) 'face nil)
-    (put-text-property start (point) 'invisible nil)
-    (put-text-property start (point) 'mouse-face nil)))
+    (add-text-properties
+     start (point) '(face nil invisible nil mouse-face nil))))
 
 (defun speedbar-insert-separator (text)
   "Insert a separation label of TEXT.
@@ -1698,13 +1698,11 @@
   "Create a button from START to END, with FACE as the display face.
 MOUSE is the mouse face.  When this button is clicked on FUNCTION
 will be run with the TOKEN parameter (any Lisp object)"
-  (put-text-property start end 'face face)
-  (put-text-property start end 'mouse-face mouse)
+  (add-text-properties
+   start end `(face ,face mouse-face ,mouse invisible nil
+               speedbar-text ,(buffer-substring-no-properties start end)))
   (if speedbar-use-tool-tips-flag
       (put-text-property start end 'help-echo #'dframe-help-echo))
-  (put-text-property start end 'invisible nil)
-  (put-text-property start end 'speedbar-text
-		     (buffer-substring-no-properties start end))
   (if function (put-text-property start end 'speedbar-function function))
   (if token (put-text-property start end 'speedbar-token token))
   ;; So far the only text we have is less that 3 chars.
@@ -2455,10 +2453,9 @@
 	(set-buffer speedbar-buffer)
 	(speedbar-with-writable
 	  (erase-buffer)
-	  (while funclst
+	  (dolist (func funclst)
 	    (setq default-directory cbd)
-	    (funcall (car funclst) cbd 0)
-	    (setq funclst (cdr funclst)))
+	    (funcall func cbd 0))
 	(speedbar-reconfigure-keymaps)
 	(goto-char (point-min)))
 	))))
@@ -2535,10 +2532,9 @@
 			    speedbar-shown-directories))
 		 (insert (cdr cache)))
 		(t
-		 (while funclst
-		   (setq default-directory cbd)
-		   (funcall (car funclst) cbd 0)
-		   (setq funclst (cdr funclst))))))
+	  (dolist (func funclst)
+	    (setq default-directory cbd)
+	    (funcall func cbd 0)))))
 	(goto-char (point-min)))))
   (speedbar-reconfigure-keymaps))
 
@@ -2561,11 +2557,10 @@
 	      speedbar-shown-directories nil))
       ;; Now fill in the buffer with our newly found specialized list.
       (speedbar-with-writable
-	(while funclst
-	  ;; We do not erase the buffer because these functions may
-	  ;; decide NOT to update themselves.
-	  (funcall (car funclst) specialbuff)
-	  (setq funclst (cdr funclst))))
+	  (dolist (func funclst)
+	    ;; We do not erase the buffer because these functions may
+	    ;; decide NOT to update themselves.
+	    (funcall func specialbuff)))
 
       (goto-char (point-min))))
   (speedbar-reconfigure-keymaps))
@@ -3822,6 +3817,7 @@
     ["Contract File Tags" speedbar-contract-line
      (save-excursion (beginning-of-line)
 		     (looking-at "[0-9]+: *.-. "))]
+    "----"
     ["Kill Buffer" speedbar-buffer-kill-buffer
      (save-excursion (beginning-of-line)
 		     (looking-at "[0-9]+: *.[-+?]. "))]
--- a/lisp/startup.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/startup.el	Mon Jan 16 06:59:21 2006 +0000
@@ -641,6 +641,17 @@
 
   (set-locale-environment nil)
 
+  ;; Convert preloaded file names to absolute.
+  (setq load-history
+	(mapcar (lambda (elt)
+		  (if (and (stringp (car elt))
+			   (not (file-name-absolute-p (car elt))))
+		      (cons (locate-file (car elt) load-path
+					 load-suffixes)
+			    (cdr elt))
+		    elt))
+		load-history))
+
   ;; Convert the arguments to Emacs internal representation.
   (let ((args (cdr command-line-args)))
     (while args
--- a/lisp/subr.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/subr.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1017,9 +1017,7 @@
 
 (defun symbol-file (symbol &optional type)
   "Return the input source in which SYMBOL was defined.
-The value is normally a string that was passed to `load':
-either an absolute file name, or a library name
-\(with no directory name and no `.el' or `.elc' at the end).
+The value is an absolute file name.
 It can also be nil, if the definition is not associated with any file.
 
 If TYPE is nil, then any kind of definition is acceptable.
--- a/lisp/tempo.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/tempo.el	Mon Jan 16 06:59:21 2006 +0000
@@ -717,11 +717,13 @@
   (if tempo-leave-completion-buffer
       (with-output-to-temp-buffer "*Completions*"
 	(display-completion-list
-	 (all-completions string tag-list)))
+	 (all-completions string tag-list)
+	 string))
     (save-window-excursion
       (with-output-to-temp-buffer "*Completions*"
 	(display-completion-list
-	 (all-completions string tag-list)))
+	 (all-completions string tag-list)
+	 string))
       (sit-for 32767))))
 
 ;;;
--- a/lisp/term.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/term.el	Mon Jan 16 06:59:21 2006 +0000
@@ -1391,7 +1391,7 @@
 
 ;;; Name to use for TERM.
 ;;; Using "emacs" loses, because bash disables editing if TERM == emacs.
-(defvar term-term-name "eterm")
+(defvar term-term-name "eterm-color")
 ; Format string, usage:
 ; (format term-termcap-string emacs-term-name "TERMCAP=" 24 80)
 (defvar term-termcap-format
--- a/lisp/term/mac-win.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/term/mac-win.el	Mon Jan 16 06:59:21 2006 +0000
@@ -54,8 +54,6 @@
 ;; -font		*font
 ;; -foreground		*foreground
 ;; -geometry		.geometry
-;; -i			.iconType
-;; -itype		.iconType
 ;; -iconic		.iconic
 ;; -name		.name
 ;; -reverse		*reverseVideo
@@ -1198,15 +1196,21 @@
     (when (and (stringp data)
 	       (setq data-type (get-text-property 0 'foreign-selection data)))
       (cond ((eq data-type 'public.utf16-plain-text)
-	     (let ((encoded (and (fboundp 'mac-code-convert-string)
-				 (mac-code-convert-string data
-							  'utf-16 coding))))
-	       (if encoded
-		   (let ((coding-save last-coding-system-used))
-		     (setq data (decode-coding-string encoded coding))
-		     (setq last-coding-system-used coding-save))
-		 (setq data
-		       (decode-coding-string data 'utf-16)))))
+	     (if (fboundp 'mac-code-convert-string)
+		 (let ((s (mac-code-convert-string data nil coding)))
+		   (if s
+		       (setq data (decode-coding-string s coding))
+		     (setq data
+			   ;; (decode-coding-string data 'utf-16) is
+			   ;; not correct because
+			   ;; public.utf16-plain-text is defined as
+			   ;; native byte order, no BOM.
+			   (decode-coding-string
+			    (mac-code-convert-string data nil 'utf-8)
+			    'utf-8))))
+	       ;; No `mac-code-convert-string' means non-Carbon, which
+	       ;; implies big endian.
+	       (setq data (decode-coding-string data 'utf-16be))))
 	    ((eq data-type 'com.apple.traditional-mac-plain-text)
 	     (setq data (decode-coding-string data coding)))
 	    ((eq data-type 'public.file-url)
@@ -1323,14 +1327,25 @@
 	  (remove-text-properties 0 (length str) '(composition nil) str)
 	  (cond
 	   ((eq type 'public.utf16-plain-text)
-	    (let (s)
-	      (when (and (fboundp 'mac-code-convert-string)
-			 (memq coding (find-coding-systems-string str)))
-		(setq coding (coding-system-change-eol-conversion coding 'mac))
-		(setq s (mac-code-convert-string
-			 (encode-coding-string str coding)
-			 coding 'utf-16)))
-	      (setq str (or s (encode-coding-string str 'utf-16-mac)))))
+	    (if (fboundp 'mac-code-convert-string)
+		(let (s)
+		  (when (memq coding (find-coding-systems-string str))
+		    (setq coding
+			  (coding-system-change-eol-conversion coding 'mac))
+		    (setq s (mac-code-convert-string
+			     (encode-coding-string str coding)
+			     coding nil)))
+		  (setq str (or s
+				;; (encode-coding-string str
+				;; 'utf-16-mac) is not correct because
+				;; public.utf16-plain-text is defined
+				;; as native byte order, no BOM.
+				(mac-code-convert-string
+				 (encode-coding-string str 'utf-8-mac)
+				 'utf-8 nil))))
+	      ;; No `mac-code-convert-string' means non-Carbon, which
+	      ;; implies big endian.
+	      (setq str (encode-coding-string str 'utf-16be-mac))))
 	   ((eq type 'com.apple.traditional-mac-plain-text)
 	    (let ((encodables (find-coding-systems-string str))
 		  (rest mac-script-code-coding-systems))
--- a/lisp/textmodes/bibtex.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/textmodes/bibtex.el	Mon Jan 16 06:59:21 2006 +0000
@@ -2522,7 +2522,8 @@
            (message "Making completion list...")
            (with-output-to-temp-buffer "*Completions*"
              (display-completion-list (all-completions part-of-word
-                                                       completions)))
+                                                       completions)
+				      part-of-word))
            (message "Making completion list...done")
            ;; return value is handled by choose-completion-string-functions
            nil))))
@@ -2661,6 +2662,7 @@
         field bounds start end found)
     (bibtex-beginning-of-field)
     (while (and (not found)
+                (<= (point) bound)
 		(prog1 (re-search-forward bibtex-font-lock-url-regexp bound t)
 		  (setq field (match-string-no-properties 1)))
 		(setq bounds (bibtex-parse-field-text))
--- a/lisp/textmodes/conf-mode.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/textmodes/conf-mode.el	Mon Jan 16 06:59:21 2006 +0000
@@ -86,7 +86,7 @@
     (define-key map "\C-c'" 'conf-quote-normal)
     (define-key map "\C-c\C-a" 'conf-align-assignments)
     map)
-  "Local keymap for conf-mode buffers.")
+  "Local keymap for `conf-mode' buffers.")
 
 (defvar conf-mode-syntax-table
   (let ((table (make-syntax-table)))
@@ -99,7 +99,7 @@
     (modify-syntax-entry ?\n ">" table)
     (modify-syntax-entry ?\r ">" table)
     table)
-  "Syntax table in use in Windows style conf-mode buffers.")
+  "Syntax table in use in Windows style `conf-mode' buffers.")
 
 (defvar conf-unix-mode-syntax-table
   (let ((table (make-syntax-table conf-mode-syntax-table)))
@@ -107,7 +107,7 @@
     ;; override
     (modify-syntax-entry ?\; "." table)
     table)
-  "Syntax table in use in Unix style conf-mode buffers.")
+  "Syntax table in use in Unix style `conf-mode' buffers.")
 
 (defvar conf-javaprop-mode-syntax-table
   (let ((table (make-syntax-table conf-unix-mode-syntax-table)))
@@ -124,7 +124,7 @@
     (modify-syntax-entry ?\' "." table)
     (modify-syntax-entry ?\; "." table)
     table)
-  "Syntax table in use in PPD conf-mode buffers.")
+  "Syntax table in use in PPD `conf-mode' buffers.")
 
 (defvar conf-xdefaults-mode-syntax-table
   (let ((table (make-syntax-table conf-mode-syntax-table)))
@@ -132,7 +132,7 @@
     ;; override
     (modify-syntax-entry ?\; "." table)
     table)
-  "Syntax table in use in Xdefaults style conf-mode buffers.")
+  "Syntax table in use in Xdefaults style `conf-mode' buffers.")
 
 
 (defvar conf-font-lock-keywords
@@ -144,7 +144,7 @@
      (2 'font-lock-constant-face nil t))
     ;; section { ... } (do this last because some assign ...{...)
     ("^[ \t]*\\([^=:\n]+?\\)[ \t\n]*{[^{}]*?$" 1 'font-lock-type-face prepend))
-  "Keywords to hilight in Conf mode")
+  "Keywords to hilight in Conf mode.")
 
 (defvar conf-javaprop-font-lock-keywords
   '(;; var=val
@@ -156,7 +156,7 @@
      (5 'font-lock-variable-name-face nil t)
      (6 'font-lock-constant-face nil t)
      (7 'font-lock-variable-name-face nil t)))
-  "Keywords to hilight in Conf Java Properties mode")
+  "Keywords to hilight in Conf Java Properties mode.")
 
 (defvar conf-space-keywords-alist
   '(("\\`/etc/gpm/" . "key\\|name\\|foreground\\|background\\|border\\|head")
@@ -188,7 +188,7 @@
 		'(1 'font-lock-keyword-face)
 		'(2 'font-lock-variable-name-face))
 	  '("^[ \t]*\\([^\000- ]+\\)" 1 'font-lock-variable-name-face)))
-  "Keywords to hilight in Conf Space mode")
+  "Keywords to hilight in Conf Space mode.")
 
 (defvar conf-colon-font-lock-keywords
   `(;; [section] (do this first because it may look like a parameter)
@@ -198,7 +198,7 @@
      (1 'font-lock-variable-name-face))
     ;; section { ... } (do this last because some assign ...{...)
     ("^[ \t]*\\([^:\n]+\\)[ \t\n]*{[^{}]*?$" 1 'font-lock-type-face prepend))
-  "Keywords to hilight in Conf Colon mode")
+  "Keywords to hilight in Conf Colon mode.")
 
 (defvar conf-assignment-sign ?=
   "What sign is used for assignments.")
@@ -231,12 +231,15 @@
 	    (if (>= arg 0)
 		(progn
 		  (indent-to-column arg)
-		  (or (not conf-assignment-space) (memq (char-before (point)) '(?\s ?\t)) (insert ?\s))
-		  (insert conf-assignment-sign (if (and conf-assignment-space (not (eolp))) ?\s "")))
+		  (or (not conf-assignment-space)
+                      (memq (char-before (point)) '(?\s ?\t)) (insert ?\s))
+		  (insert conf-assignment-sign
+                          (if (and conf-assignment-space (not (eolp))) ?\s "")))
 	      (insert (if conf-assignment-space ?\s "") conf-assignment-sign)
 	      (unless (eolp)
 		(indent-to-column (- arg))
-		(or (not conf-assignment-space) (memq (char-before (point)) '(?\s ?\t)) (insert ?\s))))
+		(or (not conf-assignment-space)
+                    (memq (char-before (point)) '(?\s ?\t)) (insert ?\s))))
 	  (unless (eolp)
 	    (if (>= (current-column) (abs arg))
 		(insert ?\s)
@@ -255,8 +258,10 @@
 unbalanced, but hey...)"
   (interactive "P")
   (let ((table (copy-syntax-table (syntax-table))))
-    (if (or (not arg) (= (prefix-numeric-value arg) 1)) (modify-syntax-entry ?\' "." table))
-    (if (or (not arg) (= (prefix-numeric-value arg) 2)) (modify-syntax-entry ?\" "." table))
+    (if (or (not arg) (= (prefix-numeric-value arg) 1))
+        (modify-syntax-entry ?\' "." table))
+    (if (or (not arg) (= (prefix-numeric-value arg) 2))
+        (modify-syntax-entry ?\" "." table))
     (set-syntax-table table)
     (and (boundp 'font-lock-mode)
 	 font-lock-mode
@@ -326,25 +331,25 @@
 		  ((looking-at ".*{"))		; nop
 		  ((setq space (1+ space))))
 	    (forward-line)))
-	(if (> jp (max unix win 3))
-	    (conf-javaprop-mode)
-	  (if (> colon (max equal space))
-	      (conf-colon-mode)
-	    (if (> space (max equal colon))
-		(conf-space-mode)
-	      (if (or (> win unix)
-		      (and (= win unix) (eq system-type 'windows-nt)))
-		  (conf-windows-mode)
-		(conf-unix-mode))))))
+	(cond
+         ((> jp (max unix win 3)) (conf-javaprop-mode))
+         ((> colon (max equal space)) (conf-colon-mode))
+         ((> space (max equal colon)) (conf-space-mode))
+         ((or (> win unix) (and (= win unix) (eq system-type 'windows-nt)))
+          (conf-windows-mode))
+         (t (conf-unix-mode))))
     (kill-all-local-variables)
     (use-local-map conf-mode-map)
 
     (setq major-mode 'conf-mode
 	  mode-name name)
+    (set (make-local-variable 'font-lock-defaults)
+         '(conf-font-lock-keywords nil t nil nil))
     (set (make-local-variable 'comment-start) comment)
     (set (make-local-variable 'comment-start-skip)
 	 (concat (regexp-quote comment-start) "+\\s *"))
-    (set (make-local-variable 'comment-use-syntax) t)
+    ;; Let newcomment.el decide this for himself.
+    ;; (set (make-local-variable 'comment-use-syntax) t)
     (set (make-local-variable 'parse-sexp-ignore-comments) t)
     (set (make-local-variable 'outline-regexp)
 	 "[ \t]*\\(?:\\[\\|.+[ \t\n]*{\\)")
@@ -368,7 +373,7 @@
 Comments start with `#'.
 For details see `conf-mode'.  Example:
 
-# Conf mode font-locks this right on Unix and with C-c C-u
+# Conf mode font-locks this right on Unix and with \\[conf-unix-mode]
 
 \[Desktop Entry]
 	 Encoding=UTF-8
@@ -384,7 +389,7 @@
 Comments start with `;'.
 For details see `conf-mode'.  Example:
 
-; Conf mode font-locks this right on Windows and with C-c C-w
+; Conf mode font-locks this right on Windows and with \\[conf-windows-mode]
 
 \[ExtShellFolderViews]
 Default={5984FFE0-28D4-11CF-AE66-08002B2E1262}
@@ -407,7 +412,7 @@
 between `/*' and `*/'.
 For details see `conf-mode'.  Example:
 
-# Conf mode font-locks this right with C-c C-j (Java properties)
+# Conf mode font-locks this right with \\[conf-javaprop-mode] (Java properties)
 // another kind of comment
 /* yet another */
 
@@ -441,7 +446,7 @@
 
 For details see `conf-mode'.  Example:
 
-# Conf mode font-locks this right with C-c C-s (space separated)
+# Conf mode font-locks this right with \\[conf-space-mode] (space separated)
 
 image/jpeg			jpeg jpg jpe
 image/png			png
@@ -495,7 +500,7 @@
 \"Assignments\" are with `:'.
 For details see `conf-mode'.  Example:
 
-# Conf mode font-locks this right with C-c C-c (colon)
+# Conf mode font-locks this right with \\[conf-colon-mode] (colon)
 
 <Multi_key> <exclam> <exclam>		: \"\\241\"	exclamdown
 <Multi_key> <c> <slash>			: \"\\242\"	cent"
@@ -524,7 +529,7 @@
 Comments start with `*%' and \"assignments\" are with `:'.
 For details see `conf-mode'.  Example:
 
-*% Conf mode font-locks this right with C-c C-p (PPD)
+*% Conf mode font-locks this right with \\[conf-ppd-mode] (PPD)
 
 *DefaultTransfer: Null
 *Transfer Null.Inverse: \"{ 1 exch sub }\""
@@ -539,22 +544,13 @@
 Comments start with `!' and \"assignments\" are with `:'.
 For details see `conf-mode'.  Example:
 
-! Conf mode font-locks this right with C-c C-x (.Xdefaults)
+! Conf mode font-locks this right with \\[conf-xdefaults-mode] (.Xdefaults)
 
 *background:			gray99
 *foreground:			black"
   (interactive)
   (conf-colon-mode "!" conf-xdefaults-mode-syntax-table "Conf[Xdefaults]"))
 
-
-;; font lock support
-(if (boundp 'font-lock-defaults-alist)
-    (add-to-list
-     'font-lock-defaults-alist
-     (cons 'conf-mode
-	   (list 'conf-font-lock-keywords nil t nil nil))))
-
-
 (provide 'conf-mode)
 
 ;; arch-tag: 0a3805b2-0371-4d3a-8498-8897116b2356
--- a/lisp/textmodes/fill.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/textmodes/fill.el	Mon Jan 16 06:59:21 2006 +0000
@@ -344,13 +344,14 @@
      ;; it at the end of the line.
      (and sentence-end-double-space
 	  (save-excursion
-	    (skip-chars-backward ". ")
-	    (looking-at "\\. \\([^ ]\\|$\\)")))
+	    (skip-chars-backward " ")
+	    (and (eq (preceding-char) ?.)
+		 (looking-at " \\([^ ]\\|$\\)"))))
      ;; Another approach to the same problem.
      (save-excursion
-       (skip-chars-backward ". ")
-       (and (looking-at "\\.")
-     	    (not (looking-at (sentence-end)))))
+       (skip-chars-backward " ")
+       (and (eq (preceding-char) ?.)
+	    (not (progn (forward-char -1) (looking-at (sentence-end))))))
      ;; Don't split a line if the rest would look like a new paragraph.
      (unless use-hard-newlines
        (save-excursion
--- a/lisp/textmodes/org.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/textmodes/org.el	Mon Jan 16 06:59:21 2006 +0000
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <dominik at science dot uva dot nl>
 ;; Keywords: outlines, hypermedia, calendar
 ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
-;; Version: 3.17
+;; Version: 3.18
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -80,6 +80,10 @@
 ;;
 ;; Changes:
 ;; -------
+;; Version 3.18
+;;    - Export of calendar information in the standard iCalendar format.
+;;    - Some bug fixes.
+;;
 ;; Version 3.17
 ;;    - HTML export specifies character set depending on coding-system.
 ;;
@@ -213,7 +217,7 @@
 
 ;;; Customization variables
 
-(defvar org-version "3.17"
+(defvar org-version "3.18"
   "The version number of the file org.el.")
 (defun org-version ()
   (interactive)
@@ -777,7 +781,7 @@
 (defcustom org-level-color-stars-only nil
   "Non-nil means fontify only the stars in each headline.
 When nil, the entire headline is fontified.
-After changin this, requires restart of Emacs to become effective."
+After changing this, requires restart of Emacs to become effective."
   :group 'org-structure
   :type 'boolean)
 
@@ -1490,6 +1494,23 @@
   :group 'org-export
   :type 'boolean)
 
+(defcustom org-combined-agenda-icalendar-file "~/org.ics"
+  "The file name for the iCalendar file covering all agenda files.
+This file is created with the command \\[org-export-icalendar-all-agenda-files]."
+  :group 'org-export
+  :type 'file)
+
+(defcustom org-icalendar-include-todo nil
+  "Non-nil means, export to iCalendar files should also cover TODO items."
+  :group 'org-export
+  :type 'boolean)
+
+;; FIXME: not yet used.
+(defcustom org-icalendar-combined-name "OrgMode"
+  "Calendar name for the combined iCalendar representing all agenda files."
+  :group 'org-export
+  :type 'string)
+
 (defgroup org-faces nil
   "Faces for highlighting in Org-mode."
   :tag "Org Faces"
@@ -2844,7 +2865,7 @@
 	     (message "Making completion list...")
 	     (let ((list (sort (all-completions pattern table) 'string<)))
 	       (with-output-to-temp-buffer "*Completions*"
-		 (display-completion-list list)))
+		 (display-completion-list list pattern)))
 	     (message "Making completion list...%s" "done"))))))
 
 ;;; Comments, TODO and DEADLINE
@@ -3179,7 +3200,8 @@
 	;; Copied (with modifications) from planner.el by John Wiegley
 	(save-excursion
 	  (save-window-excursion
-	    (calendar)
+	    (let ((view-diary-entries-initially nil))
+	      (calendar))
 	    (calendar-forward-day (- (time-to-days default-time)
 				     (calendar-absolute-from-gregorian
 				      (calendar-current-date))))
@@ -3523,7 +3545,8 @@
 	      (d2 (time-to-days
 		   (org-time-string-to-time (match-string 1)))))
 	  (setq diff (- d2 d1))))
-    (calendar)
+    (let ((view-diary-entries-initially nil))
+      (calendar))
     (calendar-goto-today)
     (if (and diff (not arg)) (calendar-forward-day diff))))
 
@@ -3628,7 +3651,7 @@
 (define-key org-agenda-mode-map [?\C-c ?\C-x (down)] 'org-agenda-priority-down)
 (define-key org-agenda-mode-map [(right)] 'org-agenda-later)
 (define-key org-agenda-mode-map [(left)] 'org-agenda-earlier)
-
+(define-key org-agenda-mode-map "\C-c\C-x\C-c" 'org-export-icalendar-combine-agenda-files)
 (defvar org-agenda-keymap (copy-keymap org-agenda-mode-map)
   "Local keymap for agenda entries from Org-mode.")
 
@@ -3681,6 +3704,7 @@
      ["Sunrise/Sunset" org-agenda-sunrise-sunset t]
      ["Holidays" org-agenda-holidays t]
      ["Convert" org-agenda-convert-date t])
+    ["Create iCalendar file" org-export-icalendar-combine-agenda-files t]
     "--"
     ["Quit" org-agenda-quit t]
     ["Exit and Release Buffers" org-agenda-exit t]
@@ -4253,6 +4277,9 @@
 
 (defun org-file-menu-entry (file)
   (vector file (list 'find-file file) t))
+;; FIXME: Maybe removed a buffer visited through the menu from
+;; org-agenda-new-buffers, so that the buffer will not be removed
+;; when exiting the agenda????
 
 (defun org-get-all-dates (beg end &optional no-ranges force-today)
   "Return a list of all relevant day numbers from BEG to END buffer positions.
@@ -5222,7 +5249,8 @@
   (let* ((day (or (get-text-property (point) 'day)
 		  (error "Don't know which date to open in calendar")))
 	 (date (calendar-gregorian-from-absolute day)))
-    (calendar)
+    (let ((view-diary-entries-initially nil))
+      (calendar))
     (calendar-goto-date date)))
 
 (defun org-calendar-goto-agenda ()
@@ -8031,10 +8059,10 @@
 	 "--"
 	 ["Insert Hline" org-table-insert-hline :active (org-at-table-p) :keys "C-c -"])
 	("Rectangle"
-	 ["Copy Rectangle" org-copy-special :active (org-at-table-p) :keys "C-c C-x M-w"]
-	 ["Cut Rectangle" org-cut-special :active (org-at-table-p) :keys "C-c C-x C-w"]
-	 ["Paste Rectangle" org-paste-special :active (org-at-table-p) :keys "C-c C-x C-y"]
-	 ["Fill Rectangle" org-table-wrap-region :active (org-at-table-p) :keys "C-c C-q"])
+	 ["Copy Rectangle" org-copy-special :active (org-at-table-p)]
+	 ["Cut Rectangle" org-cut-special :active (org-at-table-p)]
+	 ["Paste Rectangle" org-paste-special :active (org-at-table-p)]
+	 ["Fill Rectangle" org-table-wrap-region :active (org-at-table-p)])
 	"--"
 	["Set Column Formula" org-table-eval-formula :active (org-at-table-p) :keys "C-c ="]
 	["Set Named Field Formula" (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="]
@@ -8834,6 +8862,8 @@
 	 (coding-system (and (fboundp 'coding-system-get)
 			     (boundp 'buffer-file-coding-system)
 			     buffer-file-coding-system))
+	 (coding-system-for-write (or coding-system coding-system-for-write))
+	 (save-buffer-coding-system (or coding-system save-buffer-coding-system))
 	 (charset (and coding-system
 		       (coding-system-get coding-system 'mime-charset)))
 	 table-open type
@@ -9066,6 +9096,7 @@
 	(if org-export-html-with-timestamp
 	    (insert org-export-html-html-helper-timestamp))
 	(insert "</body>\n</html>\n")
+	(debug)
 	(normal-mode)
 	(save-buffer)
 	(goto-char (point-min)))))
@@ -9409,6 +9440,172 @@
     string))
 
 
+
+
+
+(defun org-export-icalendar-this-file ()
+  "Export current file as an iCalendar file.
+The iCalendar file will be located in the same directory as the Org-mode
+file, but with extension `.ics'."
+  (interactive)
+  (org-export-icalendar nil (buffer-file-name)))
+
+;;;###autoload
+(defun org-export-icalendar-all-agenda-files ()
+  "Export all files in `org-agenda-files' to iCalendar .ics files.
+Each iCalendar file will be located in the same directory as the Org-mode
+file, but with extension `.ics'."
+  (interactive)
+  (apply 'org-export-icalendar nil org-agenda-files))
+
+;;;###autoload
+(defun org-export-icalendar-combine-agenda-files ()
+  "Export all files in `org-agenda-files' to a single combined iCalendar file.
+The file is stored under the name `org-combined-agenda-icalendar-file'."
+  (interactive)
+  (apply 'org-export-icalendar t org-agenda-files))
+
+(defun org-export-icalendar (combine &rest files)
+  "Create iCalendar files for all elements of FILES.
+If COMBINE is non-nil, combine all calendar entries into a single large
+file and store it under the name `org-combined-agenda-icalendar-file'."
+  (save-excursion
+    (let* (file ical-file ical-buffer category started org-agenda-new-buffers)
+      (when combine
+	(setq ical-file org-combined-agenda-icalendar-file
+	      ical-buffer (org-get-agenda-file-buffer ical-file))
+	(set-buffer ical-buffer) (erase-buffer))
+      (while (setq file (pop files))
+	(catch 'nextfile
+	  (org-check-agenda-file file)
+	  (unless combine
+	    (setq ical-file (concat (file-name-sans-extension file) ".ics"))
+	    (setq ical-buffer (org-get-agenda-file-buffer ical-file))
+	    (set-buffer ical-buffer) (erase-buffer))
+	  (set-buffer (org-get-agenda-file-buffer file))
+	  (setq category (or org-category
+			     (file-name-sans-extension
+			      (file-name-nondirectory (buffer-file-name)))))
+	  (if (symbolp category) (setq category (symbol-name category)))
+	  (let ((standard-output ical-buffer))
+	    (if combine
+		(and (not started) (setq started t)
+		     (org-start-icalendar-file "OrgMode"))
+	      (org-start-icalendar-file category))
+	    (org-print-icalendar-entries combine category)
+	    (when (or (and combine (not files)) (not combine))
+	      (org-finish-icalendar-file)
+	      (set-buffer ical-buffer)
+	      (save-buffer)
+	      (run-hooks 'org-after-save-iCalendar-file-hook)))))
+      (org-release-buffers org-agenda-new-buffers))))
+
+(defvar org-after-save-iCalendar-file-hook nil
+  "Hook run after an iCalendar file has been saved.
+The iCalendar buffer is still current when this hook is run.
+A good way to use this is to tell a desktop calenndar application to re-read
+the iCalendar file.")
+
+(defun org-print-icalendar-entries (&optional combine category)
+  "Print iCalendar entries for the current Org-mode file to `standard-output'.
+When COMBINE is non nil, add the category to each line."
+  (let ((re2 (concat "--?-?\\(" org-ts-regexp "\\)"))
+	(dts (org-ical-ts-to-string
+	      (format-time-string (cdr org-time-stamp-formats) (current-time))
+	      "DTSTART"))
+	hd ts ts2 state (inc t) pos scheduledp deadlinep donep tmp pri)
+    (save-excursion
+      (goto-char (point-min))
+      (while (re-search-forward org-ts-regexp nil t)
+	(setq pos (match-beginning 0)
+	      ts (match-string 0)
+	      inc t
+	      hd (org-get-heading))
+	(if (looking-at re2)
+	    (progn
+	      (goto-char (match-end 0))
+	      (setq ts2 (match-string 1) inc nil))
+	  (setq ts2 ts
+		tmp (buffer-substring (max (point-min)
+					     (- pos org-ds-keyword-length))
+				      pos)
+		deadlinep (string-match org-deadline-regexp tmp)
+		scheduledp (string-match org-scheduled-regexp tmp)
+		donep (org-entry-is-done-p)))
+	(if (or (string-match org-tr-regexp hd)
+		(string-match org-ts-regexp hd))
+	    (setq hd (replace-match "" t t hd)))		
+	(if combine
+	    (setq hd (concat hd " (category " category ")")))
+	(if deadlinep (setq hd (concat "DL: " hd " This is a deadline")))
+	(if scheduledp (setq hd (concat "S: " hd " Scheduled for this date")))
+	(princ (format "BEGIN:VEVENT
+%s
+%s
+SUMMARY:%s
+END:VEVENT\n"
+		       (org-ical-ts-to-string ts "DTSTART")
+		       (org-ical-ts-to-string ts2 "DTEND" inc)
+		       hd)))
+      (when org-icalendar-include-todo
+	(goto-char (point-min))
+	(while (re-search-forward org-todo-line-regexp nil t)
+	  (setq state (match-string 1))
+	  (unless (equal state org-done-string)
+	    (setq hd (match-string 3))
+	    (if (string-match org-priority-regexp hd)
+		(setq pri (string-to-char (match-string 2 hd))
+		      hd (concat (substring hd 0 (match-beginning 1))
+				 (substring hd (- (match-end 1)))))
+	      (setq pri org-default-priority))
+	    (setq pri (floor (1+ (* 8. (/ (float (- org-lowest-priority pri))
+					  (- org-lowest-priority ?A))))))
+
+	    (princ (format "BEGIN:VTODO
+%s
+SUMMARY:%s
+SEQUENCE:1
+PRIORITY:%d
+END:VTODO\n"
+			   dts hd pri))))))))
+
+(defun org-start-icalendar-file (name)
+  "Start an iCalendar file by inserting the header."
+  (let ((user user-full-name)
+	(calname "something")
+	(name (or name "unknown"))
+	(timezone "FIXME"))
+    (princ
+     (format "BEGIN:VCALENDAR
+VERSION:2.0
+X-WR-CALNAME:%s
+PRODID:-//%s//Emacs with Org-mode//EN
+X-WR-TIMEZONE:Europe/Amsterdam
+CALSCALE:GREGORIAN\n" name user timezone))))
+
+(defun org-finish-icalendar-file ()
+  "Finish an iCalendar file by inserting the END statement."
+  (princ "END:VCALENDAR\n"))
+
+(defun org-ical-ts-to-string (s keyword &optional inc)
+  "Take a time string S and convert it to iCalendar format.
+KEYWORD is added in front, to make a complete line like DTSTART....
+When INC is non-nil, increase the hour by two (if time string contains
+a time), or the day by one (if it does not contain a time)."
+  (let ((t1 (org-parse-time-string s 'nodefault))
+	t2 fmt have-time time)
+    (if (and (car t1) (nth 1 t1) (nth 2 t1))
+	(setq t2 t1 have-time t)
+      (setq t2 (org-parse-time-string s)))
+    (let ((s (car t2))   (mi (nth 1 t2)) (h (nth 2 t2))
+	  (d (nth 3 t2)) (m  (nth 4 t2)) (y (nth 5 t2)))
+      (when inc
+	(if have-time (setq h (+ 2 h)) (setq d (1+ d))))
+      (setq time (encode-time s mi h d m y)))
+    (setq fmt (if have-time ":%Y%m%dT%H%M%S" ";VALUE=DATE:%Y%m%d"))
+    (concat keyword (format-time-string fmt time))))
+
+
 ;;; Key bindings
 
 ;; - Bindings in Org-mode map are currently
@@ -9510,9 +9707,13 @@
 (define-key org-mode-map "\C-c\C-x\C-a"   'org-export-as-ascii)
 (define-key org-mode-map "\C-c\C-xv"      'org-export-copy-visible)
 (define-key org-mode-map "\C-c\C-x\C-v"   'org-export-copy-visible)
-;; OPML support is only planned
+;; OPML support is only an option for the future
 ;(define-key org-mode-map "\C-c\C-xo"      'org-export-as-opml)
 ;(define-key org-mode-map "\C-c\C-x\C-o"   'org-export-as-opml)
+(define-key org-mode-map "\C-c\C-xi"      'org-export-icalendar-this-file)
+(define-key org-mode-map "\C-c\C-x\C-i"   'org-export-icalendar-all-agenda-files)
+(define-key org-mode-map "\C-c\C-xc"      'org-export-icalendar-combine-agenda-files)
+(define-key org-mode-map "\C-c\C-x\C-c"   'org-export-icalendar-combine-agenda-files)
 (define-key org-mode-map "\C-c\C-xt"      'org-insert-export-options-template)
 (define-key org-mode-map "\C-c:"          'org-toggle-fixed-width-section)
 (define-key org-mode-map "\C-c\C-xh"      'org-export-as-html)
@@ -9945,6 +10146,11 @@
      ["HTML and Open" org-export-as-html-and-open t]
 ;     ["OPML" org-export-as-opml nil]
      "--"
+     ["iCalendar this file" org-export-icalendar-this-file t]
+     ["iCalendar all agenda files" org-export-icalendar-all-agenda-files
+      :active t :keys "C-c C-x C-i"]
+     ["iCalendar combined" org-export-icalendar-combine-agenda-files t]
+     "--"
      ["Option Template" org-insert-export-options-template t]
      ["Toggle Fixed Width" org-toggle-fixed-width-section t])
     "--"
--- a/lisp/textmodes/paragraphs.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/textmodes/paragraphs.el	Mon Jan 16 06:59:21 2006 +0000
@@ -159,23 +159,32 @@
   :group 'paragraphs
   :type '(choice regexp (const :tag "Use default value" nil)))
 
+(defcustom sentence-end-base "[.?!][]\"'\xd0c9\x5397d)}]*"
+  "*Regexp matching the basic end of a sentence, not including following space."
+  :group 'paragraphs
+  :type 'string
+  :version "22.1")
+
 (defun sentence-end ()
   "Return the regexp describing the end of a sentence.
 
 This function returns either the value of the variable `sentence-end'
 if it is non-nil, or the default value constructed from the
-variables `sentence-end-double-space', `sentence-end-without-period'
-and `sentence-end-without-space'.  The default value specifies
-that in order to be recognized as the end of a sentence, the
-ending period, question mark, or exclamation point must be
-followed by two spaces, unless it's inside some sort of quotes or
-parenthesis.  See Info node `(elisp)Standard Regexps'."
+variables `sentence-end-base', `sentence-end-double-space',
+`sentence-end-without-period' and `sentence-end-without-space'.
+
+The default value specifies that in order to be recognized as the
+end of a sentence, the ending period, question mark, or exclamation point
+must be followed by two spaces, with perhaps some closing delimiters
+in between.  See Info node `(elisp)Standard Regexps'."
   (or sentence-end
       (concat (if sentence-end-without-period "\\w  \\|")
-              "\\([.?!][]\"'\xd0c9\x5397d)}]*"
+	      "\\("
+	      sentence-end-base
               (if sentence-end-double-space
                   "\\($\\| $\\|\t\\|  \\)" "\\($\\|[\t ]\\)")
-              "\\|[" sentence-end-without-space "]+\\)"
+              "\\|[" sentence-end-without-space "]+"
+	      "\\)"
               "[ \t\n]*")))
 
 (defcustom page-delimiter "^\014"
--- a/lisp/textmodes/tex-mode.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/textmodes/tex-mode.el	Mon Jan 16 06:59:21 2006 +0000
@@ -576,7 +576,7 @@
 	      2 '(tex-font-lock-append-prop 'italic) 'append)
 	;; This is separate from the previous one because of cases like
 	;; {\em foo {\bf bar} bla} where both match.
-	(list (concat "\\\\\\(bf\\(series\\)?\\)\\>" args)
+ 	(list (concat "\\\\\\(bf\\(series\\)?\\)\\>" args)
 	      3 '(tex-font-lock-append-prop 'bold) 'append)))))
    "Gaudy expressions to highlight in TeX modes.")
 
--- a/lisp/textmodes/texinfo.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/textmodes/texinfo.el	Mon Jan 16 06:59:21 2006 +0000
@@ -593,6 +593,9 @@
 	(concat "\b\\|@[a-zA-Z]*[ \n]\\|" paragraph-separate))
   (make-local-variable 'paragraph-start)
   (setq paragraph-start (concat "\b\\|@[a-zA-Z]*[ \n]\\|" paragraph-start))
+  (make-local-variable 'sentence-end-base)
+  (setq sentence-end-base
+	"\\(@\\(end\\)?dots{}\\|[.?!]\\)[]\"'\xd0c9\x5397d)}]*")
   (make-local-variable 'adaptive-fill-mode)
   (setq adaptive-fill-mode nil)
   (make-local-variable 'fill-column)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/tool-bar.el	Mon Jan 16 06:59:21 2006 +0000
@@ -0,0 +1,280 @@
+;;; tool-bar.el --- setting up the tool bar
+;;
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
+;;
+;; Author: Dave Love <fx@gnu.org>
+;; Keywords: mouse frames
+
+;; 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., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+
+;; Provides `tool-bar-mode' to control display of the tool-bar and
+;; bindings for the global tool bar with convenience functions
+;; `tool-bar-add-item' and `tool-bar-add-item-from-menu'.
+
+;; The normal global binding for [tool-bar] (below) uses the value of
+;; `tool-bar-map' as the actual keymap to define the tool bar.  Modes
+;; may either bind items under the [tool-bar] prefix key of the local
+;; map to add to the global bar or may set `tool-bar-map'
+;; buffer-locally to override it.  (Some items are removed from the
+;; global bar in modes which have `special' as their `mode-class'
+;; property.)
+
+;; Todo: Somehow make tool bars easily customizable by the naive?
+
+;;; Code:
+
+;;;###autoload
+(define-minor-mode tool-bar-mode
+  "Toggle use of the tool bar.
+With numeric ARG, display the tool bar if and only if ARG is positive.
+
+See `tool-bar-add-item' and `tool-bar-add-item-from-menu' for
+conveniently adding tool bar items."
+  :init-value nil
+  :global t
+  :group 'mouse
+  :group 'frames
+  (and (display-images-p)
+       (let ((lines (if tool-bar-mode 1 0)))
+	 ;; Alter existing frames...
+	 (mapc (lambda (frame)
+		 (modify-frame-parameters frame
+					  (list (cons 'tool-bar-lines lines))))
+	       (frame-list))
+	 ;; ...and future ones.
+	 (let ((elt (assq 'tool-bar-lines default-frame-alist)))
+	   (if elt
+	       (setcdr elt lines)
+	     (add-to-list 'default-frame-alist (cons 'tool-bar-lines lines)))))
+       (if (and tool-bar-mode
+		(display-graphic-p)
+		(= 1 (length (default-value 'tool-bar-map)))) ; not yet setup
+	   (tool-bar-setup))))
+
+;;;###autoload
+;; We want to pretend the toolbar by standard is on, as this will make
+;; customize consider disabling the toolbar a customization, and save
+;; that.  We could do this for real by setting :init-value above, but
+;; that would turn on the toolbar in MS Windows where it is currently
+;; useless, and it would overwrite disabling the tool bar from X
+;; resources.  If anyone want to implement this in a cleaner way,
+;; please do so.
+;; -- Per Abrahamsen <abraham@dina.kvl.dk> 2002-02-21.
+(put 'tool-bar-mode 'standard-value '(t))
+
+(defvar tool-bar-map (make-sparse-keymap)
+  "Keymap for the tool bar.
+Define this locally to override the global tool bar.")
+
+(global-set-key [tool-bar]
+		'(menu-item "tool bar" ignore
+			    :filter (lambda (ignore) tool-bar-map)))
+
+;;;###autoload
+(defun tool-bar-add-item (icon def key &rest props)
+  "Add an item to the tool bar.
+ICON names the image, DEF is the key definition and KEY is a symbol
+for the fake function key in the menu keymap.  Remaining arguments
+PROPS are additional items to add to the menu item specification.  See
+Info node `(elisp)Tool Bar'.  Items are added from left to right.
+
+ICON is the base name of a file containing the image to use.  The
+function will first try to use low-color/ICON.xpm if display-color-cells
+is less or equal to 256, then ICON.xpm, then ICON.pbm, and finally
+ICON.xbm, using `find-image'.
+
+Use this function only to make bindings in the global value of `tool-bar-map'.
+To define items in any other map, use `tool-bar-local-item'."
+  (apply 'tool-bar-local-item icon def key tool-bar-map props))
+
+;;;###autoload
+(defun tool-bar-local-item (icon def key map &rest props)
+  "Add an item to the tool bar in map MAP.
+ICON names the image, DEF is the key definition and KEY is a symbol
+for the fake function key in the menu keymap.  Remaining arguments
+PROPS are additional items to add to the menu item specification.  See
+Info node `(elisp)Tool Bar'.  Items are added from left to right.
+
+ICON is the base name of a file containing the image to use.  The
+function will first try to use low-color/ICON.xpm if display-color-cells
+is less or equal to 256, then ICON.xpm, then ICON.pbm, and finally
+ICON.xbm, using `find-image'."
+  (let* ((fg (face-attribute 'tool-bar :foreground))
+	 (bg (face-attribute 'tool-bar :background))
+	 (colors (nconc (if (eq fg 'unspecified) nil (list :foreground fg))
+			(if (eq bg 'unspecified) nil (list :background bg))))
+	 (xpm-spec (list :type 'xpm :file (concat icon ".xpm")))
+	 (xpm-lo-spec (if (> (display-color-cells) 256)
+			  nil
+			(list :type 'xpm :file
+                              (concat "low-color/" icon ".xpm"))))
+	 (pbm-spec (append (list :type 'pbm :file
+                                 (concat icon ".pbm")) colors))
+	 (xbm-spec (append (list :type 'xbm :file
+                                 (concat icon ".xbm")) colors))
+	 (image (find-image
+		(if (display-color-p)
+		    (list xpm-lo-spec xpm-spec pbm-spec xbm-spec)
+		  (list pbm-spec xbm-spec xpm-lo-spec xpm-spec)))))
+
+    (when (and (display-images-p) image)
+      (unless (image-mask-p image)
+	(setq image (append image '(:mask heuristic))))
+      (define-key-after map (vector key)
+	`(menu-item ,(symbol-name key) ,def :image ,image ,@props)))))
+
+;;;###autoload
+(defun tool-bar-add-item-from-menu (command icon &optional map &rest props)
+  "Define tool bar binding for COMMAND using the given ICON in keymap MAP.
+This makes a binding for COMMAND in `tool-bar-map', copying its
+binding from the menu bar in MAP (which defaults to `global-map'), but
+modifies the binding by adding an image specification for ICON.  It
+finds ICON just like `tool-bar-add-item'.  PROPS are additional
+properties to add to the binding.
+
+MAP must contain appropriate binding for `[menu-bar]' which holds a keymap.
+
+Use this function only to make bindings in the global value of `tool-bar-map'.
+To define items in any other map, use `tool-bar-local-item'."
+  (apply 'tool-bar-local-item-from-menu command icon
+	 (default-value 'tool-bar-map) map props))
+
+;;;###autoload
+(defun tool-bar-local-item-from-menu (command icon in-map &optional from-map &rest props)
+  "Define tool bar binding for COMMAND using the given ICON in keymap MAP.
+This makes a binding for COMMAND in IN-MAP, copying its binding from
+the menu bar in FROM-MAP (which defaults to `global-map'), but
+modifies the binding by adding an image specification for ICON.  It
+finds ICON just like `tool-bar-add-item'.  PROPS are additional
+properties to add to the binding.
+
+MAP must contain appropriate binding for `[menu-bar]' which holds a keymap."
+  (unless from-map
+    (setq from-map global-map))
+  (let* ((menu-bar-map (lookup-key from-map [menu-bar]))
+	 (keys (where-is-internal command menu-bar-map))
+	 (fg (face-attribute 'tool-bar :foreground))
+	 (bg (face-attribute 'tool-bar :background))
+	 (colors (nconc (if (eq fg 'unspecified) nil (list :foreground fg))
+			(if (eq bg 'unspecified) nil (list :background bg))))
+	 (xpm-spec (list :type 'xpm :file (concat icon ".xpm")))
+	 (xpm-lo-spec (if (> (display-color-cells) 256)
+			  nil
+			(list :type 'xpm :file
+                              (concat "low-color/" icon ".xpm"))))
+	 (pbm-spec (append (list :type 'pbm :file
+                                 (concat icon ".pbm")) colors))
+	 (xbm-spec (append (list :type 'xbm :file
+                                 (concat icon ".xbm")) colors))
+	 (spec (if (display-color-p)
+		   (list xpm-lo-spec xpm-spec pbm-spec xbm-spec)
+		 (list pbm-spec xbm-spec xpm-lo-spec xpm-spec)))
+	 (image (find-image spec))
+	 submap key)
+    (when (and (display-images-p) image)
+      ;; We'll pick up the last valid entry in the list of keys if
+      ;; there's more than one.
+      (dolist (k keys)
+	;; We're looking for a binding of the command in a submap of
+	;; the menu bar map, so the key sequence must be two or more
+	;; long.
+	(if (and (vectorp k)
+		 (> (length k) 1))
+	    (let ((m (lookup-key menu-bar-map (substring k 0 -1)))
+		  ;; Last element in the bound key sequence:
+		  (kk (aref k (1- (length k)))))
+	      (if (and (keymapp m)
+		       (symbolp kk))
+		  (setq submap m
+			key kk)))))
+      (when (and (symbolp submap) (boundp submap))
+	(setq submap (eval submap)))
+      (unless (image-mask-p image)
+	(setq image (append image '(:mask heuristic))))
+      (let ((defn (assq key (cdr submap))))
+	(if (eq (cadr defn) 'menu-item)
+	    (define-key-after in-map (vector key)
+	      (append (cdr defn) (list :image image) props))
+	  (setq defn (cdr defn))
+	  (define-key-after in-map (vector key)
+	    (let ((rest (cdr defn)))
+	      ;; If the rest of the definition starts
+	      ;; with a list of menu cache info, get rid of that.
+	      (if (and (consp rest) (consp (car rest)))
+		  (setq rest (cdr rest)))
+	      (append `(menu-item ,(car defn) ,rest)
+		      (list :image image) props))))))))
+
+;;; Set up some global items.  Additions/deletions up for grabs.
+
+(defun tool-bar-setup ()
+  ;; People say it's bad to have EXIT on the tool bar, since users
+  ;; might inadvertently click that button.
+  ;;(tool-bar-add-item-from-menu 'save-buffers-kill-emacs "exit")
+  (tool-bar-add-item-from-menu 'find-file "new")
+  (tool-bar-add-item-from-menu 'find-file-existing "open")
+  (tool-bar-add-item-from-menu 'dired "diropen")
+  (tool-bar-add-item-from-menu 'kill-this-buffer "close")
+  (tool-bar-add-item-from-menu 'save-buffer "save" nil
+			       :visible '(or buffer-file-name
+					     (not (eq 'special
+						      (get major-mode
+							   'mode-class)))))
+  (tool-bar-add-item-from-menu 'write-file "saveas" nil
+			       :visible '(or buffer-file-name
+					     (not (eq 'special
+						      (get major-mode
+							   'mode-class)))))
+  (tool-bar-add-item-from-menu 'undo "undo" nil
+			       :visible '(not (eq 'special (get major-mode
+								'mode-class))))
+  (tool-bar-add-item-from-menu (lookup-key menu-bar-edit-menu [cut])
+			       "cut" nil
+			       :visible '(not (eq 'special (get major-mode
+								'mode-class))))
+  (tool-bar-add-item-from-menu (lookup-key menu-bar-edit-menu [copy])
+			       "copy")
+  (tool-bar-add-item-from-menu (lookup-key menu-bar-edit-menu [paste])
+			       "paste" nil
+			       :visible '(not (eq 'special (get major-mode
+								'mode-class))))
+  (tool-bar-add-item-from-menu 'nonincremental-search-forward "search")
+  ;;(tool-bar-add-item-from-menu 'ispell-buffer "spell")
+
+  ;; There's no icon appropriate for News and we need a command rather
+  ;; than a lambda for Read Mail.
+  ;;(tool-bar-add-item-from-menu 'compose-mail "mail/compose")
+
+  (tool-bar-add-item-from-menu 'print-buffer "print")
+  (tool-bar-add-item "preferences" 'customize 'customize
+		     :help "Edit preferences (customize)")
+
+  (tool-bar-add-item "help" (lambda ()
+			      (interactive)
+			      (popup-menu menu-bar-help-menu))
+		     'help
+		     :help "Pop up the Help menu")
+  )
+
+(provide 'tool-bar)
+
+;;; arch-tag: 15f30f0a-d0d7-4d50-bbb7-f48fd0c8582f
+;;; tool-bar.el ends here
--- a/lisp/toolbar/README	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-The following icons are from GTK+ 2.x:
-
-    close.xpm copy.xpm cut.xpm help.xpm home.xpm
-    index.xpm jump_to.xpm left_arrow.xpm new.xpm open.xpm
-    paste.xpm preferences.xpm print.xpm right_arrow.xpm save.xpm
-    saveas.xpm search.xpm spell.xpm undo.xpm up_arrow.xpm
-
-    back_arrow.xpm and fwd_arrow.xpm are slightly modified undo and redo.
-
-    diropen.xpm is file-manager.png from Gnome hicolor theme.
-
-They are not part of Emacs, but distributed and used by Emacs.
Binary file lisp/toolbar/attach.pbm has changed
Binary file lisp/toolbar/back_arrow.pbm has changed
--- a/lisp/toolbar/back_arrow.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/* XPM */
-static char *back_arrow_xpm[] = {
-"24 24 30 1",
-"  c #000000",
-". c #53692A",
-"X c #59702D",
-"o c #657255",
-"O c #6D7A5B",
-"+ c #6D8839",
-"@ c #7C9B40",
-"# c #748261",
-"$ c #7F8E6B",
-"% c #818F71",
-"& c #879772",
-"* c #8C9A7F",
-"= c #85A24D",
-"- c #8BA859",
-"; c #92AD62",
-": c #95A77E",
-"> c #98AF74",
-", c #9BB572",
-"< c #9BAA87",
-"1 c #9CAF84",
-"2 c #A4B690",
-"3 c #A8BCA6",
-"4 c #ADBDA0",
-"5 c #AFC394",
-"6 c #BAD09D",
-"7 c #B5C3A9",
-"8 c #BED2A3",
-"9 c #D5E1C6",
-"0 c #FFFFFF",
-"q c None",
-"qqqqqqqqqqqqqqqqqqqqqqqq",
-"qqqqqqqqqqqqqqqqqqqqqqqq",
-"qqqqqqqqqqqqqqqqqqqqqqqq",
-"qqqqqqqqqq qqqqqqqqqqqqq",
-"qqqqqqqqq  qqqqqqqqqqqqq",
-"qqqqqqqq 9 qqqqqqqqqqqqq",
-"qqqqqqq 96    qqqqqqqqqq",
-"qqqqqq 968664% qqqqqqqqq",
-"qqqqq 966666663 qqqqqqqq",
-"qqqq <666666666* qqqqqqq",
-"qqqqq X@@@@@@;67  qqqqqq",
-"qqqqqq .@@@@@@=6$ qqqqqq",
-"qqqqqqq .@   X@,2 qqqqqq",
-"qqqqqqqq X q  +-6 qqqqqq",
-"qqqqqqqqq  qq  @6 qqqqqq",
-"qqqqqqqqqq qqq -: qqqqqq",
-"qqqqqqqqqqqqqq >o qqqqqq",
-"qqqqqqqqqqqqqq 5 qqqqqqq",
-"qqqqqqqqqqqqq 1O qqqqqqq",
-"qqqqqqqqqqqq &# qqqqqqqq",
-"qqqqqqqqqqqqq  qqqqqqqqq",
-"qqqqqqqqqqqqqqqqqqqqqqqq",
-"qqqqqqqqqqqqqqqqqqqqqqqq",
-"qqqqqqqqqqqqqqqqqqqqqqqq"};
Binary file lisp/toolbar/cancel.pbm has changed
--- a/lisp/toolbar/cancel.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/* XPM */
-static char *magick[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 5 1",
-"  c #01c601c601c6",
-". c Gray40",
-"X c #a527a527a527",
-"o c #da22da22da22",
-"O c None",
-/* pixels */
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOO       OOOOOOOOO",
-"OOOOOO  XXooXX.  OOOOOOO",
-"OOOOO XooooooooX. OOOOOO",
-"OOOOO oooooooooo. OOOOOO",
-"OOOO Xooo ooo XoX. OOOOO",
-"OOOO Xoo   o   XXX OOOOO",
-"OOOO oooo     XoXX OOOOO",
-"OOOO Xoooo   ooXXX OOOOO",
-"OOOO Xooo     OXX. OOOOO",
-"OOOO Xoo   o   XX. OOOOO",
-"OOOO .Xoo ooX XX.. OOOOO",
-"OOOOO XXOoXoXXX.. OOOOOO",
-"OOOOO XXXXXXXXX.. OOOOOO",
-"OOOOOO  XXXX...  OOOOOOO",
-"OOOOOOOO       OOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO"
-};
Binary file lisp/toolbar/close.pbm has changed
--- a/lisp/toolbar/close.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/* XPM */
-static char * close_xpm[] = {
-"24 24 2 1",
-" 	c None",
-".	c #000000",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"       .      .         ",
-"        .    ...        ",
-"        ..  ....        ",
-"         .. ...         ",
-"         .....          ",
-"          ...           ",
-"         .....          ",
-"        .......         ",
-"       ...  ....        ",
-"      ...    ....       ",
-"     ...      ..        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/copy.pbm has changed
--- a/lisp/toolbar/copy.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/* XPM */
-static char * copy_xpm[] = {
-"24 24 26 1",
-" 	c None",
-".	c #000000",
-"+	c #B4B4B4",
-"@	c #F8F8F8",
-"#	c #F6F6F6",
-"$	c #C3C3C3",
-"%	c #E9E9E9",
-"&	c #989898",
-"*	c #828282",
-"=	c #8A8A8A",
-"-	c #E8E8E8",
-";	c #636363",
-">	c #5A5A5A",
-",	c #6B6B6B",
-"'	c #B3B3B3",
-")	c #FFFFFF",
-"!	c #D6D6D6",
-"~	c #818181",
-"{	c #A7A7A7",
-"]	c #8F8F8F",
-"^	c #C6C6C6",
-"/	c #808080",
-"(	c #E7E7E7",
-"_	c #6D6D6D",
-":	c #767676",
-"<	c #F5F5F5",
-"                        ",
-" .............          ",
-" .+@@@@@@@@@#$.         ",
-" .@%%%%%%%%%%%.         ",
-" .@&**=%+*%*+%.         ",
-" .@%%%%%%%%---.         ",
-" .@;>%,*+-............  ",
-" .@%%%%%%.'))))))))))!. ",
-" .@&**%*~.)))))))))))). ",
-" .@%%%%%-.){]]&)^])]^). ",
-" .@;>>%,/.)))))))))))). ",
-" .@%%%%%(.)_;):]^)^])). ",
-" .@&**%*~.)))))))))))). ",
-" .<%%%%%-.){]])]]^)&]). ",
-" .$%%%%%-.)))))))))))). ",
-"  ........)_;;):]^)^]). ",
-"         .)))))))))))). ",
-"         .){]])]]^)&]). ",
-"         .)))))))))))). ",
-"         .!))))))))))!. ",
-"         .............. ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/cut.pbm has changed
--- a/lisp/toolbar/cut.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/* XPM */
-static char * cut_xpm[] = {
-"24 24 40 1",
-" 	c None",
-".	c #000000",
-"+	c #C9C7C2",
-"@	c #E6E4E0",
-"#	c #EFEEED",
-"$	c #494946",
-"%	c #73726E",
-"&	c #F0EEED",
-"*	c #7F7D75",
-"=	c #F2F1EF",
-"-	c #D2CFC8",
-";	c #E7E7E4",
-">	c #BAB5AB",
-",	c #565653",
-"'	c #EDECE9",
-")	c #A4A097",
-"!	c #817F7E",
-"~	c #4E4C48",
-"{	c #F6F5F4",
-"]	c #474541",
-"^	c #EFEEEC",
-"/	c #8C8B8A",
-"(	c #F3F2F0",
-"_	c #77746D",
-":	c #323232",
-"<	c #EBEBEA",
-"[	c #605D58",
-"}	c #F5F4F3",
-"|	c #CECCC7",
-"1	c #363634",
-"2	c #6F6E6D",
-"3	c #BEBDBB",
-"4	c #EAE7E4",
-"5	c #B8B5B1",
-"6	c #474747",
-"7	c #DAD8D4",
-"8	c #9B9996",
-"9	c #161615",
-"0	c #6D6B6A",
-"a	c #3A3837",
-"                        ",
-"                        ",
-"      .        .        ",
-"      .        .        ",
-"     .+.      .@.       ",
-"     .#$      %@.       ",
-"     .&*.    .=-.       ",
-"     .;>,    %').       ",
-"      !#*.  .=-~        ",
-"      .{>]  ~^>.        ",
-"       /(_.:<-[         ",
-"       .}|123>.         ",
-"        .456>.          ",
-"         .78..          ",
-"         .90a.          ",
-"     .............      ",
-"     . ...  ... ...     ",
-"    ..  ..   ..  ..     ",
-"    .    .   .    .     ",
-"    ..  ..   ..  ..     ",
-"     ....     .. .      ",
-"     ....     ....      ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/diropen.pbm has changed
--- a/lisp/toolbar/diropen.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/* XPM */
-static char * diropen_xpm[] = {
-"19 24 17 1",
-" 	c None",
-".	c #000100",
-"+	c #C6C9A6",
-"@	c #D0D3AF",
-"#	c #93997C",
-"$	c #E6E7D0",
-"%	c #BEC19E",
-"&	c #B4B895",
-"*	c #A7AA88",
-"=	c #6B6D59",
-"-	c #4A4E40",
-";	c #7C8166",
-">	c #898E72",
-",	c #3C4032",
-"'	c #575845",
-")	c #34332C",
-"!	c #24231D",
-"  ...............  ",
-" .+@@@@@@@@@@@@@#. ",
-".$@@@@@@@@@@@@@@@#.",
-".++++%%%%%%%%%&&&*.",
-".&&&&&&&&&&******#.",
-".*%+++%%%%%%%%%&=#.",
-".*+***********##-#.",
-".*+****;===;####-#.",
-".*+****=*****###-#.",
-".*+****;*****###-#.",
-".*+****########>-#.",
-".*&######>>>>>>>,>.",
-".*#-------------'>)",
-".*&&&&&&&&&&&&&*#>)",
-".*&************#'>)",
-".*&***********##,>)",
-".*&****====;###>,>)",
-".#&****=**#**##>,;)",
-".#&****>****###>,;)",
-".#&****########>,;)",
-".##''''''''''''',;)",
-".#>==============;)",
-".''''''''''''''''-!",
-" ................. "};
Binary file lisp/toolbar/exit.pbm has changed
--- a/lisp/toolbar/exit.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/* XPM */
-static char *magick[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 6 1",
-"  c Gray0",
-". c #ae6e66e76a0a",
-"X c #c6c67d7d8181",
-"o c #cdcd86868989",
-"O c #e4e4e4e4dcdc",
-"+ c None",
-/* pixels */
-"++++++++++++++++++++++++",
-"++++++++++++++++++++++++",
-"++++++++++++++++++++++++",
-"++++++++++++++++++++++++",
-"++++++++++++++++++++++++",
-"++++++++++         +++++",
-"++++++++++ OOOOOO  +++++",
-"++++++++++ OOOOOO  +++++",
-"++++++++   OOOOOO  +++++",
-"++++++++ . OOOOOO  +++++",
-"+++      .X OO  O  +++++",
-"+++ ......Xo O  O  +++++",
-"+++ ......Xo OOOO  +++++",
-"+++      .X OOOOO  +++++",
-"++++++++ . OOOOOO  +++++",
-"++++++++   OOOOOO  +++++",
-"++++++++++ OOOO    +++++",
-"++++++++++ OO      +++++",
-"++++++++++         +++++",
-"++++++++++++++++++++++++",
-"++++++++++++++++++++++++",
-"++++++++++++++++++++++++",
-"++++++++++++++++++++++++",
-"++++++++++++++++++++++++"
-};
Binary file lisp/toolbar/fld_open.pbm has changed
--- a/lisp/toolbar/fld_open.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/* XPM */
-static char *magick[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 4 1",
-"  c Gray0",
-". c #909090909090",
-"X c #fefefefefefe",
-"o c None",
-/* pixels */
-"oooooooooooooooooooooooo",
-"oooooooooooooooooooooooo",
-"oooooooooooooooooooooooo",
-"oooooooooooooooooooooooo",
-"oooooooooooooooooooooooo",
-"oooooooooooooo  oooooooo",
-"ooooooooooo   .. ooooooo",
-"oooo  oo   ....XXo   ooo",
-"ooo ..  ....XXXX  .. ooo",
-"ooo .....XXXXX  .... ooo",
-"oooo ..XXXXX  ...... ooo",
-"oooo ..XXX  ........ ooo",
-"ooooo .XX .......... ooo",
-"ooooo ..X .......... ooo",
-"oooooo .X .......... ooo",
-"oooooo .. ........  oooo",
-"ooooooo . ......  oooooo",
-"ooooooo . ..... oooooooo",
-"oooooooo  ...  ooooooooo",
-"oooooooo  .  ooooooooooo",
-"ooooooooo  ooooooooooooo",
-"oooooooooooooooooooooooo",
-"oooooooooooooooooooooooo",
-"oooooooooooooooooooooooo"
-};
Binary file lisp/toolbar/fwd_arrow.pbm has changed
--- a/lisp/toolbar/fwd_arrow.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/* XPM */
-static char *fwd_arrow_xpm[] = {
-"24 24 43 1",
-"  c #000000",
-". c #53692A",
-"X c #59702D",
-"o c #657255",
-"O c #6D7A5B",
-"+ c #6D8839",
-"@ c #7C9B40",
-"# c #748261",
-"$ c #7F8E6B",
-"% c #818F71",
-"& c #879772",
-"* c #8C9A7F",
-"= c #85A24D",
-"- c #8BA859",
-"; c #92AD62",
-": c #95A77E",
-"> c #98AF74",
-", c #9BB572",
-"< c #919889",
-"1 c #92998C",
-"2 c #939A8D",
-"3 c #99A28F",
-"4 c #9BAA87",
-"5 c #9CAF84",
-"6 c #A4B690",
-"7 c #A8BCA6",
-"8 c #ADBDA0",
-"9 c #AFC394",
-"0 c #BAD09D",
-"q c #B5C3A9",
-"w c #BED2A3",
-"e c #BFD3A6",
-"r c #C2D5AA",
-"t c #C5D7AE",
-"y c #C8D9B2",
-"u c #CDDCBC",
-"i c #D1DFBE",
-"p c #D2E0BF",
-"a c #D3E0C1",
-"s c #D4E0C5",
-"d c #D5E1C6",
-"f c #FFFFFF",
-"g c None",
-"gggggggggggggggggggggggg",
-"gggggggggggggggggggggggg",
-"gggggggggggggggggggggggg",
-"ggggggggggggg gggggggggg",
-"ggggggggggggg  ggggggggg",
-"ggggggggggggg 2 gggggggg",
-"gggggggggg    02 ggggggg",
-"ggggggggg &6riw03 gggggg",
-"gggggggg 7suat000< ggggg",
-"ggggggg *saie000004 gggg",
-"gggggg  qs;@@@@@@X ggggg",
-"gggggg $y=@@@@@@. gggggg",
-"gggggg 6,@X   @. ggggggg",
-"gggggg 0@+  g X gggggggg",
-"gggggg 0@  gg  ggggggggg",
-"gggggg :- ggg gggggggggg",
-"gggggg o> gggggggggggggg",
-"ggggggg 9 gggggggggggggg",
-"ggggggg O5 ggggggggggggg",
-"gggggggg #& gggggggggggg",
-"ggggggggg  ggggggggggggg",
-"gggggggggggggggggggggggg",
-"gggggggggggggggggggggggg",
-"gggggggggggggggggggggggg"};
Binary file lisp/toolbar/gud-break.pbm has changed
--- a/lisp/toolbar/gud-break.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/* XPM */
-static char * stop_xpm[] = {
-"24 24 3 1",
-" 	c None",
-".	c #F8F810104040",
-"X	c #F8F8FCFCF8F8",
-"                        ",
-"                        ",
-"       ..........       ",
-"      ............      ",
-"     ..............     ",
-"    ................    ",
-"   ..................   ",
-"  ..XX..XXX..XX..XXX..  ",
-"  .X..X..X..X..X.X..X.  ",
-"  .X.....X..X..X.X..X.  ",
-"  .X.....X..X..X.X..X.  ",
-"  ..X....X..X..X.X..X.  ",
-"  ...X...X..X..X.XXX..  ",
-"  ....X..X..X..X.X....  ",
-"  ....X..X..X..X.X....  ",
-"  .X..X..X..X..X.X....  ",
-"  ..XX...X...XX..X....  ",
-"   ..................   ",
-"    ................    ",
-"     ..............     ",
-"      ............      ",
-"       ..........       ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/gud-cont.pbm has changed
--- a/lisp/toolbar/gud-cont.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/* XPM */
-static char * continue_xpm[] = {
-"24 24 6 1",
-" 	c None",
-".	c #cc0033",
-"X	c #d99faa",
-"o	c #616161",
-"O	c #2a1f55",
-"+	c #aa9faa",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"     .X                 ",
-"     X..X               ",
-"   .......  oO  Oo      ",
-"     X..X  oO+  +Oo     ",
-"     .X    OO    OO     ",
-"           OO    OO     ",
-"           OO    OO     ",
-"           Oo    oO     ",
-"          OO      OO    ",
-"           Oo    oO     ",
-"           OO    OO     ",
-"           OO    OO     ",
-"           OO    OO     ",
-"           oO+  +Oo     ",
-"            oO  Oo      ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/gud-down.pbm has changed
--- a/lisp/toolbar/gud-down.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/* XPM */
-static char * down_xpm[] = {
-"24 24 14 1",
-" 	c None",
-".	c #000000000000",
-"X	c #7F7F7F7F7F7F",
-"o	c #2D2D2D2D2D2D",
-"O	c #616161616161",
-"+	c #FFFFCCCC6666",
-"@	c #929255550000",
-"#	c #696969696969",
-"$	c #6D6DAAAAFFFF",
-"%	c #49495555AAAA",
-"&	c #333333339999",
-"*	c #434343434343",
-"=	c #6666FFFF6666",
-"-	c #4949AAAA5555",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                 .      ",
-"                 .      ",
-"                 .      ",
-"               . . .    ",
-"               X...X    ",
-"                ...     ",
-"     oooooooooooX.X     ",
-"     O+++++++++O .      ",
-"     .@@@@@@@@@.        ",
-"    ...............     ",
-"    #$%$$$$$$$$$%$#     ",
-"    o%&%%%%%%%%%&%o     ",
-"    ...............     ",
-"     *===========*      ",
-"     o-----------.      ",
-"     o............      ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/gud-finish.pbm has changed
--- a/lisp/toolbar/gud-finish.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/* XPM */
-static char * finish_xpm[] = {
-"24 24 7 1",
-" 	c None",
-".	c #cc0033",
-"X	c #616161",
-"o	c #2a1f55",
-"O	c #adadad",
-"+	c #d40000",
-"@	c #cc9999",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"           .....        ",
-"          .     .       ",
-"         .       .      ",
-"      Xo . oX    .      ",
-"     XoO . OoX   .      ",
-"     oo  .  oo +@.@+    ",
-"     oo     oo @...@    ",
-"     oo     oo  ...     ",
-"     oX     Xo  @.@     ",
-"    oo       oo  .      ",
-"     oX     Xo          ",
-"     oo     oo          ",
-"     oo     oo          ",
-"     oo     oo          ",
-"     XoO   OoX          ",
-"      Xo   oX           ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/gud-n.pbm has changed
--- a/lisp/toolbar/gud-n.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/* XPM */
-static char * next_xpm[] = {
-"24 24 7 1",
-" 	c None",
-".	c #cc0033",
-"X	c #616161",
-"o	c #2a1f55",
-"O	c #adadad",
-"+	c #d40000",
-"@	c #cc9999",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"      ..........        ",
-"     .          .       ",
-"    .            .      ",
-"    .  Xo  oX    .      ",
-"    . XoO  OoX   .      ",
-"    . oo    oo +@.@+    ",
-"      oo    oo @...@    ",
-"      oo    oo  ...     ",
-"      oX    Xo  @.@     ",
-"     oo      oo  .      ",
-"      oX    Xo          ",
-"      oo    oo          ",
-"      oo    oo          ",
-"      oo    oo          ",
-"      XoO  OoX          ",
-"       Xo  oX           ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/gud-ni.pbm has changed
--- a/lisp/toolbar/gud-ni.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/* XPM */
-static char * gud_nexti_xpm[] = {
-"24 24 6 1",
-" 	c None",
-".	c #CCCC00003333",
-"X	c #616161616161",
-"o	c #D4D400000000",
-"O	c #CCCC99999999",
-"+	c #2A2A1F1F5555",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"      ..........        ",
-"     .          .       ",
-"    .            .      ",
-"    .            .      ",
-"    .            .      ",
-"    .   X  X   oO.Oo    ",
-"       X+  +X  O...O    ",
-"      X+    +X  ...     ",
-"     X+      +X O.O     ",
-"    X+        +X .      ",
-"    +X        X+        ",
-"     +X      X+         ",
-"      +X    X+          ",
-"       +X  X+           ",
-"        +  +            ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/gud-print.pbm has changed
--- a/lisp/toolbar/gud-print.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/* XPM */
-static char * print_xpm[] = {
-"24 24 2 1",
-" 	c None",
-".	c #000000000000",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"         ... ...        ",
-"          ... ...       ",
-"          ..   ..       ",
-"          ..   ..       ",
-"          ..   ..       ",
-"          ..   ..       ",
-"          ..   ..       ",
-"          ... ..        ",
-"          .. ..         ",
-"          ..            ",
-"          ..            ",
-"          ..            ",
-"         ....           ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/gud-pstar.pbm has changed
--- a/lisp/toolbar/gud-pstar.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/* XPM */
-static char * gud_pstar_xpm[] = {
-"24 24 2 1",
-" 	c #BDBDBEBEBDBD",
-".	c #000000000000",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"         ... ...        ",
-"          ... ...       ",
-"          ..   ..   .   ",
-"          ..   .. . . . ",
-"          ..   ..  ...  ",
-"          ..   .. . . . ",
-"          ..   ..   .   ",
-"          ... ..        ",
-"          .. ..         ",
-"          ..            ",
-"          ..            ",
-"          ..            ",
-"         ....           ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/gud-remove.pbm has changed
--- a/lisp/toolbar/gud-remove.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/* XPM */
-static char * go_xpm[] = {
-"24 24 4 1",
-" 	c None",
-".	c #000080800000",
-"X	c #FFFFFFFFFFFF",
-"o	c #F8F8FCFCF8F8",
-"                        ",
-"                        ",
-"       ..........       ",
-"      ............      ",
-"     ..............     ",
-"    ................    ",
-"   ..................   ",
-"  ......XX...oo.......  ",
-"  .....X..X.o..o......  ",
-"  .....X....o..o......  ",
-"  .....X....o..o......  ",
-"  .....X....o..o......  ",
-"  .....X.XX.o..o......  ",
-"  .....X..X.o..o......  ",
-"  .....X..X.o..o......  ",
-"  .....X..X.o..o......  ",
-"  ......XX...oo.......  ",
-"   ..................   ",
-"    ................    ",
-"     ..............     ",
-"      ............      ",
-"       ..........       ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/gud-run.pbm has changed
--- a/lisp/toolbar/gud-run.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/* XPM */
-static char * run_xpm[] = {
-"24 24 9 1",
-" 	c None",
-".	c #000080",
-"X	c #aa9faa",
-"o	c #b5b9b5",
-"O	c #808080",
-"+	c #7f7f7f",
-"@	c #5a60a5",
-"#	c #9a999a",
-"$	c #616161",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"              ..        ",
-"             X..        ",
-"     oO+++++...@        ",
-"         @.....         ",
-"    oO+++......         ",
-"         .@.....        ",
-"     oO++@@......       ",
-"          ....@ ..      ",
-"      ..  .....@ @      ",
-"     @...@..@...        ",
-"     .#..... @..        ",
-"        @..  #..        ",
-"             ..@        ",
-"            +.@         ",
-"            ..$+        ",
-"            ....        ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/gud-s.pbm has changed
--- a/lisp/toolbar/gud-s.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/* XPM */
-static char * step_xpm[] = {
-"24 24 6 1",
-" 	c None",
-".	c #d40000",
-"X	c #616161",
-"o	c #2a1f55",
-"O	c #adadad",
-"+	c #cc9999",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"      .....             ",
-"     .     .            ",
-"    .       .           ",
-"    .  Xo   .   oX      ",
-"    . XoO   .   OoX     ",
-"    . oo  .+.+.  oo     ",
-"      oo  +...+  oo     ",
-"      oo   ...   oo     ",
-"      oX   +.+   Xo     ",
-"     oo     .     oo    ",
-"      oX         Xo     ",
-"      oo         oo     ",
-"      oo         oo     ",
-"      oo         oo     ",
-"      XoO       OoX     ",
-"       Xo       oX      ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/gud-si.pbm has changed
--- a/lisp/toolbar/gud-si.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/* XPM */
-static char * gud_stepi_xpm[] = {
-"24 24 5 1",
-" 	c None",
-".	c #D4D400000000",
-"X	c #616161616161",
-"o	c #2A2A1F1F5555",
-"O	c #CCCC99999999",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"      .....             ",
-"     .     .            ",
-"    .       .           ",
-"    .       .           ",
-"    .   X   .   X       ",
-"    .  Xo .O.O. oX      ",
-"      Xo  O...O  oX     ",
-"     Xo    ...    oX    ",
-"    Xo     O.O     oX   ",
-"    oX      .      Xo   ",
-"     oX           Xo    ",
-"      oX         Xo     ",
-"       oX       Xo      ",
-"        o       o       ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/gud-until.pbm has changed
--- a/lisp/toolbar/gud-until.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/* XPM */
-static char * goto_xpm[] = {
-"24 24 6 1",
-" 	c None",
-".	c #ff0000",
-"X	c #616161",
-"o	c #2a1f55",
-"O	c #adadad",
-"+	c #cc9999",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-" .                      ",
-" .                      ",
-" .          Xo   oX     ",
-" .         XoO   OoX    ",
-" .         oo     oo    ",
-" .         oo     oo    ",
-" .  .+     oo     oo    ",
-"  . +..+   oX     Xo    ",
-"   ...... oo       oo   ",
-"    +..+   oX     Xo    ",
-"    .+     oo     oo    ",
-"           oo     oo    ",
-"           oo     oo    ",
-"           XoO   OoX    ",
-"            Xo   oX     ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/gud-up.pbm has changed
--- a/lisp/toolbar/gud-up.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/* XPM */
-static char * up_xpm[] = {
-"24 24 14 1",
-" 	c None",
-".	c #000000000000",
-"X	c #7F7F7F7F7F7F",
-"o	c #2D2D2D2D2D2D",
-"O	c #616161616161",
-"+	c #FFFFCCCC6666",
-"@	c #929255550000",
-"#	c #696969696969",
-"$	c #6D6DAAAAFFFF",
-"%	c #49495555AAAA",
-"&	c #333333339999",
-"*	c #434343434343",
-"=	c #6666FFFF6666",
-"-	c #4949AAAA5555",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                 .      ",
-"                X.X     ",
-"                ...     ",
-"               X...X    ",
-"               . . .    ",
-"                 .      ",
-"     oooooooooo. .      ",
-"     O+++++++++O .      ",
-"     .@@@@@@@@@.        ",
-"    ...............     ",
-"    #$%$$$$$$$$$%$#     ",
-"    o%&%%%%%%%%%&%o     ",
-"    ...............     ",
-"     *===========*      ",
-"     o-----------.      ",
-"     o............      ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/gud-watch.pbm has changed
--- a/lisp/toolbar/gud-watch.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/* XPM */
-static char * watch_xpm[] = {
-"24 24 11 1",
-" 	c None",
-".	c #808080808080",
-"X	c #000000000000",
-"o	c #A5A59F9FA3A3",
-"O	c #B5B5B9B9B5B5",
-"+	c #070707070707",
-"@	c #616161616161",
-"#	c #2D2D30302D2D",
-"$	c #020202020202",
-"%	c #9A9A99999A9A",
-"&	c #2F2F1A1A0202",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"          .XX           ",
-"         oX. X Xo       ",
-"        O+@   X@#       ",
-"        #    X O$o      ",
-"       ##       @#      ",
-"      @+O       O$o     ",
-"     %XX&%   %&X&##     ",
-"    %#O O#%X%#O O#X     ",
-"    &O   O& &O   O&     ",
-"    X     X X     X     ",
-"    &O   O& &O   O&     ",
-"    %#O O#% %#O O#%     ",
-"     %&X&%   %&X&%      ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/help.pbm has changed
--- a/lisp/toolbar/help.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,271 +0,0 @@
-/* XPM */
-static char * help_xpm[] = {
-"24 24 244 2",
-"  	c None",
-". 	c #000000",
-"+ 	c #454442",
-"@ 	c #1D1D1C",
-"# 	c #040404",
-"$ 	c #1B1B1B",
-"% 	c #3D3C3A",
-"& 	c #4D4C4B",
-"* 	c #2F2F2D",
-"= 	c #C1BFBB",
-"- 	c #ECEAE7",
-"; 	c #F5F3F0",
-"> 	c #F2F0EC",
-", 	c #E1DFDC",
-"' 	c #AFADAA",
-") 	c #272726",
-"! 	c #020202",
-"~ 	c #3F3E3E",
-"{ 	c #36302D",
-"] 	c #181818",
-"^ 	c #FBF8F5",
-"/ 	c #FEFCF8",
-"( 	c #FAF8F5",
-"_ 	c #F5F4F1",
-": 	c #F2F1ED",
-"< 	c #F1EFEB",
-"[ 	c #F1EEEB",
-"} 	c #EAE9E6",
-"| 	c #DAD8D4",
-"1 	c #100E0E",
-"2 	c #1F100E",
-"3 	c #AF3A1E",
-"4 	c #FBAB93",
-"5 	c #FAE9E3",
-"6 	c #F0EFEB",
-"7 	c #E9E8E5",
-"8 	c #EAE8E6",
-"9 	c #ECEAE8",
-"0 	c #EDEBE9",
-"a 	c #EDEBE8",
-"b 	c #EACFC6",
-"c 	c #D5340A",
-"d 	c #751904",
-"e 	c #100806",
-"f 	c #34160D",
-"g 	c #AF3C20",
-"h 	c #FCCCBD",
-"i 	c #F7BEAD",
-"j 	c #E67554",
-"k 	c #DFDDDB",
-"l 	c #DBD9D6",
-"m 	c #D8D7D3",
-"n 	c #DBDAD6",
-"o 	c #E3E2DE",
-"p 	c #ECEBE8",
-"q 	c #E5572D",
-"r 	c #E33A0B",
-"s 	c #D4340A",
-"t 	c #691504",
-"u 	c #100504",
-"v 	c #582C22",
-"w 	c #0F0F0F",
-"x 	c #FDD4C8",
-"y 	c #F7BFAF",
-"z 	c #E87554",
-"A 	c #D5512B",
-"B 	c #C68270",
-"C 	c #BEBDBA",
-"D 	c #A5A3A0",
-"E 	c #9C9A95",
-"F 	c #B9B7B2",
-"G 	c #D7D6D2",
-"H 	c #E7E5E2",
-"I 	c #E79A85",
-"J 	c #E53C0B",
-"K 	c #E43C0B",
-"L 	c #E23A0B",
-"M 	c #C93009",
-"N 	c #010000",
-"O 	c #040100",
-"P 	c #FAB19C",
-"Q 	c #FACCBE",
-"R 	c #EB8264",
-"S 	c #D8532D",
-"T 	c #C0340F",
-"U 	c #932006",
-"V 	c #141412",
-"W 	c #857974",
-"X 	c #DA370B",
-"Y 	c #EC7C5B",
-"Z 	c #E95B32",
-"` 	c #DE380B",
-" .	c #9D2306",
-"..	c #626261",
-"+.	c #FEF1ED",
-"@.	c #F09479",
-"#.	c #DC532B",
-"$.	c #C0350F",
-"%.	c #942006",
-"&.	c #621404",
-"*.	c #E2522B",
-"=.	c #F2A690",
-"-.	c #E74E21",
-";.	c #E23B0B",
-">.	c #C99181",
-",.	c #454342",
-"'.	c #E5E4E2",
-").	c #FCFBFA",
-"!.	c #E2D8D3",
-"~.	c #C34C2A",
-"{.	c #B02B07",
-"].	c #9E2D12",
-"^.	c #EF8D71",
-"/.	c #F09B83",
-"(.	c #EADDD7",
-"_.	c #272724",
-":.	c #F0EEEC",
-"<.	c #F3F2EF",
-"[.	c #D7D6D3",
-"}.	c #BFBEBB",
-"|.	c #9E6153",
-"1.	c #3F0D02",
-"2.	c #F0B9A9",
-"3.	c #F6F5F4",
-"4.	c #E8E7E4",
-"5.	c #DAD8D5",
-"6.	c #585652",
-"7.	c #F6F4F0",
-"8.	c #DAD8D6",
-"9.	c #C2C1BE",
-"0.	c #989691",
-"a.	c #0A0A08",
-"b.	c #F6F4F2",
-"c.	c #F4F3F1",
-"d.	c #E4E3E0",
-"e.	c #D3D2CE",
-"f.	c #63625D",
-"g.	c #DCDAD8",
-"h.	c #C7C6C2",
-"i.	c #ABAAA5",
-"j.	c #0A0A0A",
-"k.	c #FAF8F6",
-"l.	c #EFEDEA",
-"m.	c #DDDCD8",
-"n.	c #C6C4C2",
-"o.	c #3E3E39",
-"p.	c #1B1B19",
-"q.	c #F0EEEA",
-"r.	c #E0DFDD",
-"s.	c #CCCBC9",
-"t.	c #C0BFBB",
-"u.	c #131311",
-"v.	c #676663",
-"w.	c #FCFAF8",
-"x.	c #D6D4D2",
-"y.	c #BCBAB7",
-"z.	c #3C3C3A",
-"A.	c #DEDCD9",
-"B.	c #7E4B3E",
-"C.	c #232323",
-"D.	c #CC9385",
-"E.	c #FAFAF7",
-"F.	c #E6E6E2",
-"G.	c #CDCCCA",
-"H.	c #B0B0AC",
-"I.	c #EDE3DF",
-"J.	c #E78468",
-"K.	c #DF5D3A",
-"L.	c #631909",
-"M.	c #282828",
-"N.	c #B46E5E",
-"O.	c #FCC3B2",
-"P.	c #F1A691",
-"Q.	c #DCD2CC",
-"R.	c #C8C6C3",
-"S.	c #7E7C78",
-"T.	c #E8AD9C",
-"U.	c #E96139",
-"V.	c #EB7452",
-"W.	c #EF8E72",
-"X.	c #EA8063",
-"Y.	c #9E2E13",
-"Z.	c #3F1811",
-"`.	c #121212",
-" +	c #6B433B",
-".+	c #E0A191",
-"++	c #FDD3C7",
-"@+	c #F4AD98",
-"#+	c #DE532B",
-"$+	c #C83409",
-"%+	c #B48274",
-"&+	c #383534",
-"*+	c #D6340A",
-"=+	c #E43D0F",
-"-+	c #E8582E",
-";+	c #ED7957",
-">+	c #F4B6A4",
-",+	c #F4B09D",
-"'+	c #F0E5E0",
-")+	c #F4F3EF",
-"!+	c #FDF8F6",
-"~+	c #FBCEC1",
-"{+	c #F28B6E",
-"]+	c #E44E23",
-"^+	c #D3370A",
-"/+	c #BF2F09",
-"(+	c #260800",
-"_+	c #190F0B",
-":+	c #D5350A",
-"<+	c #E43D0C",
-"[+	c #E74C1F",
-"}+	c #EFBBAB",
-"|+	c #F5F4F3",
-"1+	c #F5F3F1",
-"2+	c #EAB1A0",
-"3+	c #DE4316",
-"4+	c #C5310A",
-"5+	c #591202",
-"6+	c #0E0504",
-"7+	c #C83009",
-"8+	c #E0532B",
-"9+	c #E7E6E3",
-"0+	c #E7E6E2",
-"a+	c #DDDCD9",
-"b+	c #CFCECA",
-"c+	c #C14724",
-"d+	c #AE2907",
-"e+	c #290800",
-"f+	c #0F0705",
-"g+	c #9B2205",
-"h+	c #C1A89F",
-"i+	c #D1D0CC",
-"j+	c #CFCDCA",
-"k+	c #C7C6C3",
-"l+	c #BBBAB7",
-"m+	c #B5B4B1",
-"n+	c #A7A6A2",
-"o+	c #66564F",
-"p+	c #0B0908",
-"q+	c #010100",
-"r+	c #222221",
-"s+	c #51504B",
-"t+	c #5D5C57",
-"u+	c #3B3B37",
-"    . .         + @ # # $ %                     ",
-"  . . . . & # * = - ; > , ' ) ! ~ . . . .       ",
-". .     { ] ^ / ( _ : > < [ } | . 1     . .     ",
-"  .   2 3 4 5 6 - 7 8 9 0 0 a b c d e     .     ",
-"  . f g h i j k l m n o } p a q r s t u . .     ",
-"  v w x y z A B C D E F G H I J K L M . N       ",
-"  O P Q R S T U . . . . V W X Y Z K `  ..       ",
-"  ..+.@.#.$.%.. .         . &.*.=.-.;.>.! .     ",
-",.'.).!.~.{.. .             . ].^./.(.n _..     ",
-"@ :.<.[.}.|..                 1.2.3.4.5.6..     ",
-"# 7.6 8.9.0..                 a.b.c.d.e.f..     ",
-"# > < g.h.i..                 j.k.l.m.n.o..     ",
-"p., q.r.s.t.u.                v.w.9 x.y.. .     ",
-"z.' [ 7 A.[.B..             C.D.E.F.G.H.. .     ",
-"  ) } 0 I.J.K.L..         M.N.O.P.Q.R.S.. .     ",
-"  ! | T.U.V.W.X.Y.Z.a.`. +.+++@+#+$+%+. .       ",
-"  &+. *+=+-+;+>+,+'+)+k.!+~+{+]+^+/+(+. .       ",
-"  . _+d :+L <+[+}+|+l.1+|+2+3+^+4+5+. . .       ",
-"  .   6+t 7+` 8+9+0+o a+[.b+c+d+e+. .   .       ",
-"  .     f+. g+h+i+j+k+l+m+n+o+. . .     .       ",
-"    . . . p+. q+r+s+t+u+. . . . .     . .       ",
-"              . . . . . . . .   . . . .         ",
-"                                                ",
-"                                                "};
Binary file lisp/toolbar/home.pbm has changed
--- a/lisp/toolbar/home.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-/* XPM */
-static char * home_xpm[] = {
-"24 24 101 2",
-"  	c None",
-". 	c #000000",
-"+ 	c #212121",
-"@ 	c #2C2C2C",
-"# 	c #C1665A",
-"$ 	c #924B37",
-"% 	c #2A2A2A",
-"& 	c #333333",
-"* 	c #343434",
-"= 	c #242424",
-"- 	c #944D3A",
-"; 	c #A05443",
-"> 	c #181818",
-", 	c #474747",
-"' 	c #555555",
-") 	c #8D8D8D",
-"! 	c #383838",
-"~ 	c #191919",
-"{ 	c #974F3C",
-"] 	c #222222",
-"^ 	c #313131",
-"/ 	c #A1A1A1",
-"( 	c #676767",
-"_ 	c #ACACAC",
-": 	c #BCBCBC",
-"< 	c #585858",
-"[ 	c #141414",
-"} 	c #1C1C1C",
-"| 	c #464646",
-"1 	c #666666",
-"2 	c #BABABA",
-"3 	c #7E7E7E",
-"4 	c #D2D2D2",
-"5 	c #FFFFFF",
-"6 	c #4F4F4F",
-"7 	c #262626",
-"8 	c #232323",
-"9 	c #505050",
-"0 	c #B2B2B2",
-"a 	c #909090",
-"b 	c #9A9A9A",
-"c 	c #838383",
-"d 	c #171717",
-"e 	c #202020",
-"f 	c #717171",
-"g 	c #A6A6A6",
-"h 	c #616161",
-"i 	c #1D1D1D",
-"j 	c #1F1F1F",
-"k 	c #C4C4C4",
-"l 	c #CACACA",
-"m 	c #AEAEAE",
-"n 	c #D1D1D1",
-"o 	c #7C7C7C",
-"p 	c #BFBFBF",
-"q 	c #6C6C6C",
-"r 	c #EEEEEE",
-"s 	c #949494",
-"t 	c #C7C7C7",
-"u 	c #EBEBEB",
-"v 	c #7D7D7D",
-"w 	c #6E6E6E",
-"x 	c #A9A9A9",
-"y 	c #E99E8F",
-"z 	c #DD806D",
-"A 	c #9B5343",
-"B 	c #CECECE",
-"C 	c #626262",
-"D 	c #858585",
-"E 	c #ECA292",
-"F 	c #D0533A",
-"G 	c #934F3E",
-"H 	c #6D6D6D",
-"I 	c #ECA291",
-"J 	c #CF543C",
-"K 	c #371D16",
-"L 	c #5D5D5D",
-"M 	c #868686",
-"N 	c #787878",
-"O 	c #ECA696",
-"P 	c #C95C49",
-"Q 	c #E17C66",
-"R 	c #924E3D",
-"S 	c #888888",
-"T 	c #A0A0A0",
-"U 	c #3D1208",
-"V 	c #D15137",
-"W 	c #919191",
-"X 	c #879981",
-"Y 	c #82947C",
-"Z 	c #8A9B85",
-"` 	c #6E8467",
-" .	c #5D7555",
-"..	c #4C6042",
-"+.	c #3F4F37",
-"@.	c #303D2A",
-"#.	c #7F8F7A",
-"$.	c #64785E",
-"%.	c #44563E",
-"&.	c #657460",
-"*.	c #40503A",
-"                                                ",
-"                      . .                       ",
-"          . . . .   . + @ .                     ",
-"          . # $ . . % & * = .                   ",
-"          . - ; . > , ' ) ! ~ .                 ",
-"          . { . ] ^ / ( _ : < [ .               ",
-"          . . } | 1 2 3 4 : 5 6 7 .             ",
-"          . 8 9 0 a 4 b 5 : 5 : c d .           ",
-"        . e f g 4 b 5 : 5 : 5 : 5 h i .         ",
-"      . j k k l 5 m 5 2 5 2 5 : 5 n o } .       ",
-"    . 8 m p p p p p p p p . . . . . a q = .     ",
-"  . . . . r 5 5 5 5 5 5 5 . s t u . v . . . .   ",
-"        . 4 5 . . . . . 5 . : 5 5 . w .         ",
-"        . x 5 . y z A . 5 . B 5 5 . C .         ",
-"        . D 5 . E F G . 5 . . . . . H .         ",
-"        . . 5 . I J K . k s L L M N . .         ",
-"        . . r . O P G . 5 5 5 5 5 2 .           ",
-"          . 2 . Q # R . : : : : : S .           ",
-"          . T U V # A . 5 5 5 5 5 W .           ",
-"  . . . . . . . . . . . . . . . . . . . .   .   ",
-"        } X Y Z X `  ...+.@.. Y #.$.%.&.*..     ",
-"    . .   . . . . . . . . .   . . . . . .       ",
-"                . . .                           ",
-"                                                "};
Binary file lisp/toolbar/index.pbm has changed
--- a/lisp/toolbar/index.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,201 +0,0 @@
-/* XPM */
-static char * index_xpm[] = {
-"24 24 174 2",
-"  	c None",
-". 	c #000000",
-"+ 	c #FDFDFD",
-"@ 	c #F5F5F5",
-"# 	c #F6F6F6",
-"$ 	c #D0D0D0",
-"% 	c #C1C1C1",
-"& 	c #C3C3C3",
-"* 	c #C6C6C6",
-"= 	c #C8C8C8",
-"- 	c #8D8D8D",
-"; 	c #CACACA",
-"> 	c #919191",
-", 	c #EFEFEF",
-"' 	c #878787",
-") 	c #8A8A8A",
-"! 	c #5C5C5C",
-"~ 	c #F8F8F8",
-"{ 	c #EAEAEA",
-"] 	c #CCCCCC",
-"^ 	c #CECECE",
-"/ 	c #979797",
-"( 	c #CDCDCD",
-"_ 	c #A1A1A1",
-": 	c #090600",
-"< 	c #A3A3A3",
-"[ 	c #C5C5C5",
-"} 	c #C4C4C4",
-"| 	c #D1D1D1",
-"1 	c #D2D2D1",
-"2 	c #D2D2D2",
-"3 	c #9A9A9A",
-"4 	c #E8E8E8",
-"5 	c #949494",
-"6 	c #939393",
-"7 	c #574F4F",
-"8 	c #FDFDFC",
-"9 	c #777777",
-"0 	c #7E7E7E",
-"a 	c #9D9D9D",
-"b 	c #6B6B6B",
-"c 	c #F1F1F1",
-"d 	c #ECECEC",
-"e 	c #CFCFCF",
-"f 	c #575050",
-"g 	c #FDFAF8",
-"h 	c #A5A5A5",
-"i 	c #B9B9B9",
-"j 	c #EEEEEE",
-"k 	c #EDEDED",
-"l 	c #D5D5D5",
-"m 	c #BABABA",
-"n 	c #6D6767",
-"o 	c #F9F1EA",
-"p 	c #9E9E9E",
-"q 	c #B5B5B5",
-"r 	c #D9D9D9",
-"s 	c #D7D7D7",
-"t 	c #BCBCBC",
-"u 	c #625C5B",
-"v 	c #F9EEE4",
-"w 	c #4F4D4A",
-"x 	c #646464",
-"y 	c #747474",
-"z 	c #D6D6D5",
-"A 	c #DFDFDF",
-"B 	c #A0A0A0",
-"C 	c #615C5B",
-"D 	c #F9F0E4",
-"E 	c #746C67",
-"F 	c #FEFDFC",
-"G 	c #FFFEFD",
-"H 	c #131210",
-"I 	c #636363",
-"J 	c #7C7C7C",
-"K 	c #F3F2F2",
-"L 	c #98948F",
-"M 	c #F9EFE3",
-"N 	c #A09489",
-"O 	c #FEFDFD",
-"P 	c #766D68",
-"Q 	c #736961",
-"R 	c #A3A3A2",
-"S 	c #A6A6A6",
-"T 	c #DBDBDB",
-"U 	c #C7C7C7",
-"V 	c #E8E5E2",
-"W 	c #97938E",
-"X 	c #F6E9D8",
-"Y 	c #84817A",
-"Z 	c #FBF3EA",
-"` 	c #908C86",
-" .	c #F1EDE7",
-"..	c #7B7975",
-"+.	c #878786",
-"@.	c #070000",
-"#.	c #FAFAFA",
-"$.	c #DDDDDD",
-"%.	c #E2DFDC",
-"&.	c #A8A199",
-"*.	c #F0E0CE",
-"=.	c #C8BFB4",
-"-.	c #D5CCBF",
-";.	c #DFD7CD",
-">.	c #DAD3C9",
-",.	c #DDCFC4",
-"'.	c #928C84",
-").	c #A8A8A8",
-"!.	c #959595",
-"~.	c #040000",
-"{.	c #D9D5D2",
-"].	c #D9CABB",
-"^.	c #D7C8B8",
-"/.	c #DECFBF",
-"(.	c #D8C9B9",
-"_.	c #E3D3C2",
-":.	c #C9BBAC",
-"<.	c #D9CEC2",
-"[.	c #7F766D",
-"}.	c #909090",
-"|.	c #D3D3D3",
-"1.	c #060100",
-"2.	c #C0BDBA",
-"3.	c #8C8782",
-"4.	c #C2B5A7",
-"5.	c #BFB4A6",
-"6.	c #B8AB9D",
-"7.	c #BAAD9E",
-"8.	c #BEB0A2",
-"9.	c #948A7F",
-"0.	c #716860",
-"a.	c #E2E2E2",
-"b.	c #A9A9A8",
-"c.	c #332C2B",
-"d.	c #5D5954",
-"e.	c #79736C",
-"f.	c #958C80",
-"g.	c #8D8379",
-"h.	c #988D82",
-"i.	c #706760",
-"j.	c #787878",
-"k.	c #E4E4E4",
-"l.	c #C2C2C2",
-"m.	c #201A1A",
-"n.	c #57514F",
-"o.	c #625C59",
-"p.	c #625A53",
-"q.	c #6B625A",
-"r.	c #585251",
-"s.	c #696764",
-"t.	c #080000",
-"u.	c #989898",
-"v.	c #B0B0B0",
-"w.	c #AFAFAF",
-"x.	c #999999",
-"y.	c #9D9897",
-"z.	c #050000",
-"A.	c #0C0303",
-"B.	c #080100",
-"C.	c #030000",
-"D.	c #282523",
-"E.	c #5A5A5A",
-"F.	c #868686",
-"G.	c #ECE4E2",
-"H.	c #DED7D5",
-"I.	c #D8D1D0",
-"J.	c #E0DBD7",
-"K.	c #E9E6E3",
-"L.	c #FCFBFA",
-"M.	c #030500",
-"N.	c #0B0505",
-"O.	c #14100F",
-"P.	c #090806",
-"Q.	c #000100",
-"                                                ",
-"    . . . . . . . . . . . . . . . . . . . .     ",
-"    . + @ @ @ @ @ @ @ # # # # # # # # # $ .     ",
-"    . @ % % % & & & & * * * * * = = = = - .     ",
-"    . # & & & * * * * = = = = = ; ; ; ; > .     ",
-"    . , ' ' ' ) ) ) ) - - - - - > > > > ! .     ",
-"    . ~ { { { { { { { { { { { { { { { { ; .     ",
-"    . # ; ; ; ] ] ] ] ] ^ ^ ^ ^ $ $ $ $ / .     ",
-"    . # ] ] ] ( ^ ^ ^ _ : < [ } | 1 | 2 3 .     ",
-"    . 4 5 5 5 / / / 6 7 8 . 9 0 - a a a b .     ",
-"    . ~ c d d d d d e f g . h i $ j j k * .     ",
-"    . ~ 2 2 2 2 l l m n o . > p q r r r < .     ",
-"    . ~ l l l l s s t u v w . x . y p z < .     ",
-"    . A B B B B < 9 . C D E F . G H . I J .     ",
-"    . ~ @ , , , j . K L M N O P F Q R . S .     ",
-"    . ~ T T T T U . V W X Y Z `  ...+.@.< .     ",
-"    . #.$.$.$.$.& . %.&.*.=.-.;.>.,.'.@.p .     ",
-"    . { ).).).).!.~.{.].^./.(._.:.<.[.@.}..     ",
-"    . #.@ c c c |.1.2.3.4.5.6.7.8.9.0.@.] .     ",
-"    . #.a.a.a.a.l b.c.d.e.f.g.9.h.i.. j.q .     ",
-"    . #.a.a.a.a.k.l.j.m.n.o.p.q.r.s.t.u.q .     ",
-"    . a.v.v.v.v.v.w.x.y.z.A.t.B.C.D.E.F.m .     ",
-"    . . . . . . . . . ~.G.H.I.J.K.L.M.. . .     ",
-"                      ~.N.z.O.C.P.. Q.          "};
Binary file lisp/toolbar/info.pbm has changed
--- a/lisp/toolbar/info.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/* XPM */
-static char *magick[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 6 1",
-"  c Gray0",
-". c #65658b8b5e5e",
-"X c #934ab2448dfb",
-"o c #b35dc8c8afaf",
-"O c #e0b2e944df83",
-"+ c None",
-/* pixels */
-"++++++++++++++++++++++++",
-"++++++++++++++++++++++++",
-"++++++++++++++++++++++++",
-"++++++++++++++++++++++++",
-"+++++++++     ++++++++++",
-"++++++++ oOOOO +++++++++",
-"+++++++ OOOOOOO ++++++++",
-"++++++ oOo   oOo +++++++",
-"+++++++ O +++ OO +++++++",
-"+++++++O ++++ Oo +++++++",
-"++++++++++++ OO. +++++++",
-"+++++++++++ OOX ++++++++",
-"++++++++++ OOX +++++++++",
-"+++++++++ XOX ++++++++++",
-"+++++++++ OX +++++++++++",
-"+++++++++    +++++++++++",
-"++++++++++++++++++++++++",
-"++++++++++  ++++++++++++",
-"+++++++++ Oo +++++++++++",
-"+++++++++ oX +++++++++++",
-"++++++++++  ++++++++++++",
-"++++++++++++++++++++++++",
-"++++++++++++++++++++++++",
-"++++++++++++++++++++++++"
-};
Binary file lisp/toolbar/jump_to.pbm has changed
--- a/lisp/toolbar/jump_to.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,171 +0,0 @@
-/* XPM */
-static char * jump_to_xpm[] = {
-"24 24 144 2",
-"  	c None",
-". 	c #000000",
-"+ 	c #9ABC82",
-"@ 	c #C1E3AA",
-"# 	c #A0C487",
-"$ 	c #8F6508",
-"% 	c #AD671D",
-"& 	c #D6AF41",
-"* 	c #E1B744",
-"= 	c #B86F20",
-"- 	c #7E5907",
-"; 	c #D8E7CD",
-"> 	c #D9E7CF",
-", 	c #DDEAD2",
-"' 	c #E4EFDA",
-") 	c #EBF6DF",
-"! 	c #C8EBB0",
-"~ 	c #A2C688",
-"{ 	c #986F26",
-"] 	c #E2B946",
-"^ 	c #EFCD64",
-"/ 	c #F4D268",
-"( 	c #F6D469",
-"_ 	c #E7C24A",
-": 	c #D5B044",
-"< 	c #BC8C31",
-"[ 	c #1A0700",
-"} 	c #D7E6CD",
-"| 	c #B2D29C",
-"1 	c #B6D69F",
-"2 	c #BDDEA5",
-"3 	c #C4E7AC",
-"4 	c #CAEEB1",
-"5 	c #A1C387",
-"6 	c #CBB86E",
-"7 	c #EDD97E",
-"8 	c #FEE882",
-"9 	c #FEE77E",
-"0 	c #FDDF60",
-"a 	c #FBD14F",
-"b 	c #E4BF49",
-"c 	c #BB8C31",
-"d 	c #CFE2C3",
-"e 	c #B2D19C",
-"f 	c #B5D59F",
-"g 	c #BBDBA4",
-"h 	c #C1E3A9",
-"i 	c #C6E9AE",
-"j 	c #C3E6AB",
-"k 	c #A9CE8D",
-"l 	c #DCBA5C",
-"m 	c #FBE46B",
-"n 	c #FFEB64",
-"o 	c #FFE054",
-"p 	c #FED952",
-"q 	c #F8CF4E",
-"r 	c #C4A13E",
-"s 	c #8BA27B",
-"t 	c #618249",
-"u 	c #628349",
-"v 	c #64864B",
-"w 	c #66894D",
-"x 	c #688B4E",
-"y 	c #678B4D",
-"z 	c #6B9251",
-"A 	c #719755",
-"B 	c #55833A",
-"C 	c #ECC75E",
-"D 	c #FFED59",
-"E 	c #FFE757",
-"F 	c #FFDF54",
-"G 	c #FBD44F",
-"H 	c #E1BD48",
-"I 	c #B36C1F",
-"J 	c #608148",
-"K 	c #628449",
-"L 	c #63854A",
-"M 	c #65894C",
-"N 	c #6C9151",
-"O 	c #527E39",
-"P 	c #B39237",
-"Q 	c #F0C248",
-"R 	c #FFF25B",
-"S 	c #FFEB58",
-"T 	c #FFE155",
-"U 	c #FBD450",
-"V 	c #E3BD49",
-"W 	c #BC983B",
-"X 	c #618349",
-"Y 	c #628549",
-"Z 	c #65884B",
-"` 	c #4D7735",
-" .	c #907934",
-"..	c #DCB444",
-"+.	c #FCDB52",
-"@.	c #FFEF5A",
-"#.	c #FFE957",
-"$.	c #FEDF54",
-"%.	c #F9D24F",
-"&.	c #E0BA48",
-"*.	c #B08F37",
-"=.	c #52743B",
-"-.	c #456A2F",
-";.	c #608248",
-">.	c #628448",
-",.	c #476F31",
-"'.	c #7F6B32",
-").	c #D0AF4B",
-"!.	c #F5CF4E",
-"~.	c #FFE255",
-"{.	c #FEDA52",
-"].	c #EAC54B",
-"^.	c #D0AC42",
-"/.	c #9C5D1A",
-"(.	c #5A7B42",
-"_.	c #456C2F",
-":.	c #6F5C23",
-"<.	c #A78833",
-"[.	c #F0C54A",
-"}.	c #FFDA52",
-"|.	c #FFDE53",
-"1.	c #C39032",
-"2.	c #886423",
-"3.	c #BC9D3B",
-"4.	c #F0C84E",
-"5.	c #FFD551",
-"6.	c #FED751",
-"7.	c #FDD550",
-"8.	c #EDC74C",
-"9.	c #E5BF49",
-"0.	c #CCA941",
-"a.	c #AB7727",
-"b.	c #B1822D",
-"c.	c #DCB746",
-"d.	c #DFBA47",
-"e.	c #EDC64C",
-"f.	c #E9C34B",
-"g.	c #D6B144",
-"h.	c #C19D3D",
-"i.	c #AB7C2B",
-"j.	c #BC7222",
-"k.	c #BB983B",
-"l.	c #B09638",
-"m.	c #A2621B",
-"                                                ",
-"                                                ",
-"            .                                   ",
-"            . .                                 ",
-"            . + .       . . . . . .             ",
-"  . . . . . . @ # .   . $ % & * = - . .         ",
-"  . ; > , ' ) ! ! ~ . { ] ^ / ( _ : < [ .       ",
-"  . } | 1 2 3 4 4 3 5 . 6 7 8 9 0 a b c .       ",
-"  . d e f g h i i h j k . l m n o p q r - .     ",
-"  . s t u v w x x y z A B . C D E F G H I .     ",
-"  . s J t K L v v M N O . P Q R S T U V W .     ",
-"  . s J J t X u Y Z ` .  ...+.@.#.$.%.&.*..     ",
-"  . =.-.-.-.-.;.>.,.. '.).!.E E ~.{.].^./..     ",
-"  . . . . . . (._.. :.<.[.}.|.|.{.%.V 1.$ .     ",
-"            . -.. . 2.3.4.5.6.7.8.9.0.a..       ",
-"            . .   . . b.c.d.e.f.g.h.i.. .       ",
-"            .         . $ j.k.l.m.$ . .         ",
-"                        . . . . . .             ",
-"                                                ",
-"                                                ",
-"                                                ",
-"                                                ",
-"                                                ",
-"                                                "};
--- a/lisp/toolbar/lc-back_arrow.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/* XPM */
-static char *back_arrow_xpm[] = {
-"24 24 6 1",
-"  c #000000",
-". c #000100",
-"X c #6B6B66",
-"o c #87AF85",
-"O c #FFFFFF",
-"+ c None",
-"++++++++++++++++++++++++",
-"++++++++++++++++++++++++",
-"++++++++++++++++++++++++",
-"++++++++++ +++++++++++++",
-"+++++++++ .+++++++++++++",
-"++++++++ O.+++++++++++++",
-"+++++++ Oo .  ++++++++++",
-"++++++ Ooooooo +++++++++",
-"+++++ Ooooooooo ++++++++",
-"++++ ooooooooooo.+++++++",
-"+++++ oooooooooo..++++++",
-"++++++.oooooooooo.++++++",
-"+++++++.oo.. oooo.++++++",
-"++++++++.o.+  ooo.++++++",
-"+++++++++..++..oo.++++++",
-"++++++++++.+++.oo.++++++",
-"++++++++++++++.oo.++++++",
-"++++++++++++++.o.+++++++",
-"+++++++++++++.oX.+++++++",
-"++++++++++++.oo.++++++++",
-"+++++++++++++..+++++++++",
-"++++++++++++++++++++++++",
-"++++++++++++++++++++++++",
-"++++++++++++++++++++++++"};
--- a/lisp/toolbar/lc-copy.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/* XPM */
-static char * copy2_xpm[] = {
-"24 24 6 1",
-" 	c None",
-".	c #FFFFFF",
-"+	c #000100",
-"@	c #6B6B66",
-"#	c #BBBDBA",
-"$	c #504D46",
-"                        ",
-" +++++++++++++          ",
-" +#..........#+         ",
-" +............+         ",
-" +.#@@@.#@.@#.+         ",
-" +............+         ",
-" +.@$.@@#.++++++++++++  ",
-" +.......+#..........#+ ",
-" +.#@@.@@+............+ ",
-" +.......+.#@@#.#@.@#.+ ",
-" +.@$$.@@+............+ ",
-" +.......+.@@.@@#.#@..+ ",
-" +.#@@.@@+............+ ",
-" +.......+.#@@.@@#.#@.+ ",
-" +#......+............+ ",
-"  ++++++++.@@@.@@#.#@.+ ",
-"         +............+ ",
-"         +.#@@.@@#.#@.+ ",
-"         +............+ ",
-"         +#..........#+ ",
-"         ++++++++++++++ ",
-"                        ",
-"                        ",
-"                        "};
--- a/lisp/toolbar/lc-cut.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/* XPM */
-static char * cut2_xpm[] = {
-"24 24 7 1",
-" 	c None",
-".	c #000100",
-"+	c #BBBDBA",
-"@	c #FFFFFF",
-"#	c #6B6B66",
-"$	c #504D46",
-"%	c #3E4850",
-"                        ",
-"                        ",
-"      .        .        ",
-"      .        .        ",
-"     .+.      .@.       ",
-"     .@$      #@.       ",
-"     .@#.    .@+.       ",
-"     .@+$    #@+.       ",
-"      #@#.  .@+$        ",
-"      .@+$  $@+.        ",
-"       #@#.%@+#         ",
-"       .@+$#++.         ",
-"        .@+$+.          ",
-"         .++..          ",
-"         ..#$.          ",
-"     .............      ",
-"     . ...  ... ...     ",
-"    ..  ..   ..  ..     ",
-"    .    .   .    .     ",
-"    ..  ..   ..  ..     ",
-"     ....     .. .      ",
-"     ....     ....      ",
-"                        ",
-"                        "};
--- a/lisp/toolbar/lc-fwd_arrow.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/* XPM */
-static char *fwd_arrow_xpm[] = {
-"24 24 5 1",
-"  c #000000",
-". c #000100",
-"X c #87AF85",
-"o c #FFFFFF",
-"O c None",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOO OOOOOOOOOO",
-"OOOOOOOOOOOOO  OOOOOOOOO",
-"OOOOOOOOOOOOO X OOOOOOOO",
-"OOOOOOOOOO  . XX.OOOOOOO",
-"OOOOOOOOO oXXXXXX.OOOOOO",
-"OOOOOOOO.oXXXXXXXX.OOOOO",
-"OOOOOOO.oXXXXXXXXXX.OOOO",
-"OOOOOO..XXXXXXXXXX.OOOOO",
-"OOOOOO.XXXXXXXXXX.OOOOOO",
-"OOOOOO.XXXX.  XX.OOOOOOO",
-"OOOOOO.XXX..O X OOOOOOOO",
-"OOOOOO.XX..OO. OOOOOOOOO",
-"OOOOOO.XX.OOO.OOOOOOOOOO",
-"OOOOOO.XX.OOOOOOOOOOOOOO",
-"OOOOOOO.X.OOOOOOOOOOOOOO",
-"OOOOOOO.XX.OOOOOOOOOOOOO",
-"OOOOOOOO.XX.OOOOOOOOOOOO",
-"OOOOOOOOO..OOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO"};
--- a/lisp/toolbar/lc-help.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/* XPM */
-static char * help2_xpm[] = {
-"24 24 12 1",
-" 	c None",
-".	c #000100",
-"+	c #FFFFFF",
-"@	c #BBBDBA",
-"#	c #C43107",
-"$	c #EBA291",
-"%	c #D15237",
-"&	c #504D46",
-"*	c #751805",
-"=	c #6B6B66",
-"-	c #974F3D",
-";	c #3E4850",
-"  ..    &....&          ",
-" ....&.;@++++@..&....   ",
-"..  &.+++++++++@..  ..  ",
-" . .%$+++++++++@#*.  .  ",
-" ..%$$%+@@@++++###*...  ",
-" -.$$%%$@@@@@+$####..   ",
-" .$$$%#*.....=#%####.   ",
-" =+$%#*..    .*#$##$..  ",
-"&++@%#..      .*$$+@..  ",
-".++@@-.        *$++@&.  ",
-".++@@@.        .+++@=.  ",
-".++@@@.        .++@@&.  ",
-".+++@@.        =++@@..  ",
-"&@++@@-.      .$++@@..  ",
-" .+++$%*.    .-$$@@=..  ",
-" .@$%%$%*...&$$$%#$..   ",
-" &.###%$$++++$$###...   ",
-" ..*####$++++$###*...   ",
-" . .*###+++@@@%#... .   ",
-" .  ..#@@@@@@@&...  .   ",
-"  .......&&&.....  ..   ",
-"       ........ ....    ",
-"                        ",
-"                        "};
--- a/lisp/toolbar/lc-home.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/* XPM */
-static char * home2_xpm[] = {
-"24 24 11 1",
-" 	c None",
-".	c #000100",
-"+	c #BBBDBA",
-"@	c #FFFFFF",
-"#	c #6B6B66",
-"$	c #504D46",
-"%	c #974F3D",
-"&	c #EBA291",
-"*	c #87AF85",
-"=	c #3E4850",
-"-	c #D15237",
-"                        ",
-"           ..           ",
-"     .... ..=.          ",
-"     .%%..===..         ",
-"     .%%..$$#$..        ",
-"     .%..=+#++$..       ",
-"     ...$#+#++@$..      ",
-"     ..$+#++@+@+#..     ",
-"    ..#+++@+@+@+@#..    ",
-"   ..+++@+@+@+@+@+#..   ",
-"  ..+++++++++.....##..  ",
-" ....@@@@@@@@.++@.#.... ",
-"    .+@.....@.+@@.#.    ",
-"    .+@.&&%.@.+@@.#.    ",
-"    .#@.&-%.@.....#.    ",
-"    ..@.&-..++####..    ",
-"    ..@.&-%.@@@@@+.     ",
-"     .+.&%%.+++++#.     ",
-"     .+.-%%.@@@@@#.     ",
-" .................... . ",
-"    .****##$$$.**#$#$.  ",
-"  .. ......... ......   ",
-"        ...             ",
-"                        "};
--- a/lisp/toolbar/lc-index.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/* XPM */
-static char * index2_xpm[] = {
-"24 24 7 1",
-" 	c None",
-".	c #BBBDBA",
-"+	c #000100",
-"@	c #FFFFFF",
-"#	c #6B6B66",
-"$	c #504D46",
-"%	c #3E4850",
-"                        ",
-"  ++++++++++++++++++++  ",
-"  +@@@@@@@@@@@@@@@@@.+  ",
-"  +@................#+  ",
-"  +@................#+  ",
-"  +@#################+  ",
-"  +@@@@@@@@@@@@@@@@@.+  ",
-"  +@.................+  ",
-"  +@........+........+  ",
-"  +@.......$@+###...#+  ",
-"  +@@@@@@@.$@+...@@@.+  ",
-"  +@.......#@+#......+  ",
-"  +@.......#@$+#+#...+  ",
-"  +@.....#+#@#@+@++##+  ",
-"  +@@@@@@+@.@.@#@#.+.+  ",
-"  +@.....+@.@#@#@##+.+  ",
-"  +@.....+@.@.....#+.+  ",
-"  +@.....+........#+#+  ",
-"  +@@@@@.+.#.....##+.+  ",
-"  +@@@@@..%$######+#.+  ",
-"  +@@@@@@.#+$#$#$#+..+  ",
-"  +@........++++++$#.+  ",
-"  ++++++++++@...@@++++  ",
-"           ++++++++     "};
--- a/lisp/toolbar/lc-jump_to.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/* XPM */
-static char * jump_to2_xpm[] = {
-"24 24 8 1",
-" 	c None",
-".	c #D3B354",
-"+	c #000100",
-"@	c #87AF85",
-"#	c #974F3D",
-"$	c #FFFFFF",
-"%	c #D15237",
-"&	c #BBBDBA",
-"                        ",
-"                        ",
-"      +                 ",
-"      ++                ",
-"      +@+   ++++++      ",
-" ++++++@@+ +.#..%#++    ",
-" +$$$$$@@@+........++   ",
-" +&@@@@@@@@+........+   ",
-" +&@@@@@@@@@+.......#+  ",
-" +@@@@@@@@@@@+......%+  ",
-" +@@@@@@@@@@+........+  ",
-" +@@@@@@@@@+.........+  ",
-" +@@@@@@@@+#........#+  ",
-" ++++++@@+#..........+  ",
-"      +@++#.........+   ",
-"      ++ ++........++   ",
-"      +    +.%..#.++    ",
-"            ++++++      ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
--- a/lisp/toolbar/lc-left_arrow.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/* XPM */
-static char * left_arrow2_xpm[] = {
-"24 24 7 1",
-" 	c None",
-".	c #87AF85",
-"+	c #000100",
-"@	c #BBBDBA",
-"#	c #504D46",
-"$	c #6B6B66",
-"%	c #3E4850",
-"                        ",
-"                        ",
-"                        ",
-"            +           ",
-"           ++           ",
-"          +@+           ",
-"         +@@+           ",
-"        +@@@++++++++    ",
-"       +@@@@@@@@@@.+    ",
-"      +@.@@@@...@.$+    ",
-"     %@.@@@..@@@@..+    ",
-"    +@............$+    ",
-"     +#...........#+    ",
-"      +#..........#+    ",
-"       +#..########+    ",
-"        +#.#++++++++    ",
-"         +##+           ",
-"          +#+           ",
-"           ++           ",
-"            +           ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
--- a/lisp/toolbar/lc-new.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/* XPM */
-static char * new2_xpm[] = {
-"24 24 6 1",
-" 	c None",
-".	c #FFFFFF",
-"+	c #BBBDBA",
-"@	c #000100",
-"#	c #6B6B66",
-"$	c #504D46",
-"                        ",
-"   @@@@@@@@@@@@@        ",
-"  @+..........+$@       ",
-"  @...........+++@      ",
-"  @...........+..+@     ",
-"  @...........+...#@    ",
-"  @...........+...++@   ",
-"  @...........+@@@@@@@  ",
-"  @............++++##@  ",
-"  @.............++++#@  ",
-"  @...............++#@  ",
-"  @................+#@  ",
-"  @.................#@  ",
-"  @.................+@  ",
-"  @.................+@  ",
-"  @...............+++@  ",
-"  @..............++++@  ",
-"  @.............+++++@  ",
-"  @............++++++@  ",
-"  @............++++++@  ",
-"  @+...+.+.+.++++++++@  ",
-"  @+++++++++++++++++#@  ",
-"   @@@@@@@@@@@@@@@@@@   ",
-"                        "};
--- a/lisp/toolbar/lc-open.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/* XPM */
-static char * open2_xpm[] = {
-"24 24 8 1",
-" 	c None",
-".	c #BBBDBA",
-"+	c #000100",
-"@	c #87AF85",
-"#	c #FFFFFF",
-"$	c #6B6B66",
-"%	c #504D46",
-"&	c #3E4850",
-"                        ",
-"                        ",
-"                        ",
-"  +++++++               ",
-" +.#####$%              ",
-" +#.....@%              ",
-"+.#......%+             ",
-"+..@@@...$%++++++++     ",
-"+.@@@@@..@@........+    ",
-"+.@@@@@@@@@@@@@@@@$+    ",
-"+.$$++++++++++++++++++  ",
-"+.$%################..& ",
-"+.$+#.................+ ",
-"+.%.#...............@$+ ",
-"+.+#...............@@%+ ",
-"+.$#............@@.@$+  ",
-"+....@@@@@.....@@@@$%+  ",
-"+.#..@@@@@@@@@@@@$$$+   ",
-"+#.@@@@$$$$$$$$$$$$%+   ",
-" +++++++++++++++++++    ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
--- a/lisp/toolbar/lc-paste.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/* XPM */
-static char * paste2_xpm[] = {
-"24 24 8 1",
-" 	c None",
-".	c #FFFFFF",
-"+	c #BBBDBA",
-"@	c #000100",
-"#	c #6B6B66",
-"$	c #504D46",
-"%	c #D3B354",
-"&	c #974F3D",
-"       @@@@             ",
-" @@@@@@+..#@@@@@@       ",
-"@.....$.++#$+...+@      ",
-"@.++++$.##+$#+++%@      ",
-"@.+++$..+++#$#++%@      ",
-"@.++$++++++#$$++%@      ",
-"@.++#$$$$$$$$#++%@      ",
-"@.+++########+++%@      ",
-"@.+++++#$@@@@@$$@@@@@   ",
-"@.+++++$+...........+@  ",
-"@.+++++$.............@  ",
-"@.+++++@.+##+..+#.#+.@  ",
-"@.+++++@.............@  ",
-"@.+++++$.##.###+.+#..@  ",
-"@.+++++$.............@  ",
-"@.+++++$.+##.###+.+#.@  ",
-"@.+++++@.............@  ",
-"@.+++++@.##.###+.+#..@  ",
-"@.+++++$.............@  ",
-"@.+++++$.+##.###+.+#.@  ",
-"@+%%%%&@.............@  ",
-" @@@@@@@+...........+@  ",
-"        @@@@@@@@@@@@@   ",
-"                        "};
--- a/lisp/toolbar/lc-preferences.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/* XPM */
-static char * preferences2_xpm[] = {
-"24 24 10 1",
-" 	c None",
-".	c #000100",
-"+	c #BBBDBA",
-"@	c #FFFFFF",
-"#	c #7A98B0",
-"$	c #6B6B66",
-"%	c #4D687C",
-"&	c #B0CCE2",
-"*	c #504D46",
-"=	c #3E4850",
-"       ..               ",
-"      .++$.             ",
-"       .+++.        ..  ",
-"        .@+.       .@$. ",
-"    ..  =@+.      .@++. ",
-"   .+ ..+@+$.     .++.  ",
-"   .+++@@+++.    .@..   ",
-"    .+++++++$.  .@.     ",
-"     .....@@+$..+.      ",
-"          .@@+.+.       ",
-"           .@.+..       ",
-"            .+.$*.      ",
-"        ....+.$$$$.     ",
-"       .#&#.. .+++$.    ",
-"      .#&+&%.  .@@+$.   ",
-"     .#@#%&%.   .@@+$.  ",
-"    .#@#%&#%.    .@@+$..",
-"   .&@#%&#%.      .+$*+.",
-"  .#@#%&#%.        .+++.",
-"  .&@#&#%..         ... ",
-"  .#&&#%..              ",
-"   .##%..               ",
-"    ...                 ",
-"                        "};
--- a/lisp/toolbar/lc-print.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/* XPM */
-static char * print2_xpm[] = {
-"24 24 6 1",
-" 	c None",
-".	c #FFFFFF",
-"+	c #000100",
-"@	c #BBBDBA",
-"#	c #6B6B66",
-"$	c #504D46",
-"                        ",
-"      ++++++++++++      ",
-"     +@..........@+     ",
-"     +.........@@@+     ",
-"     +.###.#@@...@+     ",
-"     +...........@+     ",
-"     +.##@.#@.@#.@+     ",
-"     +...........@+     ",
-"     +.@@.@.@@@..@+     ",
-"     +....@......@+     ",
-"    ++.###@##@#@@@++    ",
-"   +.+@@@@@@@@@@@@+#+   ",
-"  +..#$++++++++++##@@+  ",
-" +....................+ ",
-" +@#...............@@@+ ",
-" +@#.@@@@@@@@@@@@@@#@#+ ",
-" +@#...............$##+ ",
-" +@#$$$$$$$$$$$$$$$$##+ ",
-" +@@###$#$$$$$$$$$$###+ ",
-" +#@@#########$#######+ ",
-"  ++++++++++++++++++++  ",
-"  +#@@@@@@@@@@@@@@@##+  ",
-"   ++++++++++++++++++   ",
-"                        "};
--- a/lisp/toolbar/lc-right_arrow.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/* XPM */
-static char * right_arrow2_xpm[] = {
-"24 24 6 1",
-" 	c None",
-".	c #87AF85",
-"+	c #000100",
-"@	c #BBBDBA",
-"#	c #6B6B66",
-"$	c #504D46",
-"                        ",
-"                        ",
-"                        ",
-"           +            ",
-"           ++           ",
-"           +.+          ",
-"           +..+         ",
-"    ++++++++@..+        ",
-"    +@@@@@@@@@..+       ",
-"    +@@..........+      ",
-"    +..........@..+     ",
-"    +.............$+    ",
-"    +............$+     ",
-"    +...........$+      ",
-"    +.######...$+       ",
-"    ++++++++#.$+        ",
-"           +#$+         ",
-"           +$+          ",
-"           ++           ",
-"           +            ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
--- a/lisp/toolbar/lc-save.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/* XPM */
-static char * save2_xpm[] = {
-"24 24 12 1",
-" 	c None",
-".	c #FFFFFF",
-"+	c #000100",
-"@	c #BBBDBA",
-"#	c #7A98B0",
-"$	c #6B6B66",
-"%	c #EBA291",
-"&	c #3E4850",
-"*	c #B0CCE2",
-"=	c #4D687C",
-"-	c #504D46",
-";	c #974F3D",
-"                        ",
-"  +++++++++++++++++++   ",
-" +**$%%%%%%%%%%%%@$**+  ",
-" +*#$%%%%%%%%;;%;;$#=+  ",
-" +*#$%%%%%%;%;%;;;$#=+  ",
-" +*#$.............$#=+  ",
-" +*#$.............$#=+  ",
-" +*#$@@@@@@@@@@@@@$#=+  ",
-" +*#$.............$#=+  ",
-" +*#$.............$#=+  ",
-" +*#$@@@@@@@@@@@@@$#$+  ",
-" +*#$.............$#&+  ",
-" +*##$$$$$$$$$$$$$$#&+  ",
-" +*#################&+  ",
-" +*###&&&==$$$$&&&#*&+  ",
-" +*##&@@....@@@@$==*&+  ",
-" +*##&@.$--@@@@@&==*&+  ",
-" +*##&..$--@@@@@&==*&+  ",
-" +*##&..---@@@..&==*&+  ",
-" +###&@@---@@...&==*&+  ",
-"  +==&@@@@@@..@@&==*&+  ",
-"   ++++++++++++++++&+   ",
-"                        ",
-"                        "};
--- a/lisp/toolbar/lc-saveas.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/* XPM */
-static char * saveas2_xpm[] = {
-"24 24 13 1",
-" 	c None",
-".	c #000100",
-"+	c #BBBDBA",
-"@	c #7A98B0",
-"#	c #FFFFFF",
-"$	c #6B6B66",
-"%	c #3E4850",
-"&	c #B0CCE2",
-"*	c #4D687C",
-"=	c #EBA291",
-"-	c #504D46",
-";	c #D3B354",
-">	c #974F3D",
-"                ..      ",
-"               .;;.     ",
-"  .............;;-...   ",
-" .&&$========.;;-.%@@.  ",
-" .&@$=======.;;-.>-@*.  ",
-" .&@$======.;;-.>>%@*.  ",
-" .&@$#####.;;-.++#$@*.  ",
-" .&@$####.;;-.++##$@*.  ",
-" .&@$+++.;;-.+++++$@*.  ",
-" .&@$###.;-.++####$@*.  ",
-" .&@$##.-..++#####$@*.  ",
-" .&@$++..+++++++++$@$.  ",
-" .&@$###++########$@%.  ",
-" .&@@$$$$$$$$$$$$$$@%.  ",
-" .&@@@@@@@@@@@@@@@@@%.  ",
-" .&@@@%%%**$$$$%%%@&%.  ",
-" .&@@%++####++++$**&%.  ",
-" .&@@%+#$--+++++%**&%.  ",
-" .&@@%##$--+++++%**&%.  ",
-" .&@@%##---+++##%**&%.  ",
-" .@@@%++---++###%**&%.  ",
-"  .**%++++++##++%**&%.  ",
-"   ................%.   ",
-"                        "};
--- a/lisp/toolbar/lc-search.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/* XPM */
-static char * search2_xpm[] = {
-"24 24 6 1",
-" 	c None",
-".	c #FFFFFF",
-"+	c #BBBDBA",
-"@	c #000100",
-"#	c #6B6B66",
-"$	c #504D46",
-"                        ",
-"   @@@@@@@@@@@@@        ",
-"  @+..........+$@       ",
-"  @...........+++@      ",
-"  @...........+..+@     ",
-"  @...........+...#@    ",
-"  @...........+...++@   ",
-"  @....+$@@$+.+@@@@@@@  ",
-"  @...+$+++#$+.++++##@  ",
-"  @...$+..++#$..++++#@  ",
-"  @...@+.++++@+...++#@  ",
-"  @...@++++++@++...+#@  ",
-"  @...$#+++++$++....#@  ",
-"  @...+$#+++@@++....+@  ",
-"  @...+#$@@$#@@+....+@  ",
-"  @....++++++@@@+++++@  ",
-"  @....++++++#@@@++++@  ",
-"  @.....++++++#@@@+++@  ",
-"  @..........++#@@+++@  ",
-"  @..........++++++++@  ",
-"  @+...+.+.+.++++++++@  ",
-"  @+++++++++++++#####@  ",
-"   @@@@@@@@@@@@@@@@@@   ",
-"                        "};
--- a/lisp/toolbar/lc-spell.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/* XPM */
-static char * spell2_xpm[] = {
-"24 24 8 1",
-" 	c None",
-".	c #000100",
-"+	c #87AF85",
-"@	c #504D46",
-"#	c #BBBDBA",
-"$	c #6B6B66",
-"%	c #3E4850",
-"&	c #FFFFFF",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"  ...  ....   ...       ",
-" ..  . ..  . ..  .      ",
-" ..  . ....  ..         ",
-" ..... ..  . ..         ",
-" ..  . ..  . ..  .   .  ",
-" ..  . ....   ...   ... ",
-"                   .+.  ",
-"         ..       .+@   ",
-"         .+.     .++.   ",
-"          @+.   %#+.    ",
-"          .++. .#+$.    ",
-"           .++.&++.     ",
-"           .+++++$.     ",
-"            .++++.      ",
-"            .+++@.      ",
-"             .++.       ",
-"             .+@.       ",
-"              ..        ",
-"                        ",
-"                        "};
--- a/lisp/toolbar/lc-undo.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/* XPM */
-static char * undo2_xpm[] = {
-"24 24 5 1",
-" 	c None",
-".	c #D3B354",
-"+	c #000100",
-"@	c #FFFFFF",
-"#	c #6B6B66",
-"                        ",
-"                        ",
-"                        ",
-"          +             ",
-"         ++             ",
-"        +@+             ",
-"       +@.++++          ",
-"      +@......+         ",
-"     +@........+        ",
-"    +...........+       ",
-"     +..........++      ",
-"      +..........+      ",
-"       +..+++....+      ",
-"        +.+ ++...+      ",
-"         ++  ++..+      ",
-"          +   +..+      ",
-"              +..+      ",
-"              +.+       ",
-"             +.#+       ",
-"            +..+        ",
-"             ++         ",
-"                        ",
-"                        ",
-"                        "};
--- a/lisp/toolbar/lc-up_arrow.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/* XPM */
-static char * up_arrow2_xpm[] = {
-"24 24 8 1",
-" 	c None",
-".	c #87AF85",
-"+	c #000100",
-"@	c #504D46",
-"#	c #6B6B66",
-"$	c #BBBDBA",
-"%	c #FFFFFF",
-"&	c #3E4850",
-"                        ",
-"                        ",
-"           +            ",
-"          &$+           ",
-"         +%.@+          ",
-"        +%...@+         ",
-"       +%.....@+        ",
-"      +%......#@+       ",
-"     +%.......##@+      ",
-"    +%$$.....#@@@@+     ",
-"   +++++$.....@+++++    ",
-"       +$....#@+        ",
-"       +$....#@+        ",
-"       +$...##@+        ",
-"       +$...##@+        ",
-"       +$...##@+        ",
-"       +...#@@@+        ",
-"       +++++++++        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/left_arrow.pbm has changed
--- a/lisp/toolbar/left_arrow.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/* XPM */
-static char * left_arrow_xpm[] = {
-"24 24 43 1",
-" 	c None",
-".	c #000000",
-"+	c #B9D0B9",
-"@	c #CDDECB",
-"#	c #B6C7B6",
-"$	c #B1C9B0",
-"%	c #B3C4B3",
-"&	c #B4CBB2",
-"*	c #B5CEB5",
-"=	c #B7CCB5",
-"-	c #B9CEB7",
-";	c #BAD1BA",
-">	c #BBCFBA",
-",	c #BBD0B9",
-"'	c #B2C9B0",
-")	c #7EAB78",
-"!	c #AAC7A8",
-"~	c #B3CAB1",
-"{	c #B0C9B0",
-"]	c #B0C9AE",
-"^	c #AEC7AC",
-"/	c #AAC5A8",
-"(	c #A9C4A7",
-"_	c #698267",
-":	c #2D2D2D",
-"<	c #CFDFCC",
-"[	c #ADC8AB",
-"}	c #B0C7AE",
-"|	c #ADC6AB",
-"1	c #678C63",
-"2	c #9BAD9A",
-"3	c #85AE81",
-"4	c #87AF84",
-"5	c #87B083",
-"6	c #88AF84",
-"7	c #88B085",
-"8	c #86AF82",
-"9	c #547150",
-"0	c #3C5235",
-"a	c #5B7950",
-"b	c #4A6342",
-"c	c #3B5035",
-"d	c #415639",
-"                        ",
-"                        ",
-"                        ",
-"            .           ",
-"           ..           ",
-"          .+.           ",
-"         .@#.           ",
-"        .@$%........    ",
-"       .@&*=-;->,').    ",
-"      .@!~{]^///^(_.    ",
-"     :<[}||[!^^}^[1.    ",
-"    .23444445645789.    ",
-"     .0aaaaaaaaaaab.    ",
-"      .0aaaaaaaaaab.    ",
-"       .0aabccccccd.    ",
-"        .0ab........    ",
-"         .0b.           ",
-"          .b.           ",
-"           ..           ",
-"            .           ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/mail.pbm has changed
--- a/lisp/toolbar/mail.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/* XPM */
-static char *magick[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 5 1",
-"  c Gray0",
-". c #673e666663d4",
-"X c #a852a7bea3d2",
-"o c #eb46ea1de471",
-"O c None",
-/* pixels */
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOO    OOOOOO",
-"OOOOOOOOO     .ooX OOOOO",
-"OOOO     .XooooooX OOOOO",
-"OOO .Xoooooooooo.XX OOOO",
-"OOO o..ooooooooX.Xo OOOO",
-"OOO XoX..oooooo.Xoo OOOO",
-"OOOO oooXX.Xoo...ooX OOO",
-"OOOO oooooXX..XoX.Xo OOO",
-"OOOO Xoooo.ooooooo.X OOO",
-"OOOOO oooXXoooooooo.X OO",
-"OOOOO ooo.oooooooooX  OO",
-"OOOOO XoXXooooooX   OOOO",
-"OOOOOO o.ooooX   OOOOOOO",
-"OOOOOO .XoX   OOOOOOOOOO",
-"OOOOOO ..  OOOOOOOOOOOOO",
-"OOOOOOO  OOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO"
-};
Binary file lisp/toolbar/mail_compose.pbm has changed
--- a/lisp/toolbar/mail_compose.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/* XPM */
-static char *magick[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 9 1",
-"  c Gray0",
-". c #757560602020",
-"X c #6711662663d9",
-"o c #8e8e7d7d4545",
-"O c #adad8e8e3030",
-"+ c #d8d8bebe6a6a",
-"@ c #a8fba84da483",
-"# c #eb79ea70e4f4",
-"$ c None",
-/* pixels */
-"$$$$$$$$$$$$$$$$$$$$$$$$",
-"$$$$$$$$$$$$$$$$$$$$$$$$",
-"$$$$$$$$$$$$$    $$$$$$$",
-"$$$$$$$$     X##@ $$$$$$",
-"$$$     X@######@ $$$$$$",
-"$$ X@##########X@@ $$$$$",
-"$$ #XX########@X@# $$$$$",
-"$$ @#@XX######X@## $$$$$",
-"$$$ ###@@X@##XXX##@ $ $$",
-"$$$ #####@@XX@#@X@#  + $",
-"$$$ @####X#######X@ +o $",
-"$$$$ ###@@######## +o $$",
-"$$$$ ###X######## +o $$$",
-"$$$$ @#@@######@ +o $$$$",
-"$$$$$ #X####@   +o $$$$$",
-"$$$$$ X@#@   $ +o $$$$$$",
-"$$$$$ XX  $$$ +o $$$$$$$",
-"$$$$$$  $$$$ +o $$$$$$$$",
-"$$$$$$$$$$$O.  $$$$$$$$$",
-"$$$$$$$$$$$  $$$$$$$$$$$",
-"$$$$$$$$$$$$$$$$$$$$$$$$",
-"$$$$$$$$$$$$$$$$$$$$$$$$",
-"$$$$$$$$$$$$$$$$$$$$$$$$",
-"$$$$$$$$$$$$$$$$$$$$$$$$"
-};
Binary file lisp/toolbar/mail_send.pbm has changed
--- a/lisp/toolbar/mail_send.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/* XPM */
-static char *magick[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 9 1",
-"  c Gray0",
-". c #675e6580613e",
-"X c #8c8c7c7c6969",
-"o c #9b458d377822",
-"O c #a941a6459f3e",
-"+ c #c8c8b2b29898",
-"@ c #dadac2c2a5a5",
-"# c #eb4dea2fe4ad",
-"$ c None",
-/* pixels */
-"$$$$$$$$$$$$$$$$$$$$$$$$",
-"$$$$$$$$$$$$$$$$$$$$$$$$",
-"$$$$$$$$$$$$$    $$$$$$$",
-"$$$$$$$$     .@#+ $$$$$$",
-"$$$     .+#####@O $$$$$$",
-"$$ .+##########.+O $$$$$",
-"$$ @..########O.+# $$$$$",
-"$$ O@O..@#####.+## $$$$$",
-"$$$ ###+O.O##...##O $$$$",
-"$$$ @####@+..O#O.+# $$$$",
-"$$$ O####.#######.O $$$$",
-"$$$$ ###+O########.O $$$",
-"$$$$ ###.########@O  $$$",
-"$$$$ +#+O#####@O   $$$$$",
-"$$$$$ #.###@O     $$$$$$",
-"$$$$$ .O@O   $$ .. $$$$$",
-"$$$$$ ..  $$$$ .oo. $$$$",
-"$$$$$$  $$$$$   oo   $$$",
-"$$$$$$$$$$$$$$$ Oo $$$$$",
-"$$$$$$$$$$$$$$ oOOX $$$$",
-"$$$$$$$$$$$$$$ ++++ $$$$",
-"$$$$$$$$$$$$$ O@@@@O $$$",
-"$$$$$$$$$$$$$        $$$",
-"$$$$$$$$$$$$$$$$$$$$$$$$"
-};
Binary file lisp/toolbar/new.pbm has changed
--- a/lisp/toolbar/new.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-/* XPM */
-static char * new_xpm[] = {
-"24 24 127 2",
-"  	c None",
-". 	c #000000",
-"+ 	c #D3D3D3",
-"@ 	c #F6F6F6",
-"# 	c #FFFFFF",
-"$ 	c #F9F9F9",
-"% 	c #DADADA",
-"& 	c #585858",
-"* 	c #C7C7C7",
-"= 	c #D1D1D1",
-"- 	c #D6D6D6",
-"; 	c #FEFEFE",
-"> 	c #FDFDFD",
-", 	c #C0C0C0",
-"' 	c #E1E1E1",
-") 	c #F0F0F0",
-"! 	c #9B9B9B",
-"~ 	c #FCFCFB",
-"{ 	c #FBFBFB",
-"] 	c #AFAFAE",
-"^ 	c #E9E9E9",
-"/ 	c #DFDFDF",
-"( 	c #8F8F8F",
-"_ 	c #FAFAF9",
-": 	c #F9F9F8",
-"< 	c #A4A4A3",
-"[ 	c #F4F4F4",
-"} 	c #CFCFCF",
-"| 	c #A2A2A2",
-"1 	c #F8F8F7",
-"2 	c #F8F7F6",
-"3 	c #9E9E9E",
-"4 	c #F7F6F5",
-"5 	c #F6F6F4",
-"6 	c #F4F3F2",
-"7 	c #DEDDDC",
-"8 	c #D3D2D0",
-"9 	c #B7B7B5",
-"0 	c #9F9E9D",
-"a 	c #706F6F",
-"b 	c #65625A",
-"c 	c #F5F4F3",
-"d 	c #F2F2F0",
-"e 	c #E4E4E2",
-"f 	c #DAD9D7",
-"g 	c #D8D8D6",
-"h 	c #CDCCCA",
-"i 	c #AFAEAC",
-"j 	c #88847B",
-"k 	c #F3F3F1",
-"l 	c #EFEFED",
-"m 	c #EEEDEB",
-"n 	c #EDECEA",
-"o 	c #E9E8E6",
-"p 	c #D5D4D3",
-"q 	c #C4C3C2",
-"r 	c #8F8A81",
-"s 	c #F6F5F4",
-"t 	c #F5F5F3",
-"u 	c #F1F1EF",
-"v 	c #F1F0EE",
-"w 	c #ECEBE9",
-"x 	c #EAE9E7",
-"y 	c #E5E4E2",
-"z 	c #E4E3E0",
-"A 	c #D2D1CE",
-"B 	c #8D887E",
-"C 	c #F3F2F1",
-"D 	c #F0F0EE",
-"E 	c #F0EFED",
-"F 	c #EFEEEC",
-"G 	c #E8E7E5",
-"H 	c #E5E4E1",
-"I 	c #E2E1DE",
-"J 	c #E1DFDC",
-"K 	c #979288",
-"L 	c #A49E93",
-"M 	c #E8E7E4",
-"N 	c #E7E6E3",
-"O 	c #E3E2DF",
-"P 	c #E2E0DD",
-"Q 	c #E1E0DC",
-"R 	c #E0DFDB",
-"S 	c #A19C90",
-"T 	c #EDEDEB",
-"U 	c #EBEAE8",
-"V 	c #E9E8E5",
-"W 	c #E6E4E1",
-"X 	c #E3E2DE",
-"Y 	c #DFDEDA",
-"Z 	c #DEDDD9",
-"` 	c #DDDCD8",
-" .	c #A19B90",
-"..	c #E7E5E2",
-"+.	c #E4E3DF",
-"@.	c #DCDBD7",
-"#.	c #E6E5E2",
-"$.	c #E5E4E0",
-"%.	c #E2E1DD",
-"&.	c #DBD9D5",
-"*.	c #D9D7D3",
-"=.	c #9F998D",
-"-.	c #E4E2DF",
-";.	c #DDDBD7",
-">.	c #DCDAD6",
-",.	c #D8D6D2",
-"'.	c #9E988D",
-").	c #EDEDED",
-"!.	c #E1E0DD",
-"~.	c #E0DEDA",
-"{.	c #D8D6D1",
-"].	c #D7D5D1",
-"^.	c #9D978B",
-"/.	c #E1DFDB",
-"(.	c #DEDCD8",
-"_.	c #D7D6D1",
-":.	c #D5D3CE",
-"<.	c #9B958A",
-"[.	c #999891",
-"}.	c #A39E92",
-"|.	c #A39D92",
-"1.	c #A39D91",
-"2.	c #A29C90",
-"3.	c #A19B8F",
-"4.	c #9D978C",
-"5.	c #9B968A",
-"6.	c #676359",
-"                                                ",
-"      . . . . . . . . . . . . .                 ",
-"    . + @ # # # # # # # # $ % & .               ",
-"    . @ # # # # # # # # # # * = - .             ",
-"    . # # # # # # # ; # ; > , ' ) ! .           ",
-"    . # # # # # ; > ~ > ~ { ] ^ # / ( .         ",
-"    . # # # ; > ~ { _ { _ : < ) # [ } | .       ",
-"    . # ; > ~ { _ : 1 : 1 2 3 . . . . . . .     ",
-"    . # ~ { _ : 1 2 4 2 4 5 6 7 8 9 0 a b .     ",
-"    . # _ : 1 2 4 5 c 5 c 6 d e f g h i j .     ",
-"    . # 1 2 4 5 c 6 k 6 k d l m n o p q r .     ",
-"    . # s t 6 6 k d u d u v m w x y z A B .     ",
-"    . # 6 C d D l v E v E F w G H z I J K .     ",
-"    . # 6 C d D l v E v E F w G H z I J L .     ",
-"    . # D l l F m n n n n w M N O P Q R S .     ",
-"    . # T n w w w U V U V V H W X Y Z `  ..     ",
-"    . # U o o G M M N M N ..+.X R Z ` @. ..     ",
-"    . # N #.#.#.H W $.W $.+.%.R Z @.&.*.=..     ",
-"    . $ z O X -.+.%.X %.X Q Q Z ;.>.*.,.'..     ",
-"    . ).!.J Q R %.R Q R Q Y ~.;.>.*.{.].^..     ",
-"    . = /.~.Y Z R Z ~.Z ~.(.(.>.>.,._.:.<..     ",
-"    . [.}.L |.1.|.S 2.S 2.3. .=.=.4.4.5.6..     ",
-"      . . . . . . . . . . . . . . . . . .       ",
-"                                                "};
Binary file lisp/toolbar/open.pbm has changed
--- a/lisp/toolbar/open.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
-/* XPM */
-static char * open_xpm[] = {
-"24 24 173 2",
-"  	c None",
-". 	c #000000",
-"+ 	c #010100",
-"@ 	c #B5B8A5",
-"# 	c #E4E7D2",
-"$ 	c #878A76",
-"% 	c #33342B",
-"& 	c #0B0B0B",
-"* 	c #E2E5CF",
-"= 	c #CFD4AF",
-"- 	c #CED3AE",
-"; 	c #B2B696",
-"> 	c #2D2D25",
-", 	c #23241D",
-"' 	c #9D9F90",
-") 	c #C6CAA6",
-"! 	c #C4C9A5",
-"~ 	c #C6CBA7",
-"{ 	c #C7CCA8",
-"] 	c #C9CEA9",
-"^ 	c #555847",
-"/ 	c #1A1B15",
-"( 	c #20201A",
-"_ 	c #D4D6C2",
-": 	c #BEC2A0",
-"< 	c #B3B896",
-"[ 	c #B0B595",
-"} 	c #B3B797",
-"| 	c #B6BB99",
-"1 	c #BBC09E",
-"2 	c #BCC19F",
-"3 	c #81856C",
-"4 	c #3E3F32",
-"5 	c #010101",
-"6 	c #DADDC8",
-"7 	c #AFB494",
-"8 	c #AAAF8F",
-"9 	c #A3A789",
-"0 	c #A6AA8B",
-"a 	c #A9AD8E",
-"b 	c #A7AB8D",
-"c 	c #A4A88A",
-"d 	c #A1A588",
-"e 	c #AAAD96",
-"f 	c #B3B5A5",
-"g 	c #B8BBAA",
-"h 	c #BABCAB",
-"i 	c #C1C3B2",
-"j 	c #C7CAB7",
-"k 	c #CACDBB",
-"l 	c #BABDA8",
-"m 	c #0C0C09",
-"n 	c #DDDFCB",
-"o 	c #969B7E",
-"p 	c #9DA286",
-"q 	c #95987C",
-"r 	c #96997E",
-"s 	c #9A9D81",
-"t 	c #999D80",
-"u 	c #9DA184",
-"v 	c #A5AA8B",
-"w 	c #A4A98A",
-"x 	c #A3A889",
-"y 	c #A2A588",
-"z 	c #A2A587",
-"A 	c #9FA386",
-"B 	c #9B9E83",
-"C 	c #898D74",
-"D 	c #D8DBC9",
-"E 	c #84866E",
-"F 	c #7D8169",
-"G 	c #151612",
-"H 	c #D7DAC9",
-"I 	c #797D67",
-"J 	c #3D3F34",
-"K 	c #E0E0D9",
-"L 	c #EBEDDD",
-"M 	c #E8EBD9",
-"N 	c #E7EAD8",
-"O 	c #E3E6D4",
-"P 	c #DEE1D0",
-"Q 	c #DADCCC",
-"R 	c #DADCD1",
-"S 	c #2B2C28",
-"T 	c #D7DAC6",
-"U 	c #6F735E",
-"V 	c #0D0D0D",
-"W 	c #F4F4EC",
-"X 	c #CACFAB",
-"Y 	c #C6CBA8",
-"Z 	c #C2C6A4",
-"` 	c #ABB091",
-" .	c #23251E",
-"..	c #494B3D",
-"+.	c #DCDCD4",
-"@.	c #EAECDD",
-"#.	c #CDD2AD",
-"$.	c #CCD1AC",
-"%.	c #CACFAA",
-"&.	c #BABF9D",
-"*.	c #B5B999",
-"=.	c #81836C",
-"-.	c #070806",
-";.	c #D5D8C4",
-">.	c #161616",
-",.	c #F2F2EA",
-"'.	c #C9CEAA",
-").	c #C8CDA9",
-"!.	c #C4C9A6",
-"~.	c #C1C5A3",
-"{.	c #BCC09F",
-"].	c #B6BB9A",
-"^.	c #B0B494",
-"/.	c #9DA185",
-"(.	c #535445",
-"_.	c #B6B8A7",
-":.	c #747470",
-"<.	c #ECECE2",
-"[.	c #C3C8A5",
-"}.	c #C2C7A4",
-"|.	c #C0C5A2",
-"1.	c #BFC4A1",
-"2.	c #BDC2A0",
-"3.	c #B9BD9C",
-"4.	c #B9BE9D",
-"5.	c #A9AD8F",
-"6.	c #A3A78A",
-"7.	c #80836D",
-"8.	c #020201",
-"9.	c #A6A998",
-"0.	c #B8BC9B",
-"a.	c #AFB394",
-"b.	c #ACB091",
-"c.	c #A8AC8E",
-"d.	c #A6AA8C",
-"e.	c #9FA286",
-"f.	c #9B9F83",
-"g.	c #9A9D82",
-"h.	c #8A8D75",
-"i.	c #4F5243",
-"j.	c #070705",
-"k.	c #9E9F91",
-"l.	c #E5E6DA",
-"m.	c #ADB192",
-"n.	c #A5A98C",
-"o.	c #9FA387",
-"p.	c #999D81",
-"q.	c #95987E",
-"r.	c #92957B",
-"s.	c #8C8F76",
-"t.	c #8A8D74",
-"u.	c #71735F",
-"v.	c #080908",
-"w.	c #E3E5D9",
-"x.	c #C0C3AF",
-"y.	c #94987C",
-"z.	c #8F9379",
-"A.	c #8B8F75",
-"B.	c #8A8E74",
-"C.	c #888C73",
-"D.	c #858970",
-"E.	c #868971",
-"F.	c #82866E",
-"G.	c #80836C",
-"H.	c #7D8069",
-"I.	c #797C66",
-"J.	c #727560",
-"K.	c #717460",
-"L.	c #71745F",
-"M.	c #6A6D59",
-"N.	c #434538",
-"O.	c #080907",
-"P.	c #050504",
-"                                                ",
-"                                                ",
-"                                                ",
-"    . . . . . . .                               ",
-"  + @ # # # # # $ %                             ",
-"  & * = = = - - ; >                             ",
-", ' * ) ! ~ { ] ] ^ /                           ",
-"( _ : < [ } | 1 2 3 4 5 . . . . . . .           ",
-", 6 7 8 9 0 8 a b c d e f g h i j k l .         ",
-"m n o p q r s t r u v w x y 9 z A B C .         ",
-". D E F G . . . . . . . . . . . . . . . 5 5     ",
-". H I J K L M M M M M M M M M M M N O P Q R S   ",
-". T U V W = = = = = = = = = - - - X Y Z 1 `  .  ",
-". T ..+.@.#.- - #.- #.#.#.#.#.$.%.Y Z &.*.=.-.  ",
-". ;.>.,.X %.X %.'.%.'.{ ).).Y !.~.{.].^./.(.m   ",
-". _.:.<.[.}.}.Z |.Z 1.2.|.2.3.4.} [ 5.6.7.8.    ",
-". 9.+.0.0.*.} } [ [ a.a.a.b.c.d.e.f.g.h.i.j.    ",
-". k.l.m.5.d.n.6.6.d o.e.f.p.q.r.s.t.t.u.v.      ",
-". w.x.y.z.A.B.C.C.D.E.F.G.H.I.J.K.L.M.N.O.      ",
-"  . . . . . . . . . . . . . . . . . . P.        ",
-"                                                ",
-"                                                ",
-"                                                ",
-"                                                "};
Binary file lisp/toolbar/paste.pbm has changed
--- a/lisp/toolbar/paste.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/* XPM */
-static char * paste_xpm[] = {
-"24 24 89 1",
-" 	c None",
-".	c #000000",
-"+	c #B9B9B9",
-"@	c #FEFEFE",
-"#	c #F9F9F9",
-"$	c #757575",
-"%	c #F5F5E8",
-"&	c #565651",
-"*	c #FFFFFF",
-"=	c #A0A0A0",
-"-	c #939393",
-";	c #7C7C7C",
-">	c #C5C5BB",
-",	c #CFC6A0",
-"'	c #D7CEAA",
-")	c #ADA689",
-"!	c #4B483C",
-"~	c #6D6D6D",
-"{	c #6C6C6C",
-"]	c #A9A9A9",
-"^	c #3D3A30",
-"/	c #979178",
-"(	c #C1B898",
-"_	c #8A793D",
-":	c #C3BB9A",
-"<	c #AFA78A",
-"[	c #444236",
-"}	c #FAFAFA",
-"|	c #EFEFEF",
-"1	c #C7C7C7",
-"2	c #D8D8D8",
-"3	c #D2D2D2",
-"4	c #7B7B7B",
-"5	c #302E26",
-"6	c #89846C",
-"7	c #C4BC9A",
-"8	c #847235",
-"9	c #C5C5C5",
-"0	c #A7A7A7",
-"a	c #ADADAD",
-"b	c #9A9A9A",
-"c	c #9B9B9B",
-"d	c #868686",
-"e	c #424242",
-"f	c #847033",
-"g	c #C9C09E",
-"h	c #464337",
-"i	c #35332A",
-"j	c #2D2B23",
-"k	c #C6BE9D",
-"l	c #826F33",
-"m	c #7F7964",
-"n	c #4C493C",
-"o	c #171612",
-"p	c #13120F",
-"q	c #3E3B31",
-"r	c #282210",
-"s	c #474438",
-"t	c #B3B3B3",
-"u	c #D6D6D6",
-"v	c #B7AE90",
-"w	c #B1AA8C",
-"x	c #37352B",
-"y	c #151410",
-"z	c #8F8F8F",
-"A	c #989898",
-"B	c #C6C6C6",
-"C	c #B9B293",
-"D	c #11100D",
-"E	c #434035",
-"F	c #636363",
-"G	c #767676",
-"H	c #AAA48B",
-"I	c #A5A086",
-"J	c #A19A7F",
-"K	c #312F26",
-"L	c #AFA88C",
-"M	c #050403",
-"N	c #12110E",
-"O	c #A9A489",
-"P	c #A39E85",
-"Q	c #EBE7D0",
-"R	c #D2C9A5",
-"S	c #A29053",
-"T	c #8E7C3D",
-"U	c #88793B",
-"V	c #806C2F",
-"W	c #78652B",
-"X	c #251F0C",
-"       ....             ",
-" ......+@#$......       ",
-".%%%%%&*=-;&>%%%,.      ",
-".%''')!*~{]^/(''_.      ",
-".%::<[}|123456<78.      ",
-".%''!900abcde!)'f.      ",
-".%g:6hijjjjj56<kl.      ",
-".%'''////////(''l.      ",
-".%g::::mnopppp^qr....   ",
-".%'''''st***********u.  ",
-".%vwwwwx*************.  ",
-".%'''''y*0zzA**Bz*zB*.  ",
-".%CwwwwD*************.  ",
-".%'''''E*~F*GzzB*Bz**.  ",
-".%HIJJJK*************.  ",
-".%'''''E*0zz*zzzB*Az*.  ",
-".%LIJJJM*************.  ",
-".%'''''N*~F*GzzB*Bz**.  ",
-".%OPJJJK*************.  ",
-".Q'''''E*0zz*zzzB*Az*.  ",
-".RSTUVWX*************.  ",
-" .......u***********u.  ",
-"        .............   ",
-"                        "};
Binary file lisp/toolbar/preferences.pbm has changed
--- a/lisp/toolbar/preferences.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-/* XPM */
-static char * preferences_xpm[] = {
-"24 24 87 1",
-" 	c None",
-".	c #000000",
-"+	c #BAB5AB",
-"@	c #D0CDC6",
-"#	c #88857D",
-"$	c #C9C6BE",
-"%	c #CCC8C1",
-"&	c #E5E3E0",
-"*	c #FFFFFF",
-"=	c #757575",
-"-	c #2E2E2E",
-";	c #F6F5F5",
-">	c #CCCCCC",
-",	c #AFAFAF",
-"'	c #D3D1CB",
-")	c #C1C0BF",
-"!	c #F0EFED",
-"~	c #797772",
-"{	c #DCDCDC",
-"]	c #A5A19C",
-"^	c #EAE9E5",
-"/	c #F3F1F0",
-"(	c #EDEDED",
-"_	c #A19D96",
-":	c #C1BDB4",
-"<	c #DBD8D3",
-"[	c #D9D6D1",
-"}	c #89857E",
-"|	c #FCFCFC",
-"1	c #EAE9E6",
-"2	c #F5F4F3",
-"3	c #C6C2BA",
-"4	c #F0EFEE",
-"5	c #F4F4F3",
-"6	c #CBC7C0",
-"7	c #ECECEB",
-"8	c #676560",
-"9	c #54524D",
-"0	c #777676",
-"a	c #797978",
-"b	c #85827E",
-"c	c #79756F",
-"d	c #7590AE",
-"e	c #A4BAD0",
-"f	c #90A6BE",
-"g	c #9F9F9E",
-"h	c #BEBDBC",
-"i	c #B8B4AD",
-"j	c #87837C",
-"k	c #D3DFEA",
-"l	c #A2AEBC",
-"m	c #9DB6CE",
-"n	c #637B95",
-"o	c #E2E2E2",
-"p	c #EEEEED",
-"q	c #849CB6",
-"r	c #D7E2ED",
-"s	c #8D98A5",
-"t	c #9DB8D2",
-"u	c #607791",
-"v	c #EDEDEC",
-"w	c #99ADC3",
-"x	c #DFE7F0",
-"y	c #8193A9",
-"z	c #586D84",
-"A	c #5B7189",
-"B	c #F1F1F1",
-"C	c #EEEDEB",
-"D	c #A7A6A5",
-"E	c #726F6A",
-"F	c #A1B4C8",
-"G	c #EEF3F6",
-"H	c #60768F",
-"I	c #DEDDDC",
-"J	c #787776",
-"K	c #4E4E4D",
-"L	c #91A6BE",
-"M	c #F0F4F7",
-"N	c #97A5B6",
-"O	c #BFBEBD",
-"P	c #AAAAA9",
-"Q	c #ACACAB",
-"R	c #B0C6DB",
-"S	c #EDF2F6",
-"T	c #818A95",
-"U	c #6C85A1",
-"V	c #C0D1E2",
-"       ..               ",
-"      .+@#.             ",
-"       .$%+.        ..  ",
-"        .&$.       .*=. ",
-"    ..  -;$.      .*>,. ",
-"   .' ..)!+~.     .{,.  ",
-"   .]%%^/+++.    .(..   ",
-"    ._:%$<[+}.  .|.     ",
-"     .....123}..>.      ",
-"          .456.,.       ",
-"           .7.,..       ",
-"            .,.89.      ",
-"        ....,.0abc.     ",
-"       .def.. .ghij.    ",
-"      .dklmn.  .op6}.   ",
-"     .qrsntu.   .v/$}.  ",
-"    .wxyztdA.    .BCDE..",
-"   .FGyHtdA.      .IJK,.",
-"  .LMNHtdA.        .OPQ.",
-"  .RSTtdA..         ... ",
-"  .UtVLA..              ",
-"   .UUn..               ",
-"    ...                 ",
-"                        "};
Binary file lisp/toolbar/print.pbm has changed
--- a/lisp/toolbar/print.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,202 +0,0 @@
-/* XPM */
-static char * print_xpm[] = {
-"24 24 175 2",
-"  	c None",
-". 	c #000000",
-"+ 	c #C7C7C7",
-"@ 	c #FAFAFA",
-"# 	c #FCFCFC",
-"$ 	c #FBFBFB",
-"% 	c #F8F8F8",
-"& 	c #AFAFAF",
-"* 	c #F9F9F9",
-"= 	c #E5E5E5",
-"- 	c #E3E3E3",
-"; 	c #E2E2E2",
-"> 	c #E0E0E0",
-", 	c #DFDFDF",
-"' 	c #DCDCDC",
-") 	c #DBDBDB",
-"! 	c #B6B6B6",
-"~ 	c #6B6B6B",
-"{ 	c #676767",
-"] 	c #818181",
-"^ 	c #E7E7E7",
-"/ 	c #606060",
-"( 	c #A0A0A0",
-"_ 	c #DADADA",
-": 	c #E1E1E1",
-"< 	c #B7B7B7",
-"[ 	c #FDFDFD",
-"} 	c #EFEFEF",
-"| 	c #EEEEEE",
-"1 	c #EDEDED",
-"2 	c #ECECEC",
-"3 	c #EBEBEB",
-"4 	c #E9E9E9",
-"5 	c #E8E8E8",
-"6 	c #BFBFBF",
-"7 	c #8A8A8A",
-"8 	c #6A6A6A",
-"9 	c #9E9E9E",
-"0 	c #F6F6F6",
-"a 	c #909090",
-"b 	c #A2A2A2",
-"c 	c #AAAAAA",
-"d 	c #F4F4F4",
-"e 	c #CECECE",
-"f 	c #ADADAD",
-"g 	c #AEAEAE",
-"h 	c #BEBEBE",
-"i 	c #A6A6A6",
-"j 	c #CDCDCD",
-"k 	c #F5F5F5",
-"l 	c #DEDEDE",
-"m 	c #DDDDDD",
-"n 	c #C9C9C9",
-"o 	c #878787",
-"p 	c #888888",
-"q 	c #D0D0D0",
-"r 	c #6E6E6E",
-"s 	c #797979",
-"t 	c #D1D1D1",
-"u 	c #A1A1A1",
-"v 	c #B3B3B3",
-"w 	c #FFFFFF",
-"x 	c #CACACA",
-"y 	c #A7A7A7",
-"z 	c #A5A5A5",
-"A 	c #A4A4A4",
-"B 	c #A3A3A3",
-"C 	c #87847C",
-"D 	c #EAE8E3",
-"E 	c #8D8982",
-"F 	c #53524C",
-"G 	c #807D74",
-"H 	c #AAA9A5",
-"I 	c #BAB5AB",
-"J 	c #F3F3F3",
-"K 	c #C3C1BD",
-"L 	c #8B8B89",
-"M 	c #E6E5E1",
-"N 	c #F9F9F8",
-"O 	c #FAFAF9",
-"P 	c #F9F9F7",
-"Q 	c #F7F6F5",
-"R 	c #F7F7F4",
-"S 	c #F6F5F4",
-"T 	c #F2F1EE",
-"U 	c #F0EFEC",
-"V 	c #E5E5E4",
-"W 	c #9F9F9F",
-"X 	c #DFDED9",
-"Y 	c #A4A3A1",
-"Z 	c #6C6B6A",
-"` 	c #F5F4F3",
-" .	c #D5D5D5",
-"..	c #D3D3D3",
-"+.	c #D4D4D3",
-"@.	c #D4D4D4",
-"#.	c #A9A9A9",
-"$.	c #B5B5B5",
-"%.	c #CDCDCB",
-"&.	c #B5B5B4",
-"*.	c #DCDAD3",
-"=.	c #6B6B6A",
-"-.	c #999896",
-";.	c #918F87",
-">.	c #999895",
-",.	c #E6E4E1",
-"'.	c #F0EEEC",
-").	c #FAF9F9",
-"!.	c #F9F8F7",
-"~.	c #F8F7F6",
-"{.	c #F8F8F7",
-"].	c #F4F3F1",
-"^.	c #F2F1EF",
-"/.	c #565655",
-"(.	c #858482",
-"_.	c #9C9B99",
-":.	c #6B6A68",
-"<.	c #585858",
-"[.	c #5E5C57",
-"}.	c #524F4B",
-"|.	c #4A4845",
-"1.	c #4B4A46",
-"2.	c #4B4946",
-"3.	c #4A4844",
-"4.	c #494743",
-"5.	c #484642",
-"6.	c #474541",
-"7.	c #464440",
-"8.	c #514F4B",
-"9.	c #53514E",
-"0.	c #7B7A77",
-"a.	c #797771",
-"b.	c #949391",
-"c.	c #989694",
-"d.	c #868480",
-"e.	c #6E6C66",
-"f.	c #706D67",
-"g.	c #5C5955",
-"h.	c #67645F",
-"i.	c #5B5954",
-"j.	c #585651",
-"k.	c #5D5B56",
-"l.	c #595652",
-"m.	c #53504C",
-"n.	c #575450",
-"o.	c #595752",
-"p.	c #5C5956",
-"q.	c #5B5956",
-"r.	c #61615E",
-"s.	c #696861",
-"t.	c #77756F",
-"u.	c #7E7B77",
-"v.	c #979690",
-"w.	c #96938D",
-"x.	c #807E77",
-"y.	c #7D7A74",
-"z.	c #787770",
-"A.	c #716F6A",
-"B.	c #6E6C67",
-"C.	c #595753",
-"D.	c #63615C",
-"E.	c #686661",
-"F.	c #6F6E68",
-"G.	c #6D6C66",
-"H.	c #72716B",
-"I.	c #76746F",
-"J.	c #6A6963",
-"K.	c #8B8880",
-"L.	c #B2AFA8",
-"M.	c #B6B3AD",
-"N.	c #BFBDB6",
-"O.	c #BDBBB4",
-"P.	c #B0AEA6",
-"Q.	c #ABA8A2",
-"R.	c #9C9991",
-"                                                ",
-"            . . . . . . . . . . . .             ",
-"          . + @ # # # # # # # $ % & .           ",
-"          . * = - - - ; > , , ' ) ! .           ",
-"          . # ~ { ] ^ / ( _ : > > < .           ",
-"          . [ } | 1 1 | 2 2 3 4 5 6 .           ",
-"          . [ 7 8 9 0 a b 4 c a d + .           ",
-"          . [ # # # # $ $ # # $ $ e .           ",
-"          . [ f g = h % h i j 3 # j .           ",
-"          . k l l l m l l , l 5 : n .           ",
-"        . . @ o ~ p q r s t p u q v . .         ",
-"      . w . x y z A z z i B b u u 9 . C .       ",
-"    . w D E F . . . . . . . . . . G C H I .     ",
-"  . w w J w w w w w w w w w w w w w w w w D .   ",
-"  . K L M N O N P Q R O O S T T U V D W X I .   ",
-"  . Y Z ` h  .! ..! +.< @.#...$.%.&.*.=.-.;..   ",
-"  . >.=.,.'.Q N @ ).N !.~.{.{.].].].^./.(.;..   ",
-"  . _.:.<.[.}.|.1.2.2.2.3.4.5.6.4.7.8.9.0.a..   ",
-"  . b.c.d.e.f.g.h.i.j.i.k.l.m.n.o.p.q.r.s.t..   ",
-"  . u.v.w.;.x.y.z.t.A.t.A.B.C.D.E.F.G.H.I.J..   ",
-"    . . . . . . . . . . . . . . . . . . . .     ",
-"    . K.L.M.N.N.N.N.N.O.P.L.Q.P.R.R.R.G G .     ",
-"      . . . . . . . . . . . . . . . . . .       ",
-"                                                "};
Binary file lisp/toolbar/right_arrow.pbm has changed
--- a/lisp/toolbar/right_arrow.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/* XPM */
-static char * right_arrow_xpm[] = {
-"24 24 41 1",
-" 	c None",
-".	c #000000",
-"+	c #8CA782",
-"@	c #B1CDAE",
-"#	c #77A16E",
-"$	c #B4CEB1",
-"%	c #ACC8A9",
-"&	c #709867",
-"*	c #C1D6BD",
-"=	c #BDD3B8",
-"-	c #BFD4BB",
-";	c #C2D7BE",
-">	c #B0CAAD",
-",	c #B2CBB0",
-"'	c #AAC7A8",
-")	c #0F1308",
-"!	c #AEC5A8",
-"~	c #AEC8AD",
-"{	c #ABC7A8",
-"]	c #AAC6A7",
-"^	c #A8C6A5",
-"/	c #ADC8AD",
-"(	c #A8C7A8",
-"_	c #A5C4A3",
-":	c #7F9F76",
-"<	c #A6BFA0",
-"[	c #ABC7AA",
-"}	c #A7C5A4",
-"|	c #A9C7A6",
-"1	c #AFC8AD",
-"2	c #A4C3A2",
-"3	c #6B9060",
-"4	c #778E6F",
-"5	c #698D60",
-"6	c #6B9063",
-"7	c #445B2C",
-"8	c #6B8661",
-"9	c #5B7950",
-"0	c #6C8562",
-"a	c #65815C",
-"b	c #506B46",
-"                        ",
-"                        ",
-"                        ",
-"           .            ",
-"           ..           ",
-"           .+.          ",
-"           .@#.         ",
-"    ........$%&.        ",
-"    .*=-;;;;>,'&)       ",
-"    .!~{{{]^'/(_:.      ",
-"    .<[^}^|{%'{123.     ",
-"    .45666666666657.    ",
-"    .8999999999997.     ",
-"    .099999999997.      ",
-"    .abbbbbb9997.       ",
-"    ........b97.        ",
-"           .b7.         ",
-"           .7.          ",
-"           ..           ",
-"           .            ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/save.pbm has changed
--- a/lisp/toolbar/save.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,247 +0,0 @@
-/* XPM */
-static char * save_xpm[] = {
-"24 24 220 2",
-"  	c None",
-". 	c #000000",
-"+ 	c #C3D7F4",
-"@ 	c #A9CDE5",
-"# 	c #75757A",
-"$ 	c #EFC5BB",
-"% 	c #F1C8BE",
-"& 	c #F0C6BC",
-"* 	c #EEBCB2",
-"= 	c #EEBEB5",
-"- 	c #EEC1B8",
-"; 	c #EDBFB6",
-"> 	c #E9B7AD",
-", 	c #E9B8AF",
-"' 	c #E9B9B1",
-") 	c #E5BFBA",
-"! 	c #737277",
-"~ 	c #B3CDE3",
-"{ 	c #A1BED6",
-"] 	c #BBD6E8",
-"^ 	c #8AAAC5",
-"/ 	c #605F68",
-"( 	c #E08D7E",
-"_ 	c #E0826E",
-": 	c #E0806E",
-"< 	c #DC7A68",
-"[ 	c #DC8171",
-"} 	c #DA7868",
-"| 	c #D48173",
-"1 	c #D47D6E",
-"2 	c #CE7265",
-"3 	c #CF7264",
-"4 	c #CE7567",
-"5 	c #C4675B",
-"6 	c #C36558",
-"7 	c #626169",
-"8 	c #87A3B7",
-"9 	c #567187",
-"0 	c #BAD5E9",
-"a 	c #88A7C3",
-"b 	c #686670",
-"c 	c #C8817B",
-"d 	c #CB7C74",
-"e 	c #CB7A73",
-"f 	c #CB7B73",
-"g 	c #CC7C72",
-"h 	c #CB7D73",
-"i 	c #BF6B64",
-"j 	c #CC7A70",
-"k 	c #C16A62",
-"l 	c #CC7C73",
-"m 	c #C2655B",
-"n 	c #C36459",
-"o 	c #BA6C6A",
-"p 	c #819EB6",
-"q 	c #547086",
-"r 	c #B6D3E7",
-"s 	c #87ABC1",
-"t 	c #737373",
-"u 	c #FFFFFF",
-"v 	c #83A0B8",
-"w 	c #526C80",
-"x 	c #B9D3E7",
-"y 	c #85A4BF",
-"z 	c #4F697C",
-"A 	c #B9D3E6",
-"B 	c #84A3BF",
-"C 	c #CECECE",
-"D 	c #CDCDCD",
-"E 	c #BFBFBF",
-"F 	c #88A4BB",
-"G 	c #486276",
-"H 	c #B7D2E7",
-"I 	c #82A0BB",
-"J 	c #636363",
-"K 	c #465E70",
-"L 	c #B5CAE5",
-"M 	c #7FA2B9",
-"N 	c #87A3BA",
-"O 	c #455C6D",
-"P 	c #AECCE5",
-"Q 	c #7DA0B6",
-"R 	c #C5C5C5",
-"S 	c #546069",
-"T 	c #B0D1E4",
-"U 	c #83A1B6",
-"V 	c #735B5B",
-"W 	c #515C64",
-"X 	c #AACEE3",
-"Y 	c #7B9BB2",
-"Z 	c #7A8E9A",
-"` 	c #7A7A7A",
-" .	c #6B6F72",
-"..	c #6F6F6F",
-"+.	c #696969",
-"@.	c #6F777E",
-"#.	c #86A2B9",
-"$.	c #3A515D",
-"%.	c #A9C9E2",
-"&.	c #7494AF",
-"*.	c #829FB7",
-"=.	c #7F9DB6",
-"-.	c #7E9CB5",
-";.	c #7998B2",
-">.	c #85A1B8",
-",.	c #8CA7BD",
-"'.	c #8AA5BB",
-").	c #364A59",
-"!.	c #ABC4E2",
-"~.	c #7294AD",
-"{.	c #6F90AC",
-"].	c #7192AE",
-"^.	c #414A4E",
-"/.	c #424A51",
-"(.	c #525B63",
-"_.	c #626F79",
-":.	c #5F6C76",
-"<.	c #5C6971",
-"[.	c #5A666F",
-"}.	c #58636B",
-"|.	c #57636A",
-"1.	c #3B5360",
-"2.	c #39424B",
-"3.	c #7897B3",
-"4.	c #A4B9CB",
-"5.	c #364853",
-"6.	c #AAC9E2",
-"7.	c #7091AA",
-"8.	c #6F8FA7",
-"9.	c #4A5359",
-"0.	c #97938C",
-"a.	c #DFDDDA",
-"b.	c #E3E1DE",
-"c.	c #EBEAE8",
-"d.	c #EAE9E7",
-"e.	c #CFCEC9",
-"f.	c #C9C6C0",
-"g.	c #9B968E",
-"h.	c #566168",
-"i.	c #4B657A",
-"j.	c #54738C",
-"k.	c #AAC6DD",
-"l.	c #34464E",
-"m.	c #AAC9E1",
-"n.	c #6C8EA6",
-"o.	c #6C8CA4",
-"p.	c #40474D",
-"q.	c #DAD8D3",
-"r.	c #E7E6E2",
-"s.	c #67655E",
-"t.	c #524F47",
-"u.	c #D9D7D4",
-"v.	c #C7C5BF",
-"w.	c #C0BCB5",
-"x.	c #B8B3AB",
-"y.	c #434C54",
-"z.	c #4D697F",
-"A.	c #4F6F84",
-"B.	c #B3CADC",
-"C.	c #313E49",
-"D.	c #A8C8E1",
-"E.	c #6B8DA6",
-"F.	c #728FA4",
-"G.	c #E2E1DD",
-"H.	c #F0EFEC",
-"I.	c #CDCAC6",
-"J.	c #C2BFB9",
-"K.	c #CAC6C0",
-"L.	c #DCDAD7",
-"M.	c #4B555D",
-"N.	c #4E697F",
-"O.	c #BACCDC",
-"P.	c #A4C4DE",
-"Q.	c #698BA3",
-"R.	c #708AA1",
-"S.	c #383E43",
-"T.	c #E0DEDA",
-"U.	c #514E46",
-"V.	c #4F4C44",
-"W.	c #C7C4BE",
-"X.	c #CBC8C2",
-"Y.	c #E1E0DC",
-"Z.	c #E9E8E6",
-"`.	c #475158",
-" +	c #4E6879",
-".+	c #4D6C80",
-"++	c #A3C3DB",
-"@+	c #383F43",
-"#+	c #778999",
-"$+	c #6E899E",
-"%+	c #65859C",
-"&+	c #33383C",
-"*+	c #D7D4D0",
-"=+	c #D6D4D0",
-"-+	c #4E4A43",
-";+	c #4D4942",
-">+	c #D1CEC9",
-",+	c #E6E5E2",
-"'+	c #EDECEA",
-")+	c #454F55",
-"!+	c #486173",
-"~+	c #4D6678",
-"{+	c #A1C1DA",
-"]+	c #373C40",
-"^+	c #0C0D0F",
-"/+	c #4E5E6A",
-"(+	c #5B6E7C",
-"_+	c #4F5B62",
-":+	c #A4A099",
-"<+	c #CCC9C3",
-"[+	c #D7D5D1",
-"}+	c #E4E2E0",
-"|+	c #DDDBD7",
-"1+	c #B8B5B0",
-"2+	c #3E474D",
-"3+	c #4A6176",
-"4+	c #4A6070",
-"5+	c #9BC3D8",
-"6+	c #363C41",
-"7+	c #28323E",
-"                                                ",
-"    . . . . . . . . . . . . . . . . . . .       ",
-"  . + @ # $ % & * = - ; > , > , ' ) ! ~ { .     ",
-"  . ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 .     ",
-"  . 0 a b c d e f g h i j k l m n o b p q .     ",
-"  . r s t u u u u u u u u u u u u u t v w .     ",
-"  . x y t u u u u u u u u u u u u u t v z .     ",
-"  . A B t C D D D D D D D D D D D E t F G .     ",
-"  . H I J u u u u u u u u u u u u u t F K .     ",
-"  . L M t u u u u u u u u u u u u u t N O .     ",
-"  . P Q t C D D D D D D D D D D D R t N S .     ",
-"  . T U V u u u u u u u u u u u u u t v W .     ",
-"  . X Y Z ` t t t t t  ...t t t t +.@.#.$..     ",
-"  . %.&.p v #.*.=.-.*.;.#.>.>.N *.,.v '.)..     ",
-"  . !.~.{.].^./.(._.:.<.[.}.|.(.1.2.3.4.5..     ",
-"  . 6.7.8.9.0.a.b.c.c.d.a.e.f.g.h.i.j.k.l..     ",
-"  . m.n.o.p.q.r.s.t.t.u.v.w.x.e.y.z.A.B.C..     ",
-"  . D.E.F.p.G.H.s.t.t.I.J.w.K.L.M.N.A.O.C..     ",
-"  . P.Q.R.S.T.c.U.V.V.W.w.X.Y.Z.`. +.+++@+.     ",
-"  . #+$+%+&+*+=+-+;+;+w.>+,+'+,+)+!+~+{+]+.     ",
-"    ^+/+(+_+:+w.x.<+<+[+}+d.|+1+2+3+4+5+6+.     ",
-"      . . . . . . . . . . . . . . . . 7+.       ",
-"                                                ",
-"                                                "};
Binary file lisp/toolbar/saveas.pbm has changed
--- a/lisp/toolbar/saveas.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,289 +0,0 @@
-/* XPM */
-static char * saveas_xpm[] = {
-"24 24 262 2",
-"  	c None",
-". 	c #000000",
-"+ 	c #FBE73B",
-"@ 	c #F2B64D",
-"# 	c #FCEB3D",
-"$ 	c #F7B544",
-"% 	c #5D502C",
-"& 	c #C3D7F4",
-"* 	c #A9CDE5",
-"= 	c #75757A",
-"- 	c #EFC5BB",
-"; 	c #F1C8BE",
-"> 	c #F0C6BC",
-", 	c #EEBCB2",
-"' 	c #EEBEB5",
-") 	c #EEC1B8",
-"! 	c #EDBFB6",
-"~ 	c #E8B6AC",
-"{ 	c #FCE93B",
-"] 	c #F7B545",
-"^ 	c #6C5F34",
-"/ 	c #434345",
-"( 	c #92A7B9",
-"_ 	c #96B1C7",
-": 	c #BBD6E8",
-"< 	c #8AAAC5",
-"[ 	c #605F68",
-"} 	c #E08D7E",
-"| 	c #E0826E",
-"1 	c #E0806E",
-"2 	c #DC7A68",
-"3 	c #DC8171",
-"4 	c #DA7868",
-"5 	c #D38072",
-"6 	c #FAE43A",
-"7 	c #F4B244",
-"8 	c #615030",
-"9 	c #783E35",
-"0 	c #4D4C52",
-"a 	c #7790A2",
-"b 	c #526D82",
-"c 	c #BAD5E9",
-"d 	c #88A7C3",
-"e 	c #686670",
-"f 	c #C8817B",
-"g 	c #CB7C74",
-"h 	c #CB7A73",
-"i 	c #CB7B73",
-"j 	c #CC7C72",
-"k 	c #CA7C72",
-"l 	c #F9DF39",
-"m 	c #F3AF42",
-"n 	c #614F2F",
-"o 	c #8F4941",
-"p 	c #945554",
-"q 	c #5B5A62",
-"r 	c #7B97AE",
-"s 	c #536F84",
-"t 	c #B6D3E7",
-"u 	c #87ABC1",
-"v 	c #737373",
-"w 	c #FFFFFF",
-"x 	c #FEFEFE",
-"y 	c #F9DC38",
-"z 	c #EFB44D",
-"A 	c #665A32",
-"B 	c #BBBBBB",
-"C 	c #CDCDCD",
-"D 	c #E4E4E4",
-"E 	c #6E6E6E",
-"F 	c #819EB6",
-"G 	c #526C80",
-"H 	c #B9D3E7",
-"I 	c #85A4BF",
-"J 	c #F8D837",
-"K 	c #F0A93F",
-"L 	c #655930",
-"M 	c #BABABA",
-"N 	c #CCCCCC",
-"O 	c #E5E5E5",
-"P 	c #F7F7F7",
-"Q 	c #727272",
-"R 	c #83A0B8",
-"S 	c #4F697C",
-"T 	c #B9D3E6",
-"U 	c #84A3BF",
-"V 	c #CECECE",
-"W 	c #F6D236",
-"X 	c #EDA43E",
-"Y 	c #5C5130",
-"Z 	c #949494",
-"` 	c #A3A3A3",
-" .	c #B7B7B7",
-"..	c #C6C6C6",
-"+.	c #BDBDBD",
-"@.	c #88A4BB",
-"#.	c #486276",
-"$.	c #B7D2E7",
-"%.	c #82A0BB",
-"&.	c #636363",
-"*.	c #FDFDFD",
-"=.	c #D7AE74",
-"-.	c #61562F",
-";.	c #465E70",
-">.	c #B5CAE5",
-",.	c #7FA2B9",
-"'.	c #4F4115",
-").	c #87A3BA",
-"!.	c #455C6D",
-"~.	c #AECCE5",
-"{.	c #7DA0B6",
-"].	c #CBCBCB",
-"^.	c #9B9B9B",
-"/.	c #9C9C9C",
-"(.	c #A7A7A7",
-"_.	c #B8B8B8",
-":.	c #C5C5C5",
-"<.	c #546069",
-"[.	c #B0D1E4",
-"}.	c #83A1B6",
-"|.	c #735B5B",
-"1.	c #F0F0F0",
-"2.	c #D9D9D9",
-"3.	c #D3D3D3",
-"4.	c #E1E1E1",
-"5.	c #EDEDED",
-"6.	c #F8F8F8",
-"7.	c #515C64",
-"8.	c #AACEE3",
-"9.	c #7B9BB2",
-"0.	c #7A8E9A",
-"a.	c #7A7A7A",
-"b.	c #707070",
-"c.	c #6C6C6C",
-"d.	c #6F6F6F",
-"e.	c #6A6E71",
-"f.	c #696969",
-"g.	c #6F777E",
-"h.	c #86A2B9",
-"i.	c #3A515D",
-"j.	c #A9C9E2",
-"k.	c #7494AF",
-"l.	c #7E9BB4",
-"m.	c #7D9AB3",
-"n.	c #7998B2",
-"o.	c #85A1B8",
-"p.	c #829FB7",
-"q.	c #8CA7BD",
-"r.	c #8AA5BB",
-"s.	c #364A59",
-"t.	c #ABC4E2",
-"u.	c #7294AD",
-"v.	c #6F90AC",
-"w.	c #7192AE",
-"x.	c #414A4E",
-"y.	c #424A51",
-"z.	c #525B63",
-"A.	c #626F79",
-"B.	c #5F6C76",
-"C.	c #5C6971",
-"D.	c #5A666F",
-"E.	c #58636B",
-"F.	c #57636A",
-"G.	c #3B5360",
-"H.	c #39424B",
-"I.	c #7897B3",
-"J.	c #A4B9CB",
-"K.	c #364853",
-"L.	c #AAC9E2",
-"M.	c #7091AA",
-"N.	c #6F8FA7",
-"O.	c #4A5359",
-"P.	c #97938C",
-"Q.	c #DFDDDA",
-"R.	c #E3E1DE",
-"S.	c #EBEAE8",
-"T.	c #EAE9E7",
-"U.	c #CFCEC9",
-"V.	c #C9C6C0",
-"W.	c #9B968E",
-"X.	c #566168",
-"Y.	c #4B657A",
-"Z.	c #54738C",
-"`.	c #AAC6DD",
-" +	c #34464E",
-".+	c #AAC9E1",
-"++	c #6C8EA6",
-"@+	c #6C8CA4",
-"#+	c #40474D",
-"$+	c #DAD8D3",
-"%+	c #E7E6E2",
-"&+	c #67655E",
-"*+	c #524F47",
-"=+	c #D9D7D4",
-"-+	c #C7C5BF",
-";+	c #C0BCB5",
-">+	c #B8B3AB",
-",+	c #434C54",
-"'+	c #4D697F",
-")+	c #4F6F84",
-"!+	c #B3CADC",
-"~+	c #313E49",
-"{+	c #A8C8E1",
-"]+	c #6B8DA6",
-"^+	c #728FA4",
-"/+	c #E2E1DD",
-"(+	c #F0EFEC",
-"_+	c #CDCAC6",
-":+	c #C2BFB9",
-"<+	c #CAC6C0",
-"[+	c #DCDAD7",
-"}+	c #4B555D",
-"|+	c #4E697F",
-"1+	c #BACCDC",
-"2+	c #A4C4DE",
-"3+	c #698BA3",
-"4+	c #708AA1",
-"5+	c #383E43",
-"6+	c #E0DEDA",
-"7+	c #514E46",
-"8+	c #4F4C44",
-"9+	c #C7C4BE",
-"0+	c #CBC8C2",
-"a+	c #E1E0DC",
-"b+	c #E9E8E6",
-"c+	c #475158",
-"d+	c #4E6879",
-"e+	c #4D6C80",
-"f+	c #A3C3DB",
-"g+	c #383F43",
-"h+	c #778999",
-"i+	c #6E899E",
-"j+	c #65859C",
-"k+	c #33383C",
-"l+	c #D7D4D0",
-"m+	c #D6D4D0",
-"n+	c #4E4A43",
-"o+	c #4D4942",
-"p+	c #D1CEC9",
-"q+	c #E6E5E2",
-"r+	c #EDECEA",
-"s+	c #454F55",
-"t+	c #486173",
-"u+	c #4D6678",
-"v+	c #A1C1DA",
-"w+	c #373C40",
-"x+	c #0C0D0F",
-"y+	c #4E5E6A",
-"z+	c #5B6E7C",
-"A+	c #4F5B62",
-"B+	c #A4A099",
-"C+	c #CCC9C3",
-"D+	c #D7D5D1",
-"E+	c #E4E2E0",
-"F+	c #DDDBD7",
-"G+	c #B8B5B0",
-"H+	c #3E474D",
-"I+	c #4A6176",
-"J+	c #4A6070",
-"K+	c #9BC3D8",
-"L+	c #363C41",
-"M+	c #28323E",
-"                                . .             ",
-"                              . + @ .           ",
-"    . . . . . . . . . . . . . # $ % . . .       ",
-"  . & * = - ; > , ' ) ! ~ . { ] ^ . / ( _ .     ",
-"  . : < [ } | 1 2 3 4 5 . 6 7 8 . 9 0 a b .     ",
-"  . c d e f g h i j k . l m n . o p q r s .     ",
-"  . t u v w w w w x . y z A . B C D E F G .     ",
-"  . H I v w w w x . J K L . M N O P Q R S .     ",
-"  . T U v V C N . W X Y . Z `  ...+.v @.#..     ",
-"  . $.%.&.w w *.. =.-.. M N D P *.w v @.;..     ",
-"  . >.,.v w x . '.. . M N D P *.w w v ).!..     ",
-"  . ~.{.v V ].. . ^./.(._...].C C :.v ).<..     ",
-"  . [.}.|.w *.1.2.3.4.5.6.x w w w w v R 7..     ",
-"  . 8.9.0.a.Q b.c.c.d.e.E v v v v f.g.h.i..     ",
-"  . j.k.F R h.F l.m.F n.h.o.o.).p.q.R r.s..     ",
-"  . t.u.v.w.x.y.z.A.B.C.D.E.F.z.G.H.I.J.K..     ",
-"  . L.M.N.O.P.Q.R.S.S.T.Q.U.V.W.X.Y.Z.`. +.     ",
-"  . .+++@+#+$+%+&+*+*+=+-+;+>+U.,+'+)+!+~+.     ",
-"  . {+]+^+#+/+(+&+*+*+_+:+;+<+[+}+|+)+1+~+.     ",
-"  . 2+3+4+5+6+S.7+8+8+9+;+0+a+b+c+d+e+f+g+.     ",
-"  . h+i+j+k+l+m+n+o+o+;+p+q+r+q+s+t+u+v+w+.     ",
-"    x+y+z+A+B+;+>+C+C+D+E+T.F+G+H+I+J+K+L+.     ",
-"      . . . . . . . . . . . . . . . . M+.       ",
-"                                                "};
Binary file lisp/toolbar/search-replace.pbm has changed
--- a/lisp/toolbar/search-replace.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/* XPM */
-static char *magick[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 8 1",
-"  c #01260126010f",
-". c #56004ef93434",
-"X c #5c9c5c9c57c7",
-"o c #8e8e7d7d4545",
-"O c #a72aa72a95e6",
-"+ c #d015d015b9c5",
-"@ c #e90de90dd2e3",
-"# c None",
-/* pixels */
-"########################",
-"################  ######",
-"###############  o #####",
-"########### ##  o ######",
-"#########  O   o #######",
-"#######  O@@  o ########",
-"#####  O+++  o #########",
-"###  O++++  o  #########",
-"## XX++++ .  @.#########",
-"## @.O+++  @@@@ ########",
-"## @@.++++@@@@@O #######",
-"## @@.O+O.  .O@@ #######",
-"## @XO+O.O++O.+@@ ######",
-"##  O++.O@@+OX.@@O #####",
-"## X+++ +#+OOO @@@+ ####",
-"## O++@ +@OOOO @@@O ####",
-"### +@@.OOOOOX.@@  #####",
-"### +@@O.OOOX  + #######",
-"####X@@@O.  .X  ########",
-"#### @@@@@@@+    #######",
-"##### @@@@@O ##   ######",
-"##### O@@+. ####   #####",
-"###### @O #######  #####",
-"#######  ###############"
-};
Binary file lisp/toolbar/search.pbm has changed
--- a/lisp/toolbar/search.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,234 +0,0 @@
-/* XPM */
-static char * search_xpm[] = {
-"24 24 207 2",
-"  	c None",
-". 	c #000000",
-"+ 	c #D3D3D3",
-"@ 	c #F6F6F6",
-"# 	c #FFFFFF",
-"$ 	c #F9F9F9",
-"% 	c #DADADA",
-"& 	c #585858",
-"* 	c #C7C7C7",
-"= 	c #D1D1D1",
-"- 	c #D6D6D6",
-"; 	c #FEFEFE",
-"> 	c #FDFDFD",
-", 	c #C0C0C0",
-"' 	c #E1E1E1",
-") 	c #F0F0F0",
-"! 	c #9B9B9B",
-"~ 	c #FCFCFB",
-"{ 	c #FBFBFB",
-"] 	c #AFAFAE",
-"^ 	c #E9E9E9",
-"/ 	c #DFDFDF",
-"( 	c #8F8F8F",
-"_ 	c #FAFAF9",
-": 	c #F9F9F8",
-"< 	c #A4A4A3",
-"[ 	c #F4F4F4",
-"} 	c #CFCFCF",
-"| 	c #A2A2A2",
-"1 	c #B8B8B8",
-"2 	c #47473F",
-"3 	c #0A0A09",
-"4 	c #4B4B43",
-"5 	c #B4B4B3",
-"6 	c #F7F6F5",
-"7 	c #9E9E9E",
-"8 	c #A9A9A8",
-"9 	c #34342E",
-"0 	c #9D9D8D",
-"a 	c #CFCFB9",
-"b 	c #C4C4AF",
-"c 	c #8D8D7F",
-"d 	c #353530",
-"e 	c #ACACAA",
-"f 	c #F1F0EF",
-"g 	c #DEDDDC",
-"h 	c #D3D2D0",
-"i 	c #B7B7B5",
-"j 	c #9F9E9D",
-"k 	c #706F6F",
-"l 	c #65625A",
-"m 	c #46463F",
-"n 	c #9C9C8C",
-"o 	c #E2E2D0",
-"p 	c #EDEDE7",
-"q 	c #C0C0AC",
-"r 	c #B2B29F",
-"s 	c #828274",
-"t 	c #4C4C44",
-"u 	c #E4E4E2",
-"v 	c #E1E1DF",
-"w 	c #DAD9D7",
-"x 	c #D8D8D6",
-"y 	c #CDCCCA",
-"z 	c #AFAEAC",
-"A 	c #88847B",
-"B 	c #F8F8F7",
-"C 	c #090908",
-"D 	c #D5D5BF",
-"E 	c #FBFBFA",
-"F 	c #C3C3AE",
-"G 	c #B5B5A2",
-"H 	c #A6A695",
-"I 	c #9C9C8F",
-"J 	c #080807",
-"K 	c #CFCFCD",
-"L 	c #E3E2E0",
-"M 	c #ECEBE9",
-"N 	c #E9E8E6",
-"O 	c #D5D4D3",
-"P 	c #C4C3C2",
-"Q 	c #8F8A81",
-"R 	c #F6F5F4",
-"S 	c #F3F3F1",
-"T 	c #090909",
-"U 	c #CACAB5",
-"V 	c #DDDDD0",
-"W 	c #B7B7A4",
-"X 	c #AAAA98",
-"Y 	c #9B9B8B",
-"Z 	c #AEAEA3",
-"` 	c #BBBAB9",
-" .	c #E8E7E5",
-"..	c #E5E4E2",
-"+.	c #E4E3E0",
-"@.	c #D2D1CE",
-"#.	c #8D887E",
-"$.	c #F4F3F2",
-"%.	c #F0EFEE",
-"&.	c #474740",
-"*.	c #929283",
-"=.	c #BABAA7",
-"-.	c #ADAD9B",
-";.	c #9F9F8E",
-">.	c #ACACA1",
-",.	c #CFCFCB",
-"'.	c #4C4C45",
-").	c #B3B2B1",
-"!.	c #E2E1DE",
-"~.	c #E1DFDC",
-"{.	c #979288",
-"].	c #949493",
-"^.	c #34342F",
-"/.	c #878779",
-"(.	c #A0A090",
-"_.	c #AEAEA2",
-":.	c #C3C3BE",
-"<.	c #010101",
-"[.	c #B1B0AF",
-"}.	c #D2D1CF",
-"|.	c #A49E93",
-"1.	c #F0F0EE",
-"2.	c #EDEDEB",
-"3.	c #DDDDDB",
-"4.	c #898988",
-"5.	c #414141",
-"6.	c #737271",
-"7.	c #A4A3A1",
-"8.	c #DFDEDB",
-"9.	c #E2E0DD",
-"0.	c #E1E0DC",
-"a.	c #E0DFDB",
-"b.	c #A19C90",
-"c.	c #E1E0DE",
-"d.	c #CBCAC9",
-"e.	c #B2B1B0",
-"f.	c #A3A2A1",
-"g.	c #9D9C9A",
-"h.	c #9E9D9C",
-"i.	c #9F9F9D",
-"j.	c #ABAAA7",
-"k.	c #DCDBD7",
-"l.	c #DEDDD9",
-"m.	c #DDDCD8",
-"n.	c #A19B90",
-"o.	c #EBEAE8",
-"p.	c #E6E5E3",
-"q.	c #C8C7C4",
-"r.	c #B6B6B3",
-"s.	c #B0AFAD",
-"t.	c #B3B2B0",
-"u.	c #747371",
-"v.	c #9D9C99",
-"w.	c #DAD9D5",
-"x.	c #E7E6E3",
-"y.	c #E6E5E2",
-"z.	c #E3E2DF",
-"A.	c #DBDAD7",
-"B.	c #D4D3D0",
-"C.	c #D0CFCB",
-"D.	c #D1CFCC",
-"E.	c #D1D0CC",
-"F.	c #C9C8C4",
-"G.	c #6B6B69",
-"H.	c #CECDC9",
-"I.	c #D6D4D0",
-"J.	c #9F998D",
-"K.	c #E3E2DE",
-"L.	c #E4E2DF",
-"M.	c #DFDEDA",
-"N.	c #D5D4D0",
-"O.	c #C0BFBC",
-"P.	c #7B7A78",
-"Q.	c #BCBAB6",
-"R.	c #CECCC8",
-"S.	c #9D978C",
-"T.	c #EDEDED",
-"U.	c #E1E0DD",
-"V.	c #E2E1DD",
-"W.	c #DBDAD6",
-"X.	c #BBB9B6",
-"Y.	c #A6A4A1",
-"Z.	c #9E9C99",
-"`.	c #ACABA7",
-" +	c #C7C5C2",
-".+	c #9B9589",
-"++	c #E1DFDB",
-"@+	c #E0DEDA",
-"#+	c #DEDCD8",
-"$+	c #DAD8D4",
-"%+	c #BDBCB8",
-"&+	c #ACABA8",
-"*+	c #B2B1AD",
-"=+	c #C6C4C0",
-"-+	c #999388",
-";+	c #999891",
-">+	c #A39E92",
-",+	c #A39D92",
-"'+	c #A39D91",
-")+	c #A29C90",
-"!+	c #A19B8F",
-"~+	c #9D978B",
-"{+	c #989286",
-"]+	c #918C82",
-"^+	c #938D83",
-"/+	c #979286",
-"(+	c #666258",
-"                                                ",
-"      . . . . . . . . . . . . .                 ",
-"    . + @ # # # # # # # # $ % & .               ",
-"    . @ # # # # # # # # # # * = - .             ",
-"    . # # # # # # # ; # ; > , ' ) ! .           ",
-"    . # # # # # ; > ~ > ~ { ] ^ # / ( .         ",
-"    . # # # ; > ~ { _ { _ : < ) # [ } | .       ",
-"    . # ; > ~ 1 2 3 3 4 5 6 7 . . . . . . .     ",
-"    . # ~ { 8 9 0 a b c d e f g h i j k l .     ",
-"    . # _ : m n o p q r s t u v w x y z A .     ",
-"    . # B 6 C D E F G H I J K L M N O P Q .     ",
-"    . # R S T U V W X Y Z 3 ` w  ...+.@.#..     ",
-"    . # $.%.&.*.=.-.;.>.,.'.).h !.+.!.~.{..     ",
-"    . # $.%.].^./.(._.:.<.<.[.}.!.+.!.~.|..     ",
-"    . # 1.2.3.4.4 3 3 5.6.<.<.7.8.9.0.a.b..     ",
-"    . # 2.M c.d.e.f.g.h.i.<.<.<.j.k.l.m.n..     ",
-"    . # o.N p.w q.r.z s.t.u.. <.<.v.w.k.n..     ",
-"    . # x.y.y.z.A.B.C.D.E.F.G.<.<.<.H.I.J..     ",
-"    . $ +.z.K.L.K.a.a.M.M.N.O.P.<.<.Q.R.S..     ",
-"    . T.U.~.0.a.V.a.0.a.0.W.E.X.Y.Z.`. +.+.     ",
-"    . = ++@+M.l.a.l.@+l.@+#+$+R.%+&+*+=+-+.     ",
-"    . ;+>+|.,+'+,+b.)+b.)+!+n.~+{+]+^+/+(+.     ",
-"      . . . . . . . . . . . . . . . . . .       ",
-"                                                "};
Binary file lisp/toolbar/spell.pbm has changed
--- a/lisp/toolbar/spell.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/* XPM */
-static char * spell_xpm[] = {
-"24 24 37 1",
-" 	c None",
-".	c #000000",
-"+	c #8BBB8C",
-"@	c #ABD0AC",
-"#	c #1A3B1A",
-"$	c #8ABA88",
-"%	c #B4D5B4",
-"&	c #70A770",
-"*	c #132C13",
-"=	c #77A676",
-"-	c #2D2D2D",
-";	c #CBDFCB",
-">	c #6FAE6E",
-",	c #A8CBA6",
-"'	c #6D9D6C",
-")	c #D0E4D0",
-"!	c #6FAF6F",
-"~	c #587055",
-"{	c #B8D6B8",
-"]	c #5B9159",
-"^	c #D4E4D4",
-"/	c #67AF67",
-"(	c #5D905B",
-"_	c #9FC59D",
-":	c #93BE92",
-"<	c #B5D1B5",
-"[	c #67AF68",
-"}	c #63A261",
-"|	c #BBD6BA",
-"1	c #82B881",
-"2	c #75AF74",
-"3	c #6B8868",
-"4	c #9DC39D",
-"5	c #7DB17B",
-"6	c #6BA368",
-"7	c #485C46",
-"8	c #89BA88",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"  ...  ....   ...       ",
-" ..  . ..  . ..  .      ",
-" ..  . ....  ..         ",
-" ..... ..  . ..         ",
-" ..  . ..  . ..  .   .  ",
-" ..  . ....   ...   ... ",
-"                   .+.  ",
-"         ..       .@#   ",
-"         .$.     .%&.   ",
-"          *=.   -;>.    ",
-"          .,'. .)!~.    ",
-"           .{].^/(.     ",
-"           ._:<[}~.     ",
-"            .|123.      ",
-"            .4567.      ",
-"             .83.       ",
-"             .37.       ",
-"              ..        ",
-"                        ",
-"                        "};
--- a/lisp/toolbar/tool-bar.el	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,274 +0,0 @@
-;;; tool-bar.el --- setting up the tool bar
-;;
-;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
-;;   2005 Free Software Foundation, Inc.
-;;
-;; Author: Dave Love <fx@gnu.org>
-;; Keywords: mouse frames
-
-;; 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., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; Provides `tool-bar-mode' to control display of the tool-bar and
-;; bindings for the global tool bar with convenience functions
-;; `tool-bar-add-item' and `tool-bar-add-item-from-menu'.
-
-;; The normal global binding for [tool-bar] (below) uses the value of
-;; `tool-bar-map' as the actual keymap to define the tool bar.  Modes
-;; may either bind items under the [tool-bar] prefix key of the local
-;; map to add to the global bar or may set `tool-bar-map'
-;; buffer-locally to override it.  (Some items are removed from the
-;; global bar in modes which have `special' as their `mode-class'
-;; property.)
-
-;; Todo: Somehow make tool bars easily customizable by the naive?
-
-;;; Code:
-
-;;;###autoload
-(define-minor-mode tool-bar-mode
-  "Toggle use of the tool bar.
-With numeric ARG, display the tool bar if and only if ARG is positive.
-
-See `tool-bar-add-item' and `tool-bar-add-item-from-menu' for
-conveniently adding tool bar items."
-  :init-value nil
-  :global t
-  :group 'mouse
-  :group 'frames
-  (and (display-images-p)
-       (let ((lines (if tool-bar-mode 1 0)))
-	 ;; Alter existing frames...
-	 (mapc (lambda (frame)
-		 (modify-frame-parameters frame
-					  (list (cons 'tool-bar-lines lines))))
-	       (frame-list))
-	 ;; ...and future ones.
-	 (let ((elt (assq 'tool-bar-lines default-frame-alist)))
-	   (if elt
-	       (setcdr elt lines)
-	     (add-to-list 'default-frame-alist (cons 'tool-bar-lines lines)))))
-       (if (and tool-bar-mode
-		(display-graphic-p)
-		(= 1 (length (default-value 'tool-bar-map)))) ; not yet setup
-	   (tool-bar-setup))))
-
-;;;###autoload
-;; We want to pretend the toolbar by standard is on, as this will make
-;; customize consider disabling the toolbar a customization, and save
-;; that.  We could do this for real by setting :init-value above, but
-;; that would turn on the toolbar in MS Windows where it is currently
-;; useless, and it would overwrite disabling the tool bar from X
-;; resources.  If anyone want to implement this in a cleaner way,
-;; please do so.
-;; -- Per Abrahamsen <abraham@dina.kvl.dk> 2002-02-21.
-(put 'tool-bar-mode 'standard-value '(t))
-
-(defvar tool-bar-map (make-sparse-keymap)
-  "Keymap for the tool bar.
-Define this locally to override the global tool bar.")
-
-(global-set-key [tool-bar]
-		'(menu-item "tool bar" ignore
-			    :filter (lambda (ignore) tool-bar-map)))
-
-;;;###autoload
-(defun tool-bar-add-item (icon def key &rest props)
-  "Add an item to the tool bar.
-ICON names the image, DEF is the key definition and KEY is a symbol
-for the fake function key in the menu keymap.  Remaining arguments
-PROPS are additional items to add to the menu item specification.  See
-Info node `(elisp)Tool Bar'.  Items are added from left to right.
-
-ICON is the base name of a file containing the image to use.  The
-function will first try to use lc-ICON.xpm if display-color-cells
-is less or equal to 256, then ICON.xpm, then ICON.pbm, and finally
-ICON.xbm, using `find-image'.
-
-Use this function only to make bindings in the global value of `tool-bar-map'.
-To define items in any other map, use `tool-bar-local-item'."
-  (apply 'tool-bar-local-item icon def key tool-bar-map props))
-
-;;;###autoload
-(defun tool-bar-local-item (icon def key map &rest props)
-  "Add an item to the tool bar in map MAP.
-ICON names the image, DEF is the key definition and KEY is a symbol
-for the fake function key in the menu keymap.  Remaining arguments
-PROPS are additional items to add to the menu item specification.  See
-Info node `(elisp)Tool Bar'.  Items are added from left to right.
-
-ICON is the base name of a file containing the image to use.  The
-function will first try to use lc-ICON.xpm if display-color-cells
-is less or equal to 256, then ICON.xpm, then ICON.pbm, and finally
-ICON.xbm, using `find-image'."
-  (let* ((fg (face-attribute 'tool-bar :foreground))
-	 (bg (face-attribute 'tool-bar :background))
-	 (colors (nconc (if (eq fg 'unspecified) nil (list :foreground fg))
-			(if (eq bg 'unspecified) nil (list :background bg))))
-	 (xpm-spec (list :type 'xpm :file (concat icon ".xpm")))
-	 (xpm-lo-spec (if (> (display-color-cells) 256)
-			  nil
-			(list :type 'xpm :file (concat "lc-" icon ".xpm"))))
-	 (pbm-spec (append (list :type 'pbm :file (concat icon ".pbm")) colors))
-	 (xbm-spec (append (list :type 'xbm :file (concat icon ".xbm")) colors))
-	 (image (find-image
-		(if (display-color-p)
-		    (list xpm-lo-spec xpm-spec pbm-spec xbm-spec)
-		  (list pbm-spec xbm-spec xpm-lo-spec xpm-spec)))))
-
-    (when (and (display-images-p) image)
-      (unless (image-mask-p image)
-	(setq image (append image '(:mask heuristic))))
-      (define-key-after map (vector key)
-	`(menu-item ,(symbol-name key) ,def :image ,image ,@props)))))
-
-;;;###autoload
-(defun tool-bar-add-item-from-menu (command icon &optional map &rest props)
-  "Define tool bar binding for COMMAND using the given ICON in keymap MAP.
-This makes a binding for COMMAND in `tool-bar-map', copying its
-binding from the menu bar in MAP (which defaults to `global-map'), but
-modifies the binding by adding an image specification for ICON.  It
-finds ICON just like `tool-bar-add-item'.  PROPS are additional
-properties to add to the binding.
-
-MAP must contain appropriate binding for `[menu-bar]' which holds a keymap.
-
-Use this function only to make bindings in the global value of `tool-bar-map'.
-To define items in any other map, use `tool-bar-local-item'."
-  (apply 'tool-bar-local-item-from-menu command icon
-	 (default-value 'tool-bar-map) map props))
-
-;;;###autoload
-(defun tool-bar-local-item-from-menu (command icon in-map &optional from-map &rest props)
-  "Define tool bar binding for COMMAND using the given ICON in keymap MAP.
-This makes a binding for COMMAND in IN-MAP, copying its binding from
-the menu bar in FROM-MAP (which defaults to `global-map'), but
-modifies the binding by adding an image specification for ICON.  It
-finds ICON just like `tool-bar-add-item'.  PROPS are additional
-properties to add to the binding.
-
-MAP must contain appropriate binding for `[menu-bar]' which holds a keymap."
-  (unless from-map
-    (setq from-map global-map))
-  (let* ((menu-bar-map (lookup-key from-map [menu-bar]))
-	 (keys (where-is-internal command menu-bar-map))
-	 (fg (face-attribute 'tool-bar :foreground))
-	 (bg (face-attribute 'tool-bar :background))
-	 (colors (nconc (if (eq fg 'unspecified) nil (list :foreground fg))
-			(if (eq bg 'unspecified) nil (list :background bg))))
-	 (xpm-spec (list :type 'xpm :file (concat icon ".xpm")))
-	 (xpm-lo-spec (if (> (display-color-cells) 256)
-			  nil
-			(list :type 'xpm :file (concat "lc-" icon ".xpm"))))
-	 (pbm-spec (append (list :type 'pbm :file (concat icon ".pbm")) colors))
-	 (xbm-spec (append (list :type 'xbm :file (concat icon ".xbm")) colors))
-	 (spec (if (display-color-p)
-		   (list xpm-lo-spec xpm-spec pbm-spec xbm-spec)
-		 (list pbm-spec xbm-spec xpm-lo-spec xpm-spec)))
-	 (image (find-image spec))
-	 submap key)
-    (when (and (display-images-p) image)
-      ;; We'll pick up the last valid entry in the list of keys if
-      ;; there's more than one.
-      (dolist (k keys)
-	;; We're looking for a binding of the command in a submap of
-	;; the menu bar map, so the key sequence must be two or more
-	;; long.
-	(if (and (vectorp k)
-		 (> (length k) 1))
-	    (let ((m (lookup-key menu-bar-map (substring k 0 -1)))
-		  ;; Last element in the bound key sequence:
-		  (kk (aref k (1- (length k)))))
-	      (if (and (keymapp m)
-		       (symbolp kk))
-		  (setq submap m
-			key kk)))))
-      (when (and (symbolp submap) (boundp submap))
-	(setq submap (eval submap)))
-      (unless (image-mask-p image)
-	(setq image (append image '(:mask heuristic))))
-      (let ((defn (assq key (cdr submap))))
-	(if (eq (cadr defn) 'menu-item)
-	    (define-key-after in-map (vector key)
-	      (append (cdr defn) (list :image image) props))
-	  (setq defn (cdr defn))
-	  (define-key-after in-map (vector key)
-	    (let ((rest (cdr defn)))
-	      ;; If the rest of the definition starts
-	      ;; with a list of menu cache info, get rid of that.
-	      (if (and (consp rest) (consp (car rest)))
-		  (setq rest (cdr rest)))
-	      (append `(menu-item ,(car defn) ,rest)
-		      (list :image image) props))))))))
-
-;;; Set up some global items.  Additions/deletions up for grabs.
-
-(defun tool-bar-setup ()
-  ;; People say it's bad to have EXIT on the tool bar, since users
-  ;; might inadvertently click that button.
-  ;;(tool-bar-add-item-from-menu 'save-buffers-kill-emacs "exit")
-  (tool-bar-add-item-from-menu 'find-file "new")
-  (tool-bar-add-item-from-menu 'find-file-existing "open")
-  (tool-bar-add-item-from-menu 'dired "diropen")
-  (tool-bar-add-item-from-menu 'kill-this-buffer "close")
-  (tool-bar-add-item-from-menu 'save-buffer "save" nil
-			       :visible '(or buffer-file-name
-					     (not (eq 'special
-						      (get major-mode
-							   'mode-class)))))
-  (tool-bar-add-item-from-menu 'write-file "saveas" nil
-			       :visible '(or buffer-file-name
-					     (not (eq 'special
-						      (get major-mode
-							   'mode-class)))))
-  (tool-bar-add-item-from-menu 'undo "undo" nil
-			       :visible '(not (eq 'special (get major-mode
-								'mode-class))))
-  (tool-bar-add-item-from-menu (lookup-key menu-bar-edit-menu [cut])
-			       "cut" nil
-			       :visible '(not (eq 'special (get major-mode
-								'mode-class))))
-  (tool-bar-add-item-from-menu (lookup-key menu-bar-edit-menu [copy])
-			       "copy")
-  (tool-bar-add-item-from-menu (lookup-key menu-bar-edit-menu [paste])
-			       "paste" nil
-			       :visible '(not (eq 'special (get major-mode
-								'mode-class))))
-  (tool-bar-add-item-from-menu 'nonincremental-search-forward "search")
-  ;;(tool-bar-add-item-from-menu 'ispell-buffer "spell")
-
-  ;; There's no icon appropriate for News and we need a command rather
-  ;; than a lambda for Read Mail.
-  ;;(tool-bar-add-item-from-menu 'compose-mail "mail_compose")
-
-  (tool-bar-add-item-from-menu 'print-buffer "print")
-  (tool-bar-add-item "preferences" 'customize 'customize
-		     :help "Edit preferences (customize)")
-
-  (tool-bar-add-item "help" (lambda ()
-			      (interactive)
-			      (popup-menu menu-bar-help-menu))
-		     'help
-		     :help "Pop up the Help menu")
-  )
-
-(provide 'tool-bar)
-
-;;; arch-tag: 15f30f0a-d0d7-4d50-bbb7-f48fd0c8582f
-;;; tool-bar.el ends here
Binary file lisp/toolbar/undo.pbm has changed
--- a/lisp/toolbar/undo.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/* XPM */
-static char * undo_xpm[] = {
-"24 24 31 1",
-" 	c None",
-".	c #000000",
-"+	c #EFE5BA",
-"@	c #EFE7C1",
-"#	c #EED680",
-"$	c #EFE4B6",
-"%	c #D5B75D",
-"&	c #B29544",
-"*	c #D1B051",
-"=	c #C0AF73",
-"-	c #C0A048",
-";	c #986B07",
-">	c #D1940C",
-",	c #E0B74C",
-"'	c #D9C374",
-")	c #8F6406",
-"!	c #D59D1C",
-"~	c #B1933F",
-"{	c #DFB74A",
-"]	c #CCB76D",
-"^	c #B8820A",
-"/	c #D9A72E",
-"(	c #D7A62C",
-"_	c #C7B26A",
-":	c #D4B150",
-"<	c #A39256",
-"[	c #E2CB79",
-"}	c #C9B46B",
-"|	c #8D7E4A",
-"1	c #AE9C5C",
-"2	c #96864F",
-"                        ",
-"                        ",
-"                        ",
-"          .             ",
-"         ..             ",
-"        .+.             ",
-"       .@#....          ",
-"      .$####%&.         ",
-"     .+#######*.        ",
-"    .=#########-.       ",
-"     .;>>>>>>,#'..      ",
-"      .)>>>>>>!#~.      ",
-"       .)>...;>{].      ",
-"        .;. ..^/#.      ",
-"         ..  ..>#.      ",
-"          .   .(_.      ",
-"              .:<.      ",
-"              .[.       ",
-"             .}|.       ",
-"            .12.        ",
-"             ..         ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/up_arrow.pbm has changed
--- a/lisp/toolbar/up_arrow.xpm	Wed Dec 28 07:22:57 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/* XPM */
-static char * up_arrow_xpm[] = {
-"24 24 67 1",
-" 	c None",
-".	c #000000",
-"+	c #2F2F2F",
-"@	c #A5B4A4",
-"#	c #E8F4E6",
-"$	c #96B892",
-"%	c #41533C",
-"&	c #F1FFF0",
-"*	c #B8D6B7",
-"=	c #9FC49D",
-"-	c #66815E",
-";	c #B6D4B5",
-">	c #B9D7B8",
-",	c #A1C69F",
-"'	c #68835F",
-")	c #637D5B",
-"!	c #3F5239",
-"~	c #B8D7B7",
-"{	c #A2C7A0",
-"]	c #6A8561",
-"^	c #657F5C",
-"/	c #617959",
-"(	c #3E4F39",
-"_	c #F0FEEF",
-":	c #B7D5B6",
-"<	c #657E5C",
-"[	c #5D7555",
-"}	c #D6EAD6",
-"|	c #BFD4BF",
-"1	c #C0D5C0",
-"2	c #637C5B",
-"3	c #4D6246",
-"4	c #4C6046",
-"5	c #C7E1C6",
-"6	c #A1C69E",
-"7	c #67815E",
-"8	c #627B59",
-"9	c #3D4E39",
-"0	c #D0E7D0",
-"a	c #B5D3B4",
-"b	c #A0C39D",
-"c	c #607958",
-"d	c #B5D2B4",
-"e	c #9DC19B",
-"f	c #647D5B",
-"g	c #607858",
-"h	c #C6E0C5",
-"i	c #B4D2B3",
-"j	c #9CBF99",
-"k	c #C5DFC4",
-"l	c #B1CEB0",
-"m	c #99BC97",
-"n	c #617A59",
-"o	c #5E7756",
-"p	c #C0D9BF",
-"q	c #AFCCAE",
-"r	c #AECBAD",
-"s	c #93B690",
-"t	c #607857",
-"u	c #5E7656",
-"v	c #8DB389",
-"w	c #748A72",
-"x	c #71916E",
-"y	c #5A7257",
-"z	c #4D6247",
-"A	c #4D6146",
-"B	c #43543D",
-"                        ",
-"                        ",
-"           .            ",
-"          +@.           ",
-"         .#$%.          ",
-"        .&*=-%.         ",
-"       .&;>,')!.        ",
-"      .&~;>{]^/(.       ",
-"     ._~>:>,]</[(.      ",
-"    .}|1>~~,'23444.     ",
-"   .....5;;6789.....    ",
-"       .0;ab^c9.        ",
-"       .5;defg9.        ",
-"       .haij2g9.        ",
-"       .kilmno9.        ",
-"       .pqrstu9.        ",
-"       .vwxyzAB.        ",
-"       .........        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
--- a/lisp/tree-widget.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/tree-widget.el	Mon Jan 16 06:59:21 2006 +0000
@@ -434,16 +434,25 @@
 
 ;;; Widgets
 ;;
+(defun tree-widget-button-click (event)
+  "Move to the position clicked on, and if it is a button, invoke it.
+EVENT is the mouse event received."
+  (interactive "e")
+  (mouse-set-point event)
+  (let ((pos (widget-event-point event)))
+    (if (get-char-property pos 'button)
+        (widget-button-click event))))
+
 (defvar tree-widget-button-keymap
   (let ((km (make-sparse-keymap)))
     (if (boundp 'widget-button-keymap)
         ;; XEmacs
         (progn
           (set-keymap-parent km widget-button-keymap)
-          (define-key km [button1] 'widget-button-click))
+          (define-key km [button1] 'tree-widget-button-click))
       ;; Emacs
       (set-keymap-parent km widget-keymap)
-      (define-key km [down-mouse-1] 'widget-button-click))
+      (define-key km [down-mouse-1] 'tree-widget-button-click))
     km)
   "Keymap used inside node buttons.
 Handle mouse button 1 click on buttons.")
--- a/lisp/url/ChangeLog	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/url/ChangeLog	Mon Jan 16 06:59:21 2006 +0000
@@ -1,3 +1,16 @@
+2005-10-20  CHENG Gao  <chenggao@gmail.com>  (tiny change)
+
+	* url-nfs.el (top level): 
+	* url-handlers.el (directory-files): 
+	* url-file.el (top level):
+	* url-dired.el (url-dired-minor-mode-map): 
+	* url-http.el (url-http-chunked-encoding-after-change-function):
+	Remove XEmacs support.
+
+2005-10-15  Richard M. Stallman  <rms@gnu.org>
+
+	* url.el: Don't try to autoload hash table functions.
+
 2005-10-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* url-http.el (url-http-create-request): Avoid incorrect implicit
--- a/lisp/url/url-dired.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/url/url-dired.el	Mon Jan 16 06:59:21 2006 +0000
@@ -31,9 +31,7 @@
 (defvar url-dired-minor-mode-map
   (let ((map (make-sparse-keymap)))
     (define-key map "\C-m" 'url-dired-find-file)
-    (if (featurep 'xemacs)
-	(define-key map [button2] 'url-dired-find-file-mouse)
-      (define-key map [mouse-2] 'url-dired-find-file-mouse))
+    (define-key map [mouse-2] 'url-dired-find-file-mouse)
     map)
   "Keymap used when browsing directories.")
 
--- a/lisp/url/url-file.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/url/url-file.el	Mon Jan 16 06:59:21 2006 +0000
@@ -230,12 +230,8 @@
 (url-file-create-wrapper file-readable-p (url))
 (url-file-create-wrapper file-writable-p (url))
 (url-file-create-wrapper file-executable-p (url))
-(if (featurep 'xemacs)
-    (progn
-      (url-file-create-wrapper directory-files (url &optional full match nosort files-only))
-      (url-file-create-wrapper file-truename (url &optional default)))
-  (url-file-create-wrapper directory-files (url &optional full match nosort))
-  (url-file-create-wrapper file-truename (url &optional counter prev-dirs)))
+(url-file-create-wrapper directory-files (url &optional full match nosort))
+(url-file-create-wrapper file-truename (url &optional counter prev-dirs))
 
 (provide 'url-file)
 
--- a/lisp/url/url-handlers.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/url/url-handlers.el	Mon Jan 16 06:59:21 2006 +0000
@@ -246,19 +246,8 @@
 (url-handlers-create-wrapper file-writable-p (url))
 (url-handlers-create-wrapper file-directory-p (url))
 (url-handlers-create-wrapper file-executable-p (url))
-
-(if (featurep 'xemacs)
-    (progn
-      ;; XEmacs specific prototypes
-      (url-handlers-create-wrapper
-       directory-files (url &optional full match nosort files-only))
-      (url-handlers-create-wrapper
-       file-truename (url &optional default)))
-  ;; Emacs specific prototypes
-  (url-handlers-create-wrapper
-   directory-files (url &optional full match nosort))
-  (url-handlers-create-wrapper
-   file-truename (url &optional counter prev-dirs)))
+(url-handlers-create-wrapper directory-files (url &optional full match nosort))
+(url-handlers-create-wrapper file-truename (url &optional counter prev-dirs))
 
 (add-hook 'find-file-hook 'url-handlers-set-buffer-mode)
 
--- a/lisp/url/url-http.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/url/url-http.el	Mon Jan 16 06:59:21 2006 +0000
@@ -840,9 +840,7 @@
 				 (list 'start-open t
 				       'end-open t
 				       'chunked-encoding t
-				       'face (if (featurep 'xemacs)
-						 'text-cursor
-					       'cursor)
+				       'face 'cursor
 				       'invisible t))
 	    (setq url-http-chunked-length (string-to-number (buffer-substring
                                                              (match-beginning 1)
--- a/lisp/url/url-nfs.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/url/url-nfs.el	Mon Jan 16 06:59:21 2006 +0000
@@ -87,12 +87,8 @@
 (url-nfs-create-wrapper file-readable-p (url))
 (url-nfs-create-wrapper file-writable-p (url))
 (url-nfs-create-wrapper file-executable-p (url))
-(if (featurep 'xemacs)
-    (progn
-      (url-nfs-create-wrapper directory-files (url &optional full match nosort files-only))
-      (url-nfs-create-wrapper file-truename (url &optional default)))
-  (url-nfs-create-wrapper directory-files (url &optional full match nosort))
-  (url-nfs-create-wrapper file-truename (url &optional counter prev-dirs)))
+(url-nfs-create-wrapper directory-files (url &optional full match nosort))
+(url-nfs-create-wrapper file-truename (url &optional counter prev-dirs))
 
 (provide 'url-nfs)
 
--- a/lisp/url/url.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/url/url.el	Mon Jan 16 06:59:21 2006 +0000
@@ -30,16 +30,6 @@
 ;;; Code:
 
 (eval-when-compile (require 'cl))
-;; Don't require CL at runtime if we can avoid it (Emacs 21).
-;; Otherwise we need it for hashing functions.  `puthash' was never
-;; defined in the Emacs 20 cl.el for some reason.
-(if (fboundp 'puthash)
-    nil					; internal or CL is loaded
-  (defalias 'puthash 'cl-puthash)
-  (autoload 'cl-puthash "cl")
-  (autoload 'gethash "cl")
-  (autoload 'maphash "cl")
-  (autoload 'make-hash-table "cl"))
 
 (eval-when-compile
   (require 'mm-decode)
@@ -236,6 +226,10 @@
 
 (defun url-mm-url (url)
   "Retrieve URL and pass to the appropriate viewing application."
+  ;; These requires could advantageously be moved to url-mm-callback or
+  ;; turned into autoloads, but I suspect that it would introduce some bugs
+  ;; because loading those files from a process sentinel or filter may
+  ;; result in some undesirable carner cases.
   (require 'mm-decode)
   (require 'mm-view)
   (url-retrieve url 'url-mm-callback nil))
--- a/lisp/wid-edit.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/wid-edit.el	Mon Jan 16 06:59:21 2006 +0000
@@ -660,6 +660,16 @@
 			    tag 'mouse-face widget-button-pressed-face)))
     (insert tag)))
 
+(defun widget-move-and-invoke (event)
+  "Move to where you click, and if it is an active field, invoke it."
+  (interactive "e")
+  (mouse-set-point event)
+  (if (widget-event-point event)
+      (let* ((pos (widget-event-point event))
+	     (button (get-char-property pos 'button)))
+	(if button
+	    (widget-button-click event)))))
+
 ;;; Buttons.
 
 (defgroup widget-button nil
@@ -3049,7 +3059,8 @@
 	   (with-output-to-temp-buffer "*Completions*"
 	     (display-completion-list
 	      (sort (file-name-all-completions name-part directory)
-		    'string<)))
+		    'string<)
+	      name-part))
 	   (message "Making completion list...%s" "done")))))
 
 (defun widget-file-prompt-value (widget prompt value unbound)
@@ -3605,7 +3616,8 @@
 	  (t
 	   (message "Making completion list...")
 	   (with-output-to-temp-buffer "*Completions*"
-	     (display-completion-list (all-completions prefix list nil)))
+	     (display-completion-list (all-completions prefix list nil)
+				      prefix))
 	   (message "Making completion list...done")))))
 
 (defun widget-color-sample-face-get (widget)
--- a/lisp/woman.el	Wed Dec 28 07:22:57 2005 +0000
+++ b/lisp/woman.el	Mon Jan 16 06:59:21 2006 +0000
@@ -424,6 +424,11 @@
 (defvar woman-version "0.551 (beta)" "WoMan version information.")
 
 (require 'man)
+(require 'button)
+(define-button-type 'WoMan-xref-man-page 
+  :supertype 'Man-abstract-xref-man-page
+  'func 'woman)
+
 (eval-when-compile			; to avoid compiler warnings
   (require 'dired)
   (require 'apropos))
@@ -1864,7 +1869,7 @@
   (setq woman-imenu-done nil)
   (if woman-imenu (woman-imenu))
   (let (buffer-read-only)
-    (Man-highlight-references))
+    (Man-highlight-references 'WoMan-xref-man-page))
   (set-buffer-modified-p nil)
   (run-mode-hooks 'woman-mode-hook))
 
--- a/lispref/ChangeLog	Wed Dec 28 07:22:57 2005 +0000
+++ b/lispref/ChangeLog	Mon Jan 16 06:59:21 2006 +0000
@@ -1,3 +1,43 @@
+2005-10-21  Richard M. Stallman  <rms@gnu.org>
+
+	* loading.texi (Where Defined): load-history contains abs file names.
+	symbol-file returns abs file names.
+
+2005-10-19  Kim F. Storm  <storm@cua.dk>
+
+	* display.texi (Showing Images): Add max-image-size integer value.
+
+2005-10-18  Chong Yidong  <cyd@stupidchicken.com>
+
+	* display.texi (Showing Images): Document max-image-size.
+
+2005-10-17  Richard M. Stallman  <rms@gnu.org>
+
+	* commands.texi (Quitting): Minor clarification.
+
+	* processes.texi (Sentinels): Clarify about output and quitting.
+	(Filter Functions): Mention with-local-quit.
+
+2005-10-17  Juri Linkov  <juri@jurta.org>
+
+	* buffers.texi (Current Buffer):
+	* commands.texi (Event Input Misc):
+	* compile.texi (Eval During Compile, Compiler Errors):
+	* customize.texi (Group Definitions):
+	* display.texi (Progress, Defining Faces):
+	* files.texi (Writing to Files):
+	* modes.texi (Mode Hooks, Defining Minor Modes):
+	* streams.texi (Output Functions):
+	* syntax.texi (Syntax Table Functions):
+	* text.texi (Change Hooks):
+	Replace `...' with `@dots{}' in `@defmac' and `@defspec'.
+
+	* commands.texi (Quitting): Replace arg `forms' with `body' in
+	`with-local-quit'.
+
+	* positions.texi (Excursions): Replace arg `forms' with `body' in
+	`save-excursion'.
+
 2005-10-08  Kim F. Storm  <storm@cua.dk>
 
 	* windows.texi (Window Tree): Rename window-split-tree to window-tree.
--- a/lispref/buffers.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/lispref/buffers.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -202,7 +202,7 @@
 existing buffer.
 @end defun
 
-@defspec save-current-buffer body...
+@defspec save-current-buffer body@dots{}
 The @code{save-current-buffer} special form saves the identity of the
 current buffer, evaluates the @var{body} forms, and finally restores
 that buffer as current.  The return value is the value of the last
@@ -215,7 +215,7 @@
 remains current.
 @end defspec
 
-@defmac with-current-buffer buffer-or-name body...
+@defmac with-current-buffer buffer-or-name body@dots{}
 The @code{with-current-buffer} macro saves the identity of the current
 buffer, makes @var{buffer-or-name} current, evaluates the @var{body}
 forms, and finally restores the buffer.  The return value is the value
@@ -227,7 +227,7 @@
 existing buffer.
 @end defmac
 
-@defmac with-temp-buffer body...
+@defmac with-temp-buffer body@dots{}
 @anchor{Definition of with-temp-buffer}
 The @code{with-temp-buffer} macro evaluates the @var{body} forms
 with a temporary buffer as the current buffer.  It saves the identity of
--- a/lispref/commands.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/lispref/commands.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -2434,7 +2434,7 @@
 Emacs version 18.
 @end defvar
 
-@defmac while-no-input body...
+@defmac while-no-input body@dots{}
 This construct runs the @var{body} forms and returns the value of the
 last one---but only if no input arrives.  If any input arrives during
 the execution of the @var{body} forms, it aborts them (working much
@@ -2658,27 +2658,28 @@
 non-@code{nil}, then @code{quit-flag} has no special effect.
 @end defvar
 
-@defmac with-local-quit forms@dots{}
-This macro executes @var{forms} in sequence, but allows quitting, at
+@defmac with-local-quit body@dots{}
+This macro executes @var{body} forms in sequence, but allows quitting, at
 least locally, within @var{body} even if @code{inhibit-quit} was
 non-@code{nil} outside this construct.  It returns the value of the
-last form in @var{forms}, unless exited by quitting, in which case
+last form in @var{body}, unless exited by quitting, in which case
 it returns @code{nil}.
 
 If @code{inhibit-quit} is @code{nil} on entry to @code{with-local-quit},
-it only executes the @var{forms}, and setting @code{quit-flag} causes
+it only executes the @var{body}, and setting @code{quit-flag} causes
 a normal quit.  However, if @code{inhibit-quit} is non-@code{nil} so
 that ordinary quitting is delayed, a non-@code{nil} @code{quit-flag}
 triggers a special kind of local quit.  This ends the execution of
-@var{forms} and exits the @code{with-local-quit} form with
+@var{body} and exits the @code{with-local-quit} body with
 @code{quit-flag} still non-@code{nil}, so that another (ordinary) quit
 will happen as soon as that is allowed.  If @code{quit-flag} is
-already non-@code{nil} at the beginning of @var{forms}, the local quit
-happens immediately and they don't execute at all.
+already non-@code{nil} at the beginning of @var{body}, the local quit
+happens immediately and the body doesn't execute at all.
 
 This macro is mainly useful in functions that can be called from
-timers, @code{pre-command-hook}, @code{post-command-hook} and other
-places where @code{inhibit-quit} is normally bound to @code{t}.
+timers, process filters, process sentinels, @code{pre-command-hook},
+@code{post-command-hook}, and other places where @code{inhibit-quit} is
+normally bound to @code{t}.
 @end defmac
 
 @deffn Command keyboard-quit
--- a/lispref/compile.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/lispref/compile.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -401,7 +401,7 @@
   These features permit you to write code to be evaluated during
 compilation of a program.
 
-@defspec eval-and-compile body
+@defspec eval-and-compile body@dots{}
 This form marks @var{body} to be evaluated both when you compile the
 containing code and when you run it (whether compiled or not).
 
@@ -410,7 +410,7 @@
 preferable when @var{body} is large.
 @end defspec
 
-@defspec eval-when-compile body
+@defspec eval-when-compile body@dots{}
 This form marks @var{body} to be evaluated at compile time but not when
 the compiled program is loaded.  The result of evaluation by the
 compiler becomes a constant which appears in the compiled program.  If
@@ -470,7 +470,7 @@
 @c This is implemented with a defun, but conceptually it is
 @c a special form.
 
-@defspec with-no-warnings body...
+@defspec with-no-warnings body@dots{}
 In execution, this is equivalent to @code{(progn @var{body}...)},
 but the compiler does not issue warnings for anything that occurs
 inside @var{body}.
--- a/lispref/customize.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/lispref/customize.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -119,7 +119,7 @@
 
   The way to declare new customization groups is with @code{defgroup}.
 
-@defmac defgroup group members doc [keyword value]...
+@defmac defgroup group members doc [keyword value]@dots{}
 Declare @var{group} as a customization group containing @var{members}.
 Do not quote the symbol @var{group}.  The argument @var{doc} specifies
 the documentation string for the group.  It should not start with a
--- a/lispref/display.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/lispref/display.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -403,7 +403,7 @@
 Secondly, ``done'' is more explicit.
 @end defun
 
-@defmac dotimes-with-progress-reporter (var count [result]) message body...
+@defmac dotimes-with-progress-reporter (var count [result]) message body@dots{}
 This is a convenience macro that works the same way as @code{dotimes}
 does, but also reports loop progress using the functions described
 above.  It allows you to save some typing.
@@ -1721,7 +1721,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]@dots{}
 This declares @var{face} as a customizable face that defaults
 according to @var{spec}.  You should not quote the symbol @var{face},
 and it should not end in @samp{-face} (that would be redundant).  The
@@ -4058,6 +4058,25 @@
 Focus}).
 @end defun
 
+@defvar max-image-size
+@tindex max-image-size
+This variable is used to define the maximum size of image that Emacs
+will load.  Emacs will refuse to load (and display) any image that is
+larger than this limit.
+
+If the value is an integer, it directly specifies the maximum
+image height and width, measured in pixels.  If it is a floating
+point number, it specifies the maximum image height and width
+as a ratio to the frame height and width.  If the value is
+non-numeric, there is no explicit limit on the size of images.
+
+The purpose of this variable is to prevent unreasonably large images
+from accidentally being loaded into Emacs.  It only takes effect the
+first time an image is loaded.  Once an image is placed in the image
+cache, it can always be displayed, even if the value of
+@var{max-image-size} is subsequently changed (@pxref{Image Cache}).
+@end defvar
+
 @node Image Cache
 @subsection Image Cache
 
--- a/lispref/files.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/lispref/files.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -625,7 +625,7 @@
 files that the user does not need to know about.
 @end deffn
 
-@defmac with-temp-file file body...
+@defmac with-temp-file file body@dots{}
 @anchor{Definition of with-temp-file}
 The @code{with-temp-file} macro evaluates the @var{body} forms with a
 temporary buffer as the current buffer; then, at the end, it writes the
--- a/lispref/loading.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/lispref/loading.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -736,23 +736,21 @@
 acceptable.  If @var{type} is @code{defun} or @code{defvar}, that
 specifies function definition only or variable definition only.
 
-The value is the file name as it was specified to @code{load}:
-either an absolute file name, or a library name
-(with no directory name and no @samp{.el} or @samp{.elc} at the end).
-It can also be @code{nil}, if the definition is not associated with any file.
+The value is normally an absolute file name.  It can also be
+@code{nil}, if the definition is not associated with any file.
 @end defun
 
   The basis for @code{symbol-file} is the data in the variable
 @code{load-history}.
 
 @defvar load-history
-This variable's value is an alist connecting library names with the
+This variable's value is an alist connecting library file names with the
 names of functions and variables they define, the features they provide,
 and the features they require.
 
 Each element is a list and describes one library.  The @sc{car} of the
-list is the name of the library, as a string.  The rest of the list
-elements have these forms:
+list is the absolute file name of the library, as a string.  The rest
+of the list elements have these forms:
 
 @table @code
 @item @var{var}
--- a/lispref/modes.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/lispref/modes.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -1154,7 +1154,7 @@
 @var{hookvars}.
 @end defun
 
-@defmac delay-mode-hooks body...
+@defmac delay-mode-hooks body@dots{}
 This macro executes @var{body} like @code{progn}, but all calls to
 @code{run-mode-hooks} inside @var{body} delay running their hooks.
 They will be run by the first call to @code{run-mode-hooks} after exit
@@ -1364,7 +1364,7 @@
   The macro @code{define-minor-mode} offers a convenient way of
 implementing a mode in one self-contained definition.
 
-@defmac define-minor-mode mode doc [init-value [lighter [keymap]]] keyword-args... body...
+@defmac define-minor-mode mode doc [init-value [lighter [keymap]]] keyword-args@dots{} body@dots{}
 @tindex define-minor-mode
 This macro defines a new minor mode whose name is @var{mode} (a
 symbol).  It defines a command named @var{mode} to toggle the minor
@@ -1492,7 +1492,7 @@
  :group 'hunger)
 @end smallexample
 
-@defmac define-global-minor-mode global-mode mode turn-on keyword-args...
+@defmac define-global-minor-mode global-mode mode turn-on keyword-args@dots{}
 This defines a global minor mode named @var{global-mode} whose meaning
 is to enable the buffer-local minor mode @var{mode} in every buffer.
 To turn on the minor mode in a buffer, it uses the function
--- a/lispref/positions.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/lispref/positions.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -829,13 +829,13 @@
 described elsewhere (see @ref{Window Configurations}, and @pxref{Frame
 Configurations}).
 
-@defspec save-excursion forms@dots{}
+@defspec save-excursion body@dots{}
 @cindex mark excursion
 @cindex point excursion
 @cindex current buffer excursion
 The @code{save-excursion} special form saves the identity of the current
 buffer and the values of point and the mark in it, evaluates
-@var{forms}, and finally restores the buffer and its saved values of
+@var{body}, and finally restores the buffer and its saved values of
 point and the mark.  All three saved values are restored even in case of
 an abnormal exit via @code{throw} or error (@pxref{Nonlocal Exits}).
 
@@ -855,8 +855,8 @@
 use @code{save-window-excursion} inside @code{save-excursion}
 (@pxref{Window Configurations}).
 
-The value returned by @code{save-excursion} is the result of the last of
-@var{forms}, or @code{nil} if no @var{forms} are given.
+The value returned by @code{save-excursion} is the result of the last
+form in @var{body}, or @code{nil} if no body forms were given.
 
 @example
 @group
--- a/lispref/processes.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/lispref/processes.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -1096,9 +1096,10 @@
 
   Quitting is normally inhibited within a filter function---otherwise,
 the effect of typing @kbd{C-g} at command level or to quit a user
-command would be unpredictable.  If you want to permit quitting inside a
-filter function, bind @code{inhibit-quit} to @code{nil}.
-@xref{Quitting}.
+command would be unpredictable.  If you want to permit quitting inside
+a filter function, bind @code{inhibit-quit} to @code{nil}.  In most
+cases, the right way to do this is with the macro
+@code{with-local-quit}.  @xref{Quitting}.
 
   If an error happens during execution of a filter function, it is
 caught automatically, so that it doesn't stop the execution of whatever
@@ -1375,16 +1376,22 @@
 termination will always run the sentinel exactly once.  This is
 because the process status can't change again after termination.
 
-  Quitting is normally inhibited within a sentinel---otherwise, the
-effect of typing @kbd{C-g} at command level or to quit a user command
-would be unpredictable.  If you want to permit quitting inside a
-sentinel, bind @code{inhibit-quit} to @code{nil}.  @xref{Quitting}.
+  Emacs explicitly checks for output from the process before running
+the process sentinel.  Once the sentinel runs due to process
+termination, no further output can arrive from the process.
 
   A sentinel that writes the output into the buffer of the process
 should check whether the buffer is still alive.  If it tries to insert
 into a dead buffer, it will get an error.  If the buffer is dead,
 @code{(buffer-name (process-buffer @var{process}))} returns @code{nil}.
 
+  Quitting is normally inhibited within a sentinel---otherwise, the
+effect of typing @kbd{C-g} at command level or to quit a user command
+would be unpredictable.  If you want to permit quitting inside a
+sentinel, bind @code{inhibit-quit} to @code{nil}.  In most cases, the
+right way to do this is with the macro @code{with-local-quit}.
+@xref{Quitting}.
+
   If an error happens during execution of a sentinel, it is caught
 automatically, so that it doesn't stop the execution of whatever
 programs was running when the sentinel was started.  However, if
--- a/lispref/streams.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/lispref/streams.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -663,7 +663,7 @@
 the printed representation of a Lisp object as a string.
 @end defun
 
-@defmac with-output-to-string body...
+@defmac with-output-to-string body@dots{}
 This macro executes the @var{body} forms with @code{standard-output} set
 up to feed output into a string.  Then it returns that string.
 
--- a/lispref/syntax.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/lispref/syntax.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -512,7 +512,7 @@
 the current buffer.
 @end defun
 
-@defmac with-syntax-table @var{table} @var{body}...
+@defmac with-syntax-table @var{table} @var{body}@dots{}
 @tindex with-syntax-table
 This macro executes @var{body} using @var{table} as the current syntax
 table.  It returns the value of the last form in @var{body}, after
--- a/lispref/text.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/lispref/text.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -4265,7 +4265,7 @@
   Output of messages into the @samp{*Messages*} buffer does not
 call these functions.
 
-@defmac combine-after-change-calls body...
+@defmac combine-after-change-calls body@dots{}
 The macro executes @var{body} normally, but arranges to call the
 after-change functions just once for a series of several changes---if
 that seems safe.
--- a/mac/ChangeLog	Wed Dec 28 07:22:57 2005 +0000
+++ b/mac/ChangeLog	Mon Jan 16 06:59:21 2006 +0000
@@ -1,3 +1,8 @@
+2005-10-20  Bryan D. O'Connor  <bryan@lunch.org>  (tiny change)
+
+	* make-package: Add a --compressed-dist option to compress info
+	files and .el files that have been byte-compiled. It defaults to "no".
+
 2005-09-24  Eli Zaretskii  <eliz@gnu.org>
 
 	* INSTALL (NOTES): Update the list of versions of MacOS on which
--- a/mac/make-package	Wed Dec 28 07:22:57 2005 +0000
+++ b/mac/make-package	Mon Jan 16 06:59:21 2006 +0000
@@ -55,6 +55,7 @@
 self_contained=no
 app_symlink=no
 full_dist=yes
+compressed_dist=no
 build_in_place=no
 keep_directory=no
 
@@ -94,6 +95,8 @@
        with_app=no ;;
     --without-full-dist | -without-full-dist | -no-full-dist | -no-full)
        full_dist=no ;;
+    --compressed-dist)
+       compressed_dist=yes ;;
     --self-contained | -self-contained | --with-self-contained-app | -sc)
        self_contained=yes ;;
     -app-symlink | --app-symlink | -symlink | --symlink | --asl)
@@ -138,6 +141,7 @@
                           --without-app.
       --without-full-dist Do not include all the .el files in the distribution.
                           This is discouraged except if disk space is critical.
+      --compressed-dist   Compress .el and info files in the distribution.
       --app-symlink       Have the Emacs.app executable be a symlink
                           to the install in [prefix]/bin/emacs and have
                           the emacs executable link to emacs-${version}
@@ -298,6 +302,14 @@
     find $sharedir/lisp $sharedir/leim -name "*.elc" -print | sed 's|\(.*\)\.elc$|/bin/rm -f \1.el|' | /bin/sh -s
 fi
 
+if test "$compressed_dist" == "yes" -a "$full_dist" == "yes"; then
+    echo "Compressing .el files"
+    sharedir=$installprefix/share/emacs/$version
+    find $sharedir/lisp $sharedir/leim -name "*.elc" -print | sed 's|\(.*\)\.elc$|/usr/bin/gzip -9 \1.el|' | /bin/sh -s
+    echo "Compressing info files"
+    find $installprefix/info -type f ! -name dir -print | sed 's|\(.*\)$|/usr/bin/gzip -9 \1|' | /bin/sh -s
+fi
+
 if test "$with_app" == "yes"; then
   echo "Creating Emacs.app application"
   tempappdir=${tempparentfull}${appsdir}
--- a/make-dist	Wed Dec 28 07:22:57 2005 +0000
+++ b/make-dist	Mon Jan 16 06:59:21 2006 +0000
@@ -314,8 +314,9 @@
 	      leim/SKK-DIC leim/ja-dic leim/quail \
 	      src src/m src/s src/bitmaps lib-src oldXMenu lwlib \
 	      nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \
-	      etc etc/e etc/images etc/images/gnus etc/images/smilies \
-	      etc/images/mail etc/images/ezimage \
+	      etc etc/e \
+	      etc/images etc/images/ezimage etc/images/gnus etc/images/gud \
+	      etc/images/low-color etc/images/mail etc/images/smilies \
 	      etc/tree-widget etc/tree-widget/default etc/tree-widget/folder \
 	      info man m4 msdos vms mac mac/inc mac/inc/sys \
 	      mac/src mac/Emacs.app mac/Emacs.app/Contents \
@@ -601,9 +602,9 @@
    fi
  done)
 
-for dir in etc/images/gnus etc/images/smilies etc/images/mail \
-           etc/images/ezimage etc/tree-widget/default \
-           etc/tree-widget/folder ; do
+for dir in etc/images/ezimage etc/images/gnus etc/images/gud \
+           etc/images/low-color etc/images/mail etc/images/smilies \
+           etc/tree-widget/default etc/tree-widget/folder ; do
     echo "Making links to \`${dir}'"
     (cd ${dir}
      ln `ls -d * | grep -v CVS | grep -v RCS` ../../../${tempdir}/${dir}
--- a/man/ChangeLog	Wed Dec 28 07:22:57 2005 +0000
+++ b/man/ChangeLog	Mon Jan 16 06:59:21 2006 +0000
@@ -1,3 +1,46 @@
+2005-10-17  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.texi (Document Groups): Remove duplicate item.
+
+2005-10-21  Juri Linkov  <juri@jurta.org>
+
+	* custom.texi (Examining): Mention accessing the old variable
+	value via M-n in set-variable.
+
+2005-10-21  Carsten Dominik  <dominik@science.uva.nl>
+
+	* org.texi (Summary): Mention iCalendar support.
+	(Exporting): Document iCalendar support.
+
+2005-10-18  Romain Francoise  <romain@orebokech.com>
+
+	* files.texi (Version Systems): Capitalize GNU.
+
+	* viper.texi (Viper Specials): Likewise.
+
+2005-10-18  Nick Roberts  <nickrob@snap.net.nz>
+
+	* building.texi (Compilation Mode): Remove redundant paragraph.
+	(Watch Expressions): Remove paragraph to reflect code change.
+
+2005-10-17  Juri Linkov  <juri@jurta.org>
+
+	* info.texi (Getting Started, Search Index, Expert Info):
+	Fix wording.
+	(Search Text): Replace `echo area' with `mode line'.
+	(Search Index): Both `i' and `,' find all index entries.
+	Replace example `C-f' with `C-l' (which exists in index of Info
+	manual) and delete spaces in its keyboard input sequence.
+	Delete unnecessary explanations about literal characters.
+
+2005-10-16  Richard M. Stallman  <rms@gnu.org>
+
+	* building.texi (Compilation Mode, Compilation): Clarified.
+
+2005-10-15  Richard M. Stallman  <rms@gnu.org>
+
+	* misc.texi (Saving Emacs Sessions): Mention savehist library.
+
 2005-10-14  Katsumi Yamaoka  <yamaoka@jpl.org>
 
 	* gnus.texi (Document Server Internals): Addition.
@@ -73,7 +116,7 @@
 
 2005-10-10  Carsten Dominik  <dominik@science.uva.nl>
 
-	* org.texi: (Workflow states): Documented that change in keywords
+	* org.texi (Workflow states): Documented that change in keywords
 	becomes active only after restart of Emacs.
 
 2005-10-09  Richard M. Stallman  <rms@gnu.org>
@@ -88,7 +131,7 @@
 
 2005-10-09  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
-	* cmdargs.texi (Icons X): Removed options -i, -itype, --icon-type, 
+	* cmdargs.texi (Icons X): Removed options -i, -itype, --icon-type,
 	added -nb, --no-bitmap-icon.
 
 2005-10-08  Michael Albinus  <michael.albinus@gmx.de>
@@ -909,7 +952,7 @@
 2005-04-25  Luc Teirlinck  <teirllm@auburn.edu>
 
 	* frames.texi (Tooltips): Tooltip mode is enabled by default.
-	Delete redundant reference to tooltip Custom group.   It is
+	Delete redundant reference to tooltip Custom group.  It is
 	referred too again in the next paragraph.
 
 2005-04-24  Richard M. Stallman  <rms@gnu.org>
--- a/man/building.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/man/building.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -63,17 +63,16 @@
 directory.
 
 @vindex compile-command
-  When the shell command line is read, the minibuffer appears
-containing a default command line, which is the command you used the
-last time you did @kbd{M-x compile}.  If you type just @key{RET}, the
-same command line is used again.  For the first @kbd{M-x compile}, the
-default is @samp{make -k}, which is correct most of the time for
-nontrivial programs.  (@xref{Top,, Make, make, GNU Make Manual}.)
-The default compilation command comes from the variable
-@code{compile-command}; if the appropriate compilation command for a
-file is something other than @samp{make -k}, it can be useful for the
-file to specify a local value for @code{compile-command} (@pxref{File
-Variables}).
+  The default for the compilation command is normally @samp{make -k},
+which is correct most of the time for nontrivial programs.
+(@xref{Top,, Make, make, GNU Make Manual}.)  If you have done @kbd{M-x
+compile} before, the default each time is the command you used the
+previous time.  @code{compile} stores this command in the variable
+@code{compile-command}, so setting that variable specifies the default
+for the next use of @kbd{M-x compile}.  If a file specifies a file
+local value for @code{compile-command}, that provides the default when
+you type @kbd{M-x compile} in that file's buffer.  @xref{File
+Variables}.
 
   Starting a compilation displays the buffer @samp{*compilation*} in
 another window but does not select it.  The buffer's mode line tells
@@ -224,13 +223,13 @@
 scroll.  If there is no left fringe, no arrow is displayed and a value
 of @code{nil} means display the message at the top of the window.
 
-  You don't have to be in the compilation buffer in order to use
-@code{next-error}.  If one window on the selected frame can be the
-target of the @code{next-error} call, it is used.  Else, if a buffer
-previously had @code{next-error} called on it, it is used.  Else,
-if the current buffer can be the target of @code{next-error}, it is
-used.  Else, all the buffers Emacs manages are tried for
-@code{next-error} support.
+  If you're not in the compilation buffer when you run
+@code{next-error}, Emacs will look for a buffer that contains error
+messages.  First, it looks for one displayed in the selected frame,
+then for one that previously had @code{next-error} called on it, and
+then at the current buffer.  Finally, Emacs looks at all the remaining
+buffers.  @code{next-error} signals an error if it can't find any such
+buffer.
 
   @kbd{C-u C-x `} starts scanning from the beginning of the compilation
 buffer.  This is one way to process the same set of errors again.
@@ -901,12 +900,6 @@
 format.  To expand or contract a complex data type, click @kbd{Mouse-2}
 on the tag to the left of the expression.
 
-By default, watch expressions only display in the speedbar when the
-GUD buffer is selected in the attached frame.  If you want your watch
-expressions to remain visible at all times then select the @samp{GUD}
-radio button on the @samp{Speedbar->Displays} sub-menu using
-@kbd{Mouse-3}.
-
 @findex gdb-var-delete
 With the cursor over the root expression of a complex data type, type
 @kbd{D} to delete it from the speedbar
--- a/man/custom.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/man/custom.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -790,7 +790,8 @@
   The most convenient way to set a specific user option variable is
 with @kbd{M-x set-variable}.  This reads the variable name with the
 minibuffer (with completion), and then reads a Lisp expression for the
-new value using the minibuffer a second time.  For example,
+new value using the minibuffer a second time (you can insert the old
+value into the minibuffer for editing via @kbd{M-n}).  For example,
 
 @example
 M-x set-variable @key{RET} fill-column @key{RET} 75 @key{RET}
--- a/man/files.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/man/files.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -1288,7 +1288,7 @@
 higher-level systems such as CVS or GNU Arch.
 
 In the following, we discuss mainly RCS, SCCS and CVS.  Nearly
-everything said about CVS applies to Gnu Arch, Subversion and Meta-CVS
+everything said about CVS applies to GNU Arch, Subversion and Meta-CVS
 as well.
 
 @node VC Concepts
--- a/man/gnus.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/man/gnus.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -16753,12 +16753,11 @@
 @table @code
 @cindex Babyl
 @cindex Rmail mbox
-
 @item babyl
 The Babyl (Rmail) mail box.
+
 @cindex mbox
 @cindex Unix mbox
-
 @item mbox
 The standard Unix mbox file.
 
@@ -16769,13 +16768,9 @@
 @item news
 Several news articles appended into a file.
 
+@cindex rnews batch files
 @item rnews
-@cindex rnews batch files
 The rnews batch transport format.
-@cindex forwarded messages
-
-@item forward
-Forwarded articles.
 
 @item nsmail
 Netscape mail boxes.
@@ -16792,6 +16787,7 @@
 @item lanl-gov-announce
 Announcement messages from LANL Gov Announce.
 
+@cindex forwarded messages
 @item rfc822-forward
 A message forwarded according to RFC822.
 
--- a/man/info.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/man/info.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -92,8 +92,8 @@
 This first part of this Info manual describes how to get around inside
 of Info.  The second part of the manual describes various advanced
 Info commands.  The third part briefly explains how to generate Info
-files from Texinfo files, and describes how to write an Info as
-distinct from a Texinfo file.
+files from Texinfo files, and describes how to write an Info file
+by hand.
 
 @ifnotinfo
 This manual is primarily designed for browsing with an Info reader
@@ -954,7 +954,7 @@
 they are in the file, which has no necessary relationship to the
 order that they may be in the tree structure of menus and @samp{next}
 pointers.  But normally the two orders are not very different.  In any
-case, you can always look at the echo area to find out what node you have
+case, you can always look at the mode line to find out what node you have
 reached, if the header is not visible (this can happen, because @kbd{s}
 puts your cursor at the occurrence of the string, not at the beginning
 of the node).
@@ -982,8 +982,8 @@
 @cindex searching Info indices
 @kindex i @r{(Info mode)}
 @findex Info-index
-  Since most subjects related to what the manual describes should be
-indexed, you should try the index search first.  The @kbd{i} command
+  Since most topics in the manual should be indexed, you should try
+the index search first before the text search.  The @kbd{i} command
 prompts you for a subject and then looks up that subject in the
 indices.  If it finds an index entry with the subject you typed, it
 goes to the node to which that index entry points.  You should browse
@@ -991,13 +991,13 @@
 described there.  If it isn't, type @kbd{,} one or more times to go
 through additional index entries which match your subject.
 
-  The @kbd{i} command finds all index entries which include the string
-you typed @emph{as a substring}.  For each match, Info shows in the
-echo area the full index entry it found.  Often, the text of the full
-index entry already gives you enough information to decide whether it
-is relevant to what you are looking for, so we recommend that you read
-what Info shows in the echo area before looking at the node it
-displays.
+  The @kbd{i} command and subsequent @kbd{,} commands find all index
+entries which include the string you typed @emph{as a substring}.
+For each match, Info shows in the echo area the full index entry it
+found.  Often, the text of the full index entry already gives you
+enough information to decide whether it is relevant to what you are
+looking for, so we recommend that you read what Info shows in the echo
+area before looking at the node it displays.
 
   Since @kbd{i} looks for a substring, you can search for subjects even
 if you are not sure how they are spelled in the index.  For example,
@@ -1010,20 +1010,18 @@
 options, and key sequences that the program provides.  If you are
 looking for a description of a command, an option, or a key, just type
 their names when @kbd{i} prompts you for a topic.  For example, if you
-want to read the description of what the @kbd{C-f} key does, type
-@kbd{i C - f @key{RET}}.  Here @kbd{C-f} are 3 literal characters
-@samp{C}, @samp{-}, and @samp{f}, not the ``Control-f'' command key
-you type inside Emacs to run the command bound to @kbd{C-f}.
+want to read the description of what the @kbd{C-l} key does, type
+@kbd{iC-l@key{RET}} literally.
 
   In Emacs, @kbd{i} runs the command @code{Info-index}.
 
 @findex info-apropos
 @findex index-apropos
-If you don't know what manual documents something, try the @kbd{M-x
-info-apropos} command in Emacs, or the @kbd{M-x index-apropos} command
-in the stand-alone reader.  It prompts for a string and then looks up
-that string in all the indices of all the Info documents installed on
-your system.
+If you aren't sure which manual documents the topic you are looking
+for, try the @kbd{M-x info-apropos} command in Emacs, or the @kbd{M-x
+index-apropos} command in the stand-alone reader.  It prompts for
+a string and then looks up that string in all the indices of all the
+Info documents installed on your system.
 
 @node Go to node, Choose menu subtopic, Search Index, Advanced
 @comment  node-name,  next,  previous,  up
@@ -1193,24 +1191,23 @@
 @node Expert Info
 @chapter Info for Experts
 
-  This chapter explains how to write an Info as distinct from a
-Texinfo file.  However, in most cases, writing a Texinfo file is
-better, since you can use it to make a printed manual or produce other
-formats, such as HTML and DocBook, as well as for generating Info
-files.
+  This chapter explains how to write an Info file by hand.  However,
+in most cases, writing a Texinfo file is better, since you can use it
+to make a printed manual or produce other formats, such as HTML and
+DocBook, as well as for generating Info files.
 
-@code{makeinfo} is a utility that converts a Texinfo file into an Info
-file; @code{texinfo-format-region} and @code{texinfo-format-buffer} are
-GNU Emacs functions that do the same.
+The @code{makeinfo} command converts a Texinfo file into an Info file;
+@code{texinfo-format-region} and @code{texinfo-format-buffer} are GNU
+Emacs functions that do the same.
 
 @xref{Top,, Overview of Texinfo, texinfo, Texinfo: The GNU
-Documentation Format}, to learn how to write a Texinfo file.
+Documentation Format}, for how to write a Texinfo file.
 
 @xref{Creating an Info File,,, texinfo, Texinfo: The GNU Documentation
-Format}, to learn how to create an Info file from a Texinfo file.
+Format}, for how to create an Info file from a Texinfo file.
 
 @xref{Installing an Info File,,, texinfo, Texinfo: The GNU
-Documentation Format}, to learn how to install an Info file after you
+Documentation Format}, for how to install an Info file after you
 have created one.
 
 However, if you want to edit an Info file manually and install it manually,
--- a/man/misc.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/man/misc.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -2022,6 +2022,9 @@
 @code{desktop-clear-preserve-buffers-regexp}, whose value is a regular
 expression matching the names of buffers not to kill.
 
+  If you want to save minibuffer history from one session to
+another, use the @code{savehist} library.
+
 @node Recursive Edit, Emulation, Saving Emacs Sessions, Top
 @section Recursive Editing Levels
 @cindex recursive editing level
--- a/man/org.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/man/org.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -4,7 +4,7 @@
 @setfilename ../info/org
 @settitle Org Mode Manual
 
-@set VERSION 3.17
+@set VERSION 3.18
 @set DATE October 2005
 
 @dircategory Emacs
@@ -158,7 +158,12 @@
 
 Exporting
 
-* Export commands::             Commands which export and display
+* ASCII export::                Export as a structured ASCII file
+* HTML export::                 Export as an HTML file
+* iCalendar export::            Create calendar entries.
+
+HTML export
+
 * HTML formatting::             Interpretation of the buffer content
 * Export options::              How to influence exports
 * Comment lines::               Lines which will not be exported
@@ -204,7 +209,8 @@
 Plain text URL-like links connect to websites, emails, Usenet
 messages, BBDB entries, and any files related to the projects.  For
 printing and sharing of notes, an Org-mode file can be exported as a
-structured ASCII file, or as HTML.
+structured ASCII file, as HTML, or (todo and agenda items only) as an
+iCalendar file.
 
 Org-mode keeps simple things simple.  Not every outline branch needs
 to be an action item, not every action item needs to have priority or
@@ -2048,6 +2054,11 @@
 @item H
 Show holidays for three month around the cursor date.
 
+@kindex C-c C-x C-c
+@item C-c C-x C-c
+Export a single iCalendar file containing entries from all agenda files.
+Not available in timelines.
+
 @tsubheading{Quit and Exit}
 @kindex q
 @item q
@@ -2146,32 +2157,21 @@
 @node Exporting, Miscellaneous, Timeline and Agenda, Top
 @chapter Exporting
 @cindex exporting
-@cindex ASCII export
-@cindex HTML export
-
-@cindex headline levels, for exporting
-For printing and sharing of notes, an Org-mode document can be
-exported as an ASCII file, or as HTML.  In the exported version, the
-first 3 outline levels will become headlines, defining a general
-document structure.  Additional levels will be exported as itemize
-lists.  If you want that transition to occur at a different level,
-specify it with a prefix argument.  For example,
-
-@example
-@kbd{M-1 M-x org-export-as-html}
-@end example
-@noindent
-creates only top level headlines and does the rest as items.
+
+For printing and sharing of notes, Org-mode documents can be exported
+as ASCII or HTML files.  To incorporate entries with associated times
+like deadlines or appointments into a desktop calendar program like
+iCal, Org-mode can also produce extracts in the iCalendar format.
 
 @menu
-* Export commands::             Commands which export and display
-* HTML formatting::             Interpretation of the buffer content
-* Export options::              How to influence exports
-* Comment lines::               Lines which will not be exported
+* ASCII export::                Export as a structured ASCII file
+* HTML export::                 Export as an HTML file
+* iCalendar export::            Create calendar entries.
 @end menu
 
-@node Export commands, HTML formatting, Exporting, Exporting
-@section Export commands
+@node ASCII export, HTML export, Exporting, Exporting
+@section ASCII export
+@cindex ASCII export
 
 @cindex region, active
 @cindex active region
@@ -2183,6 +2183,31 @@
 will be exported.  For an org file @file{myfile.org}, the ASCII file
 will be @file{myfile.txt}.  The file will be overwritten without
 warning.
+@end table
+
+@cindex headline levels, for exporting
+In the exported version, the first 3 outline levels will become
+headlines, defining a general document structure.  Additional levels
+will be exported as itemize lists.  If you want that transition to occur
+at a different level, specify it with a prefix argument.  For example,
+@example
+@kbd{C-1 C-c C-x a org-export-as-ascii}
+@end example
+@noindent
+creates only top level headlines and does the rest as items.  Lines
+starting with @samp{#} and subtree starting with the word @samp{COMMENT}
+will not be exported.
+
+@node HTML export, iCalendar export, ASCII export, Exporting
+@section HTML export
+@cindex HTML export
+
+Org-mode contains an HTML exporter with extensive HTML formatting.
+
+@cindex region, active
+@cindex active region
+@cindex transient-mark-mode
+@table @kbd
 @kindex C-c C-x h
 @item C-c C-x h
 Export as HTML file @file{myfile.html}.
@@ -2197,8 +2222,25 @@
 Toggle fixed-width for entry (QUOTE) or region, see below.
 @end table
 
-@node HTML formatting, Export options, Export commands, Exporting
-@section HTML formatting
+@cindex headline levels, for exporting
+In the exported version, the first 3 outline levels will become
+headlines, defining a general document structure.  Additional levels
+will be exported as itemize lists.  If you want that transition to occur
+at a different level, specify it with a prefix argument.  For example,
+@example
+@kbd{C-2 C-c C-x b}
+@end example
+@noindent
+creates two levels of headings and does the rest as items.
+
+@menu
+* HTML formatting::             Interpretation of the buffer content
+* Export options::              How to influence exports
+* Comment lines::               Lines which will not be exported
+@end menu
+
+@node HTML formatting, Export options, HTML export, HTML export
+@subsection HTML formatting
 
 Not all text is transferred literally to the exported HTML file.  The
 exporter implements the following interpretation:
@@ -2248,8 +2290,8 @@
 If these conversions conflict with your habits of typing ASCII text,
 they can all be turned off with corresponding variables.
 
-@node Export options, Comment lines, HTML formatting, Exporting
-@section Export options
+@node Export options, Comment lines, HTML formatting, HTML export
+@subsection Export options
 @cindex options, for export
 
 @cindex completion, of option keywords
@@ -2295,15 +2337,16 @@
 TeX:    @r{turn on/off @TeX{} macros}
 @end example
 
-@node Comment lines,  , Export options, Exporting
-@section Comment lines
+@node Comment lines,  , Export options, HTML export
+@subsection Comment lines
 @cindex comment lines
 @cindex exporting, not
 
 Lines starting with @samp{#} in column zero are treated as comments
 and will never be exported.  Also entire subtrees starting with the
 word @samp{COMMENT} will never be exported.  Finally, any text before
-the first headline will not be exported either.
+the first headline will not be exported either.  This applies also for
+ASCII export.
 
 @table @kbd
 @kindex C-c ;
@@ -2311,6 +2354,53 @@
 Toggle the COMMENT keyword at the beginning of an entry.
 @end table
 
+@node iCalendar export,  , HTML export, Exporting
+@section iCalendar export
+
+Some people like to use Org-mode for keeping track of projects, but
+still prefer a standard calendar application for anniversaries and
+appointments.  In this case it can be useful to have deadlines and
+other time-stamped items in Org-mode files show up in the calendar
+application.  Org-mode can export calendar information in the standard
+iCalendar format.
+
+@table @kbd
+@kindex C-c C-x i
+@item C-c C-x i
+Create iCalendar entries for the current file and store them in the same
+directory, using a file extension @file{.ics}.
+@kindex C-c C-x C-i
+@item C-c C-x C-i
+Like @kbd{C-c C-x i}, but do this for all files in
+@code{org-agenda-files}.  For each of these files, a separate iCalendar
+file will be written.
+@kindex C-c C-x c
+@item C-c C-x c
+Create a single large iCalendar file from all files in
+@code{org-agenda-files} and write it to the file given by
+@code{org-combined-agenda-icalendar-file}.
+@end table
+
+How this calendar is best read and updated, depends on the on the
+application you are using.  For example, when using iCal under Apple
+MacOS X, you could create a new calendar @samp{OrgMode} (the default
+name for the calendar created by @kbd{C-c C-x c}, see the variables
+@code{org-icalendar-combined-name} and
+@code{org-combined-agenda-icalendar-file}).  Then set Org-mode to
+overwrite the corresponding file
+@file{~/Library/Calendars/OrgMode.ics}.  You may even use AppleScript
+to make iCal re-read the calendar files each time a new version of
+@file{OrgMode.ics} is produced.  Here is the setup needed for this:
+
+@lisp
+(setq org-combined-agenda-icalendar-file
+    "~/Library/Calendars/OrgMode.ics")
+(add-hook 'org-after-save-iCalendar-file-hook
+ (lambda ()
+  (shell-command
+   "osascript -e 'tell application \"iCal\" to reload calendars'")))
+@end lisp
+
 @node Miscellaneous, Index, Exporting, Top
 @chapter Miscellaneous
 
--- a/man/viper.texi	Wed Dec 28 07:22:57 2005 +0000
+++ b/man/viper.texi	Mon Jan 16 06:59:21 2006 +0000
@@ -206,7 +206,7 @@
 @dfn{buffer} that usually has the same name as the file.  Buffers are also used
 for other purposes, such as shell interfaces, directory editing, etc.
 @xref{Dired,,Directory Editor,emacs,The
-Gnu Emacs Manual}, for an example.@refill
+GNU Emacs Manual}, for an example.@refill
 
 A buffer has a distinguished position called the @dfn{point}.
 A @dfn{point} is always between 2 characters, and is @dfn{looking at}
@@ -2582,7 +2582,7 @@
 Even though these commands are sometimes useful, they are no substitute for
 the powerful @emph{tag table} facility of Emacs.  Viper's @kbd{:tag} command
 in a primitive interface to Emacs tags.  @xref{Tags,Tags,Tags,emacs,
-The Gnu Emacs Manual}, for more information on tags.
+The GNU Emacs Manual}, for more information on tags.
 
 The following two commands are normally bound to a mouse click and are part
 of Viper.  They work only if Emacs runs as an application under X
--- a/src/ChangeLog	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/ChangeLog	Mon Jan 16 06:59:21 2006 +0000
@@ -1,3 +1,119 @@
+2005-10-21  Richard M. Stallman  <rms@gnu.org>
+
+	* lread.c (Fload): Simplify gcpro structure.
+	Gcpro FOUND as well as FILE, but not EFOUND.
+	Unless preloading, record FOUND instead of FILE in Vload_history.
+	Rename repeat local FILE to MSG_FILE.
+	(syms_of_lread) <load-history>: Doc fix.
+
+2005-10-21  Kenichi Handa  <handa@m17n.org>
+
+	* search.c (boyer_moore): Surround the '||' part of expression in
+	`if' condition by parentheses explicitly.
+
+2005-10-20  Kim F. Storm  <storm@cua.dk>
+
+	* buffer.c (clone_per_buffer_values): Remove unused var tem.
+	(init_buffer): Remove unused vars dotstat, pwdstat.
+
+	* ccl.c (check_ccl_update): Remove unused var vp.
+
+	* fileio.c (auto_save_error): Call SAFE_FREE.
+
+	* fns.c (Fchar_table_range): Remove unused var i.
+
+	* minibuf.c (display_completion_list_1): New wrapper function
+	for Fdisplay_completion_list.
+	(Fminibuffer_completion_help): Use it.
+
+	* term.c (encode_terminal_code): Remove unused var src_start.
+
+	* window.c (Fwindow_tree): Remove unused var alist.
+
+	* xterm.c (x_calc_absolute_position): Remove unused vars win_x, win_y.
+
+2005-10-20  Aubrey Jaffer  <agj@alum.mit.edu>  (tiny change)
+
+	* unexelf.c (unexec): Fix calls to `fatal' with less than 3
+	arguments.
+
+2005-10-20  Olli Savia  <ops@iki.fi>  (tiny change)
+
+	* syssignal.h [__Lynx__]: Undef SIGPOLL along with SIGIO.
+
+2005-10-20  Andreas Schwab  <schwab@suse.de>
+
+	* minibuf.c (Fdisplay_completion_list): Doc fix.
+
+2005-10-19  Kim F. Storm  <storm@cua.dk>
+
+	* image.c (check_image_size): Handle integer Vmax_image_size value
+	directly as max pixel value.  Use default frame size for null frame.
+	(syms_of_image) <max-image-size>: Describe integer value.
+
+2005-10-19  Romain Francoise  <romain@orebokech.com>
+
+	* emacs.c (main): Update copyright year.
+
+2005-10-18  Chong Yidong  <cyd@stupidchicken.com>
+
+	* image.c (Vmax_image_size): New variable.
+	(check_image_size): New function.
+	(xbm_read_bitmap_data, pbm_load, png_load, jpeg_load, tiff_load)
+	(gif_load, gs_load): Use it.
+	(lookup_image): Try loading again if previous load failed.
+	(xbm_read_bitmap_data): Add a new argument, a pointer to the frame
+	to display in, NULL if none.
+	(xbm_load_image, xbm_file_p): Pass xbm_read_bitmap_data the new
+	argument.
+
+2005-10-18  Richard M. Stallman  <rms@gnu.org>
+
+	* search.c (Fstring_match): Doc fix.
+
+2005-10-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* macterm.c (note_mouse_movement): Use PtInRect.
+	(XTread_socket): Also ignore mouse motion just before a button
+	release event.  Don't process button release event when mouse is
+	not grabbed.
+
+2005-10-16  Masatake YAMATO  <jet@gyve.org>
+
+	* minibuf.c (Fdisplay_completion_list): Add new optional
+	argument COMMON_SUBSTRING. Bind `completion-common-substring'
+	to the optional argument during running `completion-setup-hook'.
+
+2005-10-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* mac.c [TARGET_API_MAC_CARBON] (get_cfstring_encoding_from_lisp):
+	Allow nil as argument.
+	 [TARGET_API_MAC_CARBON] (Fmac_code_convert_string): Regard nil
+	for encoding arguments as UTF-16 in native byte order, no BOM.
+
+	* macfns.c (Fx_create_frame): Add debugging code.
+	(Fx_show_tip): Set frame pixel width and height.
+
+	* macterm.c (MAC_WINDOW_NORMAL_GC): Remove macro.
+	(FRAME_NORMAL_GC): New macro.
+	(mac_draw_line, mac_clear_area, mac_clear_window)
+	(mac_fill_rectangle, mac_draw_string, mac_draw_string_16)
+	(mac_draw_image_string, mac_draw_image_string_16): Rename from
+	XDrawLine, XClearArea, XClearWindow, XFillRectangle, XDrawString,
+	XDrawString16, XDrawImageString, and XDrawImageString16, respectively.
+	All uses changed.
+	(mac_draw_line, mac_erase_rectangle, mac_clear_area)
+	(mac_clear_window, mac_draw_bitmap, mac_draw_rectangle)
+	(mac_invert_rectangle, mac_draw_string_common, mac_draw_string)
+	(mac_draw_string_16, mac_draw_image_string)
+	(mac_draw_image_string_16, mac_copy_area, mac_copy_area_with_mask)
+	(mac_scroll_area): Drawing functions now take frame as destination.
+	All uses changed.
+	(mac_draw_string_common): Get port height with FRAME_PIXEL_HEIGHT.
+	(x_draw_fringe_bitmap): Set clipping area in face->gc.
+
+	* macterm.h (mac_clear_area): Add extern.
+
 2005-10-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
 	* macterm.c (note_mouse_movement, XTread_socket): Apply 2005-10-14
@@ -193,7 +309,7 @@
 	(FRAME_MAC_WINDOW, FRAME_X_WINDOW): Use window_desc.
 
 	* xfaces.c (x_create_gc, x_free_gc) [MAC_OS]: Add BLOCK_INPUT.
-	Add debug code.
+	Add debugging code.
 
 2005-10-08  Kim F. Storm  <storm@cua.dk>
 
@@ -237,6 +353,11 @@
 	* xterm.c, w32term.c, macterm.c: Rename member for_overlaps_p in
 	struct glyph_string to for_overlaps.
 
+2005-10-04  Richard M. Stallman  <rms@gnu.org>
+
+	* alloc.c (refill_memory_reserve): Conditionalize the body,
+	not the function's existence.
+
 2005-10-04  Kim F. Storm  <storm@cua.dk>
 
 	* window.c (window_split_tree): New function.
@@ -278,7 +399,7 @@
 	* keyboard.c (init_keyboard) [MAC_OSX]: Don't install SIGINT handler.
 
 	* macfns.c (start_hourglass): Apply 2005-05-07 change for xfns.c.
-	(x_create_tip_frame) [GLYPH_DEBUG]: Uncomment debug code.
+	(x_create_tip_frame) [GLYPH_DEBUG]: Uncomment debugging code.
 	(Fx_create_frame, x_create_tip_frame) [USE_ATSUI]:
 	Try ATSUI-compatible 12pt Monaco font first.
 
--- a/src/buffer.c	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/buffer.c	Mon Jan 16 06:59:21 2006 +0000
@@ -486,7 +486,7 @@
 clone_per_buffer_values (from, to)
      struct buffer *from, *to;
 {
-  Lisp_Object to_buffer, tem;
+  Lisp_Object to_buffer;
   int offset;
 
   XSETBUFFER (to_buffer, to);
@@ -5128,7 +5128,6 @@
 init_buffer ()
 {
   char *pwd;
-  struct stat dotstat, pwdstat;
   Lisp_Object temp;
   int len;
 
--- a/src/ccl.c	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/ccl.c	Mon Jan 16 06:59:21 2006 +0000
@@ -1940,7 +1940,6 @@
 check_ccl_update (ccl)
      struct ccl_program *ccl;
 {
-  struct Lisp_Vector *vp;
   Lisp_Object slot, ccl_prog;
 
   if (ccl->idx < 0)
--- a/src/emacs.c	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/emacs.c	Mon Jan 16 06:59:21 2006 +0000
@@ -896,7 +896,7 @@
       else
 	{
 	  printf ("GNU Emacs %s\n", SDATA (tem));
-	  printf ("Copyright (C) 2004 Free Software Foundation, Inc.\n");
+	  printf ("Copyright (C) 2005 Free Software Foundation, Inc.\n");
 	  printf ("GNU Emacs comes with ABSOLUTELY NO WARRANTY.\n");
 	  printf ("You may redistribute copies of Emacs\n");
 	  printf ("under the terms of the GNU General Public License.\n");
--- a/src/fileio.c	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/fileio.c	Mon Jan 16 06:59:21 2006 +0000
@@ -5711,6 +5711,7 @@
       Fsleep_for (make_number (1), Qnil);
     }
 
+  SAFE_FREE ();
   UNGCPRO;
   return Qnil;
 }
--- a/src/image.c	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/image.c	Mon Jan 16 06:59:21 2006 +0000
@@ -1099,7 +1099,10 @@
 
 static struct image *make_image P_ ((Lisp_Object spec, unsigned hash));
 static void free_image P_ ((struct frame *f, struct image *img));
-
+static int check_image_size P_ ((struct frame *f, int width, int height));
+
+#define MAX_IMAGE_SIZE 6.0
+Lisp_Object Vmax_image_size;
 
 /* Allocate and return a new image structure for image specification
    SPEC.  SPEC has a hash value of HASH.  */
@@ -1151,6 +1154,39 @@
     }
 }
 
+/* Return 1 if the given widths and heights are valid for display;
+   otherwise, return 0. */
+
+int
+check_image_size (f, width, height)
+     struct frame *f;
+     int width;
+     int height;
+{
+  int w, h;
+
+  if (width <= 0 || height <= 0)
+    return 0;
+
+  if (INTEGERP (Vmax_image_size))
+    w = h = XINT (Vmax_image_size);
+  else if (FLOATP (Vmax_image_size))
+    {
+      if (f != NULL)
+	{
+	  w = FRAME_PIXEL_WIDTH (f);
+	  h = FRAME_PIXEL_HEIGHT (f);
+	}
+      else
+	w = h = 1024;  /* Arbitrary size for unknown frame. */
+      w = (int) (XFLOAT_DATA (Vmax_image_size) * w);
+      h = (int) (XFLOAT_DATA (Vmax_image_size) * h);
+    }
+  else
+    return 1;
+
+  return (width <= w && height <= h);
+}
 
 /* Prepare image IMG for display on frame F.  Must be called before
    drawing an image.  */
@@ -1708,6 +1744,12 @@
     if (img->hash == hash && !NILP (Fequal (img->spec, spec)))
       break;
 
+  if (img && img->load_failed_p)
+    {
+      free_image (f, img);
+      img = NULL;
+    }
+
   /* If not found, create a new image and cache it.  */
   if (img == NULL)
     {
@@ -2551,7 +2593,8 @@
 static int xbm_load_image P_ ((struct frame *f, struct image *img,
 			       unsigned char *, unsigned char *));
 static int xbm_image_p P_ ((Lisp_Object object));
-static int xbm_read_bitmap_data P_ ((unsigned char *, unsigned char *,
+static int xbm_read_bitmap_data P_ ((struct frame *f,
+				     unsigned char *, unsigned char *,
 				     int *, int *, unsigned char **));
 static int xbm_file_p P_ ((Lisp_Object));
 
@@ -2939,7 +2982,8 @@
    CONTENTS looks like an in-memory XBM file.  */
 
 static int
-xbm_read_bitmap_data (contents, end, width, height, data)
+xbm_read_bitmap_data (f, contents, end, width, height, data)
+     struct frame *f;
      unsigned char *contents, *end;
      int *width, *height;
      unsigned char **data;
@@ -2992,7 +3036,7 @@
       expect (XBM_TK_NUMBER);
     }
 
-  if (*width < 0 || *height < 0)
+  if (!check_image_size (f, *width, *height))
     goto failure;
   else if (data == NULL)
     goto success;
@@ -3096,7 +3140,7 @@
   unsigned char *data;
   int success_p = 0;
 
-  rc = xbm_read_bitmap_data (contents, end, &img->width, &img->height, &data);
+  rc = xbm_read_bitmap_data (f, contents, end, &img->width, &img->height, &data);
   if (rc)
     {
       unsigned long foreground = FRAME_FOREGROUND_PIXEL (f);
@@ -3150,7 +3194,7 @@
 {
   int w, h;
   return (STRINGP (data)
-	  && xbm_read_bitmap_data (SDATA (data),
+	  && xbm_read_bitmap_data (NULL, SDATA (data),
 				   (SDATA (data)
 				    + SBYTES (data)),
 				   &w, &h, NULL));
@@ -5465,8 +5509,7 @@
 	max_color_idx = 255;
     }
 
-  if (width < 0
-      || height < 0
+  if (!check_image_size (f, width, height)
       || (type != PBM_MONO && max_color_idx < 0))
     goto error;
 
@@ -5966,6 +6009,9 @@
   fn_png_get_IHDR (png_ptr, info_ptr, &width, &height, &bit_depth, &color_type,
 		   &interlace_type, NULL, NULL);
 
+  if (!check_image_size (f, width, height))
+    goto error;
+
   /* If image contains simply transparency data, we prefer to
      construct a clipping mask.  */
   if (fn_png_get_valid (png_ptr, info_ptr, PNG_INFO_tRNS))
@@ -6726,6 +6772,12 @@
   width = img->width = cinfo.output_width;
   height = img->height = cinfo.output_height;
 
+  if (!check_image_size (f, width, height))
+    {
+      image_error ("Invalid image size", Qnil, Qnil);
+      longjmp (mgr.setjmp_buffer, 2);
+    }
+
   /* Create X image and pixmap.  */
   if (!x_create_x_image_and_pixmap (f, width, height, 0, &ximg, &img->pixmap))
     longjmp (mgr.setjmp_buffer, 2);
@@ -7155,6 +7207,14 @@
      of width x height 32-bit values.  */
   fn_TIFFGetField (tiff, TIFFTAG_IMAGEWIDTH, &width);
   fn_TIFFGetField (tiff, TIFFTAG_IMAGELENGTH, &height);
+
+  if (!check_image_size (f, width, height))
+    {
+      image_error ("Invalid image size", Qnil, Qnil);
+      UNGCPRO;
+      return 0;
+    }
+
   buf = (uint32 *) xmalloc (width * height * sizeof *buf);
 
   rc = fn_TIFFReadRGBAImage (tiff, width, height, buf, 0);
@@ -7459,6 +7519,15 @@
 	}
     }
 
+  /* Before reading entire contents, check the declared image size. */
+  if (!check_image_size (f, gif->SWidth, gif->SHeight))
+    {
+      image_error ("Invalid image size", Qnil, Qnil);
+      fn_DGifCloseFile (gif);
+      UNGCPRO;
+      return 0;
+    }
+
   /* Read entire contents.  */
   rc = fn_DGifSlurp (gif);
   if (rc == GIF_ERROR)
@@ -7492,6 +7561,14 @@
 			      max (gif->Image.Top + gif->Image.Height,
 				   image_top + image_height));
 
+  if (!check_image_size (f, width, height))
+    {
+      image_error ("Invalid image size", Qnil, Qnil);
+      fn_DGifCloseFile (gif);
+      UNGCPRO;
+      return 0;
+    }
+
   /* Create the X image and pixmap.  */
   if (!x_create_x_image_and_pixmap (f, width, height, 0, &ximg, &img->pixmap))
     {
@@ -7944,6 +8021,12 @@
   in_height = XFASTINT (pt_height) / 72.0;
   img->height = in_height * FRAME_X_DISPLAY_INFO (f)->resy;
 
+  if (!check_image_size (f, img->width, img->height))
+    {
+      image_error ("Invalid image size", Qnil, Qnil);
+      return 0;
+    }
+
   /* Create the pixmap.  */
   xassert (img->pixmap == NO_PIXMAP);
 
@@ -8217,6 +8300,18 @@
   Vimage_library_alist = Qnil;
   Fput (intern ("image-library-alist"), Qrisky_local_variable, Qt);
 
+  DEFVAR_LISP ("max-image-size", &Vmax_image_size,
+    doc: /* Maximum size of images.
+Emacs will not load an image into memory if its pixel width or
+pixel height exceeds this limit.
+
+If the value is an integer, it directly specifies the maximum
+image height and width, measured in pixels.  If it is a floating
+point number, it specifies the maximum image height and width
+as a ratio to the frame height and width.  If the value is
+non-numeric, there is no explicit limit on the size of images.  */);
+  Vmax_image_size = make_float (MAX_IMAGE_SIZE);
+
   Vimage_type_cache = Qnil;
   staticpro (&Vimage_type_cache);
 
--- a/src/lread.c	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/lread.c	Mon Jan 16 06:59:21 2006 +0000
@@ -848,6 +848,11 @@
 If optional fifth arg MUST-SUFFIX is non-nil, insist on
  the suffix `.elc' or `.el'; don't accept just FILE unless
  it ends in one of those suffixes or includes a directory name.
+
+Loading a file records its definitions, and its `provide' and
+`require' calls, in an element of `load-history' whose
+car is the file name loaded.  See `load-history'.
+
 Return t if file exists.  */)
      (file, noerror, nomessage, nosuffix, must_suffix)
      Lisp_Object file, noerror, nomessage, nosuffix, must_suffix;
@@ -856,7 +861,7 @@
   register int fd = -1;
   int count = SPECPDL_INDEX ();
   Lisp_Object temp;
-  struct gcpro gcpro1;
+  struct gcpro gcpro1, gcpro2;
   Lisp_Object found, efound;
   /* 1 means we printed the ".el is newer" message.  */
   int newer = 0;
@@ -905,7 +910,8 @@
       int size = SBYTES (file);
       Lisp_Object tmp[2];
 
-      GCPRO1 (file);
+      found = Qnil;
+      GCPRO2 (file, found);
 
       if (! NILP (must_suffix))
 	{
@@ -994,6 +1000,8 @@
 	  struct stat s1, s2;
 	  int result;
 
+	  GCPRO2 (file, found);
+
 	  if (version < 0
 	      && ! (version = safe_to_load_p (fd)))
 	    {
@@ -1011,7 +1019,6 @@
 
 	  compiled = 1;
 
-	  GCPRO1 (efound);
 	  efound = ENCODE_FILE (found);
 
 #ifdef DOS_NT
@@ -1021,7 +1028,6 @@
 	  SSET (efound, SBYTES (efound) - 1, 0);
 	  result = stat ((char *)SDATA (efound), &s2);
 	  SSET (efound, SBYTES (efound) - 1, 'c');
-	  UNGCPRO;
 
 	  if (result >= 0 && (unsigned) s1.st_mtime < (unsigned) s2.st_mtime)
 	    {
@@ -1031,12 +1037,13 @@
 	      /* If we won't print another message, mention this anyway.  */
 	      if (!NILP (nomessage))
 		{
-		  Lisp_Object file;
-		  file = Fsubstring (found, make_number (0), make_number (-1));
+		  Lisp_Object msg_file;
+		  msg_file = Fsubstring (found, make_number (0), make_number (-1));
 		  message_with_string ("Source file `%s' newer than byte-compiled file",
-				       file, 1);
+				       msg_file, 1);
 		}
 	    }
+	  UNGCPRO;
 	}
     }
   else
@@ -1055,12 +1062,12 @@
 	}
     }
 
+  GCPRO2 (file, found);
+
 #ifdef WINDOWSNT
   emacs_close (fd);
-  GCPRO1 (efound);
   efound = ENCODE_FILE (found);
   stream = fopen ((char *) SDATA (efound), fmode);
-  UNGCPRO;
 #else  /* not WINDOWSNT */
   stream = fdopen (fd, fmode);
 #endif /* not WINDOWSNT */
@@ -1087,7 +1094,6 @@
 	message_with_string ("Loading %s...", file, 1);
     }
 
-  GCPRO1 (file);
   record_unwind_protect (load_unwind, make_save_value (stream, 0));
   record_unwind_protect (load_descriptor_unwind, load_descriptor_list);
   specbind (Qload_file_name, found);
@@ -1096,8 +1102,9 @@
     = Fcons (make_number (fileno (stream)), load_descriptor_list);
   load_in_progress++;
   if (! version || version >= 22)
-    readevalloop (Qget_file_char, stream, file, Feval,
-		  0, Qnil, Qnil, Qnil, Qnil);
+    readevalloop (Qget_file_char, stream,
+		  (! NILP (Vpurify_flag) ? file : found),
+		  Feval, 0, Qnil, Qnil, Qnil, Qnil);
   else
     {
       /* We can't handle a file which was compiled with
@@ -4017,7 +4024,7 @@
   Vafter_load_alist = Qnil;
 
   DEFVAR_LISP ("load-history", &Vload_history,
-	       doc: /* Alist mapping source file names to symbols and features.
+	       doc: /* Alist mapping file names to symbols and features.
 Each alist element is a list that starts with a file name,
 except for one element (optional) that starts with nil and describes
 definitions evaluated from buffers not visiting files.
@@ -4026,7 +4033,10 @@
 `(defun . FUNCTION)', `(autoload . SYMBOL)', and `(t . SYMBOL)'.
 An element `(t . SYMBOL)' precedes an entry `(defun . FUNCTION)',
 and means that SYMBOL was an autoload before this file redefined it
-as a function.  */);
+as a function.
+
+For a preloaded file, the file name recorded is relative to the main Lisp
+directory.  These names are converted to absolute by `file-loadhist-lookup'.  */);
   Vload_history = Qnil;
 
   DEFVAR_LISP ("load-file-name", &Vload_file_name,
--- a/src/mac.c	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/mac.c	Mon Jan 16 06:59:21 2006 +0000
@@ -3411,7 +3411,7 @@
 }
 
 /* Convert a lisp string to the 4 byte character code.  */
- 
+
 OSType
 mac_get_code_from_arg(Lisp_Object arg, OSType defCode)
 {
@@ -3419,7 +3419,7 @@
   if (NILP(arg))
     {
       result = defCode;
-    } 
+    }
   else
     {
       /* check type string */
@@ -3483,7 +3483,7 @@
 
       status = FSpGetFInfo (&fss, &finder_info);
 #endif
-      if (status == noErr) 
+      if (status == noErr)
 	{
 #ifdef MAC_OSX
 	  result = mac_get_object_from_code(((FileInfo*)&catalogInfo.finderInfo)->fileCreator);
@@ -3538,7 +3538,7 @@
 
       status = FSpGetFInfo (&fss, &finder_info);
 #endif
-      if (status == noErr) 
+      if (status == noErr)
 	{
 #ifdef MAC_OSX
 	  result = mac_get_object_from_code(((FileInfo*)&catalogInfo.finderInfo)->fileType);
@@ -3596,7 +3596,7 @@
 
       status = FSpGetFInfo (&fss, &finder_info);
 #endif
-      if (status == noErr) 
+      if (status == noErr)
 	{
 #ifdef MAC_OSX
 	((FileInfo*)&catalogInfo.finderInfo)->fileCreator = cCode;
@@ -3656,7 +3656,7 @@
 
       status = FSpGetFInfo (&fss, &finder_info);
 #endif
-      if (status == noErr) 
+      if (status == noErr)
 	{
 #ifdef MAC_OSX
 	((FileInfo*)&catalogInfo.finderInfo)->fileType = cCode;
@@ -3968,10 +3968,13 @@
   CFStringRef iana_name;
   CFStringEncoding encoding = kCFStringEncodingInvalidId;
 
+  if (NILP (obj))
+    return kCFStringEncodingUnicode;
+
   if (INTEGERP (obj))
     return XINT (obj);
 
-  if (SYMBOLP (obj) && !NILP (obj) && !NILP (Fcoding_system_p (obj)))
+  if (SYMBOLP (obj) && !NILP (Fcoding_system_p (obj)))
     {
       Lisp_Object coding_spec, plist;
 
@@ -4115,7 +4118,8 @@
        doc: /* Convert STRING from SOURCE encoding to TARGET encoding.
 The conversion is performed using the converter provided by the system.
 Each encoding is specified by either a coding system symbol, a mime
-charset string, or an integer as a CFStringEncoding value.
+charset string, or an integer as a CFStringEncoding value.  Nil for
+encoding means UTF-16 in native byte order, no byte order marker.
 On Mac OS X 10.2 and later, you can do Unicode Normalization by
 specifying the optional argument NORMALIZATION-FORM with a symbol NFD,
 NFKD, NFC, NFKC, HFS+D, or HFS+C.
@@ -4126,7 +4130,6 @@
   Lisp_Object result = Qnil;
   CFStringEncoding src_encoding, tgt_encoding;
   CFStringRef str = NULL;
-  CFDataRef data = NULL;
 
   CHECK_STRING (string);
   if (!INTEGERP (source) && !STRINGP (source))
@@ -4148,7 +4151,7 @@
   if (src_encoding != kCFStringEncodingInvalidId
       && tgt_encoding != kCFStringEncodingInvalidId)
     str = CFStringCreateWithBytes (NULL, SDATA (string), SBYTES (string),
-				   src_encoding, true);
+				   src_encoding, !NILP (source));
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
   if (str)
     {
@@ -4160,15 +4163,18 @@
 #endif
   if (str)
     {
-      data = CFStringCreateExternalRepresentation (NULL, str,
-						   tgt_encoding, '\0');
+      CFIndex str_len, buf_len;
+
+      str_len = CFStringGetLength (str);
+      if (CFStringGetBytes (str, CFRangeMake (0, str_len), tgt_encoding, 0,
+			    !NILP (target), NULL, 0, &buf_len) == str_len)
+	{
+	  result = make_uninit_string (buf_len);
+	  CFStringGetBytes (str, CFRangeMake (0, str_len), tgt_encoding, 0,
+			    !NILP (target), SDATA (result), buf_len, NULL);
+	}
       CFRelease (str);
     }
-  if (data)
-    {
-      result = cfdata_to_lisp (data);
-      CFRelease (data);
-    }
 
   UNBLOCK_INPUT;
 
--- a/src/macfns.c	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/macfns.c	Mon Jan 16 06:59:21 2006 +0000
@@ -1745,8 +1745,7 @@
       int y = nlines * FRAME_LINE_HEIGHT (f);
 
       BLOCK_INPUT;
-      XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-		    0, y, width, height, 0);
+      mac_clear_area (f, 0, y, width, height);
       UNBLOCK_INPUT;
 
       if (WINDOWP (f->tool_bar_window))
@@ -2439,7 +2438,7 @@
   frame = Qnil;
   GCPRO4 (parms, parent, name, frame);
   tem = mac_get_arg (parms, Qminibuffer, "minibuffer", "Minibuffer",
-                     RES_TYPE_SYMBOL);
+		     RES_TYPE_SYMBOL);
   if (EQ (tem, Qnone) || NILP (tem))
     f = make_frame_without_minibuffer (Qnil, kb, display);
   else if (EQ (tem, Qonly))
@@ -2480,7 +2479,11 @@
   if (! STRINGP (f->icon_name))
     f->icon_name = Qnil;
 
-/*  FRAME_W32_DISPLAY_INFO (f) = dpyinfo; */
+/*   FRAME_MAC_DISPLAY_INFO (f) = dpyinfo; */
+#if GLYPH_DEBUG
+  image_cache_refcount = FRAME_X_IMAGE_CACHE (f)->refcount;
+  dpyinfo_refcount = dpyinfo->reference_count;
+#endif /* GLYPH_DEBUG */
 #ifdef MULTI_KBOARD
   FRAME_KBOARD (f) = kb;
 #endif
@@ -2606,9 +2609,10 @@
   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),
-                       "toolBar", "ToolBar", RES_TYPE_NUMBER);
+		       "toolBar", "ToolBar", RES_TYPE_NUMBER);
   x_default_parameter (f, parms, Qbuffer_predicate, Qnil,
-		       "bufferPredicate", "BufferPredicate", RES_TYPE_SYMBOL);
+		       "bufferPredicate", "BufferPredicate",
+		       RES_TYPE_SYMBOL);
   x_default_parameter (f, parms, Qtitle, Qnil,
 		       "title", "Title", RES_TYPE_STRING);
   x_default_parameter (f, parms, Qfullscreen, Qnil,
@@ -3593,7 +3597,7 @@
 
   FRAME_FONTSET (f)  = -1;
   f->icon_name = Qnil;
-
+/*   FRAME_X_DISPLAY_INFO (f) = dpyinfo; */
 #if GLYPH_DEBUG
   image_cache_refcount = FRAME_X_IMAGE_CACHE (f)->refcount;
   dpyinfo_refcount = dpyinfo->reference_count;
@@ -4047,6 +4051,9 @@
   BringToFront (FRAME_MAC_WINDOW (f));
   UNBLOCK_INPUT;
 
+  FRAME_PIXEL_WIDTH (f) = width;
+  FRAME_PIXEL_HEIGHT (f) = height;
+
   /* Draw into the window.  */
   w->must_be_updated_p = 1;
   update_single_window (w, 1);
--- a/src/macterm.c	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/macterm.c	Mon Jan 16 06:59:21 2006 +0000
@@ -273,7 +273,7 @@
 #define GC_BACK_COLOR(gc)	(&(gc)->back_color)
 #define GC_FONT(gc)		((gc)->xgcv.font)
 #define GC_CLIP_REGION(gc)	((gc)->clip_region)
-#define MAC_WINDOW_NORMAL_GC(w)	(((mac_output *) GetWRefCon (w))->normal_gc)
+#define FRAME_NORMAL_GC(f)	((f)->output_data.mac->normal_gc)
 
 static RgnHandle saved_port_clip_region = NULL;
 
@@ -319,13 +319,12 @@
 /* Mac version of XDrawLine.  */
 
 static void
-XDrawLine (display, w, gc, x1, y1, x2, y2)
-     Display *display;
-     WindowPtr w;
+mac_draw_line (f, gc, x1, y1, x2, y2)
+     struct frame *f;
      GC gc;
      int x1, y1, x2, y2;
 {
-  SetPortWindowPort (w);
+  SetPortWindowPort (FRAME_MAC_WINDOW (f));
 
   RGBForeColor (GC_FORE_COLOR (gc));
 
@@ -360,15 +359,15 @@
 
 
 static void
-mac_erase_rectangle (w, gc, x, y, width, height)
-     WindowPtr w;
+mac_erase_rectangle (f, gc, x, y, width, height)
+     struct frame *f;
      GC gc;
      int x, y;
      unsigned int width, height;
 {
   Rect r;
 
-  SetPortWindowPort (w);
+  SetPortWindowPort (FRAME_MAC_WINDOW (f));
 
   RGBBackColor (GC_BACK_COLOR (gc));
   SetRect (&r, x, y, x + width, y + height);
@@ -377,43 +376,40 @@
   EraseRect (&r);
   mac_end_clip (GC_CLIP_REGION (gc));
 
-  RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w)));
+  RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
 }
 
 
 /* Mac version of XClearArea.  */
 
 void
-XClearArea (display, w, x, y, width, height, exposures)
-     Display *display;
-     WindowPtr w;
+mac_clear_area (f, x, y, width, height)
+     struct frame *f;
      int x, y;
      unsigned int width, height;
-     int exposures;
-{
-  mac_erase_rectangle (w, MAC_WINDOW_NORMAL_GC (w), x, y, width, height);
+{
+  mac_erase_rectangle (f, FRAME_NORMAL_GC (f), x, y, width, height);
 }
 
 /* Mac version of XClearWindow.  */
 
 static void
-XClearWindow (display, w)
-     Display *display;
-     WindowPtr w;
-{
-  SetPortWindowPort (w);
-
-  RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w)));
+mac_clear_window (f)
+     struct frame *f;
+{
+  SetPortWindowPort (FRAME_MAC_WINDOW (f));
+
+  RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
 
 #if TARGET_API_MAC_CARBON
   {
     Rect r;
 
-    GetWindowPortBounds (w, &r);
+    GetWindowPortBounds (FRAME_MAC_WINDOW (f), &r);
     EraseRect (&r);
   }
 #else /* not TARGET_API_MAC_CARBON */
-  EraseRect (&(w->portRect));
+  EraseRect (&(FRAME_MAC_WINDOW (f)->portRect));
 #endif /* not TARGET_API_MAC_CARBON */
 }
 
@@ -421,9 +417,8 @@
 /* Mac replacement for XCopyArea.  */
 
 static void
-mac_draw_bitmap (display, w, gc, x, y, width, height, bits, overlay_p)
-     Display *display;
-     WindowPtr w;
+mac_draw_bitmap (f, gc, x, y, width, height, bits, overlay_p)
+     struct frame *f;
      GC gc;
      int x, y, width, height;
      unsigned short *bits;
@@ -436,7 +431,7 @@
   bitmap.baseAddr = (char *)bits;
   SetRect (&(bitmap.bounds), 0, 0, width, height);
 
-  SetPortWindowPort (w);
+  SetPortWindowPort (FRAME_MAC_WINDOW (f));
 
   RGBForeColor (GC_FORE_COLOR (gc));
   RGBBackColor (GC_BACK_COLOR (gc));
@@ -444,17 +439,22 @@
 
   mac_begin_clip (GC_CLIP_REGION (gc));
 #if TARGET_API_MAC_CARBON
-  LockPortBits (GetWindowPort (w));
-  CopyBits (&bitmap, GetPortBitMapForCopyBits (GetWindowPort (w)),
-	    &(bitmap.bounds), &r, overlay_p ? srcOr : srcCopy, 0);
-  UnlockPortBits (GetWindowPort (w));
+  {
+    CGrafPtr port;
+
+    GetPort (&port);
+    LockPortBits (port);
+    CopyBits (&bitmap, GetPortBitMapForCopyBits (port),
+	      &(bitmap.bounds), &r, overlay_p ? srcOr : srcCopy, 0);
+    UnlockPortBits (port);
+  }
 #else /* not TARGET_API_MAC_CARBON */
-  CopyBits (&bitmap, &(w->portBits), &(bitmap.bounds), &r,
+  CopyBits (&bitmap, &(FRAME_MAC_WINDOW (f)->portBits), &(bitmap.bounds), &r,
 	    overlay_p ? srcOr : srcCopy, 0);
 #endif /* not TARGET_API_MAC_CARBON */
   mac_end_clip (GC_CLIP_REGION (gc));
 
-  RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w)));
+  RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
 }
 
 
@@ -571,16 +571,15 @@
 /* Mac replacement for XFillRectangle.  */
 
 static void
-XFillRectangle (display, w, gc, x, y, width, height)
-     Display *display;
-     WindowPtr w;
+mac_fill_rectangle (f, gc, x, y, width, height)
+     struct frame *f;
      GC gc;
      int x, y;
      unsigned int width, height;
 {
   Rect r;
 
-  SetPortWindowPort (w);
+  SetPortWindowPort (FRAME_MAC_WINDOW (f));
 
   RGBForeColor (GC_FORE_COLOR (gc));
   SetRect (&r, x, y, x + width, y + height);
@@ -591,46 +590,18 @@
 }
 
 
-#if 0 /* TODO: figure out if we need to do this on Mac.  */
-static void
-mac_fill_rectangle_to_pixmap (display, p, gc, x, y, width, height)
-     Display *display;
-     Pixmap p;
-     GC gc;
-     int x, y;
-     unsigned int width, height;
-{
-  CGrafPtr old_port;
-  GDHandle old_gdh;
-  Rect r;
-
-  GetGWorld (&old_port, &old_gdh);
-  SetGWorld (p, NULL);
-  RGBForeColor (GC_FORE_COLOR (gc));
-  SetRect (&r, x, y, x + width, y + height);
-
-  LockPixels (GetGWorldPixMap (p));
-  PaintRect (&r); /* using foreground color of gc */
-  UnlockPixels (GetGWorldPixMap (p));
-
-  SetGWorld (old_port, old_gdh);
-}
-#endif
-
-
 /* Mac replacement for XDrawRectangle: dest is a window.  */
 
 static void
-mac_draw_rectangle (display, w, gc, x, y, width, height)
-     Display *display;
-     WindowPtr w;
+mac_draw_rectangle (f, gc, x, y, width, height)
+     struct frame *f;
      GC gc;
      int x, y;
      unsigned int width, height;
 {
   Rect r;
 
-  SetPortWindowPort (w);
+  SetPortWindowPort (FRAME_MAC_WINDOW (f));
 
   RGBForeColor (GC_FORE_COLOR (gc));
   SetRect (&r, x, y, x + width + 1, y + height + 1);
@@ -641,35 +612,6 @@
 }
 
 
-#if 0 /* TODO: figure out if we need to do this on Mac.  */
-/* Mac replacement for XDrawRectangle: dest is a Pixmap.  */
-
-static void
-mac_draw_rectangle_to_pixmap (display, p, gc, x, y, width, height)
-     Display *display;
-     Pixmap p;
-     GC gc;
-     int x, y;
-     unsigned int width, height;
-{
-  CGrafPtr old_port;
-  GDHandle old_gdh;
-  Rect r;
-
-  GetGWorld (&old_port, &old_gdh);
-  SetGWorld (p, NULL);
-  RGBForeColor (GC_FORE_COLOR (gc));
-  SetRect (&r, x, y, x + width + 1, y + height + 1);
-
-  LockPixels (GetGWorldPixMap (p));
-  FrameRect (&r); /* using foreground color of gc */
-  UnlockPixels (GetGWorldPixMap (p));
-
-  SetGWorld (old_port, old_gdh);
-}
-#endif
-
-
 #if USE_ATSUI
 static OSStatus
 atsu_get_text_layout_with_text_ptr (text, text_length, style, text_layout)
@@ -726,16 +668,16 @@
 }
 #endif
 
-static void
-mac_invert_rectangle (display, w, x, y, width, height)
-     Display *display;
-     WindowPtr w;
+
+static void
+mac_invert_rectangle (f, x, y, width, height)
+     struct frame *f;
      int x, y;
      unsigned int width, height;
 {
   Rect r;
 
-  SetPortWindowPort (w);
+  SetPortWindowPort (FRAME_MAC_WINDOW (f));
 
   SetRect (&r, x, y, x + width, y + height);
 
@@ -744,10 +686,8 @@
 
 
 static void
-mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode,
-			bytes_per_char)
-     Display *display;
-     WindowPtr w;
+mac_draw_string_common (f, gc, x, y, buf, nchars, mode, bytes_per_char)
+     struct frame *f;
      GC gc;
      int x, y;
      char *buf;
@@ -761,7 +701,7 @@
   }
 #endif
 
-  SetPortWindowPort (w);
+  SetPortWindowPort (FRAME_MAC_WINDOW (f));
 
   RGBForeColor (GC_FORE_COLOR (gc));
   if (mode != srcOr)
@@ -806,16 +746,13 @@
 	    {
 	      CGrafPtr port;
 	      CGContextRef context;
-	      Rect rect;
-	      float port_height;
+	      float port_height = FRAME_PIXEL_HEIGHT (f);
 	      ATSUAttributeTag tags[] = {kATSUCGContextTag};
 	      ByteCount sizes[] = {sizeof (CGContextRef)};
 	      ATSUAttributeValuePtr values[] = {&context};
 
 	      GetPort (&port);
 	      QDBeginCGContext (port, &context);
-	      GetPortBounds (port, &rect);
-	      port_height = rect.bottom - rect.top;
 	      if (gc->n_clip_rects)
 		{
 		  CGContextTranslateCTM (context, 0, port_height);
@@ -864,7 +801,7 @@
 #endif
 
   if (mode != srcOr)
-    RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w)));
+    RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
   if (!NILP(Vmac_use_core_graphics))
     SwapQDTextFlags(savedFlags);
@@ -875,73 +812,65 @@
 /* Mac replacement for XDrawString.  */
 
 static void
-XDrawString (display, w, gc, x, y, buf, nchars)
-     Display *display;
-     WindowPtr w;
+mac_draw_string (f, gc, x, y, buf, nchars)
+     struct frame *f;
      GC gc;
      int x, y;
      char *buf;
      int nchars;
 {
-  mac_draw_string_common (display, w, gc, x, y, buf, nchars, srcOr, 1);
+  mac_draw_string_common (f, gc, x, y, buf, nchars, srcOr, 1);
 }
 
 
 /* Mac replacement for XDrawString16. */
 
 static void
-XDrawString16 (display, w, gc, x, y, buf, nchars)
-     Display *display;
-     WindowPtr w;
+mac_draw_string_16 (f, gc, x, y, buf, nchars)
+     struct frame *f;
      GC gc;
      int x, y;
      XChar2b *buf;
      int nchars;
 {
-  mac_draw_string_common (display, w, gc, x, y, (char *) buf, nchars, srcOr,
-			  2);
+  mac_draw_string_common (f, gc, x, y, (char *) buf, nchars, srcOr, 2);
 }
 
 
 /* Mac replacement for XDrawImageString.  */
 
 static void
-XDrawImageString (display, w, gc, x, y, buf, nchars)
-     Display *display;
-     WindowPtr w;
+mac_draw_image_string (f, gc, x, y, buf, nchars)
+     struct frame *f;
      GC gc;
      int x, y;
      char *buf;
      int nchars;
 {
-  mac_draw_string_common (display, w, gc, x, y, buf, nchars, srcCopy, 1);
+  mac_draw_string_common (f, gc, x, y, buf, nchars, srcCopy, 1);
 }
 
 
 /* Mac replacement for XDrawString16.  */
 
 static void
-XDrawImageString16 (display, w, gc, x, y, buf, nchars)
-     Display *display;
-     WindowPtr w;
+mac_draw_image_string_16 (f, gc, x, y, buf, nchars)
+     struct frame *f;
      GC gc;
      int x, y;
      XChar2b *buf;
      int nchars;
 {
-  mac_draw_string_common (display, w, gc, x, y, (char *) buf, nchars, srcCopy,
-			  2);
+  mac_draw_string_common (f, gc, x, y, (char *) buf, nchars, srcCopy, 2);
 }
 
 
 /* Mac replacement for XCopyArea: dest must be window.  */
 
 static void
-mac_copy_area (display, src, dest, gc, src_x, src_y, width, height, dest_x,
-	       dest_y)
-     Display *display;
+mac_copy_area (src, f, gc, src_x, src_y, width, height, dest_x, dest_y)
      Pixmap src;
-     WindowPtr dest;
+     struct frame *f;
      GC gc;
      int src_x, src_y;
      unsigned int width, height;
@@ -949,7 +878,7 @@
 {
   Rect src_r, dest_r;
 
-  SetPortWindowPort (dest);
+  SetPortWindowPort (FRAME_MAC_WINDOW (f));
 
   SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
   SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height);
@@ -960,28 +889,32 @@
   mac_begin_clip (GC_CLIP_REGION (gc));
   LockPixels (GetGWorldPixMap (src));
 #if TARGET_API_MAC_CARBON
-  LockPortBits (GetWindowPort (dest));
-  CopyBits (GetPortBitMapForCopyBits (src),
-	    GetPortBitMapForCopyBits (GetWindowPort (dest)),
-	    &src_r, &dest_r, srcCopy, 0);
-  UnlockPortBits (GetWindowPort (dest));
+  {
+    CGrafPtr port;
+
+    GetPort (&port);
+    LockPortBits (port);
+    CopyBits (GetPortBitMapForCopyBits (src),
+	      GetPortBitMapForCopyBits (port),
+	      &src_r, &dest_r, srcCopy, 0);
+    UnlockPortBits (port);
+  }
 #else /* not TARGET_API_MAC_CARBON */
-  CopyBits (&(((GrafPtr)src)->portBits), &(dest->portBits),
+  CopyBits (&(((GrafPtr)src)->portBits), &(FRAME_MAC_WINDOW (f)->portBits),
 	    &src_r, &dest_r, srcCopy, 0);
 #endif /* not TARGET_API_MAC_CARBON */
   UnlockPixels (GetGWorldPixMap (src));
   mac_end_clip (GC_CLIP_REGION (gc));
 
-  RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (dest)));
-}
-
-
-static void
-mac_copy_area_with_mask (display, src, mask, dest, gc, src_x, src_y,
+  RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
+}
+
+
+static void
+mac_copy_area_with_mask (src, mask, f, gc, src_x, src_y,
 			 width, height, dest_x, dest_y)
-     Display *display;
      Pixmap src, mask;
-     WindowPtr dest;
+     struct frame *f;
      GC gc;
      int src_x, src_y;
      unsigned int width, height;
@@ -989,7 +922,7 @@
 {
   Rect src_r, dest_r;
 
-  SetPortWindowPort (dest);
+  SetPortWindowPort (FRAME_MAC_WINDOW (f));
 
   SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
   SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height);
@@ -1001,29 +934,33 @@
   LockPixels (GetGWorldPixMap (src));
   LockPixels (GetGWorldPixMap (mask));
 #if TARGET_API_MAC_CARBON
-  LockPortBits (GetWindowPort (dest));
-  CopyMask (GetPortBitMapForCopyBits (src), GetPortBitMapForCopyBits (mask),
-	    GetPortBitMapForCopyBits (GetWindowPort (dest)),
-	    &src_r, &src_r, &dest_r);
-  UnlockPortBits (GetWindowPort (dest));
+  {
+    CGrafPtr port;
+
+    GetPort (&port);
+    LockPortBits (port);
+    CopyMask (GetPortBitMapForCopyBits (src), GetPortBitMapForCopyBits (mask),
+	      GetPortBitMapForCopyBits (port),
+	      &src_r, &src_r, &dest_r);
+    UnlockPortBits (port);
+  }
 #else /* not TARGET_API_MAC_CARBON */
   CopyMask (&(((GrafPtr)src)->portBits), &(((GrafPtr)mask)->portBits),
-	    &(dest->portBits), &src_r, &src_r, &dest_r);
+	    &(FRAME_MAC_WINDOW (f)->portBits), &src_r, &src_r, &dest_r);
 #endif /* not TARGET_API_MAC_CARBON */
   UnlockPixels (GetGWorldPixMap (mask));
   UnlockPixels (GetGWorldPixMap (src));
   mac_end_clip (GC_CLIP_REGION (gc));
 
-  RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (dest)));
+  RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
 }
 
 
 /* Mac replacement for XCopyArea: used only for scrolling.  */
 
 static void
-mac_scroll_area (display, w, gc, src_x, src_y, width, height, dest_x, dest_y)
-     Display *display;
-     WindowPtr w;
+mac_scroll_area (f, gc, src_x, src_y, width, height, dest_x, dest_y)
+     struct frame *f;
      GC gc;
      int src_x, src_y;
      unsigned int width, height;
@@ -1034,11 +971,13 @@
   RgnHandle dummy = NewRgn ();	/* For avoiding update events.  */
 
   SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
-  ScrollWindowRect (w, &src_r, dest_x - src_x, dest_y - src_y,
+  ScrollWindowRect (FRAME_MAC_WINDOW (f),
+		    &src_r, dest_x - src_x, dest_y - src_y,
 		    kScrollWindowNoOptions, dummy);
   DisposeRgn (dummy);
 #else /* not TARGET_API_MAC_CARBON */
   Rect src_r, dest_r;
+  WindowPtr w = FRAME_MAC_WINDOW (f);
 
   SetPort (w);
 
@@ -1053,91 +992,9 @@
   CopyBits (&(w->portBits), &(w->portBits), &src_r, &dest_r, srcCopy, 0);
   mac_end_clip (GC_CLIP_REGION (gc));
 
-  RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w)));
-#endif /* not TARGET_API_MAC_CARBON */
-}
-
-
-#if 0 /* TODO: figure out if we need to do this on Mac.  */
-/* 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,
-                     dest_x, dest_y)
-     Display *display;
-     Pixmap src, dest;
-     GC gc;
-     int src_x, src_y;
-     unsigned int width, height;
-     int dest_x, dest_y;
-{
-  CGrafPtr old_port;
-  GDHandle old_gdh;
-  Rect src_r, dest_r;
-
-  GetGWorld (&old_port, &old_gdh);
-  SetGWorld (dest, NULL);
-  ForeColor (blackColor);
-  BackColor (whiteColor);
-
-  SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
-  SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height);
-
-  LockPixels (GetGWorldPixMap (src));
-  LockPixels (GetGWorldPixMap (dest));
-#if TARGET_API_MAC_CARBON
-  CopyBits (GetPortBitMapForCopyBits (src), GetPortBitMapForCopyBits (dest),
-	    &src_r, &dest_r, srcCopy, 0);
-#else /* not TARGET_API_MAC_CARBON */
-  CopyBits (&(((GrafPtr)src)->portBits), &(((GrafPtr)dest)->portBits),
-	    &src_r, &dest_r, srcCopy, 0);
+  RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
 #endif /* not TARGET_API_MAC_CARBON */
-  UnlockPixels (GetGWorldPixMap (dest));
-  UnlockPixels (GetGWorldPixMap (src));
-
-  SetGWorld (old_port, old_gdh);
-}
-
-
-static void
-mac_copy_area_with_mask_to_pixmap (display, src, mask, dest, gc, src_x, src_y,
-				   width, height, dest_x, dest_y)
-     Display *display;
-     Pixmap src, mask, dest;
-     GC gc;
-     int src_x, src_y;
-     unsigned int width, height;
-     int dest_x, dest_y;
-{
-  CGrafPtr old_port;
-  GDHandle old_gdh;
-  Rect src_r, dest_r;
-
-  GetGWorld (&old_port, &old_gdh);
-  SetGWorld (dest, NULL);
-  ForeColor (blackColor);
-  BackColor (whiteColor);
-
-  SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
-  SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height);
-
-  LockPixels (GetGWorldPixMap (src));
-  LockPixels (GetGWorldPixMap (mask));
-  LockPixels (GetGWorldPixMap (dest));
-#if TARGET_API_MAC_CARBON
-  CopyMask (GetPortBitMapForCopyBits (src), GetPortBitMapForCopyBits (mask),
-	    GetPortBitMapForCopyBits (dest), &src_r, &src_r, &dest_r);
-#else /* not TARGET_API_MAC_CARBON */
-  CopyMask (&(((GrafPtr)src)->portBits), &(((GrafPtr)mask)->portBits),
-	    &(((GrafPtr)dest)->portBits), &src_r, &src_r, &dest_r);
-#endif /* not TARGET_API_MAC_CARBON */
-  UnlockPixels (GetGWorldPixMap (dest));
-  UnlockPixels (GetGWorldPixMap (mask));
-  UnlockPixels (GetGWorldPixMap (src));
-
-  SetGWorld (old_port, old_gdh);
-}
-#endif
+}
 
 
 /* Mac replacement for XChangeGC.  */
@@ -1511,8 +1368,7 @@
     XSetForeground (FRAME_MAC_DISPLAY (f), f->output_data.mac->normal_gc,
 		    face->foreground);
 
-  XDrawLine (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-	     f->output_data.mac->normal_gc, x, y0, x, y1);
+  mac_draw_line (f, f->output_data.mac->normal_gc, x, y0, x, y1);
 }
 
 /* End update of window W (which is equal to updated_window).
@@ -1651,11 +1507,8 @@
 	y -= width;
 
       BLOCK_INPUT;
-      XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-		  0, y, width, height, 0);
-      XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-		  FRAME_PIXEL_WIDTH (f) - width, y,
-		  width, height, 0);
+      mac_clear_area (f, 0, y, width, height);
+      mac_clear_area (f, FRAME_PIXEL_WIDTH (f) - width, y, width, height);
       UNBLOCK_INPUT;
     }
 }
@@ -1674,8 +1527,6 @@
 {
   struct frame *f = XFRAME (WINDOW_FRAME (w));
   Display *display = FRAME_MAC_DISPLAY (f);
-  WindowPtr window = FRAME_MAC_WINDOW (f);
-  GC gc = f->output_data.mac->normal_gc;
   struct face *face = p->face;
   int rowY;
 
@@ -1689,12 +1540,12 @@
       int oldVH = row->visible_height;
       row->visible_height = p->h;
       row->y -= rowY - p->y;
-      x_clip_to_row (w, row, -1, gc);
+      x_clip_to_row (w, row, -1, face->gc);
       row->y = oldY;
       row->visible_height = oldVH;
     }
   else
-    x_clip_to_row (w, row, -1, gc);
+    x_clip_to_row (w, row, -1, face->gc);
 
   if (p->bx >= 0 && !p->overlay_p)
     {
@@ -1709,7 +1560,7 @@
 	XSetForeground (FRAME_X_DISPLAY (f), face->gc, face->background);
 #endif
 
-      mac_erase_rectangle (window, face->gc, p->bx, p->by, p->nx, p->ny);
+      mac_erase_rectangle (f, face->gc, p->bx, p->by, p->nx, p->ny);
 
 #if 0  /* MAC_TODO: stipple */
       if (!face->stipple)
@@ -1728,12 +1579,12 @@
 		       ? (p->overlay_p ? face->background
 			  : f->output_data.mac->cursor_pixel)
 		       : face->foreground));
-      mac_draw_bitmap (display, window, face->gc, p->x, p->y,
+      mac_draw_bitmap (f, face->gc, p->x, p->y,
 		       p->wd, p->h, bits, p->overlay_p);
       XSetForeground (display, face->gc, gcv.foreground);
     }
 
-  mac_reset_clip_rectangles (display, gc);
+  mac_reset_clip_rectangles (display, face->gc);
 }
 
 
@@ -2284,7 +2135,7 @@
      struct glyph_string *s;
      int x, y, w, h;
 {
-  mac_erase_rectangle (s->window, s->gc, x, y, w, h);
+  mac_erase_rectangle (s->f, s->gc, x, y, w, h);
 }
 
 
@@ -2366,9 +2217,8 @@
       for (i = 0; i < s->nchars; ++i)
 	{
 	  struct glyph *g = s->first_glyph + i;
-	  mac_draw_rectangle (s->display, s->window,
-			    s->gc, x, s->y, g->pixel_width - 1,
-			    s->height - 1);
+	  mac_draw_rectangle (s->f, s->gc, x, s->y,
+			      g->pixel_width - 1, s->height - 1);
 	  x += g->pixel_width;
 	}
     }
@@ -2405,21 +2255,21 @@
 	      || GC_FONT (s->gc)->mac_style
 #endif
 	      )
-	    XDrawString16 (s->display, s->window, s->gc, x,
-			   s->ybase - boff, s->char2b, s->nchars);
+	    mac_draw_string_16 (s->f, s->gc, x,	s->ybase - boff,
+				s->char2b, s->nchars);
 	  else
-	    XDrawString (s->display, s->window, s->gc, x,
-			 s->ybase - boff, char1b, s->nchars);
+	    mac_draw_string (s->f, s->gc, x, s->ybase - boff,
+			     char1b, s->nchars);
 	}
 #if defined (MAC_OS8) && !USE_ATSUI
       else
 	{
 	  if (s->two_byte_p)
-	    XDrawImageString16 (s->display, s->window, s->gc, x,
-				s->ybase - boff, s->char2b, s->nchars);
+	    mac_draw_image_string_16 (s->f, s->gc, x, s->ybase - boff,
+				      s->char2b, s->nchars);
 	  else
-	    XDrawImageString (s->display, s->window, s->gc, x,
-			      s->ybase - boff, char1b, s->nchars);
+	    mac_draw_image_string (s->f, s->gc, x, s->ybase - boff,
+				   char1b, s->nchars);
 	}
 #endif
     }
@@ -2451,16 +2301,16 @@
   if (s->font_not_found_p)
     {
       if (s->gidx == 0)
-	mac_draw_rectangle (s->display, s->window, s->gc, x, s->y,
-			  s->width - 1, s->height - 1);
+	mac_draw_rectangle (s->f, s->gc, x, s->y,
+			    s->width - 1, s->height - 1);
     }
   else
     {
       for (i = 0; i < s->nchars; i++, ++s->gidx)
-	XDrawString16 (s->display, s->window, s->gc,
-		       x + s->cmp->offsets[s->gidx * 2],
-		       s->ybase - s->cmp->offsets[s->gidx * 2 + 1],
-		       s->char2b + i, 1);
+	mac_draw_string_16 (s->f, s->gc,
+			    x + s->cmp->offsets[s->gidx * 2],
+			    s->ybase - s->cmp->offsets[s->gidx * 2 + 1],
+			    s->char2b + i, 1);
     }
 }
 
@@ -2816,7 +2666,6 @@
      Rect *clip_rect;
 {
   Display *dpy = FRAME_MAC_DISPLAY (f);
-  Window window = FRAME_MAC_WINDOW (f);
   int i;
   GC gc;
 
@@ -2829,15 +2678,15 @@
   /* Top.  */
   if (top_p)
     for (i = 0; i < width; ++i)
-      XDrawLine (dpy, window, gc,
-		 left_x + i * left_p, top_y + i,
-		 right_x - i * right_p, top_y + i);
+      mac_draw_line (f, gc,
+		     left_x + i * left_p, top_y + i,
+		     right_x - i * right_p, top_y + i);
 
   /* Left.  */
   if (left_p)
     for (i = 0; i < width; ++i)
-      XDrawLine (dpy, window, gc,
-		 left_x + i, top_y + i, left_x + i, bottom_y - i);
+      mac_draw_line (f, gc,
+		     left_x + i, top_y + i, left_x + i, bottom_y - i);
 
   mac_reset_clip_rectangles (dpy, gc);
   if (raised_p)
@@ -2849,15 +2698,15 @@
   /* Bottom.  */
   if (bot_p)
     for (i = 0; i < width; ++i)
-      XDrawLine (dpy, window, gc,
-		 left_x + i * left_p, bottom_y - i,
-		 right_x - i * right_p, bottom_y - i);
+      mac_draw_line (f, gc,
+		     left_x + i * left_p, bottom_y - i,
+		     right_x - i * right_p, bottom_y - i);
 
   /* Right.  */
   if (right_p)
     for (i = 0; i < width; ++i)
-      XDrawLine (dpy, window, gc,
-		 right_x - i, top_y + i + 1, right_x - i, bottom_y - i - 1);
+      mac_draw_line (f, gc,
+		     right_x - i, top_y + i + 1, right_x - i, bottom_y - i - 1);
 
   mac_reset_clip_rectangles (dpy, gc);
 }
@@ -2884,22 +2733,22 @@
   mac_set_clip_rectangles (s->display, s->gc, clip_rect, 1);
 
   /* Top.  */
-  XFillRectangle (s->display, s->window, s->gc,
-		  left_x, top_y, right_x - left_x + 1, width);
+  mac_fill_rectangle (s->f, s->gc, left_x, top_y,
+		      right_x - left_x + 1, width);
 
   /* Left.  */
   if (left_p)
-    XFillRectangle (s->display, s->window, s->gc,
-		    left_x, top_y, width, bottom_y - top_y + 1);
+    mac_fill_rectangle (s->f, s->gc, left_x, top_y,
+			width, bottom_y - top_y + 1);
 
   /* Bottom.  */
-  XFillRectangle (s->display, s->window, s->gc,
-		  left_x, bottom_y - width + 1, right_x - left_x + 1, width);
+  mac_fill_rectangle (s->f, s->gc, left_x, bottom_y - width + 1,
+		      right_x - left_x + 1, width);
 
   /* Right.  */
   if (right_p)
-    XFillRectangle (s->display, s->window, s->gc,
-		    right_x - width + 1, top_y, width, bottom_y - top_y + 1);
+    mac_fill_rectangle (s->f, s->gc, right_x - width + 1,
+			top_y, width, bottom_y - top_y + 1);
 
   XSetForeground (s->display, s->gc, xgcv.foreground);
   mac_reset_clip_rectangles (s->display, s->gc);
@@ -2986,13 +2835,13 @@
       x_set_glyph_string_clipping (s);
 
       if (s->img->mask)
-	mac_copy_area_with_mask (s->display, s->img->pixmap, s->img->mask,
-				 s->window, s->gc, s->slice.x, s->slice.y,
+	mac_copy_area_with_mask (s->img->pixmap, s->img->mask,
+				 s->f, s->gc, s->slice.x, s->slice.y,
 				 s->slice.width, s->slice.height, x, y);
       else
 	{
-	  mac_copy_area (s->display, s->img->pixmap,
-			 s->window, s->gc, s->slice.x, s->slice.y,
+	  mac_copy_area (s->img->pixmap,
+			 s->f, s->gc, s->slice.x, s->slice.y,
 			 s->slice.width, s->slice.height, x, y);
 
 	  /* When the image has a mask, we can expect that at
@@ -3005,8 +2854,7 @@
 	    {
 	      int r = s->img->relief;
 	      if (r < 0) r = -r;
-	      mac_draw_rectangle (s->display, s->window, s->gc,
-				  x - r, y - r,
+	      mac_draw_rectangle (s->f, s->gc, x - r, y - r,
 				  s->slice.width + r*2 - 1,
 				  s->slice.height + r*2 - 1);
 	    }
@@ -3014,7 +2862,7 @@
     }
   else
     /* Draw a rectangle if image could not be loaded.  */
-    mac_draw_rectangle (s->display, s->window, s->gc, x, y,
+    mac_draw_rectangle (s->f, s->gc, x, y,
 			s->slice.width - 1, s->slice.height - 1);
 }
 
@@ -3072,70 +2920,6 @@
 }
 
 
-#if 0 /* TODO: figure out if we need to do this on Mac.  */
-/* Draw the foreground of image glyph string S to PIXMAP.  */
-
-static void
-x_draw_image_foreground_1 (s, pixmap)
-     struct glyph_string *s;
-     Pixmap pixmap;
-{
-  int x = 0;
-  int y = s->ybase - s->y - image_ascent (s->img, s->face, &s->slice);
-
-  /* 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
-      && s->first_glyph->left_box_line_p
-      && s->slice.x == 0)
-    x += abs (s->face->box_line_width);
-
-  /* If there is a margin around the image, adjust x- and y-position
-     by that margin.  */
-  if (s->slice.x == 0)
-    x += s->img->hmargin;
-  if (s->slice.y == 0)
-    y += s->img->vmargin;
-
-  if (s->img->pixmap)
-    {
-      if (s->img->mask)
-	mac_copy_area_with_mask_to_pixmap (s->display, s->img->pixmap,
-					   s->img->mask, pixmap, s->gc,
-					   s->slice.x, s->slice.y,
-					   s->slice.width, s->slice.height,
-					   x, y);
-      else
-	{
-	  mac_copy_area_to_pixmap (s->display, s->img->pixmap, pixmap, s->gc,
-				   s->slice.x, s->slice.y,
-				   s->slice.width, s->slice.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
-	     a block cursor visible by drawing a rectangle around
-	     the image.  I believe it's looking better if we do
-	     nothing here for mouse-face.  */
-	  if (s->hl == DRAW_CURSOR)
-	    {
-	      int r = s->img->relief;
-	      if (r < 0) r = -r;
-	      mac_draw_rectangle (s->display, s->window, s->gc, x - r, y - r,
-				  s->slice.width + r*2 - 1,
-				  s->slice.height + r*2 - 1);
-	    }
-	}
-    }
-  else
-    /* Draw a rectangle if image could not be loaded.  */
-    mac_draw_rectangle_to_pixmap (s->display, pixmap, s->gc, x, y,
-				  s->slice.width - 1, s->slice.height - 1);
-}
-#endif
-
-
 /* Draw part of the background of glyph string S.  X, Y, W, and H
    give the rectangle to draw.  */
 
@@ -3205,62 +2989,13 @@
       if (s->slice.y == 0)
 	y += box_line_vwidth;
 
-#if 0 /* TODO: figure out if we need to do this on Mac.  */
-      if (s->img->mask)
-	{
-	  /* Create a pixmap as large as the glyph string.  Fill it
-	     with the background color.  Copy the image to it, using
-	     its mask.  Copy the temporary pixmap to the display.  */
-	  int depth = one_mac_display_info.n_planes;
-
-	  /* Create a pixmap as large as the glyph string.  */
- 	  pixmap = XCreatePixmap (s->display, s->window,
-				  s->background_width,
-				  s->height, depth);
-
-	  /* Fill the pixmap with the background color/stipple.  */
-#if 0 /* TODO: stipple */
-	  if (s->stippled_p)
-	    {
-	      /* Fill background with a stipple pattern.  */
-	      XSetFillStyle (s->display, s->gc, FillOpaqueStippled);
-	      XFillRectangle (s->display, pixmap, s->gc,
-			      0, 0, s->background_width, s->height);
-	      XSetFillStyle (s->display, s->gc, FillSolid);
-	    }
-	  else
-#endif
-	    {
-	      XGCValues xgcv;
-	      XGetGCValues (s->display, s->gc, GCForeground | GCBackground,
-			    &xgcv);
-	      XSetForeground (s->display, s->gc, xgcv.background);
-	      mac_fill_rectangle_to_pixmap (s->display, pixmap, s->gc,
-					    0, 0, s->background_width,
-					    s->height);
-	      XSetForeground (s->display, s->gc, xgcv.foreground);
-	    }
-	}
-      else
-#endif
-	x_draw_glyph_string_bg_rect (s, x, y, s->background_width, height);
+      x_draw_glyph_string_bg_rect (s, x, y, s->background_width, height);
 
       s->background_filled_p = 1;
     }
 
   /* Draw the foreground.  */
-#if 0 /* TODO: figure out if we need to do this on Mac.  */
-  if (pixmap != 0)
-    {
-      x_draw_image_foreground_1 (s, pixmap);
-      x_set_glyph_string_clipping (s);
-      mac_copy_area (s->display, pixmap, s->window, s->gc,
-		     0, 0, s->background_width, s->height, s->x, s->y);
-      XFreePixmap (s->display, pixmap);
-    }
-  else
-#endif
-    x_draw_image_foreground (s);
+  x_draw_image_foreground (s);
 
   /* If we must draw a relief around the image, do it.  */
   if (s->img->relief
@@ -3319,7 +3054,7 @@
 	    }
 	  else
 #endif /* MAC_TODO */
-	    mac_erase_rectangle (s->window, gc, x, y, w, h);
+	    mac_erase_rectangle (s->f, gc, x, y, w, h);
 	}
     }
   else if (!s->background_filled_p)
@@ -3410,15 +3145,15 @@
           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);
+	    mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy,
+				s->width, h);
 	  else
 	    {
 	      XGCValues xgcv;
 	      XGetGCValues (s->display, s->gc, GCForeground, &xgcv);
 	      XSetForeground (s->display, s->gc, s->face->underline_color);
-	      XFillRectangle (s->display, s->window, s->gc, s->x, s->y + dy,
-			      s->width, h);
+	      mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy,
+				  s->width, h);
 	      XSetForeground (s->display, s->gc, xgcv.foreground);
 	    }
 	}
@@ -3429,15 +3164,15 @@
 	  unsigned long dy = 0, h = 1;
 
 	  if (s->face->overline_color_defaulted_p)
-	    XFillRectangle (s->display, s->window, s->gc, s->x, s->y + dy,
-			    s->width, h);
+	    mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy,
+				s->width, h);
 	  else
 	    {
 	      XGCValues xgcv;
 	      XGetGCValues (s->display, s->gc, GCForeground, &xgcv);
 	      XSetForeground (s->display, s->gc, s->face->overline_color);
-	      XFillRectangle (s->display, s->window, s->gc, s->x, s->y + dy,
-			      s->width, h);
+	      mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy,
+				  s->width, h);
 	      XSetForeground (s->display, s->gc, xgcv.foreground);
 	    }
 	}
@@ -3449,15 +3184,15 @@
 	  unsigned long dy = (s->height - h) / 2;
 
 	  if (s->face->strike_through_color_defaulted_p)
-	    XFillRectangle (s->display, s->window, s->gc, s->x, s->y + dy,
-			    s->width, h);
+	    mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy,
+				s->width, h);
 	  else
 	    {
 	      XGCValues xgcv;
 	      XGetGCValues (s->display, s->gc, GCForeground, &xgcv);
 	      XSetForeground (s->display, s->gc, s->face->strike_through_color);
-	      XFillRectangle (s->display, s->window, s->gc, s->x, s->y + dy,
-			      s->width, h);
+	      mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy,
+				  s->width, h);
 	      XSetForeground (s->display, s->gc, xgcv.foreground);
 	    }
 	}
@@ -3478,8 +3213,7 @@
      struct frame *f;
      int x, y, width, height, shift_by;
 {
-  mac_scroll_area (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-		   f->output_data.mac->normal_gc,
+  mac_scroll_area (f, f->output_data.mac->normal_gc,
 		   x, y, width, height,
 		   x + shift_by, y);
 }
@@ -3517,7 +3251,7 @@
   /* We don't set the output cursor here because there will always
      follow an explicit cursor_to.  */
   BLOCK_INPUT;
-  XClearWindow (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f));
+  mac_clear_window (f);
 
   /* We have to clear the scroll bars, too.  If we have changed
      colors or something like that, then they should be notified.  */
@@ -3607,21 +3341,18 @@
   /* If window is tall, flash top and bottom line.  */
   if (height > 3 * FRAME_LINE_HEIGHT (f))
     {
-      mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-			    flash_left,
+      mac_invert_rectangle (f, flash_left,
 			    (FRAME_INTERNAL_BORDER_WIDTH (f)
 			     + FRAME_TOOL_BAR_LINES (f) * FRAME_LINE_HEIGHT (f)),
 			    width, flash_height);
-      mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-			    flash_left,
+      mac_invert_rectangle (f, flash_left,
 			    (height - flash_height
 			     - FRAME_INTERNAL_BORDER_WIDTH (f)),
 			    width, flash_height);
     }
   else
     /* If it is short, flash it all.  */
-    mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-			  flash_left, FRAME_INTERNAL_BORDER_WIDTH (f),
+    mac_invert_rectangle (f, flash_left, FRAME_INTERNAL_BORDER_WIDTH (f),
 			  width, height - 2 * FRAME_INTERNAL_BORDER_WIDTH (f));
 
   x_flush (f);
@@ -3661,21 +3392,18 @@
   /* If window is tall, flash top and bottom line.  */
   if (height > 3 * FRAME_LINE_HEIGHT (f))
     {
-      mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-			    flash_left,
+      mac_invert_rectangle (f, flash_left,
 			    (FRAME_INTERNAL_BORDER_WIDTH (f)
 			     + FRAME_TOOL_BAR_LINES (f) * FRAME_LINE_HEIGHT (f)),
 			    width, flash_height);
-      mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-			    flash_left,
+      mac_invert_rectangle (f, flash_left,
 			    (height - flash_height
 			     - FRAME_INTERNAL_BORDER_WIDTH (f)),
 			    width, flash_height);
     }
   else
     /* If it is short, flash it all.  */
-    mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-			  flash_left, FRAME_INTERNAL_BORDER_WIDTH (f),
+    mac_invert_rectangle (f, flash_left, FRAME_INTERNAL_BORDER_WIDTH (f),
 			  width, height - 2 * FRAME_INTERNAL_BORDER_WIDTH (f));
 
   x_flush (f);
@@ -3780,11 +3508,10 @@
   updated_window = w;
   x_clear_cursor (w);
 
-  mac_scroll_area (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-	         f->output_data.mac->normal_gc,
-	         x, from_y,
-	         width, height,
-	         x, to_y);
+  mac_scroll_area (f, f->output_data.mac->normal_gc,
+		   x, from_y,
+		   width, height,
+		   x, to_y);
 
   UNBLOCK_INPUT;
 }
@@ -4185,10 +3912,7 @@
       return 1;
     }
   /* Has the mouse moved off the glyph it was on at the last sighting?  */
-  if (pos->h < last_mouse_glyph.left
-      || pos->h >= last_mouse_glyph.right
-      || pos->v < last_mouse_glyph.top
-      || pos->v >= last_mouse_glyph.bottom)
+  if (!PtInRect (*pos, &last_mouse_glyph))
     {
       frame->mouse_moved = 1;
       last_mouse_scroll_bar = Qnil;
@@ -4831,8 +4555,7 @@
   if (NILP (w->vertical_scroll_bar))
     {
       BLOCK_INPUT;
-      XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-		  left, top, width, height, 0);
+      mac_clear_area (f, left, top, width, height);
       UNBLOCK_INPUT;
       bar = x_scroll_bar_create (w, top, sb_left, sb_width, height, disp_top,
 				 disp_height);
@@ -4856,14 +4579,7 @@
 	{
 	  /* Since toolkit scroll bars are smaller than the space reserved
 	     for them on the frame, we have to clear "under" them.  */
-	  XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-		      left, top, width, height, 0);
-
-#if 0
-          if (sb_left + sb_width >= FRAME_PIXEL_WIDTH (f))
-            XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-		        sb_left - 1, top, 1, height, 0);
-#endif
+	  mac_clear_area (f, left, top, width, height);
 
           HideControl (ch);
           MoveControl (ch, sb_left + VERTICAL_SCROLL_BAR_WIDTH_TRIM, disp_top);
@@ -5296,7 +5012,7 @@
 
   /* Set clipping, draw the rectangle, and reset clipping again.  */
   x_clip_to_row (w, row, TEXT_AREA, gc);
-  mac_draw_rectangle (dpy, FRAME_MAC_WINDOW (f), gc, x, y, wd, h);
+  mac_draw_rectangle (f, gc, x, y, wd, h);
   mac_reset_clip_rectangles (dpy, gc);
 }
 
@@ -5369,17 +5085,17 @@
       x_clip_to_row (w, row, TEXT_AREA, gc);
 
       if (kind == BAR_CURSOR)
-	XFillRectangle (dpy, window, gc,
-			WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x),
-			WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y),
-			width, row->height);
+	mac_fill_rectangle (f, gc,
+			    WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x),
+			    WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y),
+			    width, row->height);
       else
-	XFillRectangle (dpy, window, gc,
-			WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x),
-			WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y +
-						 row->height - width),
-			cursor_glyph->pixel_width,
-			width);
+	mac_fill_rectangle (f, gc,
+			    WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x),
+			    WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y +
+						     row->height - width),
+			    cursor_glyph->pixel_width,
+			    width);
 
       mac_reset_clip_rectangles (dpy, gc);
     }
@@ -5404,8 +5120,7 @@
      struct frame *f;
      int x, y, width, height;
 {
-  XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
-	      x, y, width, height, 0);
+  mac_clear_area (f, x, y, width, height);
 }
 
 
@@ -9824,7 +9539,8 @@
 		  }
 	      }
 
-	    if (er.what != mouseDown && part_code != inContent)
+	    if (er.what != mouseDown &&
+		(part_code != inContent	|| dpyinfo->grabbed == 0))
 	      break;
 
 	    switch (part_code)
@@ -9947,12 +9663,6 @@
 		      {
 			dpyinfo->grabbed |= (1 << inev.code);
 			last_mouse_frame = f;
-			/* Ignore any mouse motion that happened
-			   before this event; any subsequent
-			   mouse-movement Emacs events should reflect
-			   only motion after the ButtonPress.  */
-			if (f != 0)
-			  f->mouse_moved = 0;
 
 			if (!tool_bar_p)
 			  last_tool_bar_item = -1;
@@ -9968,6 +9678,13 @@
 			  dpyinfo->grabbed &= ~(1 << inev.code);
 		      }
 
+		    /* Ignore any mouse motion that happened before
+		       this event; any subsequent mouse-movement Emacs
+		       events should reflect only motion after the
+		       ButtonPress.  */
+		    if (f != 0)
+		      f->mouse_moved = 0;
+
 #ifdef USE_TOOLKIT_SCROLL_BARS
 		    if (inev.kind == MOUSE_CLICK_EVENT)
 #endif
--- a/src/macterm.h	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/macterm.h	Mon Jan 16 06:59:21 2006 +0000
@@ -562,6 +562,8 @@
 extern void XSetWindowBackground P_ ((Display *, WindowPtr, unsigned long));
 extern void mac_draw_line_to_pixmap P_ ((Display *, Pixmap, GC, int, int,
 					 int, int));
+extern void mac_clear_area P_ ((struct frame *, int, int,
+				unsigned int, unsigned int));
 extern void mac_unload_font P_ ((struct mac_display_info *, XFontStruct *));
 extern OSErr install_window_handler P_ ((WindowPtr));
 extern void remove_window_handler P_ ((WindowPtr));
--- a/src/minibuf.c	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/minibuf.c	Mon Jan 16 06:59:21 2006 +0000
@@ -2342,7 +2342,7 @@
 }
 
 DEFUN ("display-completion-list", Fdisplay_completion_list, Sdisplay_completion_list,
-       1, 1, 0,
+       1, 2, 0,
        doc: /* Display the list of completions, COMPLETIONS, using `standard-output'.
 Each element may be just a symbol or string
 or may be a list of two strings to be printed as if concatenated.
@@ -2352,14 +2352,23 @@
 The actual completion alternatives, as inserted, are given `mouse-face'
 properties of `highlight'.
 At the end, this runs the normal hook `completion-setup-hook'.
-It can find the completion buffer in `standard-output'.  */)
-     (completions)
+It can find the completion buffer in `standard-output'.
+The optional second arg COMMON-SUBSTRING is a string.
+It is used to put faces, `completions-first-difference` and
+`completions-common-part' on the completion buffer. The
+`completions-common-part' face is put on the common substring
+specified by COMMON-SUBSTRING. If COMMON-SUBSTRING is nil,
+the faces are not put.
+Internally, COMMON-SUBSTRING is bound to `completion-common-substring'
+during running `completion-setup-hook'. */)
+     (completions, common_substring)
      Lisp_Object completions;
+     Lisp_Object common_substring;
 {
   Lisp_Object tail, elt;
   register int i;
   int column = 0;
-  struct gcpro gcpro1, gcpro2;
+  struct gcpro gcpro1, gcpro2, gcpro3;
   struct buffer *old = current_buffer;
   int first = 1;
 
@@ -2368,7 +2377,7 @@
      except for ELT.  ELT can be pointing to a string
      when terpri or Findent_to calls a change hook.  */
   elt = Qnil;
-  GCPRO2 (completions, elt);
+  GCPRO3 (completions, elt, common_substring);
 
   if (BUFFERP (Vstandard_output))
     set_buffer_internal (XBUFFER (Vstandard_output));
@@ -2517,17 +2526,32 @@
 	}
     }
 
-  UNGCPRO;
-
   if (BUFFERP (Vstandard_output))
     set_buffer_internal (old);
 
   if (!NILP (Vrun_hooks))
-    call1 (Vrun_hooks, intern ("completion-setup-hook"));
+    {
+      int count1 = SPECPDL_INDEX ();
+
+      specbind (intern ("completion-common-substring"), common_substring);
+      call1 (Vrun_hooks, intern ("completion-setup-hook"));
+
+      unbind_to (count1, Qnil);
+    }
+
+  UNGCPRO;
 
   return Qnil;
 }
 
+
+static Lisp_Object
+display_completion_list_1 (list)
+     Lisp_Object list;
+{
+  return Fdisplay_completion_list (list, Qnil);
+}
+
 DEFUN ("minibuffer-completion-help", Fminibuffer_completion_help, Sminibuffer_completion_help,
        0, 0, "",
        doc: /* Display a list of possible completions of the current minibuffer contents.  */)
@@ -2549,7 +2573,7 @@
     }
   else
     internal_with_output_to_temp_buffer ("*Completions*",
-					 Fdisplay_completion_list,
+					 display_completion_list_1,
 					 Fsort (completions, Qstring_lessp));
   return Qnil;
 }
--- a/src/search.c	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/search.c	Mon Jan 16 06:59:21 2006 +0000
@@ -395,7 +395,7 @@
 
 DEFUN ("string-match", Fstring_match, Sstring_match, 2, 3, 0,
        doc: /* Return index of start of first match for REGEXP in STRING, or nil.
-Case is ignored if `case-fold-search' is non-nil in the current buffer.
+Matching ignores case if `case-fold-search' is non-nil.
 If third arg START is non-nil, start search at that index in STRING.
 For index of first char beyond the match, do (match-end 0).
 `match-end' and `match-beginning' also give indices of substrings
@@ -1687,7 +1687,7 @@
 	  if (ASCII_BYTE_P (*ptr) || ! multibyte)
 	    ch = *ptr;
 	  else if (char_base
-		   && (pat_end - ptr) == 1 || CHAR_HEAD_P (ptr[1]))
+		   && ((pat_end - ptr) == 1 || CHAR_HEAD_P (ptr[1])))
 	    {
 	      unsigned char *charstart = ptr - 1;
 
--- a/src/syssignal.h	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/syssignal.h	Mon Jan 16 06:59:21 2006 +0000
@@ -146,7 +146,10 @@
 #undef SIGINFO
 #endif
 #if defined (SIGIO) && defined (BROKEN_SIGIO)
-#undef SIGIO
+# undef SIGIO
+# if defined (__Lynx__)
+# undef SIGPOLL /* Defined as SIGIO on LynxOS */
+# endif
 #endif
 #if defined (SIGPOLL) && defined (BROKEN_SIGPOLL)
 #undef SIGPOLL
--- a/src/term.c	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/term.c	Mon Jan 16 06:59:21 2006 +0000
@@ -820,7 +820,7 @@
      int src_len;
      struct coding_system *coding;
 {
-  struct glyph *src_start = src, *src_end = src + src_len;
+  struct glyph *src_end = src + src_len;
   register GLYPH g;
   unsigned char *buf;
   int nchars, nbytes, required;
@@ -1836,7 +1836,7 @@
 	   && calc_pixel_width_or_height (&tem, it, prop, 0, 1, &align_to))
     {
       if (it->glyph_row == NULL || !it->glyph_row->mode_line_p)
-	align_to = (align_to < 0 
+	align_to = (align_to < 0
 		    ? 0
 		    : align_to - window_box_left_offset (it->w, TEXT_AREA));
       else if (align_to < 0)
--- a/src/unexelf.c	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/unexelf.c	Mon Jan 16 06:59:21 2006 +0000
@@ -702,7 +702,7 @@
 #if MAP_ANON == 0
   mmap_fd = open ("/dev/zero", O_RDONLY);
   if (mmap_fd < 0)
-    fatal ("Can't open /dev/zero for reading: errno %d\n", errno);
+    fatal ("Can't open /dev/zero for reading: errno %d\n", errno, 0);
 #endif
 
   /* We cannot use malloc here because that may use sbrk.  If it does,
@@ -713,7 +713,7 @@
   old_base = mmap (NULL, old_file_size, PROT_READ | PROT_WRITE,
 		   MAP_ANON | MAP_PRIVATE, mmap_fd, 0);
   if (old_base == MAP_FAILED)
-    fatal ("Can't allocate buffer for %s\n", old_name);
+    fatal ("Can't allocate buffer for %s\n", old_name, 0);
 
   if (read (old_file, old_base, stat_buf.st_size) != stat_buf.st_size)
     fatal ("Didn't read all of %s: errno %d\n", old_name, errno);
@@ -802,7 +802,7 @@
   new_base = mmap (NULL, new_file_size, PROT_READ | PROT_WRITE,
 		   MAP_ANON | MAP_PRIVATE, mmap_fd, 0);
   if (new_base == MAP_FAILED)
-    fatal ("Can't allocate buffer for %s\n", old_name);
+    fatal ("Can't allocate buffer for %s\n", old_name, 0);
 
   new_file_h = (ElfW(Ehdr) *) new_base;
   new_program_h = (ElfW(Phdr) *) ((byte *) new_base + old_file_h->e_phoff);
@@ -1079,7 +1079,7 @@
 	  && old_mdebug_index != -1)
         {
 	  int diff = NEW_SECTION_H(nn).sh_offset
-	 	- OLD_SECTION_H(old_mdebug_index).sh_offset;
+		- OLD_SECTION_H(old_mdebug_index).sh_offset;
 	  HDRR *phdr = (HDRR *)(NEW_SECTION_H (nn).sh_offset + new_base);
 
 	  if (diff)
@@ -1257,9 +1257,13 @@
   /* Write out new_file, and free the buffers.  */
 
   if (write (new_file, new_base, new_file_size) != new_file_size)
+#ifndef emacs
+    fatal ("Didn't write %d bytes: errno %d\n",
+	   new_file_size, errno);
+#else
     fatal ("Didn't write %d bytes to %s: errno %d\n",
 	   new_file_size, new_base, errno);
-
+#endif
   munmap (old_base, old_file_size);
   munmap (new_base, new_file_size);
 
--- a/src/window.c	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/window.c	Mon Jan 16 06:59:21 2006 +0000
@@ -6293,7 +6293,6 @@
      (frame)
      Lisp_Object frame;
 {
-  Lisp_Object alist;
   FRAME_PTR f;
 
   if (NILP (frame))
--- a/src/xterm.c	Wed Dec 28 07:22:57 2005 +0000
+++ b/src/xterm.c	Mon Jan 16 06:59:21 2006 +0000
@@ -8100,7 +8100,6 @@
 x_calc_absolute_position (f)
      struct frame *f;
 {
-  int win_x = 0, win_y = 0;
   int flags = f->size_hint_flags;
 
   /* We have nothing to do if the current position