changeset 83311:c016d82bf02b

Merged from miles@gnu.org--gnu-2005 (patch 423-434) Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-423 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-424 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-425 Remove "-face" suffix from gnus faces * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-426 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-427 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-428 Remove "-face" suffix from MH-E faces * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-429 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-430 Remove "-face" suffix from cc-mode faces * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-431 Remove "-face" suffix from eshell faces * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-432 Remove "-face" suffix from ediff faces * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-433 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-434 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-351
author Karoly Lorentey <lorentey@elte.hu>
date Tue, 21 Jun 2005 15:42:45 +0000
parents e58cb448e07c (current diff) ffe64a60452e (diff)
children 5b54039912f4
files admin/FOR-RELEASE etc/TODO lisp/ChangeLog lisp/faces.el lisp/font-lock.el lisp/progmodes/ada-mode.el lisp/progmodes/idlwave.el lisp/progmodes/vhdl-mode.el lisp/simple.el lisp/smerge-mode.el lisp/startup.el lisp/subr.el lispref/ChangeLog man/ChangeLog src/buffer.c src/dispextern.h src/dispnew.c src/keyboard.c src/term.c src/xdisp.c src/xselect.c
diffstat 116 files changed, 2813 insertions(+), 1281 deletions(-) [+]
line wrap: on
line diff
--- a/admin/FOR-RELEASE	Wed Jun 15 12:57:51 2005 +0000
+++ b/admin/FOR-RELEASE	Tue Jun 21 15:42:45 2005 +0000
@@ -5,6 +5,12 @@
 ** `undo-ask-before-discard', currently set to t for debugging purposes
 has to be set to nil: when t, it can leak memory and cause other problems.
 
+** Update release dates of manuals.
+
+** Spell check the manuals.
+
+** Get rid of overfull and underfull boxes in manuals.
+
 * NEW FEATURES
 
 ** Make VC-over-Tramp work where possible, or at least fail
@@ -18,12 +24,11 @@
 
 ** Enhance scroll-bar to handle tall line (similar to line-move).
 
-** Adapt mouse-sel-mode to mouse-1-click-follows-link.
-
 
 * FATAL ERRORS
 
 ** Make unexec handle memory mapping policy of the latest versions of Linux.
+This includes exec_shield and a memory-layout randomization feature.
 
 ** Investigate reported crashes in compact_small_strings.
 
@@ -80,13 +85,9 @@
 
 ** Document Custom Themes.
 
-** Finish updating the Emacs Lisp manual.
-
-*** Update lispref/README.
+** Update lispref/README.
 
-** Update the Emacs manual.
-
-*** Update man/info.texi.
+** Update man/info.texi.
 
 ** Add missing years in copyright notices of all files.
 
@@ -114,8 +115,6 @@
 
 ** Update AUTHORS.
 
-** Reorder NEWS entries.
-
 ** Check the Emacs manual.
 
 Each manual section should be checked for factual correctness
--- a/etc/NEWS	Wed Jun 15 12:57:51 2005 +0000
+++ b/etc/NEWS	Tue Jun 21 15:42:45 2005 +0000
@@ -3066,7 +3066,7 @@
 
 +++
 *** New function `add-to-ordered-list' is like `add-to-list' but
-associates a numeric ordering of each symbol element added to the list.
+associates a numeric ordering of each element added to the list.
 
 +++
 *** New function `copy-tree' makes a copy of a tree.
@@ -3633,6 +3633,7 @@
 *** `syntax-class' extracts the class of a syntax code (as returned
 by `syntax-after').
 
++++
 *** The new function `syntax-ppss' rovides an efficient way to find the
 current syntactic context at point.
 
@@ -4926,6 +4927,7 @@
 of hierarchical data as an outline.  For example, the tree-widget is
 well suited to display a hierarchy of directories and files.
 
++++
 ** The new library bindat.el provides functions to unpack and pack
 binary data structures, such as network packets, to and from Lisp
 data structures.
--- a/etc/TODO	Wed Jun 15 12:57:51 2005 +0000
+++ b/etc/TODO	Tue Jun 21 15:42:45 2005 +0000
@@ -40,6 +40,9 @@
 ** Implement something better than the current Refill mode.  This
   probably needs some primitive support.
 
+** Add a command to make a local variables list in the current buffer
+  and/or add a variable to the list.
+
 ** Implement primitive and higher-level functions to allow filling
   properly with variable-pitch faces.
 
@@ -61,6 +64,10 @@
 
 ** Internationalize Emacs's messages.
 
+** Add a "current vertical pixel level" value that goes with point,
+  so that motion commands can also move through tall images.
+  This value would be to point as window-vscroll is to window-start.
+
 ** Address internationalization of symbols names essentially
   as documentation, e.g. in command names and Custom.
 
@@ -361,4 +368,7 @@
    For use by sml-mode, python-mode, tex-mode, scheme-mode, lisp-mode,
    haskell-mode, tuareg-mode, ...
 
+** Fix unexelf.c to handle the .data.rel and .data.rel.local
+   sections made by GCC 3.4 on IRIX.
+
 ;;; arch-tag: b0a3e40b-726a-457d-9999-ba848321b036
--- a/lisp/ChangeLog	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/ChangeLog	Tue Jun 21 15:42:45 2005 +0000
@@ -1,3 +1,270 @@
+2005-06-19  Michael Albinus  <michael.albinus@gmx.de>
+
+	* net/tramp-ftp.el (top):
+	* net/tramp-smb.el (top):
+	* net/tramp-util.el (top):
+	* net/tramp-uu.el (top):
+	* net/tramp-vc.el (top):
+	* net/tramp.el (top): Revert copyright years back to original
+	ones.  Tramp has a life outside GNU Emacs.
+
+2005-06-19  Nick Roberts  <nickrob@snap.net.nz>
+
+	* tooltip.el: (tooltip-use-echo-area): Don't make it obsolete.
+
+2005-06-18  Juri Linkov  <juri@jurta.org>
+
+	* progmodes/grep.el (grep-regexp-alist): Use backreference at the
+	end of first regexp to limit the match to the position between
+	line number and source line with same separator character as used
+	between file name and line number.  In the second regexp limit
+	mouse-face area to file name and line number by adding new group
+	for them and referring it in HYPERLINK arg.
+	(grep-regexp-alist, grep-mode-font-lock-keywords): Use shy group.
+	(grep-mode): Set font-lock-lines-before to 0 to not refontify the
+	previous line where grep markers may be already removed.
+
+2005-06-18  Peter Kleiweg  <p.c.j.kleiweg@rug.nl>
+
+	* progmodes/ps-mode.el: Update version and maintainer's email
+	address.
+
+2005-06-18  Steve Youngs  <steve@xemacs.org>
+
+	* net/browse-url.el (browse-url-browser-function)
+	(browse-url-default-browser): Add firefox.
+	(browse-url-firefox-program, browse-url-firefox-arguments)
+	(browse-url-firefox-startup-arguments)
+	(browse-url-firefox-new-window-is-tab): New defcustoms.
+	(browse-url-firefox, browse-url-firefox-sentinel): New functions.
+
+2005-06-17  Richard M. Stallman  <rms@gnu.org>
+
+	* startup.el (command-line): Warn if specified user name has
+	no home directory.
+
+	* term.el (term-get-old-input, term-input-filter, term-input-sender)
+	(term-mode-hook, term-exec-hook, term-escape-char): Doc fixes.
+
+	* longlines.el (longlines-mode, longlines-show-hard-newlines):
+	Doc fixes.
+
+	* faces.el (underline): Try bold if terminal doesn't support underline.
+
+	* mail/sendmail.el (mail-setup-with-from): New variable.
+	(mail-insert-from-field): New function.
+	(sendmail-send-it): Call it.
+	(mail-setup): Optionally call it here.
+
+	* term/linux.el: Call tty-no-underline.
+
+2005-06-17  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* emacs-lisp/edebug.el (edebug-goto-here): Doc fix.
+
+2005-06-17  Miles Bader  <miles@gnu.org>
+
+	* ediff-init.el (ediff-current-diff-A, ediff-current-diff-B)
+	(ediff-current-diff-C, ediff-current-diff-Ancestor)
+	(ediff-fine-diff-A, ediff-fine-diff-B, ediff-fine-diff-C)
+	(ediff-fine-diff-Ancestor, ediff-even-diff-A, ediff-even-diff-B)
+	(ediff-even-diff-C, ediff-even-diff-Ancestor, ediff-odd-diff-A)
+	(ediff-odd-diff-B, ediff-odd-diff-C, ediff-odd-diff-Ancestor):
+	Remove "-face" suffix from face names.
+	(ediff-current-diff-face-A, ediff-current-diff-face-B)
+	(ediff-current-diff-face-C, ediff-current-diff-face-Ancestor)
+	(ediff-fine-diff-face-A, ediff-fine-diff-face-B)
+	(ediff-fine-diff-face-C, ediff-fine-diff-face-Ancestor)
+	(ediff-even-diff-face-A, ediff-even-diff-face-B)
+	(ediff-even-diff-face-C, ediff-even-diff-face-Ancestor)
+	(ediff-odd-diff-face-A, ediff-odd-diff-face-B)
+	(ediff-odd-diff-face-C, ediff-odd-diff-face-Ancestor):
+	New backward-compatibility aliases for renamed faces.
+	(ediff-current-diff-face-A, ediff-current-diff-face-B)
+	(ediff-current-diff-face-C, ediff-current-diff-face-Ancestor)
+	(ediff-fine-diff-face-A, ediff-fine-diff-face-B)
+	(ediff-fine-diff-face-C, ediff-fine-diff-face-Ancestor)
+	(ediff-even-diff-face-A, ediff-even-diff-face-B)
+	(ediff-even-diff-face-C, ediff-even-diff-face-Ancestor)
+	(ediff-odd-diff-face-A, ediff-odd-diff-face-B)
+	(ediff-odd-diff-face-C, ediff-odd-diff-face-Ancestor):
+	Use renamed ediff faces.
+
+	* eshell/esh-test.el (eshell-test-ok, eshell-test-failed):
+	Remove "-face" suffix from face names.
+	(eshell-test-ok-face, eshell-test-failed-face):
+	New backward-compatibility aliases for renamed faces.
+	(eshell-run-test): Use renamed eshell-test faces.
+
+	* eshell/em-prompt.el (eshell-prompt):
+	Remove "-face" suffix from face name.
+	(eshell-prompt-face): New backward-compatibility alias for renamed face.
+	(eshell-emit-prompt): Use renamed eshell-prompt face.
+
+	* eshell/em-ls.el (eshell-ls-directory, eshell-ls-symlink)
+	(eshell-ls-executable, eshell-ls-readonly, eshell-ls-unreadable)
+	(eshell-ls-special, eshell-ls-missing, eshell-ls-archive)
+	(eshell-ls-backup, eshell-ls-product, eshell-ls-clutter):
+	Remove "-face" suffix from face names.
+	(eshell-ls-directory-face, eshell-ls-symlink-face)
+	(eshell-ls-executable-face, eshell-ls-readonly-face)
+	(eshell-ls-unreadable-face, eshell-ls-special-face)
+	(eshell-ls-missing-face, eshell-ls-archive-face)
+	(eshell-ls-backup-face, eshell-ls-product-face)
+	(eshell-ls-clutter-face):
+	New backward-compatibility aliases for renamed faces.
+	(eshell-ls-decorated-name): Use renamed eshell-ls faces.
+
+	* progmodes/cc-fonts.el (c-nonbreakable-space-face): Remove
+	"-face" suffix from face name.
+	(c-cpp-matchers): Use the variable `c-nonbreakable-space-face'
+	instead of literal face.
+
+2005-06-17  Juanma Barranquero  <lekktu@gmail.com>
+
+	* emacs-lisp/warnings.el (display-warning, lwarn)
+	(warning-minimum-log-level): Doc fixes.
+	(warning-minimum-level, warning-minimum-log-level):
+	Add :debug to :type choices.
+
+	* progmodes/ada-mode.el (ada-format-paramlist)
+	(ada-get-indent-case, ada-check-matching-start)
+	(ada-check-defun-name, ada-goto-matching-decl-start)
+	(ada-goto-matching-start, ada-goto-matching-end, ada-tab)
+	(ada-untab, ada-move-to-start, ada-fill-comment-paragraph)
+	(ada-make-subprogram-body): Follow error conventions.
+	(ada-case-exception-file, ada-indent-comment-as-code)
+	(ada-indent-handle-comment-special, ada-indent-renames)
+	(ada-indent-return, ada-search-directories-internal)
+	(ada-tab-policy, ada-case-exception-substring)
+	(ada-other-file-alist, ada-matching-start-re)
+	(ada-matching-decl-start-re, ada-contextual-menu-last-point)
+	(ada-imenu-generic-expression, ada-compile-goto-error)
+	(ada-in-comment-p, ada-in-string-p, ada-in-string-or-comment-p)
+	(ada-popup-menu, ada-add-extensions, ada-mode)
+	(ada-region-selected, ada-create-case-exception)
+	(ada-create-case-exception-substring, ada-after-keyword-p)
+	(ada-activate-keys-for-case, ada-adjust-case-region)
+	(ada-adjust-case-buffer, ada-format-paramlist)
+	(ada-scan-paramlist, ada-insert-paramlist)
+	(ada-indent-newline-indent)
+	(ada-indent-newline-indent-conditional)
+	(ada-justified-indent-current, ada-goto-previous-word)
+	(ada-indent-current, ada-get-indent-open-paren)
+	(ada-get-indent-paramlist, ada-get-indent-end)
+	(ada-get-indent-case, ada-get-indent-when, ada-get-indent-if)
+	(ada-get-indent-block-start, ada-get-indent-subprog)
+	(ada-get-indent-noindent, ada-get-indent-label)
+	(ada-get-indent-loop, ada-get-indent-type, ada-goto-stmt-start)
+	(ada-search-prev-end-stmt, ada-goto-next-non-ws)
+	(ada-goto-stmt-end, ada-goto-next-word)
+	(ada-check-matching-start, ada-check-defun-name)
+	(ada-goto-matching-decl-start, ada-goto-matching-start)
+	(ada-goto-matching-end, ada-search-ignore-string-comment)
+	(ada-in-decl-p, ada-looking-at-semi-or)
+	(ada-looking-at-semi-private, ada-in-paramlist-p)
+	(ada-in-open-paren-p, ada-tab, ada-indent-current-function)
+	(ada-untab-hard, ada-move-to-start, ada-move-to-end)
+	(ada-next-procedure, ada-previous-procedure, ada-next-package)
+	(ada-previous-package, ada-create-menu)
+	(ada-fill-comment-paragraph-justify)
+	(ada-fill-comment-paragraph-postfix, ada-fill-comment-paragraph)
+	(ada-other-file-name, ada-last-which-function-line)
+	(ada-last-which-function-subprog, ada-which-function)
+	(ada-get-body-name, ada-outline-level, ada-narrow-to-defun)
+	(ada-gen-treat-proc, ada-check-emacs-version)
+	(ada-continuation-indent, ada-align-region-separate):
+	Fix typos in docstrings.
+	(ada-adjust-case, ada-adjust-case-interactive): Doc fixes.
+
+2005-06-16  Lute Kamstra  <lute@gnu.org>
+
+	* simple.el (fundamental-mode): Run after-change-major-mode-hook
+	conditionally.
+
+2005-06-16  Juanma Barranquero  <lekktu@gmail.com>
+
+	* comint.el (comint-replace-by-expanded-filename)
+	(comint-prompt-regexp, comint-delimiter-argument-list)
+	(comint-preinput-scroll-to-bottom):
+	* info.el (Info-hide-cookies-node):
+	* ls-lisp.el (ls-lisp-classify):
+	* find-file.el (ff-search-directories, ff-special-constructs)
+	(ff-find-other-file):
+	* font-lock.el (font-lock-keywords):
+	* shell.el (shell-prompt-pattern)
+	(shell-dynamic-complete-functions, shell-mode)
+	(shell-delimiter-argument-list):
+	* term.el (term-replace-by-expanded-filename)
+	(term-prompt-regexp, term-delimiter-argument-list):
+	* woman.el (woman-ignore, woman0-if):
+	* emacs-lisp/derived.el (derived-mode-init-mode-variables):
+	* emacs-lisp/elint.el (elint-init-env):
+	* emacs-lisp/regexp-opt.el (regexp-opt-depth):
+	* eshell/esh-mode.el (eshell-preinput-scroll-to-bottom):
+	* language/ethio-util.el (ethio-tilde-escape)
+	(ethio-use-three-dot-question):
+	* net/zone-mode.el (zone-mode-load-time-setup):
+	* progmodes/cc-align.el (c-lineup-argcont):
+	* progmodes/cc-awk.el (c-awk-beginning-of-defun):
+	* progmodes/cperl-mode.el (cperl-set-style-back):
+	* progmodes/inf-lisp.el (inferior-lisp-prompt):
+	* progmodes/vhdl-mode.el (vhdl-beginning-of-libunit):
+	Fix spellings in docstrings.
+
+	* textmodes/sgml-mode.el (sgml-calculate-indent, html-tag-help):
+	* progmodes/modula2.el (m2-for): Fix spellings.
+
+	* menu-bar.el (menu-bar-games-menu): Fix typo in menu help string.
+
+	* simple.el (undo-more): Don't use `format' on `error' arguments.
+	Improve argument/docstring consistency.
+	(pending-undo-list): Doc fix.
+
+	* smerge-mode.el (smerge-ensure-match):
+	* emulation/vip.el (vip-ex):
+	* net/zone-mode.el (zone-mode-update-serial):
+	* progmodes/idlwave.el (idlwave-complete):
+	* progmodes/vhdl-mode.el (vhdl-visit-file)
+	(vhdl-compose-wire-components):
+	Don't use `format' on `error' arguments.
+
+	* tooltip.el (tooltip-start-delayed-tip, tooltip-timeout)
+	(tooltip-use-echo-area, tooltip-process-prompt-regexp)
+	(tooltip-help-tips): Fix typos in docstrings.
+
+2005-06-16  David Ponce  <david@dponce.com>
+
+	* tree-widget.el (tree-widget-value-create): Simplify last change.
+
+2005-06-15  Matt Hodges  <MPHodges@member.fsf.org>
+
+	* ido.el (ido-incomplete-regexp): New variable.
+	(ido-set-matches-1): Handle invalid-regexp error and set
+	ido-incomplete-regexp.
+	(ido-incomplete-regexp): New face.
+	(ido-completions): Use it.
+	(ido-complete, ido-exit-minibuffer, ido-completions): Handle
+	incomplete regexps.
+	(ido-completions): Add check for complete match when entering a regexp.
+
+2005-06-15  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* subr.el (add-to-ordered-list): Use a weak hash-table to avoid leaks.
+
+2005-06-15  Roland Winkler  <Roland.Winkler@physik.uni-erlangen.de>
+
+	* textmodes/bibtex.el (bibtex-Preamble): Enclose BibTeX preamble
+	by field delimiters.
+
+2005-06-15  David Ponce  <david@dponce.com>
+
+	* tree-widget.el: eval-and-compile inlined functions so they will
+	be available at run-time too.
+	(tree-widget-super-format-handler)
+	(tree-widget-format-handler): Remove.
+	(tree-widget-value-create): Handle the :indent property.
+
 2005-06-15  Miles Bader  <miles@gnu.org>
 
 	* progmodes/which-func.el (which-func): Only inherit
@@ -11,7 +278,7 @@
 
 	* progmodes/ld-script.el (ld-script-location-counter):
 	Remove "-face" suffix from face name.
-	(ld-script-location-counter-face): 
+	(ld-script-location-counter-face):
 	New backward-compatibility alias for renamed face.
 	(ld-script-location-counter-face): Use renamed face.
 
@@ -73,7 +340,7 @@
 	(idlwave-shell-disabled-breakpoint-face)
 	(idlwave-shell-breakpoint-face): Use renamed idlwave-shell faces.
 
-	* progmodes/flymake.el (flymake-errline, flymake-warnline): 
+	* progmodes/flymake.el (flymake-errline, flymake-warnline):
 	Remove "-face" suffix from face names.
 	(flymake-errline-face, flymake-warnline-face):
 	New backward-compatibility aliases for renamed faces.
@@ -86,7 +353,7 @@
 	(ebrowse-tree-mark-face, ebrowse-root-class-face)
 	(ebrowse-file-name-face, ebrowse-default-face)
 	(ebrowse-member-attribute-face, ebrowse-member-class-face)
-	(ebrowse-progress-face): 
+	(ebrowse-progress-face):
 	New backward-compatibility aliases for renamed faces.
 	(ebrowse-show-progress, ebrowse-show-file-name-at-point)
 	(ebrowse-set-mark-props, ebrowse-draw-tree-fn)
@@ -95,8 +362,7 @@
 
 	* progmodes/antlr-mode.el (antlr-default, antlr-keyword, antlr-syntax)
 	(antlr-ruledef, antlr-tokendef, antlr-ruleref, antlr-tokenref)
-	(antlr-literal): Remove "-face" suffix and "font-lock-" from face
-	names.
+	(antlr-literal): Remove "-face" suffix and "font-lock-" from face names.
 	(antlr-font-lock-default-face, antlr-font-lock-keyword-face)
 	(antlr-font-lock-syntax-face, antlr-font-lock-ruledef-face)
 	(antlr-font-lock-tokendef-face, antlr-font-lock-ruleref-face)
@@ -119,20 +385,20 @@
 
 	* progmodes/make-mode.el (makefile-space, makefile-makepp-perl):
 	Eliminate "-face" suffix.
-	(makefile-targets): Inherit font-lock-variable-name-face and
+	(makefile-targets): Inherit from font-lock-function-name-face and
 	eliminate "-face" suffix.
 	(makefile-shell): Remove attributes and eliminate "-face" suffix.
 	(makefile-*-font-lock-keywords): Append makefile-targets in rule
 	actions, instead of prepending, to make it less visible.
-	(makefile-previous-dependency, makefile-match-dependency): Don't
-	match a target on a continuation line.
+	(makefile-previous-dependency, makefile-match-dependency):
+	Don't match a target on a continuation line.
 
 	* files.el (auto-mode-alist): Put Makefile in gmake mode.
 
 2005-06-15  Nick Roberts  <nickrob@snap.net.nz>
 
-	* progmodes/gdb-ui.el (gdb-tooltip-print): Respect
-	tooltip-use-echo-area.
+	* progmodes/gdb-ui.el (gdb-tooltip-print):
+	Respect tooltip-use-echo-area.
 	(menu): Re-order menu items.
 
 	* progmodes/gud.el (tooltip-use-echo-area): Remove alias.
@@ -181,8 +447,8 @@
 	* emacs-lisp/byte-run.el (make-obsolete)
 	(define-obsolete-function-alias): Rename arguments FUNCTION and
 	NEW to OBSOLETE-NAME and CURRENT-NAME respectively.
-	(make-obsolete-variable, define-obsolete-variable-alias): Rename
-	arguments VARIABLE and NEW to OBSOLETE-NAME and CURRENT-NAME
+	(make-obsolete-variable, define-obsolete-variable-alias):
+	Rename arguments VARIABLE and NEW to OBSOLETE-NAME and CURRENT-NAME
 	respectively.
 
 	* isearchb.el (isearchb-activate):
--- a/lisp/comint.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/comint.el	Tue Jun 21 15:42:45 2005 +0000
@@ -155,7 +155,7 @@
   :group 'comint)
 
 (defvar comint-prompt-regexp "^"
-  "Regexp to recognise prompts in the inferior process.
+  "Regexp to recognize prompts in the inferior process.
 Defaults to \"^\", the null string at BOL.
 
 This variable is only used if the variable
@@ -197,7 +197,7 @@
   :version "22.1")
 
 (defvar comint-delimiter-argument-list ()
-  "List of characters to recognise as separate arguments in input.
+  "List of characters to recognize as separate arguments in input.
 Strings comprising a character in this list will separate the arguments
 surrounding them, and also be regarded as arguments in their own right (unlike
 whitespace).  See `comint-arguments'.
@@ -1760,7 +1760,7 @@
 (defun comint-preinput-scroll-to-bottom ()
   "Go to the end of buffer in all windows showing it.
 Movement occurs if point in the selected window is not after the process mark,
-and `this-command' is an insertion command.  Insertion commands recognised
+and `this-command' is an insertion command.  Insertion commands recognized
 are `self-insert-command', `comint-magic-space', `yank', and `hilit-yank'.
 Depends on the value of `comint-scroll-to-bottom-on-input'.
 
@@ -2789,9 +2789,9 @@
 
 (defun comint-replace-by-expanded-filename ()
   "Dynamically expand and complete the filename at point.
-Replace the filename with an expanded, canonicalised and completed replacement.
+Replace the filename with an expanded, canonicalized and completed replacement.
 \"Expanded\" means environment variables (e.g., $HOME) and `~'s are replaced
-with the corresponding directories.  \"Canonicalised\" means `..'  and `.' are
+with the corresponding directories.  \"Canonicalized\" means `..'  and `.' are
 removed, and the filename is made absolute instead of relative.  For expansion
 see `expand-file-name' and `substitute-in-file-name'.  For completion see
 `comint-dynamic-complete-filename'."
--- a/lisp/ediff-init.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/ediff-init.el	Tue Jun 21 15:42:45 2005 +0000
@@ -903,7 +903,7 @@
 
 
 
-(defface ediff-current-diff-face-A
+(defface ediff-current-diff-A
   (if ediff-emacs-p
       '((((class color) (min-colors 16))
 	 (:foreground "firebrick" :background "pale green"))
@@ -915,24 +915,26 @@
       (t	     	     (:inverse-video t))))
   "Face for highlighting the selected difference in buffer A."
   :group 'ediff-highlighting)
+;; backward-compatibility alias
+(put 'ediff-current-diff-face-A 'face-alias 'ediff-current-diff-A)
 ;; An internal variable.  Ediff takes the face from here.  When unhighlighting,
 ;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-current-diff-face-A 'ediff-current-diff-face-A
+(defvar ediff-current-diff-face-A 'ediff-current-diff-A
   "Face for highlighting the selected difference in buffer A.
 DO NOT CHANGE this variable.  Instead, use the customization
-widget to customize the actual face object `ediff-current-diff-face-A'
+widget to customize the actual face object `ediff-current-diff-A'
 this variable represents.")
-(ediff-hide-face 'ediff-current-diff-face-A)
+(ediff-hide-face 'ediff-current-diff-A)
 ;; Until custom.el for XEmacs starts supporting :inverse-video we do this.
 ;; This means that some user customization may be trashed.
 (if (and ediff-xemacs-p
 	 (ediff-has-face-support-p)
 	 (not (ediff-color-display-p)))
-    (copy-face 'modeline 'ediff-current-diff-face-A))
+    (copy-face 'modeline 'ediff-current-diff-A))
 
 
 
-(defface ediff-current-diff-face-B
+(defface ediff-current-diff-B
   (if ediff-emacs-p
       '((((class color) (min-colors 16))
 	 (:foreground "DarkOrchid" :background "Yellow"))
@@ -946,23 +948,25 @@
       (t	     	     (:inverse-video t))))
   "Face for highlighting the selected difference in buffer B."
   :group 'ediff-highlighting)
+;; backward-compatibility alias
+(put 'ediff-current-diff-face-B 'face-alias 'ediff-current-diff-B)
 ;; An internal variable.  Ediff takes the face from here.  When unhighlighting,
 ;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-current-diff-face-B 'ediff-current-diff-face-B
+(defvar ediff-current-diff-face-B 'ediff-current-diff-B
   "Face for highlighting the selected difference in buffer B.
  this variable.  Instead, use the customization
-widget to customize the actual face `ediff-current-diff-face-B'
+widget to customize the actual face `ediff-current-diff-B'
 this variable represents.")
-(ediff-hide-face 'ediff-current-diff-face-B)
+(ediff-hide-face 'ediff-current-diff-B)
 ;; Until custom.el for XEmacs starts supporting :inverse-video we do this.
 ;; This means that some user customization may be trashed.
 (if (and ediff-xemacs-p
 	 (ediff-has-face-support-p)
 	 (not (ediff-color-display-p)))
-    (copy-face 'modeline 'ediff-current-diff-face-B))
+    (copy-face 'modeline 'ediff-current-diff-B))
 
 
-(defface ediff-current-diff-face-C
+(defface ediff-current-diff-C
   (if ediff-emacs-p
       '((((class color) (min-colors 16))
 	 (:foreground "Navy" :background "Pink"))
@@ -974,23 +978,25 @@
       (t	     	     (:inverse-video t))))
   "Face for highlighting the selected difference in buffer C."
   :group 'ediff-highlighting)
+;; backward-compatibility alias
+(put 'ediff-current-diff-face-C 'face-alias 'ediff-current-diff-C)
 ;; An internal variable.  Ediff takes the face from here.  When unhighlighting,
 ;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-current-diff-face-C 'ediff-current-diff-face-C
+(defvar ediff-current-diff-face-C 'ediff-current-diff-C
   "Face for highlighting the selected difference in buffer C.
 DO NOT CHANGE this variable.  Instead, use the customization
-widget to customize the actual face object `ediff-current-diff-face-C'
+widget to customize the actual face object `ediff-current-diff-C'
 this variable represents.")
-(ediff-hide-face 'ediff-current-diff-face-C)
+(ediff-hide-face 'ediff-current-diff-C)
 ;; Until custom.el for XEmacs starts supporting :inverse-video we do this.
 ;; This means that some user customization may be trashed.
 (if (and ediff-xemacs-p
 	 (ediff-has-face-support-p)
 	 (not (ediff-color-display-p)))
-    (copy-face 'modeline 'ediff-current-diff-face-C))
+    (copy-face 'modeline 'ediff-current-diff-C))
 
 
-(defface ediff-current-diff-face-Ancestor
+(defface ediff-current-diff-Ancestor
   (if ediff-emacs-p
       '((((class color) (min-colors 16))
 	 (:foreground "Black" :background "VioletRed"))
@@ -1002,23 +1008,25 @@
       (t (:inverse-video t))))
   "Face for highlighting the selected difference in buffer Ancestor."
   :group 'ediff-highlighting)
+;; backward-compatibility alias
+(put 'ediff-current-diff-face-Ancestor 'face-alias 'ediff-current-diff-Ancestor)
 ;; An internal variable.  Ediff takes the face from here.  When unhighlighting,
 ;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-current-diff-face-Ancestor 'ediff-current-diff-face-Ancestor
+(defvar ediff-current-diff-face-Ancestor 'ediff-current-diff-Ancestor
   "Face for highlighting the selected difference in buffer Ancestor.
 DO NOT CHANGE this variable.  Instead, use the customization
-widget to customize the actual face object `ediff-current-diff-face-Ancestor'
+widget to customize the actual face object `ediff-current-diff-Ancestor'
 this variable represents.")
-(ediff-hide-face 'ediff-current-diff-face-Ancestor)
+(ediff-hide-face 'ediff-current-diff-Ancestor)
 ;; Until custom.el for XEmacs starts supporting :inverse-video we do this.
 ;; This means that some user customization may be trashed.
 (if (and ediff-xemacs-p
 	 (ediff-has-face-support-p)
 	 (not (ediff-color-display-p)))
-    (copy-face 'modeline 'ediff-current-diff-face-Ancestor))
+    (copy-face 'modeline 'ediff-current-diff-Ancestor))
 
 
-(defface ediff-fine-diff-face-A
+(defface ediff-fine-diff-A
   (if ediff-emacs-p
       '((((class color) (min-colors 16))
 	 (:foreground "Navy" :background "sky blue"))
@@ -1030,16 +1038,18 @@
       (t (:underline t :stipple "gray3"))))
   "Face for highlighting the refinement of the selected diff in buffer A."
   :group 'ediff-highlighting)
+;; backward-compatibility alias
+(put 'ediff-fine-diff-face-A 'face-alias 'ediff-fine-diff-A)
 ;; An internal variable.  Ediff takes the face from here.  When unhighlighting,
 ;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-fine-diff-face-A 'ediff-fine-diff-face-A
+(defvar ediff-fine-diff-face-A 'ediff-fine-diff-A
   "Face for highlighting the fine differences in buffer A.
 DO NOT CHANGE this variable.  Instead, use the customization
-widget to customize the actual face object `ediff-fine-diff-face-A'
+widget to customize the actual face object `ediff-fine-diff-A'
 this variable represents.")
-(ediff-hide-face 'ediff-fine-diff-face-A)
+(ediff-hide-face 'ediff-fine-diff-A)
 
-(defface ediff-fine-diff-face-B
+(defface ediff-fine-diff-B
   (if ediff-emacs-p
       '((((class color) (min-colors 16))
 	 (:foreground "Black" :background "cyan"))
@@ -1051,16 +1061,18 @@
       (t	     	     (:underline t :stipple "gray3"))))
   "Face for highlighting the refinement of the selected diff in buffer B."
   :group 'ediff-highlighting)
+;; backward-compatibility alias
+(put 'ediff-fine-diff-face-B 'face-alias 'ediff-fine-diff-B)
 ;; An internal variable.  Ediff takes the face from here.  When unhighlighting,
 ;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-fine-diff-face-B 'ediff-fine-diff-face-B
+(defvar ediff-fine-diff-face-B 'ediff-fine-diff-B
   "Face for highlighting the fine differences in buffer B.
 DO NOT CHANGE this variable.  Instead, use the customization
-widget to customize the actual face object `ediff-fine-diff-face-B'
+widget to customize the actual face object `ediff-fine-diff-B'
 this variable represents.")
-(ediff-hide-face 'ediff-fine-diff-face-B)
+(ediff-hide-face 'ediff-fine-diff-B)
 
-(defface ediff-fine-diff-face-C
+(defface ediff-fine-diff-C
   (if ediff-emacs-p
       '((((type pc))
 	 (:foreground "white" :background "Turquoise"))
@@ -1077,16 +1089,18 @@
       (t (:underline t :stipple "gray3"))))
   "Face for highlighting the refinement of the selected diff in buffer C."
   :group 'ediff-highlighting)
+;; backward-compatibility alias
+(put 'ediff-fine-diff-face-C 'face-alias 'ediff-fine-diff-C)
 ;; An internal variable.  Ediff takes the face from here.  When unhighlighting,
 ;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-fine-diff-face-C 'ediff-fine-diff-face-C
+(defvar ediff-fine-diff-face-C 'ediff-fine-diff-C
   "Face for highlighting the fine differences in buffer C.
 DO NOT CHANGE this variable.  Instead, use the customization
-widget to customize the actual face object `ediff-fine-diff-face-C'
+widget to customize the actual face object `ediff-fine-diff-C'
 this variable represents.")
-(ediff-hide-face 'ediff-fine-diff-face-C)
+(ediff-hide-face 'ediff-fine-diff-C)
 
-(defface ediff-fine-diff-face-Ancestor
+(defface ediff-fine-diff-Ancestor
   (if ediff-emacs-p
       '((((class color) (min-colors 16))
 	 (:foreground "Black" :background "Green"))
@@ -1100,14 +1114,16 @@
 At present, this face is not used and no fine differences are computed for the
 ancestor buffer."
   :group 'ediff-highlighting)
+;; backward-compatibility alias
+(put 'ediff-fine-diff-face-Ancestor 'face-alias 'ediff-fine-diff-Ancestor)
 ;; An internal variable.  Ediff takes the face from here.  When unhighlighting,
 ;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-fine-diff-face-Ancestor 'ediff-fine-diff-face-Ancestor
+(defvar ediff-fine-diff-face-Ancestor 'ediff-fine-diff-Ancestor
   "Face for highlighting the fine differences in buffer Ancestor.
 DO NOT CHANGE this variable.  Instead, use the customization
-widget to customize the actual face object `ediff-fine-diff-face-Ancestor'
+widget to customize the actual face object `ediff-fine-diff-Ancestor'
 this variable represents.")
-(ediff-hide-face 'ediff-fine-diff-face-Ancestor)
+(ediff-hide-face 'ediff-fine-diff-Ancestor)
 
 ;; Some installs don't have stipple or Stipple. So, try them in turn.
 (defvar stipple-pixmap
@@ -1118,7 +1134,7 @@
 	      (locate-library "stipple" t mswindowsx-bitmap-file-path)) "stipple")
 	(t "Stipple")))
 
-(defface ediff-even-diff-face-A
+(defface ediff-even-diff-A
   (if ediff-emacs-p
       `((((type pc))
 	 (:foreground "green3" :background "light grey"))
@@ -1135,16 +1151,18 @@
       (t	     	     (:italic t :stipple ,stipple-pixmap))))
   "Face for highlighting even-numbered non-current differences in buffer A."
   :group 'ediff-highlighting)
+;; backward-compatibility alias
+(put 'ediff-even-diff-face-A 'face-alias 'ediff-even-diff-A)
 ;; An internal variable.  Ediff takes the face from here.  When unhighlighting,
 ;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-even-diff-face-A 'ediff-even-diff-face-A
+(defvar ediff-even-diff-face-A 'ediff-even-diff-A
   "Face for highlighting even-numbered non-current differences in buffer A.
 DO NOT CHANGE this variable.  Instead, use the customization
-widget to customize the actual face object `ediff-even-diff-face-A'
+widget to customize the actual face object `ediff-even-diff-A'
 this variable represents.")
-(ediff-hide-face 'ediff-even-diff-face-A)
+(ediff-hide-face 'ediff-even-diff-A)
 
-(defface ediff-even-diff-face-B
+(defface ediff-even-diff-B
   (if ediff-emacs-p
       `((((class color) (min-colors 16))
 	 (:foreground "White" :background "Grey"))
@@ -1156,16 +1174,18 @@
       (t	     	     (:italic t :stipple ,stipple-pixmap))))
   "Face for highlighting even-numbered non-current differences in buffer B."
   :group 'ediff-highlighting)
+;; backward-compatibility alias
+(put 'ediff-even-diff-face-B 'face-alias 'ediff-even-diff-B)
 ;; An internal variable.  Ediff takes the face from here.  When unhighlighting,
 ;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-even-diff-face-B 'ediff-even-diff-face-B
+(defvar ediff-even-diff-face-B 'ediff-even-diff-B
   "Face for highlighting even-numbered non-current differences in buffer B.
 DO NOT CHANGE this variable.  Instead, use the customization
-widget to customize the actual face object `ediff-even-diff-face-B'
+widget to customize the actual face object `ediff-even-diff-B'
 this variable represents.")
-(ediff-hide-face 'ediff-even-diff-face-B)
+(ediff-hide-face 'ediff-even-diff-B)
 
-(defface ediff-even-diff-face-C
+(defface ediff-even-diff-C
   (if ediff-emacs-p
       `((((type pc))
 	 (:foreground "yellow3" :background "light grey"))
@@ -1182,16 +1202,18 @@
       (t	     	     (:italic t :stipple ,stipple-pixmap))))
   "Face for highlighting even-numbered non-current differences in buffer C."
   :group 'ediff-highlighting)
+;; backward-compatibility alias
+(put 'ediff-even-diff-face-C 'face-alias 'ediff-even-diff-C)
 ;; An internal variable.  Ediff takes the face from here.  When unhighlighting,
 ;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-even-diff-face-C 'ediff-even-diff-face-C
+(defvar ediff-even-diff-face-C 'ediff-even-diff-C
   "Face for highlighting even-numbered non-current differences in buffer C.
 DO NOT CHANGE this variable.  Instead, use the customization
-widget to customize the actual face object `ediff-even-diff-face-C'
+widget to customize the actual face object `ediff-even-diff-C'
 this variable represents.")
-(ediff-hide-face 'ediff-even-diff-face-C)
+(ediff-hide-face 'ediff-even-diff-C)
 
-(defface ediff-even-diff-face-Ancestor
+(defface ediff-even-diff-Ancestor
   (if ediff-emacs-p
       `((((type pc))
 	 (:foreground "cyan3" :background "light grey"))
@@ -1208,23 +1230,25 @@
       (t (:italic t :stipple ,stipple-pixmap))))
   "Face for highlighting even-numbered non-current differences in the ancestor buffer."
   :group 'ediff-highlighting)
+;; backward-compatibility alias
+(put 'ediff-even-diff-face-Ancestor 'face-alias 'ediff-even-diff-Ancestor)
 ;; An internal variable.  Ediff takes the face from here.  When unhighlighting,
 ;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-even-diff-face-Ancestor 'ediff-even-diff-face-Ancestor
+(defvar ediff-even-diff-face-Ancestor 'ediff-even-diff-Ancestor
   "Face for highlighting even-numbered non-current differences in buffer Ancestor.
 DO NOT CHANGE this variable.  Instead, use the customization
-widget to customize the actual face object `ediff-even-diff-face-Ancestor'
+widget to customize the actual face object `ediff-even-diff-Ancestor'
 this variable represents.")
-(ediff-hide-face 'ediff-even-diff-face-Ancestor)
+(ediff-hide-face 'ediff-even-diff-Ancestor)
 
 ;; Association between buffer types and even-diff-face symbols
 (defconst ediff-even-diff-face-alist
-  '((A . ediff-even-diff-face-A)
-    (B . ediff-even-diff-face-B)
-    (C . ediff-even-diff-face-C)
-    (Ancestor . ediff-even-diff-face-Ancestor)))
+  '((A . ediff-even-diff-A)
+    (B . ediff-even-diff-B)
+    (C . ediff-even-diff-C)
+    (Ancestor . ediff-even-diff-Ancestor)))
 
-(defface ediff-odd-diff-face-A
+(defface ediff-odd-diff-A
   (if ediff-emacs-p
       '((((type pc))
 	 (:foreground "green3" :background "gray40"))
@@ -1239,17 +1263,19 @@
       (t	     	     (:italic t :stipple "gray1"))))
   "Face for highlighting odd-numbered non-current differences in buffer A."
   :group 'ediff-highlighting)
+;; backward-compatibility alias
+(put 'ediff-odd-diff-face-A 'face-alias 'ediff-odd-diff-A)
 ;; An internal variable.  Ediff takes the face from here.  When unhighlighting,
 ;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-odd-diff-face-A 'ediff-odd-diff-face-A
+(defvar ediff-odd-diff-face-A 'ediff-odd-diff-A
   "Face for highlighting odd-numbered non-current differences in buffer A.
 DO NOT CHANGE this variable.  Instead, use the customization
-widget to customize the actual face object `ediff-odd-diff-face-A'
+widget to customize the actual face object `ediff-odd-diff-A'
 this variable represents.")
-(ediff-hide-face 'ediff-odd-diff-face-A)
+(ediff-hide-face 'ediff-odd-diff-A)
 
 
-(defface ediff-odd-diff-face-B
+(defface ediff-odd-diff-B
   (if ediff-emacs-p
       '((((type pc))
 	 (:foreground "White" :background "gray40"))
@@ -1264,16 +1290,18 @@
       (t	     	     (:italic t :stipple "gray1"))))
   "Face for highlighting odd-numbered non-current differences in buffer B."
   :group 'ediff-highlighting)
+;; backward-compatibility alias
+(put 'ediff-odd-diff-face-B 'face-alias 'ediff-odd-diff-B)
 ;; An internal variable.  Ediff takes the face from here.  When unhighlighting,
 ;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-odd-diff-face-B 'ediff-odd-diff-face-B
+(defvar ediff-odd-diff-face-B 'ediff-odd-diff-B
   "Face for highlighting odd-numbered non-current differences in buffer B.
 DO NOT CHANGE this variable.  Instead, use the customization
-widget to customize the actual face object `ediff-odd-diff-face-B'
+widget to customize the actual face object `ediff-odd-diff-B'
 this variable represents.")
-(ediff-hide-face 'ediff-odd-diff-face-B)
+(ediff-hide-face 'ediff-odd-diff-B)
 
-(defface ediff-odd-diff-face-C
+(defface ediff-odd-diff-C
   (if ediff-emacs-p
       '((((type pc))
 	 (:foreground "yellow3" :background "gray40"))
@@ -1288,16 +1316,18 @@
       (t	     	     (:italic t :stipple "gray1"))))
   "Face for highlighting odd-numbered non-current differences in buffer C."
   :group 'ediff-highlighting)
+;; backward-compatibility alias
+(put 'ediff-odd-diff-face-C 'face-alias 'ediff-odd-diff-C)
 ;; An internal variable.  Ediff takes the face from here.  When unhighlighting,
 ;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-odd-diff-face-C 'ediff-odd-diff-face-C
+(defvar ediff-odd-diff-face-C 'ediff-odd-diff-C
   "Face for highlighting odd-numbered non-current differences in buffer C.
 DO NOT CHANGE this variable.  Instead, use the customization
-widget to customize the actual face object `ediff-odd-diff-face-C'
+widget to customize the actual face object `ediff-odd-diff-C'
 this variable represents.")
-(ediff-hide-face 'ediff-odd-diff-face-C)
+(ediff-hide-face 'ediff-odd-diff-C)
 
-(defface ediff-odd-diff-face-Ancestor
+(defface ediff-odd-diff-Ancestor
   (if ediff-emacs-p
       '((((class color) (min-colors 16))
 	 (:foreground "cyan3" :background "gray40"))
@@ -1309,14 +1339,16 @@
       (t	     	     (:italic t :stipple "gray1"))))
   "Face for highlighting odd-numbered non-current differences in the ancestor buffer."
   :group 'ediff-highlighting)
+;; backward-compatibility alias
+(put 'ediff-odd-diff-face-Ancestor 'face-alias 'ediff-odd-diff-Ancestor)
 ;; An internal variable.  Ediff takes the face from here.  When unhighlighting,
 ;; this variable is set to nil, then again to the appropriate face.
-(defvar ediff-odd-diff-face-Ancestor 'ediff-odd-diff-face-Ancestor
+(defvar ediff-odd-diff-face-Ancestor 'ediff-odd-diff-Ancestor
   "Face for highlighting odd-numbered non-current differences in buffer Ancestor.
 DO NOT CHANGE this variable.  Instead, use the customization
-widget to customize the actual face object `ediff-odd-diff-face-Ancestor'
+widget to customize the actual face object `ediff-odd-diff-Ancestor'
 this variable represents.")
-(ediff-hide-face 'ediff-odd-diff-face-Ancestor)
+(ediff-hide-face 'ediff-odd-diff-Ancestor)
 
 ;; Association between buffer types and odd-diff-face symbols
 (defconst ediff-odd-diff-face-alist
@@ -1333,13 +1365,13 @@
     (Ancestor . ediff-fine-diff-face-Ancestor)))
 
 ;; Help echo
-(put 'ediff-fine-diff-face-A 'ediff-help-echo
+(put 'ediff-fine-diff-A 'ediff-help-echo
      "A `refinement' of the current difference region")
-(put 'ediff-fine-diff-face-B 'ediff-help-echo
+(put 'ediff-fine-diff-B 'ediff-help-echo
      "A `refinement' of the current difference region")
-(put 'ediff-fine-diff-face-C 'ediff-help-echo
+(put 'ediff-fine-diff-C 'ediff-help-echo
      "A `refinement' of the current difference region")
-(put 'ediff-fine-diff-face-Ancestor 'ediff-help-echo
+(put 'ediff-fine-diff-Ancestor 'ediff-help-echo
      "A `refinement' of the current difference region")
 
 (add-hook 'ediff-quit-hook 'ediff-cleanup-mess)
--- a/lisp/emacs-lisp/derived.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/emacs-lisp/derived.el	Tue Jun 21 15:42:45 2005 +0000
@@ -320,7 +320,7 @@
 
 ;;;###autoload
 (defun derived-mode-init-mode-variables (mode)
-  "Initialise variables for a new MODE.
+  "Initialize variables for a new MODE.
 Right now, if they don't already exist, set up a blank keymap, an
 empty syntax table, and an empty abbrev table -- these will be merged
 the first time the mode is used."
--- a/lisp/emacs-lisp/edebug.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/emacs-lisp/edebug.el	Tue Jun 21 15:42:45 2005 +0000
@@ -3323,7 +3323,7 @@
 
 
 (defun edebug-goto-here ()
-  "Proceed to this stop point."
+  "Proceed to first stop-point at or after current position of point."
   (interactive)
   (edebug-go-mode t))
 
--- a/lisp/emacs-lisp/elint.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/emacs-lisp/elint.el	Tue Jun 21 15:42:45 2005 +0000
@@ -66,7 +66,7 @@
      left-margin left-margin-width line-spacing local-abbrev-table local-write-file-hooks major-mode
      mark-active mark-ring mode-line-buffer-identification
      mode-line-format mode-line-modified mode-line-process mode-name
-     overwrite-mode 
+     overwrite-mode
      point-before-scroll right-fringe-width right-margin-width
      scroll-bar-width scroll-down-aggressively scroll-up-aggressively selective-display
      selective-display-ellipses tab-width truncate-lines vc-mode vertical-scroll-bar)
@@ -298,7 +298,7 @@
   (not (eobp)))
 
 (defun elint-init-env (forms)
-  "Initialise the environment from FORMS."
+  "Initialize the environment from FORMS."
   (let ((env (elint-make-env))
 	form)
     (while forms
--- a/lisp/emacs-lisp/regexp-opt.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/emacs-lisp/regexp-opt.el	Tue Jun 21 15:42:45 2005 +0000
@@ -116,7 +116,7 @@
 (defun regexp-opt-depth (regexp)
   "Return the depth of REGEXP.
 This means the number of non-shy regexp grouping constructs
-\(parenthesised expressions) in REGEXP."
+\(parenthesized expressions) in REGEXP."
   (save-match-data
     ;; Hack to signal an error if REGEXP does not have balanced parentheses.
     (string-match regexp "")
--- a/lisp/emacs-lisp/warnings.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/emacs-lisp/warnings.el	Tue Jun 21 15:42:45 2005 +0000
@@ -76,16 +76,20 @@
 the warning is logged in the warnings buffer, but the buffer
 is not immediately displayed.  See also `warning-minimum-log-level'."
   :group 'warnings
-  :type '(choice (const :emergency) (const :error) (const :warning))
+  :type '(choice (const :emergency) (const :error)
+                 (const :warning) (const :debug))
   :version "22.1")
 (defvaralias 'display-warning-minimum-level 'warning-minimum-level)
 
 (defcustom warning-minimum-log-level :warning
   "Minimum severity level for logging a warning.
 If a warning severity level is lower than this,
-the warning is completely ignored."
+the warning is completely ignored.
+Value must be lower or equal than `warning-minimum-level',
+because warnings not logged aren't displayed either."
   :group 'warnings
-  :type '(choice (const :emergency) (const :error) (const :warning))
+  :type '(choice (const :emergency) (const :error)
+                 (const :warning) (const :debug))
   :version "22.1")
 (defvaralias 'log-warning-minimum-level 'warning-minimum-log-level)
 
@@ -203,7 +207,9 @@
 \(The rest of the symbols represent subcategories, for warning purposes
 only, and you can use whatever symbols you like.)
 
-LEVEL should be either :warning, :error, or :emergency.
+LEVEL should be either :debug, :warning, :error, or :emergency
+\(but see `warning-minimum-level' and `warning-minimum-log-level').
+
 :emergency -- a problem that will seriously impair Emacs operation soon
 	      if you do not attend to it promptly.
 :error     -- data or circumstances that are inherently wrong.
@@ -223,7 +229,7 @@
   (if (assq level warning-level-aliases)
       (setq level (cdr (assq level warning-level-aliases))))
   (or (< (warning-numeric-level level)
-	 (warning-numeric-level warning-minimum-log-level))
+         (warning-numeric-level warning-minimum-log-level))
       (warning-suppress-p type warning-suppress-log-types)
       (let* ((typename (if (consp type) (car type) type))
 	     (buffer (get-buffer-create (or buffer-name "*Warnings*")))
@@ -291,11 +297,14 @@
 \(The rest of the symbols represent subcategories and
 can be whatever you like.)
 
-LEVEL should be either :warning, :error, or :emergency.
+LEVEL should be either :debug, :warning, :error, or :emergency
+\(but see `warning-minimum-level' and `warning-minimum-log-level').
+
 :emergency -- a problem that will seriously impair Emacs operation soon
 	      if you do not attend to it promptly.
 :error     -- invalid data or circumstances.
-:warning   -- suspicious data or circumstances."
+:warning   -- suspicious data or circumstances.
+:debug     -- info for debugging only."
   (display-warning type (apply 'format message args) level))
 
 ;;;###autoload
--- a/lisp/emulation/vip.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/emulation/vip.el	Tue Jun 21 15:42:45 2005 +0000
@@ -2292,7 +2292,7 @@
 			     (setq cont nil))
 			    (t (error "Extra character at end of a command")))))))
 	    ((string= ex-token-type "non-command")
-	     (error (format "%s: Not an editor command" ex-token)))
+	     (error "%s: Not an editor command" ex-token))
 	    ((string= ex-token-type "whole")
 	     (setq ex-addresses
 		   (cons (point-max) (cons (point-min) ex-addresses))))
--- a/lisp/eshell/em-ls.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/eshell/em-ls.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1,6 +1,6 @@
 ;;; em-ls.el --- implementation of ls in Lisp
 
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2005 Free Software Foundation
 
 ;; Author: John Wiegley <johnw@gnu.org>
 
@@ -106,48 +106,62 @@
   :type 'boolean
   :group 'eshell-ls)
 
-(defface eshell-ls-directory-face
+(defface eshell-ls-directory
   '((((class color) (background light)) (:foreground "Blue" :weight bold))
     (((class color) (background dark)) (:foreground "SkyBlue" :weight bold))
     (t (:weight bold)))
   "*The face used for highlight directories."
   :group 'eshell-ls)
+;; backward-compatibility alias
+(put 'eshell-ls-directory-face 'face-alias 'eshell-ls-directory)
 
-(defface eshell-ls-symlink-face
+(defface eshell-ls-symlink
   '((((class color) (background light)) (:foreground "Dark Cyan" :weight bold))
     (((class color) (background dark)) (:foreground "Cyan" :weight bold)))
   "*The face used for highlight symbolic links."
   :group 'eshell-ls)
+;; backward-compatibility alias
+(put 'eshell-ls-symlink-face 'face-alias 'eshell-ls-symlink)
 
-(defface eshell-ls-executable-face
+(defface eshell-ls-executable
   '((((class color) (background light)) (:foreground "ForestGreen" :weight bold))
     (((class color) (background dark)) (:foreground "Green" :weight bold)))
   "*The face used for highlighting executables (not directories, though)."
   :group 'eshell-ls)
+;; backward-compatibility alias
+(put 'eshell-ls-executable-face 'face-alias 'eshell-ls-executable)
 
-(defface eshell-ls-readonly-face
+(defface eshell-ls-readonly
   '((((class color) (background light)) (:foreground "Brown"))
     (((class color) (background dark)) (:foreground "Pink")))
   "*The face used for highlighting read-only files."
   :group 'eshell-ls)
+;; backward-compatibility alias
+(put 'eshell-ls-readonly-face 'face-alias 'eshell-ls-readonly)
 
-(defface eshell-ls-unreadable-face
+(defface eshell-ls-unreadable
   '((((class color) (background light)) (:foreground "Grey30"))
     (((class color) (background dark)) (:foreground "DarkGrey")))
   "*The face used for highlighting unreadable files."
   :group 'eshell-ls)
+;; backward-compatibility alias
+(put 'eshell-ls-unreadable-face 'face-alias 'eshell-ls-unreadable)
 
-(defface eshell-ls-special-face
+(defface eshell-ls-special
   '((((class color) (background light)) (:foreground "Magenta" :weight bold))
     (((class color) (background dark)) (:foreground "Magenta" :weight bold)))
   "*The face used for highlighting non-regular files."
   :group 'eshell-ls)
+;; backward-compatibility alias
+(put 'eshell-ls-special-face 'face-alias 'eshell-ls-special)
 
-(defface eshell-ls-missing-face
+(defface eshell-ls-missing
   '((((class color) (background light)) (:foreground "Red" :weight bold))
     (((class color) (background dark)) (:foreground "Red" :weight bold)))
   "*The face used for highlighting non-existant file names."
   :group 'eshell-ls)
+;; backward-compatibility alias
+(put 'eshell-ls-missing-face 'face-alias 'eshell-ls-missing)
 
 (defcustom eshell-ls-archive-regexp
   (concat "\\.\\(t\\(a[rz]\\|gz\\)\\|arj\\|lzh\\|"
@@ -158,11 +172,13 @@
   :type 'regexp
   :group 'eshell-ls)
 
-(defface eshell-ls-archive-face
+(defface eshell-ls-archive
   '((((class color) (background light)) (:foreground "Orchid" :weight bold))
     (((class color) (background dark)) (:foreground "Orchid" :weight bold)))
   "*The face used for highlighting archived and compressed file names."
   :group 'eshell-ls)
+;; backward-compatibility alias
+(put 'eshell-ls-archive-face 'face-alias 'eshell-ls-archive)
 
 (defcustom eshell-ls-backup-regexp
   "\\(\\`\\.?#\\|\\(\\.bak\\|~\\)\\'\\)"
@@ -170,11 +186,13 @@
   :type 'regexp
   :group 'eshell-ls)
 
-(defface eshell-ls-backup-face
+(defface eshell-ls-backup
   '((((class color) (background light)) (:foreground "OrangeRed"))
     (((class color) (background dark)) (:foreground "LightSalmon")))
   "*The face used for highlighting backup file names."
   :group 'eshell-ls)
+;; backward-compatibility alias
+(put 'eshell-ls-backup-face 'face-alias 'eshell-ls-backup)
 
 (defcustom eshell-ls-product-regexp
   "\\.\\(elc\\|o\\(bj\\)?\\|a\\|lib\\|res\\)\\'"
@@ -184,11 +202,13 @@
   :type 'regexp
   :group 'eshell-ls)
 
-(defface eshell-ls-product-face
+(defface eshell-ls-product
   '((((class color) (background light)) (:foreground "OrangeRed"))
     (((class color) (background dark)) (:foreground "LightSalmon")))
   "*The face used for highlighting files that are build products."
   :group 'eshell-ls)
+;; backward-compatibility alias
+(put 'eshell-ls-product-face 'face-alias 'eshell-ls-product)
 
 (defcustom eshell-ls-clutter-regexp
   "\\(^texput\\.log\\|^core\\)\\'"
@@ -198,11 +218,13 @@
   :type 'regexp
   :group 'eshell-ls)
 
-(defface eshell-ls-clutter-face
+(defface eshell-ls-clutter
   '((((class color) (background light)) (:foreground "OrangeRed" :weight bold))
     (((class color) (background dark)) (:foreground "OrangeRed" :weight bold)))
   "*The face used for highlighting junk file names."
   :group 'eshell-ls)
+;; backward-compatibility alias
+(put 'eshell-ls-clutter-face 'face-alias 'eshell-ls-clutter)
 
 (defsubst eshell-ls-filetype-p (attrs type)
   "Test whether ATTRS specifies a directory."
@@ -847,41 +869,41 @@
       (let ((face
 	     (cond
 	      ((not (cdr file))
-	       'eshell-ls-missing-face)
+	       'eshell-ls-missing)
 
 	      ((stringp (cadr file))
-	       'eshell-ls-symlink-face)
+	       'eshell-ls-symlink)
 
 	      ((eq (cadr file) t)
-	       'eshell-ls-directory-face)
+	       'eshell-ls-directory)
 
 	      ((not (eshell-ls-filetype-p (cdr file) ?-))
-	       'eshell-ls-special-face)
+	       'eshell-ls-special)
 
 	      ((and (/= (user-uid) 0) ; root can execute anything
 		    (eshell-ls-applicable (cdr file) 3
 					  'file-executable-p (car file)))
-	       'eshell-ls-executable-face)
+	       'eshell-ls-executable)
 
 	      ((not (eshell-ls-applicable (cdr file) 1
 					  'file-readable-p (car file)))
-	       'eshell-ls-unreadable-face)
+	       'eshell-ls-unreadable)
 
 	      ((string-match eshell-ls-archive-regexp (car file))
-	       'eshell-ls-archive-face)
+	       'eshell-ls-archive)
 
 	      ((string-match eshell-ls-backup-regexp (car file))
-	       'eshell-ls-backup-face)
+	       'eshell-ls-backup)
 
 	      ((string-match eshell-ls-product-regexp (car file))
-	       'eshell-ls-product-face)
+	       'eshell-ls-product)
 
 	      ((string-match eshell-ls-clutter-regexp (car file))
-	       'eshell-ls-clutter-face)
+	       'eshell-ls-clutter)
 
 	      ((not (eshell-ls-applicable (cdr file) 2
 					  'file-writable-p (car file)))
-	       'eshell-ls-readonly-face)
+	       'eshell-ls-readonly)
 	      (eshell-ls-highlight-alist
 	       (let ((tests eshell-ls-highlight-alist)
 		     value)
--- a/lisp/eshell/em-prompt.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/eshell/em-prompt.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1,6 +1,6 @@
 ;;; em-prompt.el --- command prompts
 
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2005 Free Software Foundation
 
 ;; Author: John Wiegley <johnw@gnu.org>
 
@@ -68,7 +68,7 @@
   :type 'boolean
   :group 'eshell-prompt)
 
-(defface eshell-prompt-face
+(defface eshell-prompt
   '((((class color) (background light)) (:foreground "Red" :bold t))
     (((class color) (background dark)) (:foreground "Pink" :bold t))
     (t (:bold t)))
@@ -76,6 +76,8 @@
 For highlighting other kinds of strings -- similar to shell mode's
 behavior -- simply use an output filer which changes text properties."
   :group 'eshell-prompt)
+;; backward-compatibility alias
+(put 'eshell-prompt-face 'face-alias 'eshell-prompt)
 
 (defcustom eshell-before-prompt-hook nil
   "*A list of functions to call before outputting the prompt."
@@ -119,7 +121,7 @@
       (and eshell-highlight-prompt
 	   (add-text-properties 0 (length prompt)
 				'(read-only t
-				  face eshell-prompt-face
+				  face eshell-prompt
 				  rear-nonsticky (face read-only))
 				prompt))
       (eshell-interactive-print prompt)))
--- a/lisp/eshell/esh-mode.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/eshell/esh-mode.el	Tue Jun 21 15:42:45 2005 +0000
@@ -818,7 +818,7 @@
   "Go to the end of buffer in all windows showing it.
 Movement occurs if point in the selected window is not after the
 process mark, and `this-command' is an insertion command.  Insertion
-commands recognised are `self-insert-command', `yank', and
+commands recognized are `self-insert-command', `yank', and
 `hilit-yank'.  Depends on the value of
 `eshell-scroll-to-bottom-on-input'.
 
--- a/lisp/eshell/esh-test.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/eshell/esh-test.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1,6 +1,6 @@
 ;;; esh-test.el --- Eshell test suite
 
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2005 Free Software Foundation
 
 ;; Author: John Wiegley <johnw@gnu.org>
 
@@ -42,18 +42,22 @@
 
 ;;; User Variables:
 
-(defface eshell-test-ok-face
+(defface eshell-test-ok
   '((((class color) (background light)) (:foreground "Green" :bold t))
     (((class color) (background dark)) (:foreground "Green" :bold t)))
   "*The face used to highlight OK result strings."
   :group 'eshell-test)
+;; backward-compatibility alias
+(put 'eshell-test-ok-face 'face-alias 'eshell-test-ok)
 
-(defface eshell-test-failed-face
+(defface eshell-test-failed
   '((((class color) (background light)) (:foreground "OrangeRed" :bold t))
     (((class color) (background dark)) (:foreground "OrangeRed" :bold t))
     (t (:bold t)))
   "*The face used to highlight FAILED result strings."
   :group 'eshell-test)
+;; backward-compatibility alias
+(put 'eshell-test-failed-face 'face-alias 'eshell-test-failed)
 
 (defcustom eshell-show-usage-metrics nil
   "*If non-nil, display different usage metrics for each Eshell command."
@@ -108,12 +112,10 @@
 	       (if truth
 		   (progn
 		     (setq str "  OK  ")
-		     (put-text-property 0 6 'face
-					'eshell-test-ok-face str))
+		     (put-text-property 0 6 'face 'eshell-test-ok str))
 		 (setq str "FAILED")
 		 (setq eshell-test-failures (1+ eshell-test-failures))
-		 (put-text-property 0 6 'face
-				    'eshell-test-failed-face str))
+		 (put-text-property 0 6 'face 'eshell-test-failed str))
 	       str) "]")
 	(add-text-properties (line-beginning-position) (point)
 			     (list 'test-func funcsym))
--- a/lisp/faces.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/faces.el	Tue Jun 21 15:42:45 2005 +0000
@@ -2066,7 +2066,11 @@
   :group 'basic-faces)
 
 
-(defface underline '((t :underline t))
+(defface underline '((((supports :underline t))
+		      :underline t)
+		     (((supports :weight bold))
+		      :weight bold)
+		     (t :underline t))
   "Basic underlined face."
   :group 'basic-faces)
 
--- a/lisp/find-file.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/find-file.el	Tue Jun 21 15:42:45 2005 +0000
@@ -191,7 +191,7 @@
        (setq fname (buffer-substring (match-beginning 2) (match-end 2)))))
     )
   "*A list of regular expressions for `ff-find-file'.
-Specifies how to recognise special constructs such as include files
+Specifies how to recognize special constructs such as include files
 etc. and an associated method for extracting the filename from that
 construct.")
 
@@ -215,7 +215,7 @@
 
 This list is searched through with each extension specified in
 `ff-other-file-alist' that matches this file's extension.  So the
-longer the list, the longer it'll take to realise that a file
+longer the list, the longer it'll take to realize that a file
 may not exist.
 
 A typical format is
@@ -340,7 +340,7 @@
    If non-nil, traces which directories are being searched.
 
  - `ff-special-constructs'
-   A list of regular expressions specifying how to recognise special
+   A list of regular expressions specifying how to recognize special
    constructs such as include files etc, and an associated method for
    extracting the filename from that construct.
 
--- a/lisp/font-lock.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/font-lock.el	Tue Jun 21 15:42:45 2005 +0000
@@ -430,7 +430,7 @@
 the search, as for MATCH-HIGHLIGHT above, but with one exception; see below.
 PRE-MATCH-FORM and POST-MATCH-FORM are evaluated before the first, and after
 the last, instance MATCH-ANCHORED's MATCHER is used.  Therefore they can be
-used to initialise before, and cleanup after, MATCHER is used.  Typically,
+used to initialize before, and cleanup after, MATCHER is used.  Typically,
 PRE-MATCH-FORM is used to move to some position relative to the original
 MATCHER, before starting with MATCH-ANCHORED's MATCHER.  POST-MATCH-FORM might
 be used to move back, before resuming with MATCH-ANCHORED's parent's MATCHER.
--- a/lisp/gnus/ChangeLog	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/gnus/ChangeLog	Tue Jun 21 15:42:45 2005 +0000
@@ -1,3 +1,127 @@
+2005-06-16  Juanma Barranquero  <lekktu@gmail.com>
+
+	* gnus-art.el (gnus-article-encrypt-body):
+	* gnus-cus.el (gnus-score-customize):
+	* mm-extern.el (mm-extern-local-file, mm-inline-external-body):
+	* pop3.el (pop3-user): Don't use `format' on `error' arguments.
+
+2005-06-16  Miles Bader  <miles@gnu.org>
+
+	* spam.el (spam): Remove "-face" suffix from face name.
+	(spam-face): New backward-compatibility alias for renamed face.
+	(spam-face, spam-initialize): Use renamed spam face.
+
+	* message.el (message-header-to, message-header-cc)
+	(message-header-subject, message-header-newsgroups)
+	(message-header-other, message-header-name)
+	(message-header-xheader, message-separator, message-cited-text)
+	(message-mml): Remove "-face" suffix from face names.
+	(message-header-to-face, message-header-cc-face)
+	(message-header-subject-face, message-header-newsgroups-face)
+	(message-header-other-face, message-header-name-face)
+	(message-header-xheader-face, message-separator-face)
+	(message-cited-text-face, message-mml-face):
+	New backward-compatibility aliases for renamed faces.
+	(message-font-lock-keywords): Use renamed message faces.
+
+	* sieve-mode.el (sieve-control-commands, sieve-action-commands)
+	(sieve-test-commands, sieve-tagged-arguments):
+	Remove "-face" suffix from face names.
+	(sieve-control-commands-face, sieve-action-commands-face)
+	(sieve-test-commands-face, sieve-tagged-arguments-face):
+	New backward-compatibility aliases for renamed faces.
+	(sieve-control-commands-face, sieve-action-commands-face)
+	(sieve-test-commands-face, sieve-tagged-arguments-face):
+	Use renamed sieve faces.
+
+	* gnus.el (gnus-group-news-1, gnus-group-news-1-empty)
+	(gnus-group-news-2, gnus-group-news-2-empty, gnus-group-news-3)
+	(gnus-group-news-3-empty, gnus-group-news-4)
+	(gnus-group-news-4-empty, gnus-group-news-5)
+	(gnus-group-news-5-empty, gnus-group-news-6)
+	(gnus-group-news-6-empty, gnus-group-news-low)
+	(gnus-group-news-low-empty, gnus-group-mail-1)
+	(gnus-group-mail-1-empty, gnus-group-mail-2)
+	(gnus-group-mail-2-empty, gnus-group-mail-3)
+	(gnus-group-mail-3-empty, gnus-group-mail-low)
+	(gnus-group-mail-low-empty, gnus-summary-selected)
+	(gnus-summary-cancelled, gnus-summary-high-ticked)
+	(gnus-summary-low-ticked, gnus-summary-normal-ticked)
+	(gnus-summary-high-ancient, gnus-summary-low-ancient)
+	(gnus-summary-normal-ancient, gnus-summary-high-undownloaded)
+	(gnus-summary-low-undownloaded)
+	(gnus-summary-normal-undownloaded, gnus-summary-high-unread)
+	(gnus-summary-low-unread, gnus-summary-normal-unread)
+	(gnus-summary-high-read, gnus-summary-low-read)
+	(gnus-summary-normal-read, gnus-splash):
+	Remove "-face" suffix from face names.
+	(gnus-group-news-1-face, gnus-group-news-1-empty-face)
+	(gnus-group-news-2-face, gnus-group-news-2-empty-face)
+	(gnus-group-news-3-face, gnus-group-news-3-empty-face)
+	(gnus-group-news-4-face, gnus-group-news-4-empty-face)
+	(gnus-group-news-5-face, gnus-group-news-5-empty-face)
+	(gnus-group-news-6-face, gnus-group-news-6-empty-face)
+	(gnus-group-news-low-face, gnus-group-news-low-empty-face)
+	(gnus-group-mail-1-face, gnus-group-mail-1-empty-face)
+	(gnus-group-mail-2-face, gnus-group-mail-2-empty-face)
+	(gnus-group-mail-3-face, gnus-group-mail-3-empty-face)
+	(gnus-group-mail-low-face, gnus-group-mail-low-empty-face)
+	(gnus-summary-selected-face, gnus-summary-cancelled-face)
+	(gnus-summary-high-ticked-face, gnus-summary-low-ticked-face)
+	(gnus-summary-normal-ticked-face)
+	(gnus-summary-high-ancient-face, gnus-summary-low-ancient-face)
+	(gnus-summary-normal-ancient-face)
+	(gnus-summary-high-undownloaded-face)
+	(gnus-summary-low-undownloaded-face)
+	(gnus-summary-normal-undownloaded-face)
+	(gnus-summary-high-unread-face, gnus-summary-low-unread-face)
+	(gnus-summary-normal-unread-face, gnus-summary-high-read-face)
+	(gnus-summary-low-read-face, gnus-summary-normal-read-face)
+	(gnus-splash-face):
+	New backward-compatibility aliases for renamed faces.
+	(gnus-group-startup-message): Use renamed gnus faces.
+
+	* gnus-srvr.el (gnus-server-agent, gnus-server-opened)
+	(gnus-server-closed, gnus-server-denied, gnus-server-offline)
+	(gnus-server-agent): Remove "-face" suffix from face names.
+	(gnus-server-agent-face, gnus-server-opened-face)
+	(gnus-server-closed-face, gnus-server-denied-face)
+	(gnus-server-offline-face):
+	New backward-compatibility aliases for renamed faces.
+	(gnus-server-agent-face, gnus-server-opened-face)
+	(gnus-server-closed-face, gnus-server-denied-face)
+	(gnus-server-offline-face): Use renamed gnus faces.
+
+	* gnus-picon.el (gnus-picon-xbm, gnus-picon):
+	Remove "-face" suffix from face names.
+	(gnus-picon-xbm-face, gnus-picon-face):
+	New backward-compatibility aliases for renamed faces.
+
+	* gnus-cite.el (gnus-cite-attribution, gnus-cite-1, gnus-cite-2)
+	(gnus-cite-3, gnus-cite-4, gnus-cite-5, gnus-cite-6)
+	(gnus-cite-7, gnus-cite-8, gnus-cite-9, gnus-cite-10)
+	(gnus-cite-11): Remove "-face" suffix from face names.
+	(gnus-cite-attribution-face, gnus-cite-face-1, gnus-cite-face-2)
+	(gnus-cite-face-3, gnus-cite-face-4, gnus-cite-face-5)
+	(gnus-cite-face-6, gnus-cite-face-7, gnus-cite-face-8)
+	(gnus-cite-face-9, gnus-cite-face-10, gnus-cite-face-11):
+	New backward-compatibility aliases for renamed faces.
+	(gnus-cite-attribution-face, gnus-cite-face-list)
+	(gnus-article-boring-faces): Use renamed gnus faces.
+
+	* gnus-art.el (gnus-signature, gnus-header-from)
+	(gnus-header-subject, gnus-header-newsgroups, gnus-header-name)
+	(gnus-header-content): Remove "-face" suffix from face names.
+	(gnus-signature-face, gnus-header-from-face)
+	(gnus-header-subject-face, gnus-header-newsgroups-face)
+	(gnus-header-name-face, gnus-header-content-face):
+	New backward-compatibility aliases for renamed faces.
+	(gnus-signature-face, gnus-header-face-alist): Use renamed gnus faces.
+
+	* gnus-sum.el (gnus-summary-selected-face)
+	(gnus-summary-highlight): Use renamed gnus faces.
+	* gnus-group.el (gnus-group-highlight): Likewise.
+
 2005-06-14  Juanma Barranquero  <lekktu@gmail.com>
 
 	* gnus-sieve.el (gnus-sieve-article-add-rule):
--- a/lisp/gnus/gnus-art.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/gnus/gnus-art.el	Tue Jun 21 15:42:45 2005 +0000
@@ -645,21 +645,23 @@
   :type 'face
   :group 'gnus-article-buttons)
 
-(defcustom gnus-signature-face 'gnus-signature-face
+(defcustom gnus-signature-face 'gnus-signature
   "Face used for highlighting a signature in the article buffer.
-Obsolete; use the face `gnus-signature-face' for customizations instead."
+Obsolete; use the face `gnus-signature' for customizations instead."
   :type 'face
   :group 'gnus-article-highlight
   :group 'gnus-article-signature)
 
-(defface gnus-signature-face
+(defface gnus-signature
   '((t
      (:italic t)))
   "Face used for highlighting a signature in the article buffer."
   :group 'gnus-article-highlight
   :group 'gnus-article-signature)
-
-(defface gnus-header-from-face
+;; backward-compatibility alias
+(put 'gnus-signature-face 'face-alias 'gnus-signature)
+
+(defface gnus-header-from
   '((((class color)
       (background dark))
      (:foreground "spring green"))
@@ -671,8 +673,10 @@
   "Face used for displaying from headers."
   :group 'gnus-article-headers
   :group 'gnus-article-highlight)
-
-(defface gnus-header-subject-face
+;; backward-compatibility alias
+(put 'gnus-header-from-face 'face-alias 'gnus-header-from)
+
+(defface gnus-header-subject
   '((((class color)
       (background dark))
      (:foreground "SeaGreen3"))
@@ -684,8 +688,10 @@
   "Face used for displaying subject headers."
   :group 'gnus-article-headers
   :group 'gnus-article-highlight)
-
-(defface gnus-header-newsgroups-face
+;; backward-compatibility alias
+(put 'gnus-header-subject-face 'face-alias 'gnus-header-subject)
+
+(defface gnus-header-newsgroups
   '((((class color)
       (background dark))
      (:foreground "yellow" :italic t))
@@ -699,8 +705,10 @@
 articles."
   :group 'gnus-article-headers
   :group 'gnus-article-highlight)
-
-(defface gnus-header-name-face
+;; backward-compatibility alias
+(put 'gnus-header-newsgroups-face 'face-alias 'gnus-header-newsgroups)
+
+(defface gnus-header-name
   '((((class color)
       (background dark))
      (:foreground "SeaGreen"))
@@ -712,8 +720,10 @@
   "Face used for displaying header names."
   :group 'gnus-article-headers
   :group 'gnus-article-highlight)
-
-(defface gnus-header-content-face
+;; backward-compatibility alias
+(put 'gnus-header-name-face 'face-alias 'gnus-header-name)
+
+(defface gnus-header-content
   '((((class color)
       (background dark))
      (:foreground "forest green" :italic t))
@@ -724,12 +734,14 @@
      (:italic t)))  "Face used for displaying header content."
   :group 'gnus-article-headers
   :group 'gnus-article-highlight)
+;; backward-compatibility alias
+(put 'gnus-header-content-face 'face-alias 'gnus-header-content)
 
 (defcustom gnus-header-face-alist
-  '(("From" nil gnus-header-from-face)
-    ("Subject" nil gnus-header-subject-face)
-    ("Newsgroups:.*," nil gnus-header-newsgroups-face)
-    ("" gnus-header-name-face gnus-header-content-face))
+  '(("From" nil gnus-header-from)
+    ("Subject" nil gnus-header-subject)
+    ("Newsgroups:.*," nil gnus-header-newsgroups)
+    ("" gnus-header-name gnus-header-content))
   "*Controls highlighting of article headers.
 
 An alist of the form (HEADER NAME CONTENT).
@@ -6490,7 +6502,7 @@
 (defun gnus-article-highlight-signature ()
   "Highlight the signature in an article.
 It does this by highlighting everything after
-`gnus-signature-separator' using `gnus-signature-face'."
+`gnus-signature-separator' using the face `gnus-signature'."
   (interactive)
   (save-excursion
     (set-buffer gnus-article-buffer)
@@ -7057,7 +7069,7 @@
     current-prefix-arg))
   (let ((func (cdr (assoc protocol gnus-article-encrypt-protocol-alist))))
     (unless func
-      (error (format "Can't find the encrypt protocol %s" protocol)))
+      (error "Can't find the encrypt protocol %s" protocol))
     (if (member gnus-newsgroup-name '("nndraft:delayed"
 				      "nndraft:drafts"
 				      "nndraft:queue"))
--- a/lisp/gnus/gnus-cite.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/gnus/gnus-cite.el	Tue Jun 21 15:42:45 2005 +0000
@@ -137,143 +137,165 @@
   :group 'gnus-cite
   :type 'boolean)
 
-(defface gnus-cite-attribution-face '((t
-				       (:italic t)))
+(defface gnus-cite-attribution '((t (:italic t)))
   "Face used for attribution lines."
   :group 'gnus-cite)
+;; backward-compatibility alias
+(put 'gnus-cite-attribution-face 'face-alias 'gnus-cite-attribution)
 
-(defcustom gnus-cite-attribution-face 'gnus-cite-attribution-face
+(defcustom gnus-cite-attribution-face 'gnus-cite-attribution
   "Face used for attribution lines.
 It is merged with the face for the cited text belonging to the attribution."
   :version "22.1"
   :group 'gnus-cite
   :type 'face)
 
-(defface gnus-cite-face-1 '((((class color)
-			      (background dark))
-			     (:foreground "light blue"))
-			    (((class color)
-			      (background light))
-			     (:foreground "MidnightBlue"))
-			    (t
-			     (:italic t)))
+(defface gnus-cite-1 '((((class color)
+			 (background dark))
+			(:foreground "light blue"))
+		       (((class color)
+			 (background light))
+			(:foreground "MidnightBlue"))
+		       (t
+			(:italic t)))
   "Citation face."
   :group 'gnus-cite)
+;; backward-compatibility alias
+(put 'gnus-cite-face-1 'face-alias 'gnus-cite-1)
 
-(defface gnus-cite-face-2 '((((class color)
-			      (background dark))
-			     (:foreground "light cyan"))
-			    (((class color)
-			      (background light))
-			     (:foreground "firebrick"))
-			    (t
-			     (:italic t)))
+(defface gnus-cite-2 '((((class color)
+			 (background dark))
+			(:foreground "light cyan"))
+		       (((class color)
+			 (background light))
+			(:foreground "firebrick"))
+		       (t
+			(:italic t)))
   "Citation face."
   :group 'gnus-cite)
+;; backward-compatibility alias
+(put 'gnus-cite-face-2 'face-alias 'gnus-cite-2)
 
-(defface gnus-cite-face-3 '((((class color)
-			      (background dark))
-			     (:foreground "light yellow"))
-			    (((class color)
-			      (background light))
-			     (:foreground "dark green"))
-			    (t
-			     (:italic t)))
+(defface gnus-cite-3 '((((class color)
+			 (background dark))
+			(:foreground "light yellow"))
+		       (((class color)
+			 (background light))
+			(:foreground "dark green"))
+		       (t
+			(:italic t)))
   "Citation face."
   :group 'gnus-cite)
+;; backward-compatibility alias
+(put 'gnus-cite-face-3 'face-alias 'gnus-cite-3)
 
-(defface gnus-cite-face-4 '((((class color)
-			      (background dark))
-			     (:foreground "light pink"))
-			    (((class color)
-			      (background light))
-			     (:foreground "OrangeRed"))
-			    (t
-			     (:italic t)))
+(defface gnus-cite-4 '((((class color)
+			 (background dark))
+			(:foreground "light pink"))
+		       (((class color)
+			 (background light))
+			(:foreground "OrangeRed"))
+		       (t
+			(:italic t)))
   "Citation face."
   :group 'gnus-cite)
+;; backward-compatibility alias
+(put 'gnus-cite-face-4 'face-alias 'gnus-cite-4)
 
-(defface gnus-cite-face-5 '((((class color)
-			      (background dark))
-			     (:foreground "pale green"))
-			    (((class color)
-			      (background light))
-			     (:foreground "dark khaki"))
-			    (t
-			     (:italic t)))
+(defface gnus-cite-5 '((((class color)
+			 (background dark))
+			(:foreground "pale green"))
+		       (((class color)
+			 (background light))
+			(:foreground "dark khaki"))
+		       (t
+			(:italic t)))
   "Citation face."
   :group 'gnus-cite)
+;; backward-compatibility alias
+(put 'gnus-cite-face-5 'face-alias 'gnus-cite-5)
 
-(defface gnus-cite-face-6 '((((class color)
-			      (background dark))
-			     (:foreground "beige"))
-			    (((class color)
-			      (background light))
-			     (:foreground "dark violet"))
-			    (t
-			     (:italic t)))
+(defface gnus-cite-6 '((((class color)
+			 (background dark))
+			(:foreground "beige"))
+		       (((class color)
+			 (background light))
+			(:foreground "dark violet"))
+		       (t
+			(:italic t)))
   "Citation face."
   :group 'gnus-cite)
+;; backward-compatibility alias
+(put 'gnus-cite-face-6 'face-alias 'gnus-cite-6)
 
-(defface gnus-cite-face-7 '((((class color)
-			      (background dark))
-			     (:foreground "orange"))
-			    (((class color)
-			      (background light))
-			     (:foreground "SteelBlue4"))
-			    (t
-			     (:italic t)))
+(defface gnus-cite-7 '((((class color)
+			 (background dark))
+			(:foreground "orange"))
+		       (((class color)
+			 (background light))
+			(:foreground "SteelBlue4"))
+		       (t
+			(:italic t)))
   "Citation face."
   :group 'gnus-cite)
+;; backward-compatibility alias
+(put 'gnus-cite-face-7 'face-alias 'gnus-cite-7)
 
-(defface gnus-cite-face-8 '((((class color)
-			      (background dark))
-			     (:foreground "magenta"))
-			    (((class color)
-			      (background light))
-			     (:foreground "magenta"))
-			    (t
-			     (:italic t)))
+(defface gnus-cite-8 '((((class color)
+			 (background dark))
+			(:foreground "magenta"))
+		       (((class color)
+			 (background light))
+			(:foreground "magenta"))
+		       (t
+			(:italic t)))
   "Citation face."
   :group 'gnus-cite)
+;; backward-compatibility alias
+(put 'gnus-cite-face-8 'face-alias 'gnus-cite-8)
 
-(defface gnus-cite-face-9 '((((class color)
-			      (background dark))
-			     (:foreground "violet"))
-			    (((class color)
-			      (background light))
-			     (:foreground "violet"))
-			    (t
-			     (:italic t)))
+(defface gnus-cite-9 '((((class color)
+			 (background dark))
+			(:foreground "violet"))
+		       (((class color)
+			 (background light))
+			(:foreground "violet"))
+		       (t
+			(:italic t)))
   "Citation face."
   :group 'gnus-cite)
+;; backward-compatibility alias
+(put 'gnus-cite-face-9 'face-alias 'gnus-cite-9)
 
-(defface gnus-cite-face-10 '((((class color)
-			       (background dark))
-			      (:foreground "medium purple"))
-			     (((class color)
-			       (background light))
-			      (:foreground "medium purple"))
-			     (t
-			      (:italic t)))
+(defface gnus-cite-10 '((((class color)
+			  (background dark))
+			 (:foreground "medium purple"))
+			(((class color)
+			  (background light))
+			 (:foreground "medium purple"))
+			(t
+			 (:italic t)))
   "Citation face."
   :group 'gnus-cite)
+;; backward-compatibility alias
+(put 'gnus-cite-face-10 'face-alias 'gnus-cite-10)
 
-(defface gnus-cite-face-11 '((((class color)
-			       (background dark))
-			      (:foreground "turquoise"))
-			     (((class color)
-			       (background light))
-			      (:foreground "turquoise"))
-			     (t
-			      (:italic t)))
+(defface gnus-cite-11 '((((class color)
+			  (background dark))
+			 (:foreground "turquoise"))
+			(((class color)
+			  (background light))
+			 (:foreground "turquoise"))
+			(t
+			 (:italic t)))
   "Citation face."
   :group 'gnus-cite)
+;; backward-compatibility alias
+(put 'gnus-cite-face-11 'face-alias 'gnus-cite-11)
 
 (defcustom gnus-cite-face-list
-  '(gnus-cite-face-1 gnus-cite-face-2 gnus-cite-face-3 gnus-cite-face-4
-		     gnus-cite-face-5 gnus-cite-face-6 gnus-cite-face-7 gnus-cite-face-8
-		     gnus-cite-face-9 gnus-cite-face-10 gnus-cite-face-11)
+  '(gnus-cite-1 gnus-cite-2 gnus-cite-3 gnus-cite-4 gnus-cite-5 gnus-cite-6
+    gnus-cite-7 gnus-cite-8 gnus-cite-9 gnus-cite-10 gnus-cite-11)
   "*List of faces used for highlighting citations.
 
 When there are citations from multiple articles in the same message,
@@ -299,8 +321,7 @@
 
 ;; This has to go here because its default value depends on
 ;; gnus-cite-face-list.
-(defcustom gnus-article-boring-faces (cons 'gnus-signature-face
-					   gnus-cite-face-list)
+(defcustom gnus-article-boring-faces (cons 'gnus-signature gnus-cite-face-list)
   "List of faces that are not worth reading.
 If an article has more pages below the one you are looking at, but
 nothing on those pages is a word of at least three letters that is not
@@ -352,7 +373,7 @@
 Each citation in the article will be highlighted with a different face.
 The faces are taken from `gnus-cite-face-list'.
 Attribution lines are highlighted with the same face as the
-corresponding citation merged with `gnus-cite-attribution-face'.
+corresponding citation merged with the face `gnus-cite-attribution'.
 
 Text is considered cited if at least `gnus-cite-minimum-match-count'
 lines matches `message-cite-prefix-regexp' with the same prefix.
--- a/lisp/gnus/gnus-cus.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/gnus/gnus-cus.el	Tue Jun 21 15:42:45 2005 +0000
@@ -772,8 +772,8 @@
 This can be changed using the `\\[gnus-score-change-score-file]' command."
   (interactive (list gnus-current-score-file))
   (unless file
-    (error (format "No score file for %s"
-		   (gnus-group-decoded-name gnus-newsgroup-name))))
+    (error "No score file for %s"
+           (gnus-group-decoded-name gnus-newsgroup-name)))
   (let ((scores (gnus-score-load file))
 	(types (mapcar (lambda (entry)
 			 `(group :format "%v%h\n"
@@ -1014,9 +1014,9 @@
       ;; gnus-agent-cat-prepare-category-field as I don't want the
       ;; group list to appear when customizing a topic.
       (widget-insert "\n")
-      
-      (let ((symb 
-             (set 
+
+      (let ((symb
+             (set
               (make-local-variable 'gnus-agent-cat-groups)
               (widget-create
                `(choice
--- a/lisp/gnus/gnus-group.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/gnus/gnus-group.el	Tue Jun 21 15:42:45 2005 +0000
@@ -309,50 +309,50 @@
 (defcustom gnus-group-highlight
   '(;; Mail.
     ((and mailp (= unread 0) (eq level 1)) .
-     gnus-group-mail-1-empty-face)
+     gnus-group-mail-1-empty)
     ((and mailp (eq level 1)) .
-     gnus-group-mail-1-face)
+     gnus-group-mail-1)
     ((and mailp (= unread 0) (eq level 2)) .
-     gnus-group-mail-2-empty-face)
+     gnus-group-mail-2-empty)
     ((and mailp (eq level 2)) .
-     gnus-group-mail-2-face)
+     gnus-group-mail-2)
     ((and mailp (= unread 0) (eq level 3)) .
-     gnus-group-mail-3-empty-face)
+     gnus-group-mail-3-empty)
     ((and mailp (eq level 3)) .
-     gnus-group-mail-3-face)
+     gnus-group-mail-3)
     ((and mailp (= unread 0)) .
-     gnus-group-mail-low-empty-face)
+     gnus-group-mail-low-empty)
     ((and mailp) .
-     gnus-group-mail-low-face)
+     gnus-group-mail-low)
     ;; News.
     ((and (= unread 0) (eq level 1)) .
-     gnus-group-news-1-empty-face)
+     gnus-group-news-1-empty)
     ((and (eq level 1)) .
-     gnus-group-news-1-face)
+     gnus-group-news-1)
     ((and (= unread 0) (eq level 2)) .
-     gnus-group-news-2-empty-face)
+     gnus-group-news-2-empty)
     ((and (eq level 2)) .
-     gnus-group-news-2-face)
+     gnus-group-news-2)
     ((and (= unread 0) (eq level 3)) .
-     gnus-group-news-3-empty-face)
+     gnus-group-news-3-empty)
     ((and (eq level 3)) .
-     gnus-group-news-3-face)
+     gnus-group-news-3)
     ((and (= unread 0) (eq level 4)) .
-     gnus-group-news-4-empty-face)
+     gnus-group-news-4-empty)
     ((and (eq level 4)) .
-     gnus-group-news-4-face)
+     gnus-group-news-4)
     ((and (= unread 0) (eq level 5)) .
-     gnus-group-news-5-empty-face)
+     gnus-group-news-5-empty)
     ((and (eq level 5)) .
-     gnus-group-news-5-face)
+     gnus-group-news-5)
     ((and (= unread 0) (eq level 6)) .
-     gnus-group-news-6-empty-face)
+     gnus-group-news-6-empty)
     ((and (eq level 6)) .
-     gnus-group-news-6-face)
+     gnus-group-news-6)
     ((and (= unread 0)) .
-     gnus-group-news-low-empty-face)
+     gnus-group-news-low-empty)
     (t .
-     gnus-group-news-low-face))
+     gnus-group-news-low))
   "*Controls the highlighting of group buffer lines.
 
 Below is a list of `Form'/`Face' pairs.  When deciding how a a
--- a/lisp/gnus/gnus-picon.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/gnus/gnus-picon.el	Tue Jun 21 15:42:45 2005 +0000
@@ -74,13 +74,17 @@
   :type '(repeat string)
   :group 'gnus-picon)
 
-(defface gnus-picon-xbm-face '((t (:foreground "black" :background "white")))
+(defface gnus-picon-xbm '((t (:foreground "black" :background "white")))
   "Face to show xbm picon in."
   :group 'gnus-picon)
+;; backward-compatibility alias
+(put 'gnus-picon-xbm-face 'face-alias 'gnus-picon-xbm)
 
-(defface gnus-picon-face '((t (:foreground "black" :background "white")))
+(defface gnus-picon '((t (:foreground "black" :background "white")))
   "Face to show picon in."
   :group 'gnus-picon)
+;; backward-compatibility alias
+(put 'gnus-picon-face 'face-alias 'gnus-picon)
 
 ;;; Internal variables:
 
--- a/lisp/gnus/gnus-srvr.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/gnus/gnus-srvr.el	Tue Jun 21 15:42:45 2005 +0000
@@ -168,67 +168,77 @@
     "\C-c\C-i" gnus-info-find-node
     "\C-c\C-b" gnus-bug))
 
-(defface gnus-server-agent-face
+(defface gnus-server-agent
   '((((class color) (background light)) (:foreground "PaleTurquoise" :bold t))
     (((class color) (background dark)) (:foreground "PaleTurquoise" :bold t))
     (t (:bold t)))
   "Face used for displaying AGENTIZED servers"
   :group 'gnus-server-visual)
+;; backward-compatibility alias
+(put 'gnus-server-agent-face 'face-alias 'gnus-server-agent)
 
-(defface gnus-server-opened-face
+(defface gnus-server-opened
   '((((class color) (background light)) (:foreground "Green3" :bold t))
     (((class color) (background dark)) (:foreground "Green1" :bold t))
     (t (:bold t)))
   "Face used for displaying OPENED servers"
   :group 'gnus-server-visual)
+;; backward-compatibility alias
+(put 'gnus-server-opened-face 'face-alias 'gnus-server-opened)
 
-(defface gnus-server-closed-face
+(defface gnus-server-closed
   '((((class color) (background light)) (:foreground "Steel Blue" :italic t))
     (((class color) (background dark))
      (:foreground "Light Steel Blue" :italic t))
     (t (:italic t)))
   "Face used for displaying CLOSED servers"
   :group 'gnus-server-visual)
+;; backward-compatibility alias
+(put 'gnus-server-closed-face 'face-alias 'gnus-server-closed)
 
-(defface gnus-server-denied-face
+(defface gnus-server-denied
   '((((class color) (background light)) (:foreground "Red" :bold t))
     (((class color) (background dark)) (:foreground "Pink" :bold t))
     (t (:inverse-video t :bold t)))
   "Face used for displaying DENIED servers"
   :group 'gnus-server-visual)
+;; backward-compatibility alias
+(put 'gnus-server-denied-face 'face-alias 'gnus-server-denied)
 
-(defface gnus-server-offline-face
+(defface gnus-server-offline
   '((((class color) (background light)) (:foreground "Orange" :bold t))
     (((class color) (background dark)) (:foreground "Yellow" :bold t))
     (t (:inverse-video t :bold t)))
   "Face used for displaying OFFLINE servers"
   :group 'gnus-server-visual)
+;; backward-compatibility alias
+(put 'gnus-server-offline-face 'face-alias 'gnus-server-offline)
 
-(defcustom gnus-server-agent-face 'gnus-server-agent-face
+(defcustom gnus-server-agent-face 'gnus-server-agent
   "Face name to use on AGENTIZED servers."
   :version "22.1"
   :group 'gnus-server-visual
   :type 'face)
 
-(defcustom gnus-server-opened-face 'gnus-server-opened-face
+(defcustom gnus-server-opened-face 'gnus-server-opened
   "Face name to use on OPENED servers."
   :version "22.1"
   :group 'gnus-server-visual
   :type 'face)
 
-(defcustom gnus-server-closed-face 'gnus-server-closed-face
+(defcustom gnus-server-closed-face 'gnus-server-closed
   "Face name to use on CLOSED servers."
   :version "22.1"
   :group 'gnus-server-visual
   :type 'face)
 
-(defcustom gnus-server-denied-face 'gnus-server-denied-face
+(defcustom gnus-server-denied-face 'gnus-server-denied
   "Face name to use on DENIED servers."
   :version "22.1"
   :group 'gnus-server-visual
   :type 'face)
 
-(defcustom gnus-server-offline-face 'gnus-server-offline-face
+(defcustom gnus-server-offline-face 'gnus-server-offline
   "Face name to use on OFFLINE servers."
   :version "22.1"
   :group 'gnus-server-visual
--- a/lisp/gnus/gnus-sum.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/gnus/gnus-sum.el	Tue Jun 21 15:42:45 2005 +0000
@@ -917,7 +917,7 @@
   :group 'gnus-summary
   :type 'boolean)
 
-(defcustom gnus-summary-selected-face 'gnus-summary-selected-face
+(defcustom gnus-summary-selected-face 'gnus-summary-selected
   "Face used for highlighting the current article in the summary buffer."
   :group 'gnus-summary-visual
   :type 'face)
@@ -926,42 +926,42 @@
 
 (defcustom gnus-summary-highlight
   '(((eq mark gnus-canceled-mark)
-     . gnus-summary-cancelled-face)
+     . gnus-summary-cancelled)
     ((and uncached (> score default-high))
-     . gnus-summary-high-undownloaded-face)
+     . gnus-summary-high-undownloaded)
     ((and uncached (< score default-low))
-     . gnus-summary-low-undownloaded-face)
+     . gnus-summary-low-undownloaded)
     (uncached
-     . gnus-summary-normal-undownloaded-face)
+     . gnus-summary-normal-undownloaded)
     ((and (> score default-high)
 	  (or (eq mark gnus-dormant-mark)
 	      (eq mark gnus-ticked-mark)))
-     . gnus-summary-high-ticked-face)
+     . gnus-summary-high-ticked)
     ((and (< score default-low)
 	  (or (eq mark gnus-dormant-mark)
 	      (eq mark gnus-ticked-mark)))
-     . gnus-summary-low-ticked-face)
+     . gnus-summary-low-ticked)
     ((or (eq mark gnus-dormant-mark)
 	 (eq mark gnus-ticked-mark))
-     . gnus-summary-normal-ticked-face)
+     . gnus-summary-normal-ticked)
     ((and (> score default-high) (eq mark gnus-ancient-mark))
-     . gnus-summary-high-ancient-face)
+     . gnus-summary-high-ancient)
     ((and (< score default-low) (eq mark gnus-ancient-mark))
-     . gnus-summary-low-ancient-face)
+     . gnus-summary-low-ancient)
     ((eq mark gnus-ancient-mark)
-     . gnus-summary-normal-ancient-face)
+     . gnus-summary-normal-ancient)
     ((and (> score default-high) (eq mark gnus-unread-mark))
-     . gnus-summary-high-unread-face)
+     . gnus-summary-high-unread)
     ((and (< score default-low) (eq mark gnus-unread-mark))
-     . gnus-summary-low-unread-face)
+     . gnus-summary-low-unread)
     ((eq mark gnus-unread-mark)
-     . gnus-summary-normal-unread-face)
+     . gnus-summary-normal-unread)
     ((> score default-high)
-     . gnus-summary-high-read-face)
+     . gnus-summary-high-read)
     ((< score default-low)
-     . gnus-summary-low-read-face)
+     . gnus-summary-low-read)
     (t
-     . gnus-summary-normal-read-face))
+     . gnus-summary-normal-read))
   "*Controls the highlighting of summary buffer lines.
 
 A list of (FORM . FACE) pairs.  When deciding how a a particular
--- a/lisp/gnus/gnus.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/gnus/gnus.el	Tue Jun 21 15:42:45 2005 +0000
@@ -357,7 +357,7 @@
 ;; We define these group faces here to avoid the display
 ;; update forced when creating new faces.
 
-(defface gnus-group-news-1-face
+(defface gnus-group-news-1
   '((((class color)
       (background dark))
      (:foreground "PaleTurquoise" :bold t))
@@ -368,8 +368,10 @@
      ()))
   "Level 1 newsgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-news-1-empty-face
+;; backward-compatibility alias
+(put 'gnus-group-news-1-face 'face-alias 'gnus-group-news-1)
+
+(defface gnus-group-news-1-empty
   '((((class color)
       (background dark))
      (:foreground "PaleTurquoise"))
@@ -380,8 +382,10 @@
      ()))
   "Level 1 empty newsgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-news-2-face
+;; backward-compatibility alias
+(put 'gnus-group-news-1-empty-face 'face-alias 'gnus-group-news-1-empty)
+
+(defface gnus-group-news-2
   '((((class color)
       (background dark))
      (:foreground "turquoise" :bold t))
@@ -392,8 +396,10 @@
      ()))
   "Level 2 newsgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-news-2-empty-face
+;; backward-compatibility alias
+(put 'gnus-group-news-2-face 'face-alias 'gnus-group-news-2)
+
+(defface gnus-group-news-2-empty
   '((((class color)
       (background dark))
      (:foreground "turquoise"))
@@ -404,8 +410,10 @@
      ()))
   "Level 2 empty newsgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-news-3-face
+;; backward-compatibility alias
+(put 'gnus-group-news-2-empty-face 'face-alias 'gnus-group-news-2-empty)
+
+(defface gnus-group-news-3
   '((((class color)
       (background dark))
      (:bold t))
@@ -416,8 +424,10 @@
      ()))
   "Level 3 newsgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-news-3-empty-face
+;; backward-compatibility alias
+(put 'gnus-group-news-3-face 'face-alias 'gnus-group-news-3)
+
+(defface gnus-group-news-3-empty
   '((((class color)
       (background dark))
      ())
@@ -428,8 +438,10 @@
      ()))
   "Level 3 empty newsgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-news-4-face
+;; backward-compatibility alias
+(put 'gnus-group-news-3-empty-face 'face-alias 'gnus-group-news-3-empty)
+
+(defface gnus-group-news-4
   '((((class color)
       (background dark))
      (:bold t))
@@ -440,8 +452,10 @@
      ()))
   "Level 4 newsgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-news-4-empty-face
+;; backward-compatibility alias
+(put 'gnus-group-news-4-face 'face-alias 'gnus-group-news-4)
+
+(defface gnus-group-news-4-empty
   '((((class color)
       (background dark))
      ())
@@ -452,8 +466,10 @@
      ()))
   "Level 4 empty newsgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-news-5-face
+;; backward-compatibility alias
+(put 'gnus-group-news-4-empty-face 'face-alias 'gnus-group-news-4-empty)
+
+(defface gnus-group-news-5
   '((((class color)
       (background dark))
      (:bold t))
@@ -464,8 +480,10 @@
      ()))
   "Level 5 newsgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-news-5-empty-face
+;; backward-compatibility alias
+(put 'gnus-group-news-5-face 'face-alias 'gnus-group-news-5)
+
+(defface gnus-group-news-5-empty
   '((((class color)
       (background dark))
      ())
@@ -476,8 +494,10 @@
      ()))
   "Level 5 empty newsgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-news-6-face
+;; backward-compatibility alias
+(put 'gnus-group-news-5-empty-face 'face-alias 'gnus-group-news-5-empty)
+
+(defface gnus-group-news-6
   '((((class color)
       (background dark))
      (:bold t))
@@ -488,8 +508,10 @@
      ()))
   "Level 6 newsgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-news-6-empty-face
+;; backward-compatibility alias
+(put 'gnus-group-news-6-face 'face-alias 'gnus-group-news-6)
+
+(defface gnus-group-news-6-empty
   '((((class color)
       (background dark))
      ())
@@ -500,8 +522,10 @@
      ()))
   "Level 6 empty newsgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-news-low-face
+;; backward-compatibility alias
+(put 'gnus-group-news-6-empty-face 'face-alias 'gnus-group-news-6-empty)
+
+(defface gnus-group-news-low
   '((((class color)
       (background dark))
      (:foreground "DarkTurquoise" :bold t))
@@ -512,8 +536,10 @@
      ()))
   "Low level newsgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-news-low-empty-face
+;; backward-compatibility alias
+(put 'gnus-group-news-low-face 'face-alias 'gnus-group-news-low)
+
+(defface gnus-group-news-low-empty
   '((((class color)
       (background dark))
      (:foreground "DarkTurquoise"))
@@ -524,8 +550,10 @@
      ()))
   "Low level empty newsgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-mail-1-face
+;; backward-compatibility alias
+(put 'gnus-group-news-low-empty-face 'face-alias 'gnus-group-news-low-empty)
+
+(defface gnus-group-mail-1
   '((((class color)
       (background dark))
      (:foreground "aquamarine1" :bold t))
@@ -536,8 +564,10 @@
      (:bold t)))
   "Level 1 mailgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-mail-1-empty-face
+;; backward-compatibility alias
+(put 'gnus-group-mail-1-face 'face-alias 'gnus-group-mail-1)
+
+(defface gnus-group-mail-1-empty
   '((((class color)
       (background dark))
      (:foreground "aquamarine1"))
@@ -548,8 +578,10 @@
      (:italic t :bold t)))
   "Level 1 empty mailgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-mail-2-face
+;; backward-compatibility alias
+(put 'gnus-group-mail-1-empty-face 'face-alias 'gnus-group-mail-1-empty)
+
+(defface gnus-group-mail-2
   '((((class color)
       (background dark))
      (:foreground "aquamarine2" :bold t))
@@ -560,8 +592,10 @@
      (:bold t)))
   "Level 2 mailgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-mail-2-empty-face
+;; backward-compatibility alias
+(put 'gnus-group-mail-2-face 'face-alias 'gnus-group-mail-2)
+
+(defface gnus-group-mail-2-empty
   '((((class color)
       (background dark))
      (:foreground "aquamarine2"))
@@ -572,8 +606,10 @@
      (:bold t)))
   "Level 2 empty mailgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-mail-3-face
+;; backward-compatibility alias
+(put 'gnus-group-mail-2-empty-face 'face-alias 'gnus-group-mail-2-empty)
+
+(defface gnus-group-mail-3
   '((((class color)
       (background dark))
      (:foreground "aquamarine3" :bold t))
@@ -584,8 +620,10 @@
      (:bold t)))
   "Level 3 mailgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-mail-3-empty-face
+;; backward-compatibility alias
+(put 'gnus-group-mail-3-face 'face-alias 'gnus-group-mail-3)
+
+(defface gnus-group-mail-3-empty
   '((((class color)
       (background dark))
      (:foreground "aquamarine3"))
@@ -596,8 +634,10 @@
      ()))
   "Level 3 empty mailgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-mail-low-face
+;; backward-compatibility alias
+(put 'gnus-group-mail-3-empty-face 'face-alias 'gnus-group-mail-3-empty)
+
+(defface gnus-group-mail-low
   '((((class color)
       (background dark))
      (:foreground "aquamarine4" :bold t))
@@ -608,8 +648,10 @@
      (:bold t)))
   "Low level mailgroup face."
   :group 'gnus-group)
-
-(defface gnus-group-mail-low-empty-face
+;; backward-compatibility alias
+(put 'gnus-group-mail-low-face 'face-alias 'gnus-group-mail-low)
+
+(defface gnus-group-mail-low-empty
   '((((class color)
       (background dark))
      (:foreground "aquamarine4"))
@@ -620,21 +662,26 @@
      (:bold t)))
   "Low level empty mailgroup face."
   :group 'gnus-group)
+;; backward-compatibility alias
+(put 'gnus-group-mail-low-empty-face 'face-alias 'gnus-group-mail-low-empty)
 
 ;; Summary mode faces.
 
-(defface gnus-summary-selected-face '((t
-				       (:underline t)))
+(defface gnus-summary-selected '((t (:underline t)))
   "Face used for selected articles."
   :group 'gnus-summary)
-
-(defface gnus-summary-cancelled-face
+;; backward-compatibility alias
+(put 'gnus-summary-selected-face 'face-alias 'gnus-summary-selected)
+
+(defface gnus-summary-cancelled
   '((((class color))
      (:foreground "yellow" :background "black")))
   "Face used for cancelled articles."
   :group 'gnus-summary)
-
-(defface gnus-summary-high-ticked-face
+;; backward-compatibility alias
+(put 'gnus-summary-cancelled-face 'face-alias 'gnus-summary-cancelled)
+
+(defface gnus-summary-high-ticked
   '((((class color)
       (background dark))
      (:foreground "pink" :bold t))
@@ -645,8 +692,10 @@
      (:bold t)))
   "Face used for high interest ticked articles."
   :group 'gnus-summary)
-
-(defface gnus-summary-low-ticked-face
+;; backward-compatibility alias
+(put 'gnus-summary-high-ticked-face 'face-alias 'gnus-summary-high-ticked)
+
+(defface gnus-summary-low-ticked
   '((((class color)
       (background dark))
      (:foreground "pink" :italic t))
@@ -657,8 +706,10 @@
      (:italic t)))
   "Face used for low interest ticked articles."
   :group 'gnus-summary)
-
-(defface gnus-summary-normal-ticked-face
+;; backward-compatibility alias
+(put 'gnus-summary-low-ticked-face 'face-alias 'gnus-summary-low-ticked)
+
+(defface gnus-summary-normal-ticked
   '((((class color)
       (background dark))
      (:foreground "pink"))
@@ -669,8 +720,10 @@
      ()))
   "Face used for normal interest ticked articles."
   :group 'gnus-summary)
-
-(defface gnus-summary-high-ancient-face
+;; backward-compatibility alias
+(put 'gnus-summary-normal-ticked-face 'face-alias 'gnus-summary-normal-ticked)
+
+(defface gnus-summary-high-ancient
   '((((class color)
       (background dark))
      (:foreground "SkyBlue" :bold t))
@@ -681,8 +734,10 @@
      (:bold t)))
   "Face used for high interest ancient articles."
   :group 'gnus-summary)
-
-(defface gnus-summary-low-ancient-face
+;; backward-compatibility alias
+(put 'gnus-summary-high-ancient-face 'face-alias 'gnus-summary-high-ancient)
+
+(defface gnus-summary-low-ancient
   '((((class color)
       (background dark))
      (:foreground "SkyBlue" :italic t))
@@ -693,8 +748,10 @@
      (:italic t)))
   "Face used for low interest ancient articles."
   :group 'gnus-summary)
-
-(defface gnus-summary-normal-ancient-face
+;; backward-compatibility alias
+(put 'gnus-summary-low-ancient-face 'face-alias 'gnus-summary-low-ancient)
+
+(defface gnus-summary-normal-ancient
   '((((class color)
       (background dark))
      (:foreground "SkyBlue"))
@@ -705,8 +762,10 @@
      ()))
   "Face used for normal interest ancient articles."
   :group 'gnus-summary)
-
-(defface gnus-summary-high-undownloaded-face
+;; backward-compatibility alias
+(put 'gnus-summary-normal-ancient-face 'face-alias 'gnus-summary-normal-ancient)
+
+(defface gnus-summary-high-undownloaded
    '((((class color)
        (background light))
       (:bold t :foreground "cyan4"))
@@ -715,8 +774,10 @@
      (t (:inverse-video t :bold t)))
   "Face used for high interest uncached articles."
   :group 'gnus-summary)
-
-(defface gnus-summary-low-undownloaded-face
+;; backward-compatibility alias
+(put 'gnus-summary-high-undownloaded-face 'face-alias 'gnus-summary-high-undownloaded)
+
+(defface gnus-summary-low-undownloaded
    '((((class color)
        (background light))
       (:italic t :foreground "cyan4" :bold nil))
@@ -725,8 +786,10 @@
      (t (:inverse-video t :italic t)))
   "Face used for low interest uncached articles."
   :group 'gnus-summary)
-
-(defface gnus-summary-normal-undownloaded-face
+;; backward-compatibility alias
+(put 'gnus-summary-low-undownloaded-face 'face-alias 'gnus-summary-low-undownloaded)
+
+(defface gnus-summary-normal-undownloaded
    '((((class color)
        (background light))
       (:foreground "cyan4" :bold nil))
@@ -735,26 +798,34 @@
      (t (:inverse-video t)))
   "Face used for normal interest uncached articles."
   :group 'gnus-summary)
-
-(defface gnus-summary-high-unread-face
+;; backward-compatibility alias
+(put 'gnus-summary-normal-undownloaded-face 'face-alias 'gnus-summary-normal-undownloaded)
+
+(defface gnus-summary-high-unread
   '((t
      (:bold t)))
   "Face used for high interest unread articles."
   :group 'gnus-summary)
-
-(defface gnus-summary-low-unread-face
+;; backward-compatibility alias
+(put 'gnus-summary-high-unread-face 'face-alias 'gnus-summary-high-unread)
+
+(defface gnus-summary-low-unread
   '((t
      (:italic t)))
   "Face used for low interest unread articles."
   :group 'gnus-summary)
-
-(defface gnus-summary-normal-unread-face
+;; backward-compatibility alias
+(put 'gnus-summary-low-unread-face 'face-alias 'gnus-summary-low-unread)
+
+(defface gnus-summary-normal-unread
   '((t
      ()))
   "Face used for normal interest unread articles."
   :group 'gnus-summary)
-
-(defface gnus-summary-high-read-face
+;; backward-compatibility alias
+(put 'gnus-summary-normal-unread-face 'face-alias 'gnus-summary-normal-unread)
+
+(defface gnus-summary-high-read
   '((((class color)
       (background dark))
      (:foreground "PaleGreen"
@@ -767,8 +838,10 @@
      (:bold t)))
   "Face used for high interest read articles."
   :group 'gnus-summary)
-
-(defface gnus-summary-low-read-face
+;; backward-compatibility alias
+(put 'gnus-summary-high-read-face 'face-alias 'gnus-summary-high-read)
+
+(defface gnus-summary-low-read
   '((((class color)
       (background dark))
      (:foreground "PaleGreen"
@@ -781,8 +854,10 @@
      (:italic t)))
   "Face used for low interest read articles."
   :group 'gnus-summary)
-
-(defface gnus-summary-normal-read-face
+;; backward-compatibility alias
+(put 'gnus-summary-low-read-face 'face-alias 'gnus-summary-low-read)
+
+(defface gnus-summary-normal-read
   '((((class color)
       (background dark))
      (:foreground "PaleGreen"))
@@ -793,6 +868,8 @@
      ()))
   "Face used for normal interest read articles."
   :group 'gnus-summary)
+;; backward-compatibility alias
+(put 'gnus-summary-normal-read-face 'face-alias 'gnus-summary-normal-read)
 
 
 ;;;
@@ -836,7 +913,7 @@
 (eval-and-compile
   (autoload 'gnus-play-jingle "gnus-audio"))
 
-(defface gnus-splash-face
+(defface gnus-splash
   '((((class color)
       (background dark))
      (:foreground "#888888"))
@@ -847,6 +924,8 @@
      ()))
   "Face for the splash screen."
   :group 'gnus)
+;; backward-compatibility alias
+(put 'gnus-splash-face 'face-alias 'gnus-splash)
 
 (defun gnus-splash ()
   (save-excursion
@@ -925,11 +1004,11 @@
 			      ("background" . ,(face-background 'default))))
 		      (:type pbm :file "gnus.pbm"
 			     ;; Account for the pbm's blackground.
-			     :background ,(face-foreground 'gnus-splash-face)
+			     :background ,(face-foreground 'gnus-splash)
 			     :foreground ,(face-background 'default))
 		      (:type xbm :file "gnus.xbm"
 			     ;; Account for the xbm's blackground.
-			     :background ,(face-foreground 'gnus-splash-face)
+			     :background ,(face-foreground 'gnus-splash)
 			     :foreground ,(face-background 'default))))))
        (when image
 	 (let ((size (image-size image)))
@@ -973,7 +1052,7 @@
 	   (rest (- wheight pheight)))
       (insert (make-string (max 0 (* 2 (/ rest 3))) ?\n)))
     ;; Fontify some.
-    (put-text-property (point-min) (point-max) 'face 'gnus-splash-face)
+    (put-text-property (point-min) (point-max) 'face 'gnus-splash)
     (setq gnus-simple-splash t)))
   (goto-char (point-min))
   (setq mode-line-buffer-identification (concat " " gnus-version))
--- a/lisp/gnus/message.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/gnus/message.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1124,7 +1124,7 @@
     table)
   "Syntax table used while in Message mode.")
 
-(defface message-header-to-face
+(defface message-header-to
   '((((class color)
       (background dark))
      (:foreground "green2" :bold t))
@@ -1135,8 +1135,10 @@
      (:bold t :italic t)))
   "Face used for displaying From headers."
   :group 'message-faces)
-
-(defface message-header-cc-face
+;; backward-compatibility alias
+(put 'message-header-to-face 'face-alias 'message-header-to)
+
+(defface message-header-cc
   '((((class color)
       (background dark))
      (:foreground "green4" :bold t))
@@ -1147,8 +1149,10 @@
      (:bold t)))
   "Face used for displaying Cc headers."
   :group 'message-faces)
-
-(defface message-header-subject-face
+;; backward-compatibility alias
+(put 'message-header-cc-face 'face-alias 'message-header-cc)
+
+(defface message-header-subject
   '((((class color)
       (background dark))
      (:foreground "green3"))
@@ -1159,8 +1163,10 @@
      (:bold t)))
   "Face used for displaying subject headers."
   :group 'message-faces)
-
-(defface message-header-newsgroups-face
+;; backward-compatibility alias
+(put 'message-header-subject-face 'face-alias 'message-header-subject)
+
+(defface message-header-newsgroups
   '((((class color)
       (background dark))
      (:foreground "yellow" :bold t :italic t))
@@ -1171,8 +1177,10 @@
      (:bold t :italic t)))
   "Face used for displaying newsgroups headers."
   :group 'message-faces)
-
-(defface message-header-other-face
+;; backward-compatibility alias
+(put 'message-header-newsgroups-face 'face-alias 'message-header-newsgroups)
+
+(defface message-header-other
   '((((class color)
       (background dark))
      (:foreground "#b00000"))
@@ -1183,8 +1191,10 @@
      (:bold t :italic t)))
   "Face used for displaying newsgroups headers."
   :group 'message-faces)
-
-(defface message-header-name-face
+;; backward-compatibility alias
+(put 'message-header-other-face 'face-alias 'message-header-other)
+
+(defface message-header-name
   '((((class color)
       (background dark))
      (:foreground "DarkGreen"))
@@ -1195,8 +1205,10 @@
      (:bold t)))
   "Face used for displaying header names."
   :group 'message-faces)
-
-(defface message-header-xheader-face
+;; backward-compatibility alias
+(put 'message-header-name-face 'face-alias 'message-header-name)
+
+(defface message-header-xheader
   '((((class color)
       (background dark))
      (:foreground "blue"))
@@ -1207,8 +1219,10 @@
      (:bold t)))
   "Face used for displaying X-Header headers."
   :group 'message-faces)
-
-(defface message-separator-face
+;; backward-compatibility alias
+(put 'message-header-xheader-face 'face-alias 'message-header-xheader)
+
+(defface message-separator
   '((((class color)
       (background dark))
      (:foreground "blue3"))
@@ -1219,8 +1233,10 @@
      (:bold t)))
   "Face used for displaying the separator."
   :group 'message-faces)
-
-(defface message-cited-text-face
+;; backward-compatibility alias
+(put 'message-separator-face 'face-alias 'message-separator)
+
+(defface message-cited-text
   '((((class color)
       (background dark))
      (:foreground "red"))
@@ -1231,8 +1247,10 @@
      (:bold t)))
   "Face used for displaying cited text names."
   :group 'message-faces)
-
-(defface message-mml-face
+;; backward-compatibility alias
+(put 'message-cited-text-face 'face-alias 'message-cited-text)
+
+(defface message-mml
   '((((class color)
       (background dark))
      (:foreground "ForestGreen"))
@@ -1243,6 +1261,8 @@
      (:bold t)))
   "Face used for displaying MML."
   :group 'message-faces)
+;; backward-compatibility alias
+(put 'message-mml-face 'face-alias 'message-mml)
 
 (defun message-font-lock-make-header-matcher (regexp)
   (let ((form
@@ -1266,41 +1286,41 @@
   (let ((content "[ \t]*\\(.+\\(\n[ \t].*\\)*\\)\n?"))
     `((,(message-font-lock-make-header-matcher
 	 (concat "^\\([Tt]o:\\)" content))
-       (1 'message-header-name-face)
-       (2 'message-header-to-face nil t))
+       (1 'message-header-name)
+       (2 'message-header-to nil t))
       (,(message-font-lock-make-header-matcher
 	 (concat "^\\(^[GBF]?[Cc][Cc]:\\|^[Rr]eply-[Tt]o:\\)" content))
-       (1 'message-header-name-face)
-       (2 'message-header-cc-face nil t))
+       (1 'message-header-name)
+       (2 'message-header-cc nil t))
       (,(message-font-lock-make-header-matcher
 	 (concat "^\\([Ss]ubject:\\)" content))
-       (1 'message-header-name-face)
-       (2 'message-header-subject-face nil t))
+       (1 'message-header-name)
+       (2 'message-header-subject nil t))
       (,(message-font-lock-make-header-matcher
 	 (concat "^\\([Nn]ewsgroups:\\|Followup-[Tt]o:\\)" content))
-       (1 'message-header-name-face)
-       (2 'message-header-newsgroups-face nil t))
+       (1 'message-header-name)
+       (2 'message-header-newsgroups nil t))
       (,(message-font-lock-make-header-matcher
 	 (concat "^\\([A-Z][^: \n\t]+:\\)" content))
-       (1 'message-header-name-face)
-       (2 'message-header-other-face nil t))
+       (1 'message-header-name)
+       (2 'message-header-other nil t))
       (,(message-font-lock-make-header-matcher
 	 (concat "^\\(X-[A-Za-z0-9-]+:\\|In-Reply-To:\\)" content))
-       (1 'message-header-name-face)
-       (2 'message-header-name-face))
+       (1 'message-header-name)
+       (2 'message-header-name))
       ,@(if (and mail-header-separator
 		 (not (equal mail-header-separator "")))
 	    `((,(concat "^\\(" (regexp-quote mail-header-separator) "\\)$")
-	       1 'message-separator-face))
+	       1 'message-separator))
 	  nil)
       ((lambda (limit)
 	 (re-search-forward (concat "^\\("
 				    message-cite-prefix-regexp
 				    "\\).*")
 			    limit t))
-       (0 'message-cited-text-face))
+       (0 'message-cited-text))
       ("<#/?\\(multipart\\|part\\|external\\|mml\\|secure\\)[^>]*>"
-       (0 'message-mml-face))))
+       (0 'message-mml))))
   "Additional expressions to highlight in Message mode.")
 
 
--- a/lisp/gnus/mm-extern.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/gnus/mm-extern.el	Tue Jun 21 15:42:45 2005 +0000
@@ -52,7 +52,7 @@
     (mm-disable-multibyte)
     (if (file-exists-p name)
 	(mm-insert-file-contents name nil nil nil nil t)
-      (error (format "File %s is gone" name)))))
+      (error "File %s is gone" name))))
 
 (defun mm-extern-url (handle)
   (erase-buffer)
@@ -124,7 +124,7 @@
 	 handles)
     (unless (mm-handle-cache handle)
       (unless func
-	(error (format "Access type (%s) is not supported" access-type)))
+	(error "Access type (%s) is not supported" access-type))
       (with-temp-buffer
 	(mm-insert-part handle)
 	(goto-char (point-max))
--- a/lisp/gnus/pop3.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/gnus/pop3.el	Tue Jun 21 15:42:45 2005 +0000
@@ -385,7 +385,7 @@
   (pop3-send-command process (format "USER %s" user))
   (let ((response (pop3-read-response process t)))
     (if (not (and response (string-match "+OK" response)))
-	(error (format "USER %s not valid" user)))))
+	(error "USER %s not valid" user))))
 
 (defun pop3-pass (process)
   "Send authentication information to the server."
--- a/lisp/gnus/sieve-mode.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/gnus/sieve-mode.el	Tue Jun 21 15:42:45 2005 +0000
@@ -65,10 +65,10 @@
 
 ;; Font-lock
 
-(defvar sieve-control-commands-face 'sieve-control-commands-face
+(defvar sieve-control-commands-face 'sieve-control-commands
   "Face name used for Sieve Control Commands.")
 
-(defface sieve-control-commands-face
+(defface sieve-control-commands
   '((((type tty) (class color)) (:foreground "blue" :weight light))
     (((class grayscale) (background light)) (:foreground "LightGray" :bold t))
     (((class grayscale) (background dark)) (:foreground "DimGray" :bold t))
@@ -77,22 +77,26 @@
     (t (:bold t)))
   "Face used for Sieve Control Commands."
   :group 'sieve)
+;; backward-compatibility alias
+(put 'sieve-control-commands-face 'face-alias 'sieve-control-commands)
 
-(defvar sieve-action-commands-face 'sieve-action-commands-face
+(defvar sieve-action-commands-face 'sieve-action-commands
   "Face name used for Sieve Action Commands.")
 
-(defface sieve-action-commands-face
+(defface sieve-action-commands
   '((((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)))
   "Face used for Sieve Action Commands."
   :group 'sieve)
+;; backward-compatibility alias
+(put 'sieve-action-commands-face 'face-alias 'sieve-action-commands)
 
-(defvar sieve-test-commands-face 'sieve-test-commands-face
+(defvar sieve-test-commands-face 'sieve-test-commands
   "Face name used for Sieve Test Commands.")
 
-(defface sieve-test-commands-face
+(defface sieve-test-commands
   '((((type tty) (class color)) (:foreground "magenta"))
     (((class grayscale) (background light))
      (:foreground "LightGray" :bold t :underline t))
@@ -103,11 +107,13 @@
     (t (:bold t :underline t)))
   "Face used for Sieve Test Commands."
   :group 'sieve)
+;; backward-compatibility alias
+(put 'sieve-test-commands-face 'face-alias 'sieve-test-commands)
 
-(defvar sieve-tagged-arguments-face 'sieve-tagged-arguments-face
+(defvar sieve-tagged-arguments-face 'sieve-tagged-arguments
   "Face name used for Sieve Tagged Arguments.")
 
-(defface sieve-tagged-arguments-face
+(defface sieve-tagged-arguments
   '((((type tty) (class color)) (:foreground "cyan" :weight bold))
     (((class grayscale) (background light)) (:foreground "LightGray" :bold t))
     (((class grayscale) (background dark)) (:foreground "DimGray" :bold t))
@@ -116,6 +122,8 @@
     (t (:bold t)))
   "Face used for Sieve Tagged Arguments."
   :group 'sieve)
+;; backward-compatibility alias
+(put 'sieve-tagged-arguments-face 'face-alias 'sieve-tagged-arguments)
 
 
 (defconst sieve-font-lock-keywords
--- a/lisp/gnus/spam.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/gnus/spam.el	Tue Jun 21 15:42:45 2005 +0000
@@ -300,7 +300,7 @@
   :type '(radio (const nil) regexp)
   :group 'spam)
 
-(defface spam-face
+(defface spam
   '((((class color) (type tty) (background dark))
      (:foreground "gray80" :background "gray50"))
     (((class color) (type tty) (background light))
@@ -312,8 +312,10 @@
     (t :inverse-video t))
   "Face for spam-marked articles."
   :group 'spam)
+;; backward-compatibility alias
+(put 'spam-face 'face-alias 'spam)
 
-(defcustom spam-face 'spam-face
+(defcustom spam-face 'spam
   "Face for spam-marked articles."
   :type 'face
   :group 'spam)
@@ -1805,8 +1807,8 @@
   "Install the spam.el hooks and do other initialization"
   (interactive)
   (setq spam-install-hooks t)
-  ;; TODO: How do we redo this every time spam-face is customized?
-  (push '((eq mark gnus-spam-mark) . spam-face)
+  ;; TODO: How do we redo this every time the `spam' face is customized?
+  (push '((eq mark gnus-spam-mark) . spam)
 	gnus-summary-highlight)
   ;; Add hooks for loading and saving the spam stats
   (add-hook 'gnus-save-newsrc-hook 'spam-maybe-spam-stat-save)
--- a/lisp/ido.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/ido.el	Tue Jun 21 15:42:45 2005 +0000
@@ -770,6 +770,12 @@
   "*Font used by ido for highlighting its indicators."
   :group 'ido)
 
+(defface ido-incomplete-regexp
+  '((t
+     (:inherit font-lock-warning-face)))
+  "Ido face for indicating incomplete regexps."
+  :group 'ido)
+
 (defcustom ido-make-file-list-hook  nil
   "*List of functions to run when the list of matching files is created.
 Each function on the list may modify the dynamically bound variable
@@ -959,6 +965,8 @@
 Is set by ido functions to the current minibuffer-depth, so that
 it doesn't interfere with other minibuffer usage.")
 
+(defvar ido-incomplete-regexp nil
+  "Non-nil if an incomplete regexp is entered.")
 
 ;;; Variables with dynamic bindings.
 ;;; Declared here to keep the byte compiler quiet.
@@ -2170,6 +2178,9 @@
   (interactive)
   (let (res)
     (cond
+     (ido-incomplete-regexp
+      ;; Do nothing
+      )
      ((and (memq ido-cur-item '(file dir))
 	   (string-match "[$]" ido-text))
       (let ((evar (substitute-in-file-name (concat ido-current-directory ido-text))))
@@ -2394,8 +2405,9 @@
 (defun ido-exit-minibuffer ()
   "Exit minibuffer, but make sure we have a match if one is needed."
   (interactive)
-  (if (or (not ido-require-match)
-	   (ido-existing-item-p))
+  (if (and (or (not ido-require-match)
+               (ido-existing-item-p))
+           (not ido-incomplete-regexp))
       (exit-minibuffer)))
 
 (defun ido-select-text ()
@@ -3275,22 +3287,30 @@
 	 full-matches
 	 prefix-matches
 	 matches)
-    (mapcar
-     (lambda (item)
-       (let ((name (ido-name item)))
-	 (if (and (or non-prefix-dot
-		      (if (= (aref ido-text 0) ?.)
-			  (= (aref name 0) ?.)
-			(/= (aref name 0) ?.)))
-		  (string-match re name))
-	     (cond
-	      ((and full-re (string-match full-re name))
-	       (setq full-matches (cons item full-matches)))
-	      ((and prefix-re (string-match prefix-re name))
-	       (setq prefix-matches (cons item prefix-matches)))
-	      (t (setq matches (cons item matches))))))
-       t)
-     items)
+    (setq ido-incomplete-regexp nil)
+    (condition-case error
+        (mapcar
+         (lambda (item)
+           (let ((name (ido-name item)))
+             (if (and (or non-prefix-dot
+                          (if (= (aref ido-text 0) ?.)
+                              (= (aref name 0) ?.)
+                            (/= (aref name 0) ?.)))
+                      (string-match re name))
+                 (cond
+                  ((and full-re (string-match full-re name))
+                   (setq full-matches (cons item full-matches)))
+                  ((and prefix-re (string-match prefix-re name))
+                   (setq prefix-matches (cons item prefix-matches)))
+                  (t (setq matches (cons item matches))))))
+           t)
+         items)
+      (invalid-regexp
+       (setq ido-incomplete-regexp t
+             ;; Consider the invalid regexp message internally as a
+             ;; special-case single match, and handle appropriately
+             ;; elsewhere.
+             matches (cdr error))))
     (if prefix-matches
 	(setq matches (nconc prefix-matches matches)))
     (if full-matches
@@ -4048,7 +4068,9 @@
 	  (setq first (format "%s" fn))
 	  (put-text-property 0 ln 'face
 			     (if (= (length comps) 1)
-				 'ido-only-match
+                                 (if ido-incomplete-regexp
+                                     'ido-incomplete-regexp
+                                   'ido-only-match)
 			       'ido-first-match)
 			     first)
 	  (if ind (setq first (concat first ind)))
@@ -4063,14 +4085,22 @@
 	    (ido-report-no-match
 	     (nth 6 ido-decorations))  ;; [No match]
 	    (t "")))
-
+	  (ido-incomplete-regexp
+           (concat " " (car comps)))
 	  ((null (cdr comps))		;one match
-	   (concat (if (> (length (ido-name (car comps))) (length name))
-		       ;; when there is one match, show the matching file name in full
-		       (concat (nth 4 ido-decorations)  ;; [ ... ]
-			       (ido-name (car comps))
-			       (nth 5 ido-decorations))
-		     "")
+	   (concat (if (if (not ido-enable-regexp)
+                           (= (length (ido-name (car comps))) (length name))
+                         ;; We can't rely on the length of the input
+                         ;; for regexps, so explicitly check for a
+                         ;; complete match
+                         (string-match name (ido-name (car comps)))
+                         (string-equal (match-string 0 (ido-name (car comps)))
+                                       (ido-name (car comps))))
+                       ""
+                     ;; when there is one match, show the matching file name in full
+                     (concat (nth 4 ido-decorations)  ;; [ ... ]
+                             (ido-name (car comps))
+                             (nth 5 ido-decorations)))
 		   (if (not ido-use-faces) (nth 7 ido-decorations))))  ;; [Matched]
 	  (t				;multiple matches
 	   (let* ((items (if (> ido-max-prospects 0) (1+ ido-max-prospects) 999))
--- a/lisp/info.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/info.el	Tue Jun 21 15:42:45 2005 +0000
@@ -83,10 +83,10 @@
   :group 'info)
 
 (defface info-xref
-  '((((min-colors 88) 
+  '((((min-colors 88)
       (class color) (background light)) :foreground "blue1" :underline t)
     (((class color) (background light)) :foreground "blue" :underline t)
-    (((min-colors 88) 
+    (((min-colors 88)
       (class color) (background dark)) :foreground "cyan1" :underline t)
     (((class color) (background dark)) :foreground "cyan" :underline t)
     (t :underline t))
@@ -1272,7 +1272,7 @@
 ;; Hide any construct of the general form ^@[^@-^_][ ...  ^@[^@-^_]],
 ;; including one optional trailing newline.
 (defun Info-hide-cookies-node ()
-  "Hide unrecognised cookies in current node."
+  "Hide unrecognized cookies in current node."
   (save-excursion
     (let ((inhibit-read-only t)
 	  (case-fold-search t))
--- a/lisp/language/ethio-util.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/language/ethio-util.el	Tue Jun 21 15:42:45 2005 +0000
@@ -141,7 +141,7 @@
 
 (defvar ethio-use-three-dot-question nil
   "*Non-nil means associate ASCII question mark with Ethiopic old style question mark (three vertically stacked dots).
-If nil, associate ASCII question mark with Ethiopic stylised question
+If nil, associate ASCII question mark with Ethiopic stylized question
 mark.  All SERA <--> FIDEL converters refer this variable.")
 
 (defvar ethio-quote-vowel-always nil
@@ -726,7 +726,7 @@
 
 (defun ethio-tilde-escape nil
   "Handle a SERA tilde escape in Ethiopic section and delete it.
-Delete the escape even it is not recognised."
+Delete the escape even it is not recognized."
 
   (let ((p (point)) command)
     (skip-chars-forward "^ \t\n\\\\")
--- a/lisp/longlines.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/longlines.el	Tue Jun 21 15:42:45 2005 +0000
@@ -60,7 +60,8 @@
   :type 'boolean)
 
 (defcustom longlines-show-hard-newlines nil
-  "*Non-nil means each hard newline is marked with a symbol.
+  "*Non-nil means each hard newline is marked on the screen.
+\(The variable `longlines-show-effect' controls what they look like.)
 You can also enable the display temporarily, using the command
 `longlines-show-hard-newlines'"
   :group 'longlines
@@ -93,12 +94,12 @@
 `fill-column'.  The soft newlines used for line wrapping will not
 show up when the text is yanked or saved to disk.
 
-If `longlines-auto-wrap' is non-nil, lines are automatically
+If the variable `longlines-auto-wrap' is non-nil, lines are automatically
 wrapped whenever the buffer is changed.  You can always call
 `fill-paragraph' to fill individual paragraphs.
 
-If `longlines-show-hard-newlines' is non-nil, hard newlines will
-be marked by a symbol."
+If the variable `longlines-show-hard-newlines' is non-nil, hard newlines
+are indicated with a symbol."
   :group 'longlines :lighter " ll"
   (if longlines-mode
       ;; Turn on longlines mode
--- a/lisp/ls-lisp.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/ls-lisp.el	Tue Jun 21 15:42:45 2005 +0000
@@ -451,7 +451,7 @@
 Also, for regular files that are executable, append `*'.
 The file type indicators are `/' for directories, `@' for symbolic
 links, `|' for FIFOs, `=' for sockets, and nothing for regular files.
-\[But FIFOs and sockets are not recognised.]
+\[But FIFOs and sockets are not recognized.]
 FILEDATA has the form (filename . `file-attributes').  Its `cadr' is t
 for directory, string (name linked to) for symbolic link, or nil."
   (let ((dir (cadr filedata)) (file-name (car filedata)))
--- a/lisp/mail/sendmail.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/mail/sendmail.el	Tue Jun 21 15:42:45 2005 +0000
@@ -42,6 +42,12 @@
   :prefix "mail-"
   :group 'mail)
 
+(defcustom mail-setup-with-from t
+  "Non-nil means insert `From:' field when setting up the message."
+  :type 'binary
+  :group 'sendmail
+  :version "22.1")
+
 ;;;###autoload
 (defcustom mail-from-style 'angles "\
 *Specifies how \"From:\" fields look.
@@ -416,6 +422,8 @@
   (setq mail-send-actions actions)
   (setq mail-reply-action replybuffer)
   (goto-char (point-min))
+  (if mail-setup-with-from
+      (mail-insert-from-field))
   (insert "To: ")
   (save-excursion
     (if to
@@ -884,6 +892,62 @@
 of outgoing mails regardless of the current language environment.
 See also the function `select-message-coding-system'.")
 
+(defun mail-insert-from-field ()
+  (let* ((login user-mail-address)
+	 (fullname (user-full-name))
+	 (quote-fullname nil))
+    (if (string-match "[^\0-\177]" fullname)
+	(setq fullname (rfc2047-encode-string fullname)
+	      quote-fullname t))
+    (cond ((eq mail-from-style 'angles)
+	   (insert "From: " fullname)
+	   (let ((fullname-start (+ (point-min) 6))
+		 (fullname-end (point-marker)))
+	     (goto-char fullname-start)
+	     ;; Look for a character that cannot appear unquoted
+	     ;; according to RFC 822.
+	     (if (or (re-search-forward "[^- !#-'*+/-9=?A-Z^-~]"
+					fullname-end 1)
+		     quote-fullname)
+		 (progn
+		   ;; Quote fullname, escaping specials.
+		   (goto-char fullname-start)
+		   (insert "\"")
+		   (while (re-search-forward "[\"\\]"
+					     fullname-end 1)
+		     (replace-match "\\\\\\&" t))
+		   (insert "\""))))
+	   (insert " <" login ">\n"))
+	  ((eq mail-from-style 'parens)
+	   (insert "From: " login " (")
+	   (let ((fullname-start (point)))
+	     (if quote-fullname
+		 (insert "\""))
+	     (insert fullname)
+	     (if quote-fullname
+		 (insert "\""))
+	     (let ((fullname-end (point-marker)))
+	       (goto-char fullname-start)
+	       ;; RFC 822 says \ and nonmatching parentheses
+	       ;; must be escaped in comments.
+	       ;; Escape every instance of ()\ ...
+	       (while (re-search-forward "[()\\]" fullname-end 1)
+		 (replace-match "\\\\\\&" t))
+	       ;; ... then undo escaping of matching parentheses,
+	       ;; including matching nested parentheses.
+	       (goto-char fullname-start)
+	       (while (re-search-forward
+		       "\\(\\=\\|[^\\]\\(\\\\\\\\\\)*\\)\\\\(\\(\\([^\\]\\|\\\\\\\\\\)*\\)\\\\)"
+		       fullname-end 1)
+		 (replace-match "\\1(\\3)" t)
+		 (goto-char fullname-start))))
+	   (insert ")\n"))
+	  ((null mail-from-style)
+	   (insert "From: " login "\n"))
+	  ((eq mail-from-style 'system-default)
+	   nil)
+	  (t (error "Invalid value for `mail-from-style'")))))
+
 (defun sendmail-send-it ()
   "Send the current mail buffer using the Sendmail package.
 This is a suitable value for `send-mail-function'.  It sends using the
@@ -980,60 +1044,7 @@
 	    ;; they put one in themselves.
 	    (goto-char (point-min))
 	    (if (not (re-search-forward "^From:" delimline t))
-		(let* ((login user-mail-address)
-		       (fullname (user-full-name))
-		       (quote-fullname nil))
-		  (if (string-match "[^\0-\177]" fullname)
-		      (setq fullname (rfc2047-encode-string fullname)
-			    quote-fullname t))
-		  (cond ((eq mail-from-style 'angles)
-			 (insert "From: " fullname)
-			 (let ((fullname-start (+ (point-min) 6))
-			       (fullname-end (point-marker)))
-			   (goto-char fullname-start)
-			   ;; Look for a character that cannot appear unquoted
-			   ;; according to RFC 822.
-			   (if (or (re-search-forward "[^- !#-'*+/-9=?A-Z^-~]"
-						      fullname-end 1)
-				   quote-fullname)
-			       (progn
-				 ;; Quote fullname, escaping specials.
-				 (goto-char fullname-start)
-				 (insert "\"")
-				 (while (re-search-forward "[\"\\]"
-							   fullname-end 1)
-				   (replace-match "\\\\\\&" t))
-				 (insert "\""))))
-			 (insert " <" login ">\n"))
-			((eq mail-from-style 'parens)
-			 (insert "From: " login " (")
-			 (let ((fullname-start (point)))
-			   (if quote-fullname
-			       (insert "\""))
-			   (insert fullname)
-			   (if quote-fullname
-			       (insert "\""))
-			   (let ((fullname-end (point-marker)))
-			     (goto-char fullname-start)
-			     ;; RFC 822 says \ and nonmatching parentheses
-			     ;; must be escaped in comments.
-			     ;; Escape every instance of ()\ ...
-			     (while (re-search-forward "[()\\]" fullname-end 1)
-			       (replace-match "\\\\\\&" t))
-			     ;; ... then undo escaping of matching parentheses,
-			     ;; including matching nested parentheses.
-			     (goto-char fullname-start)
-			     (while (re-search-forward
-				     "\\(\\=\\|[^\\]\\(\\\\\\\\\\)*\\)\\\\(\\(\\([^\\]\\|\\\\\\\\\\)*\\)\\\\)"
-				     fullname-end 1)
-			       (replace-match "\\1(\\3)" t)
-			       (goto-char fullname-start))))
-			 (insert ")\n"))
-			((null mail-from-style)
-			 (insert "From: " login "\n"))
-			((eq mail-from-style 'system-default)
-			 nil)
-			(t (error "Invalid value for `mail-from-style'")))))
+		(mail-insert-from-field))
 	    ;; Possibly add a MIME header for the current coding system
 	    (let (charset)
 	      (goto-char (point-min))
--- a/lisp/menu-bar.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/menu-bar.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1099,7 +1099,7 @@
 	      :help "Move snake around avoiding collisions"))
 (define-key menu-bar-games-menu [mult]
   '(menu-item "Multiplication Puzzle"  mpuz
-	      :help "Excercise brain with multiplication"))
+	      :help "Exercise brain with multiplication"))
 (define-key menu-bar-games-menu [life]
   '(menu-item "Life"  life
 	      :help "Watch how John Conway's cellular automaton evolves"))
--- a/lisp/mh-e/ChangeLog	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/mh-e/ChangeLog	Tue Jun 21 15:42:45 2005 +0000
@@ -1,3 +1,65 @@
+2005-06-17  Lute Kamstra  <lute@gnu.org>
+
+	* mh-customize.el (mh-folder-body-face, mh-folder-cur-msg-face)
+	(mh-folder-cur-msg-number-face): New backward-compatibility
+	aliases for renamed faces.
+
+2005-06-17  Miles Bader  <miles@gnu.org>
+
+	* mh-customize.el (mh-folder-body, mh-folder-cur-msg)
+	(mh-folder-cur-msg-number, mh-folder-date, mh-folder-followup)
+	(mh-folder-msg-number, mh-folder-refiled, mh-folder-subject)
+	(mh-folder-tick, mh-folder-to, mh-index-folder)
+	(mh-letter-header-field, mh-show-cc, mh-show-date)
+	(mh-show-header, mh-show-pgg-good, mh-show-pgg-unknown)
+	(mh-show-pgg-bad, mh-show-signature, mh-show-to, mh-show-from)
+	(mh-show-xface, mh-speedbar-folder, mh-speedbar-selected-folder)
+	(mh-speedbar-folder-with-unseen-messages)
+	(mh-speedbar-selected-folder-with-unseen-messages)
+	(mh-folder-msg-number, mh-folder-subject, mh-folder-followup)
+	(mh-folder-subject): Remove "-face" suffix from face names.
+	(mh-folder-body, mh-folder-cur-msg, mh-folder-cur-msg-number)
+	(mh-folder-date-face, mh-folder-followup-face)
+	(mh-folder-msg-number-face, mh-folder-refiled-face)
+	(mh-folder-subject-face, mh-folder-tick-face, mh-folder-to-face)
+	(mh-index-folder-face, mh-letter-header-field-face)
+	(mh-show-cc-face, mh-show-date-face, mh-show-header-face)
+	(mh-show-pgg-good-face, mh-show-pgg-unknown-face)
+	(mh-show-pgg-bad-face, mh-show-signature-face, mh-show-to-face)
+	(mh-show-from-face, mh-show-xface-face, mh-speedbar-folder-face)
+	(mh-speedbar-selected-folder-face)
+	(mh-speedbar-folder-with-unseen-messages-face)
+	(mh-speedbar-selected-folder-with-unseen-messages-face): 
+	New backward-compatibility aliases for renamed faces.
+	(mh-folder-body-face, mh-folder-cur-msg-face)
+	(mh-folder-cur-msg-number-face, mh-folder-date-face)
+	(mh-folder-followup-face, mh-folder-msg-number-face)
+	(mh-folder-deleted-face, mh-folder-refiled-face)
+	(mh-folder-subject-face, mh-folder-address-face)
+	(mh-folder-scan-format-face, mh-folder-to-face)
+	(mh-index-folder-face, mh-show-cc-face, mh-show-date-face)
+	(mh-show-header-face, mh-show-pgg-good-face)
+	(mh-show-pgg-unknown-face, mh-show-pgg-bad-face)
+	(mh-show-to-face, mh-show-from-face, mh-show-subject-face)
+	(mh-speedbar-folder-with-unseen-messages)
+	(mh-speedbar-selected-folder-with-unseen-messages): 
+	Use renamed MH-E faces.
+
+	* mh-utils.el (mh-letter-font-lock-keywords)
+	(mh-face-display-function): Use renamed MH-E faces.
+	* mh-speed.el (mh-folder-speedbar-buttons)
+	(mh-speed-update-current-folder, mh-speed-normal-face)
+	(mh-speed-bold-face, mh-speed-add-buttons)
+	(mh-speed-invalidate-map): Likewise.
+	* mh-mime.el (mh-signature-highlight): Likewise.
+
+2005-06-16  Juanma Barranquero  <lekktu@gmail.com>
+
+	* mh-comp.el (mh-send-sub):
+	* mh-identity.el (mh-identity-field-handler):
+	* mh-mime.el (mh-secure-message):
+	Don't use `format' on `error' arguments.
+
 2005-06-14  Juanma Barranquero  <lekktu@gmail.com>
 
 	* mh-mime.el (mh-secure-message): Follow error conventions.
--- a/lisp/mh-e/mh-comp.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/mh-e/mh-comp.el	Tue Jun 21 15:42:45 2005 +0000
@@ -623,8 +623,8 @@
                                                )))
                       components)
                      (t
-                      (error (format "Can't find components file \"%s\""
-                                     components)))))
+                      (error "Can't find components file \"%s\""
+                             components))))
                   nil)))
       (mh-insert-fields "To:" to "Subject:" subject "Cc:" cc)
       (goto-char (point-max))
--- a/lisp/mh-e/mh-customize.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/mh-e/mh-customize.el	Tue Jun 21 15:42:45 2005 +0000
@@ -2144,9 +2144,9 @@
 
 ;;; Faces Used in Scan Listing (:group 'mh-folder-faces)
 
-(defvar mh-folder-body-face 'mh-folder-body-face
+(defvar mh-folder-body-face 'mh-folder-body
   "Face used to highlight body text in MH-Folder buffers.")
-(defface mh-folder-body-face
+(defface mh-folder-body
   '((((type tty) (class color)) (:foreground "green"))
     (((class grayscale) (background light)) (:foreground "DimGray" :italic t))
     (((class grayscale) (background dark)) (:foreground "LightGray" :italic t))
@@ -2155,10 +2155,12 @@
     (t (:italic t)))
   "Face used to highlight body text in MH-Folder buffers."
   :group 'mh-folder-faces)
+;; backward-compatibility alias
+(put 'mh-folder-body-face 'face-alias 'mh-folder-body)
 
-(defvar mh-folder-cur-msg-face 'mh-folder-cur-msg-face
+(defvar mh-folder-cur-msg-face 'mh-folder-cur-msg
   "Face used for the current message line in MH-Folder buffers.")
-(defface mh-folder-cur-msg-face
+(defface mh-folder-cur-msg
   '((((type tty pc) (class color))
      (:background "LightGreen"))
     (((class color) (background light))
@@ -2170,10 +2172,12 @@
     (t (:underline t)))
   "Face used for the current message line in MH-Folder buffers."
   :group 'mh-folder-faces)
+;; backward-compatibility alias
+(put 'mh-folder-cur-msg-face 'face-alias 'mh-folder-cur-msg)
 
-(defvar mh-folder-cur-msg-number-face 'mh-folder-cur-msg-number-face
+(defvar mh-folder-cur-msg-number-face 'mh-folder-cur-msg-number
   "Face used to highlight the current message in MH-Folder buffers.")
-(defface mh-folder-cur-msg-number-face
+(defface mh-folder-cur-msg-number
   '((((type tty) (class color)) (:foreground "cyan" :weight bold))
     (((class grayscale) (background light)) (:foreground "LightGray" :bold t))
     (((class grayscale) (background dark)) (:foreground "DimGray" :bold t))
@@ -2182,10 +2186,12 @@
     (t (:bold t)))
   "Face used to highlight the current message in MH-Folder buffers."
   :group 'mh-folder-faces)
+;; backward-compatibility alias
+(put 'mh-folder-cur-msg-number-face 'face-alias 'mh-folder-cur-msg-number)
 
-(defvar mh-folder-date-face 'mh-folder-date-face
+(defvar mh-folder-date-face 'mh-folder-date
   "Face used to highlight the date in MH-Folder buffers.")
-(defface mh-folder-date-face
+(defface mh-folder-date
   '((((class color) (background light))
      (:foreground "snow4"))
     (((class color) (background dark))
@@ -2194,10 +2200,12 @@
      (:bold t)))
   "Face used to highlight the date in MH-Folder buffers."
   :group 'mh-folder-faces)
+;; backward-compatibility alias
+(put 'mh-folder-date-face 'face-alias 'mh-folder-date)
 
-(defvar mh-folder-followup-face 'mh-folder-followup-face
+(defvar mh-folder-followup-face 'mh-folder-followup
   "Face used to highlight Re: subject text in MH-Folder buffers.")
-(defface mh-folder-followup-face
+(defface mh-folder-followup
   '((((class color) (background light))
      (:foreground "blue3"))
     (((class color) (background dark))
@@ -2206,10 +2214,12 @@
      (:bold t)))
   "Face used to highlight Re: subject text in MH-Folder buffers."
   :group 'mh-folder-faces)
+;; backward-compatibility alias
+(put 'mh-folder-followup-face 'face-alias 'mh-folder-followup)
 
-(defvar mh-folder-msg-number-face 'mh-folder-msg-number-face
+(defvar mh-folder-msg-number-face 'mh-folder-msg-number
   "Face used to highlight the message number in MH-Folder buffers.")
-(defface mh-folder-msg-number-face
+(defface mh-folder-msg-number
   '((((class color) (background light))
      (:foreground "snow4"))
     (((class color) (background dark))
@@ -2218,14 +2228,16 @@
      (:bold t)))
   "Face used to highlight the message number in MH-Folder buffers."
   :group 'mh-folder-faces)
+;; backward-compatibility alias
+(put 'mh-folder-msg-number-face 'face-alias 'mh-folder-msg-number)
 
-(defvar mh-folder-deleted-face 'mh-folder-deleted-face
+(defvar mh-folder-deleted-face 'mh-folder-deleted
   "Face used to highlight deleted messages in MH-Folder buffers.")
-(copy-face 'mh-folder-msg-number-face 'mh-folder-deleted-face)
+(copy-face 'mh-folder-msg-number 'mh-folder-deleted)
 
-(defvar mh-folder-refiled-face 'mh-folder-refiled-face
+(defvar mh-folder-refiled-face 'mh-folder-refiled
   "Face used to highlight refiled messages in MH-Folder buffers.")
-(defface mh-folder-refiled-face
+(defface mh-folder-refiled
   '((((type tty) (class color)) (:foreground "yellow" :weight light))
     (((class grayscale) (background light))
      (:foreground "Gray90" :bold t :italic t))
@@ -2236,12 +2248,14 @@
     (t (:bold t :italic t)))
   "Face used to highlight refiled messages in MH-Folder buffers."
   :group 'mh-folder-faces)
+;; backward-compatibility alias
+(put 'mh-folder-refiled-face 'face-alias 'mh-folder-refiled)
 
-(defvar mh-folder-subject-face 'mh-folder-subject-face
+(defvar mh-folder-subject-face 'mh-folder-subject
   "Face used to highlight subject text in MH-Folder buffers.")
 (if (boundp 'facemenu-unlisted-faces)
     (add-to-list 'facemenu-unlisted-faces "^mh-folder"))
-(defface mh-folder-subject-face
+(defface mh-folder-subject
   '((((class color) (background light))
      (:foreground "blue4"))
     (((class color) (background dark))
@@ -2250,25 +2264,29 @@
      (:bold t)))
   "Face used to highlight subject text in MH-Folder buffers."
   :group 'mh-folder-faces)
+;; backward-compatibility alias
+(put 'mh-folder-subject-face 'face-alias 'mh-folder-subject)
 
-(defface mh-folder-tick-face
+(defface mh-folder-tick
   '((((class color) (background dark)) (:background "#dddf7e"))
     (((class color) (background light)) (:background "#dddf7e"))
     (t (:underline t)))
   "Face used to show ticked messages."
   :group 'mh-folder-faces)
+;; backward-compatibility alias
+(put 'mh-folder-tick-face 'face-alias 'mh-folder-tick)
 
-(defvar mh-folder-address-face 'mh-folder-address-face
+(defvar mh-folder-address-face 'mh-folder-address
   "Face used to highlight the address in MH-Folder buffers.")
-(copy-face 'mh-folder-subject-face 'mh-folder-address-face)
+(copy-face 'mh-folder-subject 'mh-folder-address)
 
-(defvar mh-folder-scan-format-face 'mh-folder-scan-format-face
+(defvar mh-folder-scan-format-face 'mh-folder-scan-format
   "Face used to highlight `mh-scan-format-regexp' matches in MH-Folder buffers.")
-(copy-face 'mh-folder-followup-face 'mh-folder-scan-format-face)
+(copy-face 'mh-folder-followup 'mh-folder-scan-format)
 
-(defvar mh-folder-to-face 'mh-folder-to-face
+(defvar mh-folder-to-face 'mh-folder-to
   "Face used to highlight the To: string in MH-Folder buffers.")
-(defface mh-folder-to-face
+(defface mh-folder-to
   '((((type tty) (class color)) (:foreground "green"))
     (((class grayscale) (background light)) (:foreground "DimGray" :italic t))
     (((class grayscale) (background dark)) (:foreground "LightGray" :italic t))
@@ -2277,14 +2295,16 @@
     (t (:italic t)))
   "Face used to highlight the To: string in MH-Folder buffers."
   :group 'mh-folder-faces)
+;; backward-compatibility alias
+(put 'mh-folder-to-face 'face-alias 'mh-folder-to)
 
 
 
 ;;; Faces Used in Searching (:group 'mh-index-faces)
 
-(defvar mh-index-folder-face 'mh-index-folder-face
+(defvar mh-index-folder-face 'mh-index-folder
   "Face used to highlight folders in MH-Index buffers.")
-(defface mh-index-folder-face
+(defface mh-index-folder
   '((((class color) (background light))
      (:foreground "dark green" :bold t))
     (((class color) (background dark))
@@ -2293,12 +2313,14 @@
      (:bold t)))
   "Face used to highlight folders in MH-Index buffers."
   :group 'mh-index-faces)
+;; backward-compatibility alias
+(put 'mh-index-folder-face 'face-alias 'mh-index-folder)
 
 
 
 ;;; Faces Used in Message Drafts (:group 'mh-letter-faces)
 
-(defface mh-letter-header-field-face
+(defface mh-letter-header-field
   '((((class color) (background light))
      (:background "gray90"))
     (((class color) (background dark))
@@ -2306,14 +2328,16 @@
     (t (:bold t)))
   "Face used to display header fields in draft buffers."
   :group 'mh-letter-faces)
+;; backward-compatibility alias
+(put 'mh-letter-header-field-face 'face-alias 'mh-letter-header-field)
 
 
 
 ;;; Faces Used in Message Display (:group 'mh-show-faces)
 
-(defvar mh-show-cc-face 'mh-show-cc-face
+(defvar mh-show-cc-face 'mh-show-cc
   "Face used to highlight cc: header fields.")
-(defface mh-show-cc-face
+(defface mh-show-cc
   '((((type tty) (class color)) (:foreground "yellow" :weight light))
     (((class grayscale) (background light))
      (:foreground "Gray90" :bold t :italic t))
@@ -2324,10 +2348,12 @@
     (t (:bold t :italic t)))
   "Face used to highlight cc: header fields."
   :group 'mh-show-faces)
+;; backward-compatibility alias
+(put 'mh-show-cc-face 'face-alias 'mh-show-cc)
 
-(defvar mh-show-date-face 'mh-show-date-face
+(defvar mh-show-date-face 'mh-show-date
   "Face used to highlight the Date: header field.")
-(defface mh-show-date-face
+(defface mh-show-date
   '((((type tty) (class color)) (:foreground "green"))
     (((class grayscale) (background light)) (:foreground "Gray90" :bold t))
     (((class grayscale) (background dark)) (:foreground "DimGray" :bold t))
@@ -2336,10 +2362,12 @@
     (t (:bold t :underline t)))
   "Face used to highlight the Date: header field."
   :group 'mh-show-faces)
+;; backward-compatibility alias
+(put 'mh-show-date-face 'face-alias 'mh-show-date)
 
-(defvar mh-show-header-face 'mh-show-header-face
+(defvar mh-show-header-face 'mh-show-header
   "Face used to deemphasize unspecified header fields.")
-(defface mh-show-header-face
+(defface mh-show-header
   '((((type tty) (class color)) (:foreground "green"))
     (((class grayscale) (background light)) (:foreground "DimGray" :italic t))
     (((class grayscale) (background dark)) (:foreground "LightGray" :italic t))
@@ -2348,40 +2376,50 @@
     (t (:italic t)))
   "Face used to deemphasize unspecified header fields."
   :group 'mh-show-faces)
+;; backward-compatibility alias
+(put 'mh-show-header-face 'face-alias 'mh-show-header)
 
-(defvar mh-show-pgg-good-face 'mh-show-pgg-good-face
+(defvar mh-show-pgg-good-face 'mh-show-pgg-good
   "Face used to highlight a good PGG signature.")
-(defface mh-show-pgg-good-face
+(defface mh-show-pgg-good
   '((t (:bold t :foreground "LimeGreen")))
   "Face used to highlight a good PGG signature."
   :group 'mh-show-faces)
+;; backward-compatibility alias
+(put 'mh-show-pgg-good-face 'face-alias 'mh-show-pgg-good)
 
-(defvar mh-show-pgg-unknown-face 'mh-show-pgg-unknown-face
+(defvar mh-show-pgg-unknown-face 'mh-show-pgg-unknown
   "Face used to highlight a PGG signature whose status is unknown.
 This face is also used for a signature when the signer is untrusted.")
-(defface mh-show-pgg-unknown-face
+(defface mh-show-pgg-unknown
   '((t (:bold t :foreground "DarkGoldenrod2")))
   "Face used to highlight a PGG signature whose status is unknown.
 This face is also used for a signature when the signer is untrusted."
   :group 'mh-show-faces)
+;; backward-compatibility alias
+(put 'mh-show-pgg-unknown-face 'face-alias 'mh-show-pgg-unknown)
 
-(defvar mh-show-pgg-bad-face 'mh-show-pgg-bad-face
+(defvar mh-show-pgg-bad-face 'mh-show-pgg-bad
   "Face used to highlight a bad PGG signature.")
-(defface mh-show-pgg-bad-face
+(defface mh-show-pgg-bad
   '((t (:bold t :foreground "DeepPink1")))
   "Face used to highlight a bad PGG signature."
   :group 'mh-show-faces)
+;; backward-compatibility alias
+(put 'mh-show-pgg-bad-face 'face-alias 'mh-show-pgg-bad)
 
-(defface mh-show-signature-face
+(defface mh-show-signature
   '((t (:italic t)))
   "Face used to highlight the message signature."
   :group 'mh-show-faces)
+;; backward-compatibility alias
+(put 'mh-show-signature-face 'face-alias 'mh-show-signature)
 
-(defvar mh-show-to-face 'mh-show-to-face
+(defvar mh-show-to-face 'mh-show-to
   "Face used to highlight the To: header field.")
 (if (boundp 'facemenu-unlisted-faces)
     (add-to-list 'facemenu-unlisted-faces "^mh-show"))
-(defface mh-show-to-face
+(defface mh-show-to
   '((((class grayscale) (background light))
      (:foreground "DimGray" :underline t))
     (((class grayscale) (background dark))
@@ -2391,10 +2429,12 @@
     (t (:underline t)))
   "Face used to highlight the To: header field."
   :group 'mh-show-faces)
+;; backward-compatibility alias
+(put 'mh-show-to-face 'face-alias 'mh-show-to)
 
-(defvar mh-show-from-face 'mh-show-from-face
+(defvar mh-show-from-face 'mh-show-from
   "Face used to highlight the From: header field.")
-(defface mh-show-from-face
+(defface mh-show-from
   '((((class color) (background light))
      (:foreground "red3"))
     (((class color) (background dark))
@@ -2403,30 +2443,36 @@
      (:bold t)))
   "Face used to highlight the From: header field."
   :group 'mh-show-faces)
+;; backward-compatibility alias
+(put 'mh-show-from-face 'face-alias 'mh-show-from)
 
-(defface mh-show-xface-face
+(defface mh-show-xface
   '((t (:foreground "black" :background "white")))
   "Face used to display the X-Face image.
 The background and foreground is used in the image."
   :group 'mh-show-faces)
+;; backward-compatibility alias
+(put 'mh-show-xface-face 'face-alias 'mh-show-xface)
 
-(defvar mh-show-subject-face 'mh-show-subject-face
+(defvar mh-show-subject-face 'mh-show-subject
   "Face used to highlight the Subject: header field.")
-(copy-face 'mh-folder-subject-face 'mh-show-subject-face)
+(copy-face 'mh-folder-subject 'mh-show-subject)
 
 
 
 ;;; Faces Used in Speedbar (:group 'mh-speed-faces)
 
-(defface mh-speedbar-folder-face
+(defface mh-speedbar-folder
   '((((class color) (background light))
      (:foreground "blue4"))
     (((class color) (background dark))
      (:foreground "light blue")))
   "Face used for folders in the speedbar buffer."
   :group 'mh-speed-faces)
+;; backward-compatibility alias
+(put 'mh-speedbar-folder-face 'face-alias 'mh-speedbar-folder)
 
-(defface mh-speedbar-selected-folder-face
+(defface mh-speedbar-selected-folder
   '((((class color) (background light))
      (:foreground "red1" :underline t))
     (((class color) (background dark))
@@ -2434,16 +2480,22 @@
     (t (:underline t)))
   "Face used for the current folder."
   :group 'mh-speed-faces)
+;; backward-compatibility alias
+(put 'mh-speedbar-selected-folder-face 'face-alias 'mh-speedbar-selected-folder)
 
-(defface mh-speedbar-folder-with-unseen-messages-face
-  '((t (:inherit mh-speedbar-folder-face :bold t)))
+(defface mh-speedbar-folder-with-unseen-messages
+  '((t (:inherit mh-speedbar-folder :bold t)))
   "Face used for folders in the speedbar buffer which have unread messages."
   :group 'mh-speed-faces)
+;; backward-compatibility alias
+(put 'mh-speedbar-folder-with-unseen-messages-face 'face-alias 'mh-speedbar-folder-with-unseen-messages)
 
-(defface mh-speedbar-selected-folder-with-unseen-messages-face
-  '((t (:inherit mh-speedbar-selected-folder-face :bold t)))
+(defface mh-speedbar-selected-folder-with-unseen-messages
+  '((t (:inherit mh-speedbar-selected-folder :bold t)))
   "Face used for the current folder when it has unread messages."
   :group 'mh-speed-faces)
+;; backward-compatibility alias
+(put 'mh-speedbar-selected-folder-with-unseen-messages-face 'face-alias 'mh-speedbar-selected-folder-with-unseen-messages)
 
 ;;; Local Variables:
 ;;; indent-tabs-mode: nil
--- a/lisp/mh-e/mh-identity.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/mh-e/mh-identity.el	Tue Jun 21 15:42:45 2005 +0000
@@ -126,7 +126,7 @@
 header field."
   (or (cdr (assoc (downcase field) mh-identity-handlers))
       (and (eq (aref field 0) ?:)
-           (error (format "Field %s - unknown mh-identity-handler" field)))
+           (error "Field %s - unknown mh-identity-handler" field))
       (cdr (assoc ":default" mh-identity-handlers))
       'mh-identity-handler-default))
 
--- a/lisp/mh-e/mh-mime.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/mh-e/mh-mime.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1,7 +1,7 @@
 ;;; mh-mime.el --- MH-E support for composing MIME messages
 
 ;; Copyright (C) 1993, 1995,
-;; 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 ;; Author: Bill Wohler <wohler@newt.com>
 ;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -597,9 +597,9 @@
     (let ((valid-methods (list "pgpmime" "pgp" "smime"))
           (valid-modes (list "sign" "encrypt" "signencrypt" "none")))
       (if (not (member method valid-methods))
-          (error (format "Sorry. METHOD \"%s\" is invalid" method)))
+          (error "Sorry. METHOD \"%s\" is invalid" method))
       (if (not (member mode valid-modes))
-          (error (format "Sorry. MODE \"%s\" is invalid" mode)))
+          (error "Sorry. MODE \"%s\" is invalid" mode))
       (mml-unsecure-message)
       (if (not (string= mode "none"))
         (save-excursion
@@ -1059,11 +1059,11 @@
       (when (re-search-backward regexp nil t)
         (mh-do-in-gnu-emacs
           (let ((ov (make-overlay (point) (point-max))))
-            (overlay-put ov 'face 'mh-show-signature-face)
+            (overlay-put ov 'face 'mh-show-signature)
             (overlay-put ov 'evaporate t)))
         (mh-do-in-xemacs
           (set-extent-property (make-extent (point) (point-max))
-                               'face 'mh-show-signature-face))))))
+                               'face 'mh-show-signature))))))
 
 (mh-do-in-xemacs
  (defvar dots)
--- a/lisp/mh-e/mh-speed.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/mh-e/mh-speed.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1,6 +1,6 @@
 ;;; mh-speed.el --- Speedbar interface for MH-E.
 
-;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 ;; Author: Satyaki Das <satyaki@theforce.stanford.edu>
 ;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -67,7 +67,7 @@
     (erase-buffer)
     (clrhash mh-speed-folder-map)
     (speedbar-make-tag-line 'bracket ?+ 'mh-speed-toggle nil " " 'ignore nil
-                            'mh-speedbar-folder-face 0)
+                            'mh-speedbar-folder 0)
     (forward-line -1)
     (setf (gethash nil mh-speed-folder-map)
           (set-marker (or (gethash nil mh-speed-folder-map) (make-marker))
@@ -149,12 +149,11 @@
       (set-buffer speedbar-buffer)
 
       ;; Remove highlight from previous match...
-      (mh-speed-highlight mh-speed-last-selected-folder
-                          'mh-speedbar-folder-face)
+      (mh-speed-highlight mh-speed-last-selected-folder 'mh-speedbar-folder)
 
       ;; If we found a match highlight it...
       (when (mh-speed-goto-folder newcf)
-        (mh-speed-highlight newcf 'mh-speedbar-selected-folder-face))
+        (mh-speed-highlight newcf 'mh-speedbar-selected-folder))
 
       (setq mh-speed-last-selected-folder newcf)
       (speedbar-position-cursor-on-line)
@@ -166,18 +165,18 @@
 
 (defun mh-speed-normal-face (face)
   "Return normal face for given FACE."
-  (cond ((eq face 'mh-speedbar-folder-with-unseen-messages-face)
-         'mh-speedbar-folder-face)
-        ((eq face 'mh-speedbar-selected-folder-with-unseen-messages-face)
-         'mh-speedbar-selected-folder-face)
+  (cond ((eq face 'mh-speedbar-folder-with-unseen-messages)
+         'mh-speedbar-folder)
+        ((eq face 'mh-speedbar-selected-folder-with-unseen-messages)
+         'mh-speedbar-selected-folder)
         (t face)))
 
 (defun mh-speed-bold-face (face)
   "Return bold face for given FACE."
-  (cond ((eq face 'mh-speedbar-folder-face)
-         'mh-speedbar-folder-with-unseen-messages-face)
-        ((eq face 'mh-speedbar-selected-folder-face)
-         'mh-speedbar-selected-folder-with-unseen-messages-face)
+  (cond ((eq face 'mh-speedbar-folder)
+         'mh-speedbar-folder-with-unseen-messages)
+        ((eq face 'mh-speedbar-selected-folder)
+         'mh-speedbar-selected-folder-with-unseen-messages)
         (t face)))
 
 (defun mh-speed-highlight (folder face)
@@ -272,8 +271,8 @@
                       ""))
             'mh-speed-view nil
             (if (and counts (> (car counts) 0))
-                'mh-speedbar-folder-with-unseen-messages-face
-              'mh-speedbar-folder-face)
+                'mh-speedbar-folder-with-unseen-messages
+              'mh-speedbar-folder)
             level)
            (save-excursion
              (forward-line -1)
@@ -496,8 +495,7 @@
               (add-text-properties
                (line-beginning-position) (1+ (line-beginning-position))
                `(mh-children-p ,(equal parent-change ?+)))))
-          (mh-speed-highlight mh-speed-last-selected-folder
-                              'mh-speedbar-folder-face)
+          (mh-speed-highlight mh-speed-last-selected-folder 'mh-speedbar-folder)
           (setq mh-speed-last-selected-folder nil)
           (setq mh-speed-refresh-flag t)))
       (when (equal folder "")
--- a/lisp/mh-e/mh-utils.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/mh-e/mh-utils.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1,7 +1,7 @@
 ;;; mh-utils.el --- MH-E code needed for both sending and reading
 
 ;; Copyright (C) 1993, 1995, 1997,
-;; 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 ;; Author: Bill Wohler <wohler@newt.com>
 ;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -406,7 +406,7 @@
 
 (defvar mh-letter-font-lock-keywords
   `(,@mh-show-font-lock-keywords-with-cite
-    (mh-font-lock-field-data (1 'mh-letter-header-field-face prepend t))))
+    (mh-font-lock-field-data (1 'mh-letter-header-field prepend t))))
 
 (defun mh-show-font-lock-fontify-region (beg end loudly)
   "Limit font-lock in `mh-show-mode' to the header.
@@ -1218,8 +1218,8 @@
               (mh-funcall-if-exists
                insert-image (create-image
                              raw type t
-                             :foreground (face-foreground 'mh-show-xface-face)
-                             :background (face-background 'mh-show-xface-face))
+                             :foreground (face-foreground 'mh-show-xface)
+                             :background (face-background 'mh-show-xface))
                             " ")))
           ;; XEmacs
           (mh-do-in-xemacs
@@ -1237,7 +1237,7 @@
                (set-extent-begin-glyph
                 (make-extent (point) (point))
                 (make-glyph (vector 'xface ':data (concat "X-Face: " x-face))))
-               'mh-show-xface-face))
+               'mh-show-xface))
              ;; Otherwise try external support with x-face...
              ((and (eq type 'pbm)
                    (fboundp 'x-face-xmas-wl-display-x-face)
--- a/lisp/net/browse-url.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/net/browse-url.el	Tue Jun 21 15:42:45 2005 +0000
@@ -38,6 +38,7 @@
 
 ;; Function                           Browser     Earliest version
 ;; browse-url-mozilla                 Mozilla     Don't know
+;; browse-url-firefox                 Firefox     Don't know (tried with 1.0.1)
 ;; browse-url-galeon                  Galeon      Don't know
 ;; browse-url-epiphany                Epiphany    Don't know
 ;; browse-url-netscape                Netscape    1.1b1
@@ -248,6 +249,7 @@
 	  (function-item :tag "W3 in another Emacs via `gnudoit'"
 			 :value  browse-url-w3-gnudoit)
 	  (function-item :tag "Mozilla" :value  browse-url-mozilla)
+	  (function-item :tag "Firefox" :value browse-url-firefox)
 	  (function-item :tag "Galeon" :value  browse-url-galeon)
 	  (function-item :tag "Epiphany" :value  browse-url-epiphany)
 	  (function-item :tag "Netscape" :value  browse-url-netscape)
@@ -323,6 +325,25 @@
   :type '(repeat (string :tag "Argument"))
   :group 'browse-url)
 
+;;;###autoload
+(defcustom browse-url-firefox-program "firefox"
+  "*The name by which to invoke Firefox."
+  :type 'string
+  :group 'browse-url)
+
+(defcustom browse-url-firefox-arguments nil
+  "*A list of strings to pass to Firefox as arguments."
+  :type '(repeat (string :tag "Argument"))
+  :group 'browse-url)
+
+(defcustom browse-url-firefox-startup-arguments browse-url-firefox-arguments
+  "*A list of strings to pass to Firefox when it starts up.
+Defaults to the value of `browse-url-firefox-arguments' at the time
+`browse-url' is loaded."
+  :type '(repeat (string :tag "Argument"))
+  :group 'browse-url)
+
+;;;###autoload
 (defcustom browse-url-galeon-program "galeon"
   "*The name by which to invoke Galeon."
   :type 'string
@@ -373,6 +394,16 @@
   :type 'boolean
   :group 'browse-url)
 
+(defcustom browse-url-firefox-new-window-is-tab nil
+  "*Whether to open up new windows in a tab or a new window.
+If non-nil, then open the URL in a new tab rather than a new window if
+`browse-url-firefox' is asked to open it in a new window.
+
+This option is currently ignored on MS-Windows, since the necessary
+functionality is not available there."
+  :type 'boolean
+  :group 'browse-url)
+
 (defcustom browse-url-galeon-new-window-is-tab nil
   "*Whether to open up new windows in a tab or a new window.
 If non-nil, then open the URL in a new tab rather than a new window if
@@ -815,13 +846,14 @@
 When called non-interactively, optional second argument NEW-WINDOW is
 used instead of `browse-url-new-window-flag'.
 
-The order attempted is gnome-moz-remote, Mozilla, Galeon,
-Konqueror, Netscape, Mosaic, IXI Mosaic, Lynx in an xterm, MMM,
-and then W3."
+The order attempted is gnome-moz-remote, Mozilla, Firefox,
+Galeon, Konqueror, Netscape, Mosaic, IXI Mosaic, Lynx in an
+xterm, MMM, and then W3."
   (apply
     (cond
      ((executable-find browse-url-gnome-moz-program) 'browse-url-gnome-moz)
      ((executable-find browse-url-mozilla-program) 'browse-url-mozilla)
+     ((executable-find browse-url-firefox-program) 'browse-url-firefox)
      ((executable-find browse-url-galeon-program) 'browse-url-galeon)
      ((executable-find browse-url-kde-program) 'browse-url-kde)
      ((executable-find browse-url-netscape-program) 'browse-url-netscape)
@@ -960,6 +992,71 @@
 	       (append browse-url-mozilla-startup-arguments (list url))))))
 
 ;;;###autoload
+(defun browse-url-firefox (url &optional new-window)
+  "Ask the Firefox WWW browser to load URL.
+Default to the URL around or before point.  The strings in
+variable `browse-url-firefox-arguments' are also passed to
+Firefox.
+
+When called interactively, if variable
+`browse-url-new-window-flag' is non-nil, load the document in a
+new Firefox window, otherwise use a random existing one.  A
+non-nil interactive prefix argument reverses the effect of
+`browse-url-new-window-flag'.
+
+If `browse-url-firefox-new-window-is-tab' is non-nil, then
+whenever a document would otherwise be loaded in a new window, it
+is loaded in a new tab in an existing window instead.
+
+When called non-interactively, optional second argument
+NEW-WINDOW is used instead of `browse-url-new-window-flag'.
+
+On MS-Windows systems the optional `new-window' parameter is
+ignored.  Firefox for Windows does not support the \"-remote\"
+command line parameter.  Therefore, the
+`browse-url-new-window-flag' and `browse-url-firefox-new-window-is-tab'
+are ignored as well.  Firefox on Windows will always open the requested
+URL in a new window."
+  (interactive (browse-url-interactive-arg "URL: "))
+  ;; URL encode any `confusing' characters in the URL.  This needs to
+  ;; include at least commas; presumably also close parens.
+  (while (string-match "[,)]" url)
+    (setq url (replace-match
+	       (format "%%%x" (string-to-char (match-string 0 url))) t t url)))
+  (let* ((process-environment (browse-url-process-environment))
+	 (process
+	  (apply 'start-process
+		 (concat "firefox " url) nil
+		 browse-url-firefox-program
+		 (append
+		  browse-url-firefox-arguments
+		  (if (or (featurep 'dos-w32)
+			  (string-match "win32" system-configuration))
+		      (list url)
+		    (list "-remote"
+			  (concat "openURL("
+				  url
+				  (if (browse-url-maybe-new-window
+				       new-window)
+				      (if browse-url-firefox-new-window-is-tab
+					  ",new-tab"
+					",new-window"))
+				  ")")))))))
+    (set-process-sentinel process
+			  `(lambda (process change)
+			     (browse-url-firefox-sentinel process ,url)))))
+
+(defun browse-url-firefox-sentinel (process url)
+  "Handle a change to the process communicating with Firefox."
+  (or (eq (process-exit-status process) 0)
+      (let* ((process-environment (browse-url-process-environment)))
+	;; Firefox is not running - start it
+	(message "Starting Firefox...")
+	(apply 'start-process (concat "firefox " url) nil
+	       browse-url-firefox-program
+	       (append browse-url-firefox-startup-arguments (list url))))))
+
+;;;###autoload
 (defun browse-url-galeon (url &optional new-window)
   "Ask the Galeon WWW browser to load URL.
 Default to the URL around or before point.  The strings in variable
--- a/lisp/net/tramp-ftp.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/net/tramp-ftp.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1,6 +1,6 @@
 ;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP and EFS -*- coding: iso-8859-1; -*-
 
-;; Copyright (C) 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <Michael.Albinus@alcatel.de>
 ;; Keywords: comm, processes
--- a/lisp/net/tramp-smb.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/net/tramp-smb.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1,6 +1,6 @@
 ;;; tramp-smb.el --- Tramp access functions for SMB servers -*- coding: iso-8859-1; -*-
 
-;; Copyright (C) 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 ;; Author: Michael Albinus <michael.albinus@gmx.de>
 ;; Keywords: comm, processes
--- a/lisp/net/tramp-util.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/net/tramp-util.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1,7 +1,7 @@
 ;;; -*- coding: iso-2022-7bit; -*-
 ;;; tramp-util.el --- Misc utility functions to use with Tramp
 
-;; Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 ;; Author: kai.grossjohann@gmx.net
 ;; Keywords: comm, extensions, processes
--- a/lisp/net/tramp-uu.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/net/tramp-uu.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1,7 +1,7 @@
 ;;; -*- coding: iso-2022-7bit; -*-
 ;;; tramp-uu.el --- uuencode in Lisp
 
-;; Copyright (C) 2002, 2005  Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2004, 2005  Free Software Foundation, Inc.
 
 ;; Author: Kai Gro,A_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 ;; Keywords: comm, terminals
--- a/lisp/net/tramp-vc.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/net/tramp-vc.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1,6 +1,6 @@
 ;;; tramp-vc.el --- Version control integration for TRAMP.el
 
-;; Copyright (C) 2000, 2001, 2002, 2005 by Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 by Free Software Foundation, Inc.
 
 ;; Author: Daniel Pittman <daniel@danann.net>
 ;; Keywords: comm, processes
--- a/lisp/net/tramp.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/net/tramp.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1,7 +1,7 @@
 ;;; -*- mode: Emacs-Lisp; coding: iso-2022-7bit; -*-
 ;;; tramp.el --- Transparent Remote Access, Multiple Protocol
 
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 ;; Author: kai.grossjohann@gmx.net
 ;; Keywords: comm, processes
--- a/lisp/net/zone-mode.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/net/zone-mode.el	Tue Jun 21 15:42:45 2005 +0000
@@ -60,7 +60,7 @@
 	     (old-serial (concat old-date old-seq))
 	     (new-serial (concat cur-date new-seq)))
 	(if (string-lessp new-serial old-serial)
-	    (error (format "Serial numbers want to move backwards from %s to %s" old-serial new-serial))
+	    (error "Serial numbers want to move backwards from %s to %s" old-serial new-serial)
 	  (replace-match (concat cur-date new-seq old-flag) t t))))))
 
 ;;;###autoload
@@ -76,7 +76,7 @@
   "Zone-mode's syntax table.")
 
 (defun zone-mode-load-time-setup ()
-  "Initialise `zone-mode' stuff."
+  "Initialize `zone-mode' stuff."
   (setq zone-mode-syntax-table (make-syntax-table))
   (modify-syntax-entry ?\; "<" zone-mode-syntax-table)
   (modify-syntax-entry ?\n ">" zone-mode-syntax-table))
--- a/lisp/progmodes/ada-mode.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/progmodes/ada-mode.el	Tue Jun 21 15:42:45 2005 +0000
@@ -31,9 +31,9 @@
 ;;; This mode is a major mode for editing Ada83 and Ada95 source code.
 ;;; This is a major rewrite of the file packaged with Emacs-20.  The
 ;;; ada-mode is composed of four lisp files, ada-mode.el, ada-xref.el,
-;;; ada-prj.el and ada-stmt.el. Only this file (ada-mode.el) is
+;;; ada-prj.el and ada-stmt.el.  Only this file (ada-mode.el) is
 ;;; completely independent from the GNU Ada compiler Gnat, distributed
-;;; by Ada Core Technologies. All the other files rely heavily on
+;;; by Ada Core Technologies.  All the other files rely heavily on
 ;;; features provided only by Gnat.
 ;;;
 ;;; Note: this mode will not work with Emacs 19. If you are on a VMS
@@ -136,7 +136,7 @@
 ;; this function is needed at compile time
 (eval-and-compile
   (defun ada-check-emacs-version (major minor &optional is-xemacs)
-    "Returns t if Emacs's version is greater or equal to MAJOR.MINOR.
+    "Return t if Emacs's version is greater or equal to MAJOR.MINOR.
 If IS-XEMACS is non-nil, check for XEmacs instead of Emacs."
     (let ((xemacs-running (or (string-match "Lucid"  emacs-version)
                               (string-match "XEmacs" emacs-version))))
@@ -186,8 +186,7 @@
   :type 'integer :group 'ada)
 
 (defcustom ada-continuation-indent ada-broken-indent
-  "*Number of columns to indent the continuation of broken lines in
-parenthesis.
+  "*Number of columns to indent the continuation of broken lines in parenthesis.
 
 An example is :
    Func (Param1,
@@ -212,10 +211,10 @@
 when you call `ada-create-case-exception'.
 
 These files should contain one word per line, that gives the casing
-to be used for that word in Ada files. If the line starts with the
+to be used for that word in Ada files.  If the line starts with the
 character *, then the exception will be used for substrings that either
 start at the beginning of a word or after a _ character, and end either
-at the end of the word or at a _ character. Each line can be terminated by
+at the end of the word or at a _ character.  Each line can be terminated by
 a comment."
   :type '(repeat (file))
   :group 'ada)
@@ -271,15 +270,14 @@
 
 (defcustom ada-indent-comment-as-code t
   "*Non-nil means indent comment lines as code.
-nil means do not auto-indent comments."
+A nil value means do not auto-indent comments."
   :type 'boolean :group 'ada)
 
 (defcustom ada-indent-handle-comment-special nil
-  "*Non-nil if comment lines should be handled specially inside
-parenthesis.
+  "*Non-nil if comment lines should be handled specially inside parenthesis.
 By default, if the line that contains the open parenthesis has some
 text following it, then the following lines will be indented in the
-same column as this text. This will not be true if the first line is
+same column as this text.  This will not be true if the first line is
 a comment and `ada-indent-handle-comment-special' is t.
 
 type A is
@@ -311,8 +309,8 @@
 
 (defcustom ada-indent-renames ada-broken-indent
   "*Indentation for renames relative to the matching function statement.
-If ada-indent-return is null or negative, the indentation is done relative to
-the open parenthesis (if there is no parenthesis, ada-broken-indent is used).
+If `ada-indent-return' is null or negative, the indentation is done relative to
+the open parenthesis (if there is no parenthesis, `ada-broken-indent' is used).
 
 An example is:
    function A (B : Integer)
@@ -322,8 +320,8 @@
 
 (defcustom ada-indent-return 0
   "*Indentation for 'return' relative to the matching 'function' statement.
-If ada-indent-return is null or negative, the indentation is done relative to
-the open parenthesis (if there is no parenthesis, ada-broken-indent is used).
+If `ada-indent-return' is null or negative, the indentation is done relative to
+the open parenthesis (if there is no parenthesis, `ada-broken-indent' is used).
 
 An example is:
    function A (B : Integer)
@@ -342,7 +340,7 @@
 
 (defcustom ada-fill-comment-postfix " --"
   "*Text inserted at the end of each line when filling a comment paragraph.
-with `ada-fill-comment-paragraph-postfix'."
+Used by `ada-fill-comment-paragraph-postfix'."
   :type 'string :group 'ada)
 
 (defcustom ada-label-indent -4
@@ -377,7 +375,7 @@
 	  '("/usr/adainclude" "/usr/local/adainclude"
 	    "/opt/gnu/adainclude"))
   "*List of directories to search for Ada files.
-See the description for the `ff-search-directories' variable. This variable
+See the description for the `ff-search-directories' variable.  This variable
 is the initial value of this variable, and is copied and modified in
 `ada-search-directories-internal'."
   :type '(repeat (choice :tag "Directory"
@@ -389,7 +387,7 @@
   "Internal version of `ada-search-directories'.
 Its value is the concatenation of the search path as read in the project file
 and the standard runtime location, and the value of the user-defined
-ada-search-directories.")
+`ada-search-directories'.")
 
 (defcustom ada-stmt-end-indent 0
   "*Number of columns to indent the end of a statement on a separate line.
@@ -402,7 +400,7 @@
 (defcustom ada-tab-policy 'indent-auto
   "*Control the behavior of the TAB key.
 Must be one of :
-`indent-rigidly' : always adds ada-indent blanks at the beginning of the line.
+`indent-rigidly' : always adds `ada-indent' blanks at the beginning of the line.
 `indent-auto'    : use indentation functions in this file.
 `always-tab'     : do indent-relative."
   :type '(choice (const indent-auto)
@@ -438,7 +436,7 @@
   "*Name of the compiler to use.
 This will determine what features are made available through the ada-mode.
 The possible choices are :
-`gnat': Use Ada Core Technologies' Gnat compiler. Add some cross-referencing
+`gnat': Use Ada Core Technologies' Gnat compiler.  Add some cross-referencing
     features
 `generic': Use a generic compiler"
   :type '(choice (const gnat)
@@ -494,14 +492,14 @@
 (defvar ada-case-exception-substring '()
   "Alist of substrings (entities) that have special casing.
 The substrings are detected for word constituant when the word
-is not itself in ada-case-exception, and only for substrings that
+is not itself in `ada-case-exception', and only for substrings that
 either are at the beginning or end of the word, or start after '_'.")
 
 (defvar ada-lfd-binding nil
   "Variable to save key binding of LFD when casing is activated.")
 
 (defvar ada-other-file-alist nil
-  "Variable used by find-file to find the name of the other package.
+  "Variable used by `find-file' to find the name of the other package.
 See `ff-other-file-alist'.")
 
 (defvar ada-align-list
@@ -552,7 +550,7 @@
    "type\\|"
    "when"
    "\\)\\>\\)")
-  "see the variable `align-region-separate' for more information.")
+  "See the variable `align-region-separate' for more information.")
 
 ;;; ---- Below are the regexp used in this package for parsing
 
@@ -631,7 +629,7 @@
              '("end" "loop" "select" "begin" "case" "do"
                "if" "task" "package" "record" "protected") t)
             "\\>"))
-  "Regexp used in ada-goto-matching-start.")
+  "Regexp used in `ada-goto-matching-start'.")
 
 (defvar ada-matching-decl-start-re
   (eval-when-compile
@@ -639,7 +637,7 @@
             (regexp-opt
              '("is" "separate" "end" "declare" "if" "new" "begin" "generic" "when") t)
             "\\>"))
-  "Regexp used in ada-goto-matching-decl-start.")
+  "Regexp used in `ada-goto-matching-decl-start'.")
 
 (defvar ada-loop-start-re
   "\\<\\(for\\|while\\|loop\\)\\>"
@@ -662,7 +660,7 @@
   "Position of point just before displaying the menu.
 This is a list (point buffer).
 Since `ada-popup-menu' moves the point where the user clicked, the region
-is modified. Therefore no command from the menu knows what the user selected
+is modified.  Therefore no command from the menu knows what the user selected
 before displaying the contextual menu.
 To get the original region, restore the point to this position before
 calling `region-end' and `region-beginning'.
@@ -717,7 +715,7 @@
      "^[ \t]*protected[ \t]+\\(type[ \t]+\\)?\\(\\(body[ \t]+\\)?\\(\\sw\\|_\\)+\\)" 2)
    '("*Packages*" "^[ \t]*package[ \t]+\\(\\(body[ \t]+\\)?\\(\\sw\\|[_.]\\)+\\)" 1))
   "Imenu generic expression for Ada mode.
-See `imenu-generic-expression'. This variable will create several submenus for
+See `imenu-generic-expression'.  This variable will create several submenus for
 each type of entity that can be found in an Ada file.")
 
 
@@ -733,9 +731,9 @@
   )
 
 (defun ada-compile-goto-error (pos)
-  "Replaces `compile-goto-error' from compile.el.
-If POS is on a file and line location, go to this position. It adds to
-compile.el the capacity to go to a reference in an error message.
+  "Replace `compile-goto-error' from compile.el.
+If POS is on a file and line location, go to this position.  It adds
+to compile.el the capacity to go to a reference in an error message.
 For instance, on this line:
   foo.adb:61:11:  [...] in call to size declared at foo.ads:11
 both file locations can be clicked on and jumped to."
@@ -953,20 +951,20 @@
 ;;------------------------------------------------------------------
 
 (defsubst ada-in-comment-p (&optional parse-result)
-  "Returns t if inside a comment."
+  "Return t if inside a comment."
   (nth 4 (or parse-result
              (parse-partial-sexp
               (line-beginning-position) (point)))))
 
 (defsubst ada-in-string-p (&optional parse-result)
-  "Returns t if point is inside a string.
-If parse-result is non-nil, use is instead of calling parse-partial-sexp."
+  "Return t if point is inside a string.
+If parse-result is non-nil, use is instead of calling `parse-partial-sexp'."
   (nth 3 (or parse-result
              (parse-partial-sexp
               (line-beginning-position) (point)))))
 
 (defsubst ada-in-string-or-comment-p (&optional parse-result)
-  "Returns t if inside a comment or string."
+  "Return t if inside a comment or string."
   (setq parse-result (or parse-result
                          (parse-partial-sexp
                           (line-beginning-position) (point))))
@@ -994,8 +992,8 @@
   "Pops up a contextual menu, depending on where the user clicked.
 POSITION is the location the mouse was clicked on.
 Sets `ada-contextual-menu-last-point' to the current position before
-displaying the menu. When a function from the menu is called, the point is
-where the mouse button was clicked."
+displaying the menu.  When a function from the menu is called, the
+point is where the mouse button was clicked."
   (interactive "e")
 
   ;;  declare this as a local variable, so that the function called
@@ -1035,8 +1033,8 @@
   "Define SPEC and BODY as being valid extensions for Ada files.
 Going from body to spec with `ff-find-other-file' used these
 extensions.
-SPEC and BODY are two regular expressions that must match against the file
-name"
+SPEC and BODY are two regular expressions that must match against
+the file name."
   (let* ((reg (concat (regexp-quote body) "$"))
          (tmp (assoc reg ada-other-file-alist)))
     (if tmp
@@ -1099,7 +1097,7 @@
  Continue comment on next line                        '\\[indent-new-comment-line]'
 
 If you use imenu.el:
- Display index-menu of functions & procedures         '\\[imenu]'
+ Display index-menu of functions and procedures       '\\[imenu]'
 
 If you use find-file.el:
  Switch to other file (Body <-> Spec)                 '\\[ff-find-other-file]'
@@ -1408,7 +1406,7 @@
 
 ;;  transient-mark-mode and mark-active are not defined in XEmacs
 (defun ada-region-selected ()
-  "t if a region has been selected by the user and is still active."
+  "Return t if a region has been selected by the user and is still active."
   (or (and (featurep 'xemacs) (funcall (symbol-function 'region-active-p)))
       (and (not (featurep 'xemacs))
 	   (symbol-value 'transient-mark-mode)
@@ -1447,7 +1445,7 @@
   )
 
 (defun ada-create-case-exception (&optional word)
-  "Defines WORD as an exception for the casing system.
+  "Define WORD as an exception for the casing system.
 If WORD is not given, then the current word in the buffer is used instead.
 The new words is added to the first file in `ada-case-exception-file'.
 The standard casing rules will no longer apply to this word."
@@ -1487,10 +1485,10 @@
     ))
 
 (defun ada-create-case-exception-substring (&optional word)
-  "Defines the substring WORD as an exception for the casing system.
+  "Define the substring WORD as an exception for the casing system.
 If WORD is not given, then the current word in the buffer is used instead,
 or the selected region if any is active.
-The new words is added to the first file in `ada-case-exception-file'.
+The new word is added to the first file in `ada-case-exception-file'.
 When auto-casing a word, this substring will be special-cased, unless the
 word itself has a special casing."
   (interactive)
@@ -1642,7 +1640,7 @@
 	  (ada-adjust-case-substring))))))
 
 (defun ada-after-keyword-p ()
-  "Returns t if cursor is after a keyword that is not an attribute."
+  "Return t if cursor is after a keyword that is not an attribute."
   (save-excursion
     (forward-word -1)
     (and (not (and (char-before)
@@ -1651,7 +1649,7 @@
          (looking-at (concat ada-keywords "[^_]")))))
 
 (defun ada-adjust-case (&optional force-identifier)
-  "Adjust the case of the word before the just typed character.
+  "Adjust the case of the word before the character just typed.
 If FORCE-IDENTIFIER is non-nil then also adjust keyword as identifier."
   (if (not (bobp))
       (progn
@@ -1682,7 +1680,7 @@
 
 (defun ada-adjust-case-interactive (arg)
   "Adjust the case of the previous word, and process the character just typed.
-ARG is the prefix the user entered with \C-u."
+ARG is the prefix the user entered with \\[universal-argument]."
   (interactive "P")
 
   (if ada-auto-case
@@ -1729,7 +1727,7 @@
     ))
 
 (defun ada-activate-keys-for-case ()
-  "Modifies the key bindings for all the keys that should readjust the casing."
+  "Modify the key bindings for all the keys that should readjust the casing."
   (interactive)
   ;; Save original key-bindings to allow swapping ret/lfd
   ;; when casing is activated.
@@ -1763,7 +1761,7 @@
         (delete-char 1)))))
 
 (defun ada-no-auto-case (&optional arg)
-  "Does nothing.
+  "Do nothing.
 This function can be used for the auto-casing variables in the ada-mode, to
 adapt to unusal auto-casing schemes. Since it does nothing, you can for
 instance use it for `ada-case-identifier' if you don't want any special
@@ -1782,8 +1780,8 @@
     (modify-syntax-entry ?_ "w")))
 
 (defun ada-adjust-case-region (from to)
-  "Adjusts the case of all words in the region between FROM and TO.
-Attention: This function might take very long for big regions !"
+  "Adjust the case of all words in the region between FROM and TO.
+Attention: This function might take very long for big regions!"
   (interactive "*r")
   (let ((begin nil)
         (end nil)
@@ -1829,7 +1827,7 @@
 
 (defun ada-adjust-case-buffer ()
   "Adjusts the case of all words in the whole buffer.
-ATTENTION: This function might take very long for big buffers !"
+ATTENTION: This function might take very long for big buffers!"
   (interactive "*")
   (ada-adjust-case-region (point-min) (point-max)))
 
@@ -1851,7 +1849,7 @@
 ;;--------------------------------------------------------------
 
 (defun ada-format-paramlist ()
-  "Reformats the parameter list point is in."
+  "Reformat the parameter list point is in."
   (interactive)
   (let ((begin nil)
         (end nil)
@@ -1864,7 +1862,7 @@
 
           ;; check if really inside parameter list
           (or (ada-in-paramlist-p)
-              (error "not in parameter list"))
+              (error "Not in parameter list"))
 
           ;; find start of current parameter-list
           (ada-search-ignore-string-comment
@@ -1899,7 +1897,7 @@
 
 (defun ada-scan-paramlist (begin end)
   "Scan the parameter list found in between BEGIN and END.
-Returns the equivalent internal parameter list."
+Return the equivalent internal parameter list."
   (let ((paramlist (list))
         (param (list))
         (notend t)
@@ -1996,7 +1994,7 @@
     (reverse paramlist)))
 
 (defun ada-insert-paramlist (paramlist)
-  "Inserts a formatted PARAMLIST in the buffer."
+  "Insert a formatted PARAMLIST in the buffer."
   (let ((i (length paramlist))
         (parlen 0)
         (typlen 0)
@@ -2163,7 +2161,7 @@
     (message "indenting ... done")))
 
 (defun ada-indent-newline-indent ()
-  "Indents the current line, inserts a newline and then indents the new line."
+  "Indent the current line, insert a newline and then indent the new line."
   (interactive "*")
   (ada-indent-current)
   (newline)
@@ -2172,14 +2170,14 @@
 (defun ada-indent-newline-indent-conditional ()
   "Insert a newline and indent it.
 The original line is indented first if `ada-indent-after-return' is non-nil.
-This function is intended to be bound to the \C-m and \C-j keys."
+This function is intended to be bound to the C-m and C-j keys."
   (interactive "*")
   (if ada-indent-after-return (ada-indent-current))
   (newline)
   (ada-indent-current))
 
 (defun ada-justified-indent-current ()
-  "Indent the current line and explains how the calculation was done."
+  "Indent the current line and explain how the calculation was done."
   (interactive)
 
   (let ((cur-indent (ada-indent-current)))
@@ -2223,13 +2221,13 @@
   (kill-emacs 0))
 
 (defsubst ada-goto-previous-word ()
-  "Moves point to the beginning of the previous word of Ada code.
-Returns the new position of point or nil if not found."
+  "Move point to the beginning of the previous word of Ada code.
+Return the new position of point or nil if not found."
   (ada-goto-next-word t))
 
 (defun ada-indent-current ()
   "Indent current line as Ada code.
-Returns the calculation that was done, including the reference point and the
+Return the calculation that was done, including the reference point and the
 offset."
   (interactive)
   (let ((previous-syntax-table (syntax-table))
@@ -2804,7 +2802,7 @@
     ))
 
 (defun ada-get-indent-open-paren ()
-  "Calculates the indentation when point is behind an unclosed parenthesis."
+  "Calculate the indentation when point is behind an unclosed parenthesis."
   (list (ada-in-open-paren-p) 0))
 
 (defun ada-get-indent-nochange ()
@@ -2815,7 +2813,7 @@
     (list (point) 0)))
 
 (defun ada-get-indent-paramlist ()
-  "Calculates the indentation when point is inside a parameter list."
+  "Calculate the indentation when point is inside a parameter list."
   (save-excursion
     (ada-search-ignore-string-comment "[^ \t\n]" t nil t)
     (cond
@@ -2843,7 +2841,7 @@
       (list (point) 0)))))
 
 (defun ada-get-indent-end (orgpoint)
-  "Calculates the indentation when point is just before an end_statement.
+  "Calculate the indentation when point is just before an end statement.
 ORGPOINT is the limit position used in the calculation."
   (let ((defun-name nil)
         (indent nil))
@@ -2909,7 +2907,7 @@
             'ada-broken-indent))))
 
 (defun ada-get-indent-case (orgpoint)
-  "Calculates the indentation when point is just before a case statement.
+  "Calculate the indentation when point is just before a case statement.
 ORGPOINT is the limit position used in the calculation."
   (let ((match-cons nil)
         (opos (point)))
@@ -2927,7 +2925,7 @@
       (save-excursion
         (goto-char (car match-cons))
         (unless (ada-search-ignore-string-comment "when" t opos)
-          (error "missing 'when' between 'case' and '=>'"))
+          (error "Missing 'when' between 'case' and '=>'"))
         (list (save-excursion (back-to-indentation) (point)) 'ada-indent)))
      ;;
      ;; case..is..when
@@ -2952,7 +2950,7 @@
             'ada-broken-indent)))))
 
 (defun ada-get-indent-when (orgpoint)
-  "Calculates the indentation when point is just before a when statement.
+  "Calculate the indentation when point is just before a when statement.
 ORGPOINT is the limit position used in the calculation."
   (let ((cur-indent (save-excursion (back-to-indentation) (point))))
     (if (ada-search-ignore-string-comment "[ \t\n]*=>" nil orgpoint)
@@ -2960,7 +2958,7 @@
       (list cur-indent 'ada-broken-indent))))
 
 (defun ada-get-indent-if (orgpoint)
-  "Calculates the indentation when point is just before an if statement.
+  "Calculate the indentation when point is just before an if statement.
 ORGPOINT is the limit position used in the calculation."
   (let ((cur-indent (save-excursion (back-to-indentation) (point)))
         (match-cons nil))
@@ -2990,7 +2988,7 @@
       (list cur-indent 'ada-broken-indent))))
 
 (defun ada-get-indent-block-start (orgpoint)
-  "Calculates the indentation when point is at the start of a block.
+  "Calculate the indentation when point is at the start of a block.
 ORGPOINT is the limit position used in the calculation."
   (let ((pos nil))
     (cond
@@ -3023,7 +3021,7 @@
       (list (save-excursion (back-to-indentation) (point)) 'ada-indent)))))
 
 (defun ada-get-indent-subprog (orgpoint)
-  "Calculates the indentation when point is just before a subprogram.
+  "Calculate the indentation when point is just before a subprogram.
 ORGPOINT is the limit position used in the calculation."
   (let ((match-cons nil)
         (cur-indent (save-excursion (back-to-indentation) (point)))
@@ -3092,7 +3090,7 @@
       (list cur-indent 'ada-broken-indent)))))
 
 (defun ada-get-indent-noindent (orgpoint)
-  "Calculates the indentation when point is just before a 'noindent stmt'.
+  "Calculate the indentation when point is just before a 'noindent stmt'.
 ORGPOINT is the limit position used in the calculation."
   (let ((label 0))
     (save-excursion
@@ -3146,7 +3144,7 @@
                 'ada-broken-indent)))))))
 
 (defun ada-get-indent-label (orgpoint)
-  "Calculates the indentation when before a label or variable declaration.
+  "Calculate the indentation when before a label or variable declaration.
 ORGPOINT is the limit position used in the calculation."
   (let ((match-cons nil)
         (cur-indent (save-excursion (back-to-indentation) (point))))
@@ -3178,7 +3176,7 @@
       (list cur-indent '(- ada-label-indent))))))
 
 (defun ada-get-indent-loop (orgpoint)
-  "Calculates the indentation when just before a loop or a for ... use.
+  "Calculate the indentation when just before a loop or a for ... use.
 ORGPOINT is the limit position used in the calculation."
   (let ((match-cons nil)
         (pos (point))
@@ -3290,7 +3288,7 @@
               'ada-broken-indent))))))
 
 (defun ada-get-indent-type (orgpoint)
-  "Calculates the indentation when before a type statement.
+  "Calculate the indentation when before a type statement.
 ORGPOINT is the limit position used in the calculation."
   (let ((match-dat nil))
     (cond
@@ -3345,8 +3343,8 @@
 ;; -----------------------------------------------------------
 
 (defun ada-goto-stmt-start ()
-  "Moves point to the beginning of the statement that point is in or after.
-Returns the new position of point.
+  "Move point to the beginning of the statement that point is in or after.
+Return the new position of point.
 As a special case, if we are looking at a closing parenthesis, skip to the
 open parenthesis."
   (let ((match-dat nil)
@@ -3391,9 +3389,9 @@
 
 
 (defun ada-search-prev-end-stmt ()
-  "Moves point to previous end-statement.
-Returns a cons cell whose car is the beginning and whose cdr the end of the
-match."
+  "Move point to previous end statement.
+Return a cons cell whose car is the beginning and whose cdr
+is the end of the match."
   (let ((match-dat nil)
         (found nil))
 
@@ -3442,7 +3440,7 @@
 
 
 (defun ada-goto-next-non-ws (&optional limit)
-  "Skips white spaces, newlines and comments to next non-ws character.
+  "Skip white spaces, newlines and comments to next non-ws character.
 Stop the search at LIMIT.
 Do not call this function from within a string."
   (unless limit
@@ -3460,8 +3458,8 @@
 
 
 (defun ada-goto-stmt-end (&optional limit)
-  "Moves point to the end of the statement that point is in or before.
-Returns the new position of point or nil if not found.
+  "Move point to the end of the statement that point is in or before.
+Return the new position of point or nil if not found.
 Stop the search at LIMIT."
   (if (ada-search-ignore-string-comment ada-end-stmt-re nil limit)
       (point)
@@ -3469,9 +3467,9 @@
 
 
 (defun ada-goto-next-word (&optional backward)
-  "Moves point to the beginning of the next word of Ada code.
+  "Move point to the beginning of the next word of Ada code.
 If BACKWARD is non-nil, jump to the beginning of the previous word.
-Returns the new position of point or nil if not found."
+Return the new position of point or nil if not found."
   (let ((match-cons nil)
         (orgpoint (point))
         (old-syntax (char-to-string (char-syntax ?_))))
@@ -3499,16 +3497,16 @@
 
 
 (defun ada-check-matching-start (keyword)
-  "Signals an error if matching block start is not KEYWORD.
+  "Signal an error if matching block start is not KEYWORD.
 Moves point to the matching block start."
   (ada-goto-matching-start 0)
   (unless (looking-at (concat "\\<" keyword "\\>"))
-    (error "matching start is not '%s'" keyword)))
+    (error "Matching start is not '%s'" keyword)))
 
 
 (defun ada-check-defun-name (defun-name)
-  "Checks if the name of the matching defun really is DEFUN-NAME.
-Assumes point to be already positioned by 'ada-goto-matching-start'.
+  "Check if the name of the matching defun really is DEFUN-NAME.
+Assumes point to be already positioned by `ada-goto-matching-start'.
 Moves point to the beginning of the declaration."
 
   ;; named block without a `declare'
@@ -3547,12 +3545,12 @@
       ;; should be looking-at the correct name
       ;;
       (unless (looking-at (concat "\\<" defun-name "\\>"))
-        (error "matching defun has different name: %s"
+        (error "Matching defun has different name: %s"
                (buffer-substring (point)
                                  (progn (forward-sexp 1) (point))))))))
 
 (defun ada-goto-matching-decl-start (&optional noerror recursive)
-  "Moves point to the matching declaration start of the current 'begin'.
+  "Move point to the matching declaration start of the current 'begin'.
 If NOERROR is non-nil, it only returns nil if no match was found."
   (let ((nest-count 1)
 
@@ -3709,13 +3707,13 @@
            (looking-at "declare\\|generic")))
         t
       (if noerror nil
-        (error "no matching proc/func/task/declare/package/protected")))
+        (error "No matching proc/func/task/declare/package/protected")))
     ))
 
 (defun ada-goto-matching-start (&optional nest-level noerror gotothen)
-  "Moves point to the beginning of a block-start.
-Which block depends on the value of NEST-LEVEL, which defaults to zero. If
-NOERROR is non-nil, it only returns nil if no matching start was found.
+  "Move point to the beginning of a block-start.
+Which block depends on the value of NEST-LEVEL, which defaults to zero.
+If NOERROR is non-nil, it only returns nil if no matching start was found.
 If GOTOTHEN is non-nil, point moves to the 'then' following 'if'."
   (let ((nest-count (if nest-level nest-level 0))
         (found nil)
@@ -3852,16 +3850,16 @@
 	      (unless (ada-search-ignore-string-comment
 		       "accept" t nil nil
 		       'word-search-backward)
-		(error "missing 'accept' in front of 'do'"))))
+		(error "Missing 'accept' in front of 'do'"))))
 	    (point))
 
 	(if noerror
 	    nil
-	  (error "no matching start"))))))
+	  (error "No matching start"))))))
 
 
 (defun ada-goto-matching-end (&optional nest-level noerror)
-  "Moves point to the end of a block.
+  "Move point to the end of a block.
 Which block depends on the value of NEST-LEVEL, which defaults to zero.
 If NOERROR is non-nil, it only returns nil if found no matching start."
   (let ((nest-count (or nest-level 0))
@@ -3963,20 +3961,20 @@
         t
       (if noerror
           nil
-        (error "no matching end")))
+        (error "No matching end")))
     ))
 
 
 (defun ada-search-ignore-string-comment
   (search-re &optional backward limit paramlists search-func)
   "Regexp-search for SEARCH-RE, ignoring comments, strings.
-If PARAMLISTS is nil, ignore parameter lists. Returns a cons cell of
+If PARAMLISTS is nil, ignore parameter lists.  Returns a cons cell of
 begin and end of match data or nil, if not found.
 The search is done using SEARCH-FUNC, which should search backward if
-BACKWARD is non-nil, forward otherwise. SEARCH-FUNC can be optimized in case
-we are searching for a constant string.
+BACKWARD is non-nil, forward otherwise.  SEARCH-FUNC can be optimized
+in case we are searching for a constant string.
 The search stops at pos LIMIT.
-Point is moved at the beginning of the search-re."
+Point is moved at the beginning of the SEARCH-RE."
   (let (found
         begin
         end
@@ -4061,7 +4059,7 @@
 ;; -------------------------------------------------------
 
 (defun ada-in-decl-p ()
-  "Returns t if point is inside a declarative part.
+  "Return t if point is inside a declarative part.
 Assumes point to be at the end of a statement."
   (or (ada-in-paramlist-p)
       (save-excursion
@@ -4069,7 +4067,7 @@
 
 
 (defun ada-looking-at-semi-or ()
-  "Returns t if looking-at an 'or' following a semicolon."
+  "Return t if looking at an 'or' following a semicolon."
   (save-excursion
     (and (looking-at "\\<or\\>")
          (progn
@@ -4079,7 +4077,7 @@
 
 
 (defun ada-looking-at-semi-private ()
-  "Returns t if looking at the start of a private section in a package.
+  "Return t if looking at the start of a private section in a package.
 Returns nil if the private is part of the package name, as in
 'private package A is...' (this can only happen at top level)."
   (save-excursion
@@ -4101,7 +4099,7 @@
 
 
 (defun ada-in-paramlist-p ()
-  "Returns t if point is inside a parameter-list."
+  "Return t if point is inside a parameter-list."
   (save-excursion
     (and
      (ada-search-ignore-string-comment "(\\|)" t nil t)
@@ -4151,7 +4149,7 @@
   result))
 
 (defun ada-in-open-paren-p ()
-  "Returns the position of the first non-ws behind the last unclosed
+  "Return the position of the first non-ws behind the last unclosed
 parenthesis, or nil."
   (save-excursion
     (let ((parse (parse-partial-sexp
@@ -4186,26 +4184,26 @@
 (defun ada-tab ()
   "Do indenting or tabbing according to `ada-tab-policy'.
 In Transient Mark mode, if the mark is active, operate on the contents
-of the region.  Otherwise, operates only on the current line."
+of the region.  Otherwise, operate only on the current line."
   (interactive)
   (cond ((eq ada-tab-policy 'indent-rigidly) (ada-tab-hard))
         ((eq ada-tab-policy 'indent-auto)
 	 (if (ada-region-selected)
              (ada-indent-region (region-beginning) (region-end))
            (ada-indent-current)))
-        ((eq ada-tab-policy 'always-tab) (error "not implemented"))
+        ((eq ada-tab-policy 'always-tab) (error "Not implemented"))
         ))
 
 (defun ada-untab (arg)
   "Delete leading indenting according to `ada-tab-policy'."
   (interactive "P")
   (cond ((eq ada-tab-policy 'indent-rigidly) (ada-untab-hard))
-        ((eq ada-tab-policy 'indent-auto) (error "not implemented"))
-        ((eq ada-tab-policy 'always-tab) (error "not implemented"))
+        ((eq ada-tab-policy 'indent-auto) (error "Not implemented"))
+        ((eq ada-tab-policy 'always-tab) (error "Not implemented"))
         ))
 
 (defun ada-indent-current-function ()
-  "Ada mode version of the indent-line-function."
+  "Ada mode version of the `indent-line-function'."
   (interactive "*")
   (let ((starting-point (point-marker)))
     (beginning-of-line)
@@ -4225,7 +4223,7 @@
       (forward-char ada-indent)))
 
 (defun ada-untab-hard ()
-  "indent current line to previous tab stop."
+  "Indent current line to previous tab stop."
   (interactive)
   (let  ((bol (save-excursion (progn (beginning-of-line) (point))))
          (eol (save-excursion (progn (end-of-line) (point)))))
@@ -4327,7 +4325,7 @@
 ;; -------------------------------------------------------------
 
 (defun ada-move-to-start ()
-  "Moves point to the matching start of the current Ada structure."
+  "Move point to the matching start of the current Ada structure."
   (interactive)
   (let ((pos (point))
         (previous-syntax-table (syntax-table)))
@@ -4348,7 +4346,7 @@
                     (or (looking-at "[ \t]*\\<end\\>")
                         (backward-word 1))
                     (or (looking-at "[ \t]*\\<end\\>")
-                        (error "not on end ...;")))
+                        (error "Not on end ...;")))
                   (ada-goto-matching-start 1)
                   (setq pos (point))
 
@@ -4369,7 +4367,7 @@
       (set-syntax-table previous-syntax-table))))
 
 (defun ada-move-to-end ()
-  "Moves point to the matching end of the block around point.
+  "Move point to the matching end of the block around point.
 Moves to 'begin' if in a declarative part."
   (interactive)
   (let ((pos (point))
@@ -4447,7 +4445,7 @@
       (set-syntax-table previous-syntax-table))))
 
 (defun ada-next-procedure ()
-  "Moves point to next procedure."
+  "Move point to next procedure."
   (interactive)
   (end-of-line)
   (if (re-search-forward ada-procedure-start-regexp nil t)
@@ -4455,7 +4453,7 @@
     (error "No more functions/procedures/tasks")))
 
 (defun ada-previous-procedure ()
-  "Moves point to previous procedure."
+  "Move point to previous procedure."
   (interactive)
   (beginning-of-line)
   (if (re-search-backward ada-procedure-start-regexp nil t)
@@ -4463,7 +4461,7 @@
     (error "No more functions/procedures/tasks")))
 
 (defun ada-next-package ()
-  "Moves point to next package."
+  "Move point to next package."
   (interactive)
   (end-of-line)
   (if (re-search-forward ada-package-start-regexp nil t)
@@ -4471,7 +4469,7 @@
     (error "No more packages")))
 
 (defun ada-previous-package ()
-  "Moves point to previous package."
+  "Move point to previous package."
   (interactive)
   (beginning-of-line)
   (if (re-search-backward ada-package-start-regexp nil t)
@@ -4591,7 +4589,7 @@
 
 
 (defun ada-create-menu ()
-  "Create the ada menu as shown in the menu bar."
+  "Create the Ada menu as shown in the menu bar."
   (let ((m '("Ada"
 	     ("Help"
 	      ["Ada Mode"               (info "ada-mode") t]
@@ -4788,28 +4786,28 @@
     (ada-indent-region beg end)))
 
 (defun ada-fill-comment-paragraph-justify ()
-  "Fills current comment paragraph and justifies each line as well."
+  "Fill current comment paragraph and justify each line as well."
   (interactive)
   (ada-fill-comment-paragraph 'full))
 
 (defun ada-fill-comment-paragraph-postfix ()
-  "Fills current comment paragraph and justifies each line as well.
+  "Fill current comment paragraph and justify each line as well.
 Adds `ada-fill-comment-postfix' at the end of each line."
   (interactive)
   (ada-fill-comment-paragraph 'full t))
 
 (defun ada-fill-comment-paragraph (&optional justify postfix)
-  "Fills the current comment paragraph.
+  "Fill the current comment paragraph.
 If JUSTIFY is non-nil, each line is justified as well.
-If POSTFIX and JUSTIFY are  non-nil, `ada-fill-comment-postfix' is appended
-to each filled and justified line.
+If POSTFIX and JUSTIFY are non-nil, `ada-fill-comment-postfix' is appended
+to each line filled and justified.
 The paragraph is indented on the first line."
   (interactive "P")
 
   ;; check if inside comment or just in front a comment
   (if (and (not (ada-in-comment-p))
            (not (looking-at "[ \t]*--")))
-      (error "not inside comment"))
+      (error "Not inside comment"))
 
   (let* (indent from to
          (opos (point-marker))
@@ -4920,8 +4918,8 @@
 
 (defun ada-other-file-name ()
   "Return the name of the other file.
-The name returned is the body if current-buffer is the spec, or the spec
-otherwise."
+The name returned is the body if `current-buffer' is the spec,
+or the spec otherwise."
 
   (let ((is-spec nil)
 	(is-body nil)
@@ -4990,15 +4988,15 @@
 
 
 (defvar ada-last-which-function-line -1
-  "Last on which ada-which-function was called")
+  "Last on which `ada-which-function' was called.")
 (defvar ada-last-which-function-subprog 0
-  "Last subprogram name returned by ada-which-function")
+  "Last subprogram name returned by `ada-which-function'.")
 (make-variable-buffer-local 'ada-last-which-function-subprog)
 (make-variable-buffer-local 'ada-last-which-function-line)
 
 
 (defun ada-which-function ()
-  "Returns the name of the function whose body the point is in.
+  "Return the name of the function whose body the point is in.
 This function works even in the case of nested subprograms, whereas the
 standard Emacs function `which-function' does not.
 Since the search can be long, the results are cached."
@@ -5082,8 +5080,8 @@
           (goto-char (point-min))))))
 
 (defun ada-get-body-name (&optional spec-name)
-  "Returns the file name for the body of SPEC-NAME.
-If SPEC-NAME is nil, returns the body for the current package.
+  "Return the file name for the body of SPEC-NAME.
+If SPEC-NAME is nil, return the body for the current package.
 Returns nil if no body was found."
   (interactive)
 
@@ -5230,7 +5228,7 @@
 ;; ---------------------------------------------------------
 
 (defun ada-outline-level ()
-  "This is so that `current-column` DTRT in otherwise-hidden text"
+  "This is so that `current-column' DTRT in otherwise-hidden text."
   ;; patch from Dave Love <fx@gnu.org>
   (let (buffer-invisibility-spec)
     (save-excursion
@@ -5242,10 +5240,10 @@
 ;; ---------------------------------------------------------
 
 (defun ada-narrow-to-defun (&optional arg)
-  "make text outside current subprogram invisible.
+  "Make text outside current subprogram invisible.
 The subprogram visible is the one that contains or follow point.
 Optional ARG is ignored.
-Use `M-x widen' to go back to the full visibility for the buffer"
+Use `M-x widen' to go back to the full visibility for the buffer."
 
   (interactive)
   (save-excursion
@@ -5276,8 +5274,8 @@
 
 (defun ada-gen-treat-proc (match)
   "Make dummy body of a procedure/function specification.
-MATCH is a cons cell containing the start and end location of the last search
-for ada-procedure-start-regexp."
+MATCH is a cons cell containing the start and end locations of the last search
+for `ada-procedure-start-regexp'."
   (goto-char (car match))
   (let (func-found procname functype)
     (cond
@@ -5398,7 +5396,7 @@
           (setq body-file (ada-get-body-name))
           (if body-file
               (find-file body-file)
-            (error "No body found for the package. Create it first"))
+            (error "No body found for the package.  Create it first"))
 
           (save-restriction
             (widen)
--- a/lisp/progmodes/cc-align.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/progmodes/cc-align.el	Tue Jun 21 15:42:45 2005 +0000
@@ -158,7 +158,7 @@
 Only continuation lines like this are touched, nil is returned on lines
 which are the start of an argument.
 
-Within a gcc asm block, \":\" is recognised as an argument separator,
+Within a gcc asm block, \":\" is recognized as an argument separator,
 but of course only between operand specifications, not in the expressions
 for the operands.
 
--- a/lisp/progmodes/cc-awk.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/progmodes/cc-awk.el	Tue Jun 21 15:42:45 2005 +0000
@@ -69,7 +69,7 @@
     ;; / can delimit regexes or be a division operator.  By default we assume
     ;; that it is a division sign, and fix the regexp operator cases with
     ;; `font-lock-syntactic-keywords'.
-    (modify-syntax-entry ?/ "." st)     ; ACM 2002/4/27.  
+    (modify-syntax-entry ?/ "." st)     ; ACM 2002/4/27.
     (modify-syntax-entry ?* "." st)
     (modify-syntax-entry ?+ "." st)
     (modify-syntax-entry ?- "." st)
@@ -85,7 +85,7 @@
   "Syntax table in use in AWK Mode buffers.")
 
 ;; ACM, 2002/5/29:
-;; 
+;;
 ;; The next section of code is about determining whether or not an AWK
 ;; statement is complete or not.  We use this to indent the following line.
 ;; The determination is pretty straightforward in C, where a statement ends
@@ -199,7 +199,7 @@
   ;;  Kludge: If c-backward-syntactic-ws gets stuck at a BOL, it is likely
   ;;  that the previous line contains an unterminated string (without \).  In
   ;;  this case, assume that the previous line's c-awk-NL-prop is a ;.
-  ;; 
+  ;;
   ;;  POINT MUST BE AT THE START OF A LINE when calling this function.  This
   ;;  is to ensure that the various backward-comment functions will work
   ;;  properly.
@@ -237,13 +237,13 @@
   ;; Calculate and set the value of the c-awk-NL-prop on the immediately
   ;; preceding EOL.  This may also involve doing the same for several
   ;; preceding EOLs.
-  ;; 
+  ;;
   ;; NOTE that if the property was already set, we return it without
   ;; recalculation.  (This is by accident rather than design.)
-  ;; 
+  ;;
   ;; Return the property which got set (or was already set) on the previous
   ;; line.  Return nil if we hit BOB.
-  ;; 
+  ;;
   ;; See c-awk-after-if-for-while-condition-p for a description of DO-LIM.
   (save-excursion
     (save-match-data
@@ -298,7 +298,7 @@
   ;; if necessary. (As a special case, the property doesn't get set on an
   ;; empty line at EOB (there's no position to set the property on), but the
   ;; function returns the property value an EOL would have got.)
-  ;; 
+  ;;
   ;; See c-awk-after-if-for-while-condition-p for a description of DO-LIM.
   (save-excursion
     (let ((extra-nl nil))
@@ -339,7 +339,7 @@
   (and (bolp)
        (eq (c-awk-get-NL-prop-prev-line do-lim) ?\;)))
 
-(defun c-awk-backward-syntactic-ws (&optional lim) 
+(defun c-awk-backward-syntactic-ws (&optional lim)
 ;; Skip backwards over awk-syntactic whitespace.  This is whitespace
 ;; characters, comments, and NEWLINES WHICH AREN'T "VIRTUAL SEMICOLONS".  For
 ;; this function, a newline isn't a "virtual semicolon" if that line ends with
@@ -431,7 +431,7 @@
 ;; Go back to the start of the (apparent) current line (or the start of the
 ;; line containing POS), returning the buffer position of that point.  I.e.,
 ;; go back to the last line which doesn't have an escaped EOL before it.
-;; 
+;;
 ;; This is guaranteed to be "safe" for syntactic analysis, i.e. outwith any
 ;; comment, string or regexp.  IT MAY WELL BE that this function should not be
 ;; executed on a narrowed buffer.
@@ -470,7 +470,7 @@
 ;; Matches a newline, or the end of buffer.
 
 ;; "Space" regular expressions.
-(defconst c-awk-escaped-nl "\\\\[\n\r]") 
+(defconst c-awk-escaped-nl "\\\\[\n\r]")
 ;; Matches an escaped newline.
 (defconst c-awk-escaped-nls* (concat "\\(" c-awk-escaped-nl "\\)*"))
 ;; Matches a possibly empty sequence of escaped newlines.  Used in
@@ -546,7 +546,7 @@
 ;;   Matches the inside of an AWK regexp (i.e. without the enclosing /s)
 (defconst c-awk-regexp-without-end-re
   (concat "/" c-awk-regexp-innards-re))
-;; Matches an AWK regexp up to, but not including, any terminating /. 
+;; Matches an AWK regexp up to, but not including, any terminating /.
 
 ;; REGEXPS used for scanning an AWK buffer in order to decide IF A '/' IS A
 ;; REGEXP OPENER OR A DIVISION SIGN.  By "state" in the following is meant
@@ -714,7 +714,7 @@
                 (c-awk-syntax-tablify-string)
               (c-awk-syntax-tablify-/ anchor anchor-state-/div)))
 
-      ;; Skip any further "harmless" lines before the next tricky one. 
+      ;; Skip any further "harmless" lines before the next tricky one.
       (if (search-forward-regexp c-awk-harmless-lines+-here-re nil t)
           (setq anchor-state-/div nil)))
     nil))
@@ -803,7 +803,7 @@
 defun.  Returns t unless search stops due to beginning or end of buffer.
 
 By a \"defun\" is meant either a pattern-action pair or a function.  The start
-of a defun is recognised as code starting at column zero which is neither a
+of a defun is recognized as code starting at column zero which is neither a
 closing brace nor a comment nor a continuation of the previous line.  Unlike
 in some other modes, having an opening brace at column 0 is neither necessary
 nor helpful."
--- a/lisp/progmodes/cc-fonts.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/progmodes/cc-fonts.el	Tue Jun 21 15:42:45 2005 +0000
@@ -193,6 +193,10 @@
 
 (unless (c-face-name-p c-invalid-face-name)
   (defconst c-invalid-face 'c-invalid-face) ; Necessary in Emacs 19.
+  ;; This face should be called `c-invalid' for consistency with the
+  ;; rest of emacs, but as it's only used in very old versions of Emacs,
+  ;; we leave it unchanged (the face-alias mechanism doesn't exist in
+  ;; those old versions).
   (defface c-invalid-face
     '((((class color) (background light)) (:foreground "red1"))
       (((class color)) (:foreground "hotpink"))
@@ -203,8 +207,8 @@
 ;; To make hard spaces visible an inverted version of
 ;; `c-invalid-face-name' is used.  Since font-lock in Emacs expands
 ;; all face names in `font-lock-keywords' as variables we need to have
-;; a variable for it that resolves to its own name.
-(defconst c-nonbreakable-space-face 'c-nonbreakable-space-face)
+;; a variable for it.
+(defconst c-nonbreakable-space-face 'c-nonbreakable-space)
 
 (cc-bytecomp-defun face-inverse-video-p) ; Only in Emacs.
 (cc-bytecomp-defun face-property-instance) ; Only in XEmacs.
@@ -511,9 +515,9 @@
       (eval . (list
 	       "\240"
 	       0 (progn
-		   (unless (c-face-name-p 'c-nonbreakable-space-face)
+		   (unless (c-face-name-p c-nonbreakable-space-face)
 		     (c-make-inverse-face c-invalid-face-name
-					  'c-nonbreakable-space-face))
+					  c-nonbreakable-space-face))
 		   'c-nonbreakable-space-face)))
       ))
 
--- a/lisp/progmodes/cperl-mode.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/progmodes/cperl-mode.el	Tue Jun 21 15:42:45 2005 +0000
@@ -5209,7 +5209,7 @@
       (set (car setting) (cdr setting)))))
 
 (defun cperl-set-style-back ()
-  "Restore a style memorised by `cperl-set-style'."
+  "Restore a style memorized by `cperl-set-style'."
   (interactive)
   (or cperl-old-style (error "The style was not changed"))
   (let (setting)
--- a/lisp/progmodes/grep.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/progmodes/grep.el	Tue Jun 21 15:42:45 2005 +0000
@@ -250,17 +250,20 @@
   ;; rms: I removed the code to match parens around the line number
   ;; because it causes confusion and so we will find out if anyone needs it.
   ;; It causes confusion with a file name that contains a number in parens.
-  '(("^\\(.+?\\)[: \t]+\
+  '(("^\\(.+?\\)\\([: \t]\\)+\
 \\([0-9]+\\)\\([.:]?\\)\\([0-9]+\\)?\
-\\(?:-\\(?:\\([0-9]+\\)\\3\\)?\\.?\\([0-9]+\\)?\\)?[: \t]" 1 (2 . 5) (4 . 6))
-    ("^\\(.+?\\)[:(]+\\([0-9]+\\)\\([:)]\\).*?\\(\033\\[01;41m\\)\\(.*?\\)\\(\033\\[00m\\(\033\\[K\\)?\\)"
-     1 2
+\\(?:-\\(?:\\([0-9]+\\)\\4\\)?\\.?\\([0-9]+\\)?\\)?\\2"
+     1 (3 . 6) (5 . 7))
+    ("^\\(\\(.+?\\):\\([0-9]+\\):\\).*?\
+\\(\033\\[01;41m\\)\\(.*?\\)\\(\033\\[00m\\(?:\033\\[K\\)?\\)"
+     2 3
      ;; Calculate column positions (beg . end) of first grep match on a line
      ((lambda ()
         (setq compilation-error-screen-columns nil)
-        (- (match-beginning 5) (match-end 3) 8))
+        (- (match-beginning 5) (match-end 1) 8))
       .
-      (lambda () (- (match-end 5) (match-end 3) 8))))
+      (lambda () (- (match-end 5) (match-end 1) 8)))
+     nil 1)
     ("^Binary file \\(.+\\) matches$" 1 nil nil 1))
   "Regexp used to match grep hits.  See `compilation-error-regexp-alist'.")
 
@@ -293,7 +296,7 @@
       (1 compilation-warning-face)
       (2 compilation-line-face))
      ;; Highlight grep matches and delete markers
-     ("\\(\033\\[01;41m\\)\\(.*?\\)\\(\033\\[00m\\(\033\\[K\\)?\\)"
+     ("\\(\033\\[01;41m\\)\\(.*?\\)\\(\033\\[00m\\(?:\033\\[K\\)?\\)"
       ;; Refontification does not work after the markers have been
       ;; deleted.  So we use the font-lock-face property here as Font
       ;; Lock does not clear that.
@@ -517,7 +520,10 @@
   (set (make-local-variable 'compilation-error-face)
        grep-hit-face)
   (set (make-local-variable 'compilation-error-regexp-alist)
-       grep-regexp-alist))
+       grep-regexp-alist)
+  ;; Set `font-lock-lines-before' to 0 to not refontify the previous
+  ;; line where grep markers may be already removed.
+  (set (make-local-variable 'font-lock-lines-before) 0))
 
 ;;;###autoload
 (defun grep-find (command-args)
--- a/lisp/progmodes/idlwave.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/progmodes/idlwave.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1369,7 +1369,7 @@
 ;; Note that this is documented in the v18 manuals as being a string
 ;; of length one rather than a single character.
 ;; The code in this file accepts either format for compatibility.
-(defvar idlwave-comment-indent-char ?\ 
+(defvar idlwave-comment-indent-char ?\
   "Character to be inserted for IDL comment indentation.
 Normally a space.")
 
@@ -5493,8 +5493,8 @@
 	  (error "Nothing known about procedure %s"
 		 (idlwave-make-full-name class name)))
 	(setq list (idlwave-fix-keywords name 'pro class list super-classes))
-	(unless list (error (format "No keywords available for procedure %s"
-				    (idlwave-make-full-name class name))))
+	(unless list (error "No keywords available for procedure %s"
+                            (idlwave-make-full-name class name)))
 	(setq idlwave-completion-help-info
 	      (list 'keyword name type-selector class-selector entry super-classes))
 	(idlwave-complete-in-buffer
@@ -5531,8 +5531,8 @@
 			   (concat idlwave-current-obj_new-class
 				   "::Init (via OBJ_NEW)")
 			 (idlwave-make-full-name class name)))
-	(unless list (error (format "No keywords available for function %s"
-				    msg-name)))
+	(unless list (error "No keywords available for function %s"
+                            msg-name))
 	(setq idlwave-completion-help-info
 	      (list 'keyword name type-selector class-selector nil super-classes))
 	(idlwave-complete-in-buffer
--- a/lisp/progmodes/inf-lisp.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/progmodes/inf-lisp.el	Tue Jun 21 15:42:45 2005 +0000
@@ -161,7 +161,7 @@
 
 ;;;###autoload
 (defcustom inferior-lisp-prompt "^[^> \n]*>+:? *"
-  "Regexp to recognise prompts in the Inferior Lisp mode.
+  "Regexp to recognize prompts in the Inferior Lisp mode.
 Defaults to \"^[^> \\n]*>+:? *\", which works pretty good for Lucid, kcl,
 and franz.  This variable is used to initialize `comint-prompt-regexp' in the
 Inferior Lisp buffer.
--- a/lisp/progmodes/make-mode.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/progmodes/make-mode.el	Tue Jun 21 15:42:45 2005 +0000
@@ -105,6 +105,7 @@
   "Face to use for highlighting leading spaces in Font-Lock mode."
   :group 'faces
   :group 'makefile)
+(put 'makefile-space-face 'face-alias 'makefile-space)
 
 (defface makefile-targets
   ;; This needs to go along both with foreground and background colors (i.e. shell)
--- a/lisp/progmodes/modula2.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/progmodes/modula2.el	Tue Jun 21 15:42:45 2005 +0000
@@ -309,7 +309,7 @@
   "Build skeleton FOR loop statement, prompting for the loop parameters."
   (interactive)
   (insert "FOR ")
-  (let ((name (read-string "Loop Initialiser: ")) limit by)
+  (let ((name (read-string "Loop Initializer: ")) limit by)
     (insert name " TO ")
     (setq limit (read-string "Limit: "))
     (insert limit)
--- a/lisp/progmodes/ps-mode.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/progmodes/ps-mode.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1,11 +1,11 @@
 ;;; ps-mode.el --- PostScript mode for GNU Emacs
 
-;; Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2001, 2005 Free Software Foundation, Inc.
 
-;; Author:     Peter Kleiweg <kleiweg@let.rug.nl>
-;; Maintainer: Peter Kleiweg <kleiweg@let.rug.nl>
+;; Author:     Peter Kleiweg <p.c.j.kleiweg@rug.nl>
+;; Maintainer: Peter Kleiweg <p.c.j.kleiweg@rug.nl>
 ;; Created:    20 Aug 1997
-;; Version:    1.1g, 9 Nov 2001
+;; Version:    1.1h, 16 Jun 2005
 ;; Keywords:   PostScript, languages
 
 ;; This file is part of GNU Emacs.
@@ -30,8 +30,8 @@
 
 ;;; Code:
 
-(defconst ps-mode-version "1.1g, 9 Nov 2001")
-(defconst ps-mode-maintainer-address "Peter Kleiweg <kleiweg@let.rug.nl>")
+(defconst ps-mode-version "1.1h, 16 Jun 2005")
+(defconst ps-mode-maintainer-address "Peter Kleiweg <p.c.j.kleiweg@rug.nl>")
 
 (require 'easymenu)
 
--- a/lisp/progmodes/vhdl-mode.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/progmodes/vhdl-mode.el	Tue Jun 21 15:42:45 2005 +0000
@@ -2305,7 +2305,7 @@
 			  (progn
 			    (when file-opened (kill-buffer (current-buffer)))
 			    (set-buffer source-buffer)
-			    (error (format "ERROR:  File cannot be opened: \"%s\"" ,file-name)))
+			    (error "ERROR:  File cannot be opened: \"%s\"" ,file-name))
 			(vhdl-warning (format "File cannot be opened: \"%s\"" ,file-name) t)
 			nil))))
 	   (condition-case info
@@ -6027,8 +6027,8 @@
 stops due to beginning or end of buffer.
 Note that if point is between the \"libunit\" keyword and the
 corresponding \"begin\" keyword, then that libunit will not be
-recognised, and the search will continue backwards.  If point is
-at the \"begin\" keyword, then the defun will be recognised.  The
+recognized, and the search will continue backwards.  If point is
+at the \"begin\" keyword, then the defun will be recognized.  The
 returned point is at the first character of the \"libunit\" keyword."
   (let ((last-forward (point))
 	(last-backward
@@ -15358,7 +15358,7 @@
 		   (cons constant-name
 			 (if (match-string 1)
 			     (or (aget generic-alist (match-string 2) t)
-				 (error (format "ERROR:  Formal generic \"%s\" mismatch for instance \"%s\"" (match-string 2) inst-name)))
+				 (error "ERROR:  Formal generic \"%s\" mismatch for instance \"%s\"" (match-string 2) inst-name))
 			   (cdar generic-alist))))
 	     (setq constant-alist (cons constant-entry constant-alist))
 	     (setq constant-name (downcase constant-name))
@@ -15378,7 +15378,7 @@
 	   (setq signal-entry (cons signal-name
 				    (if (match-string 1)
 					(or (aget port-alist (match-string 2) t)
-					    (error (format "ERROR:  Formal port \"%s\" mismatch for instance \"%s\"" (match-string 2) inst-name)))
+					    (error "ERROR:  Formal port \"%s\" mismatch for instance \"%s\"" (match-string 2) inst-name))
 				      (cdar port-alist))))
 	   (setq signal-alist (cons signal-entry signal-alist))
 	   (setq signal-name (downcase signal-name))
--- a/lisp/shell.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/shell.el	Tue Jun 21 15:42:45 2005 +0000
@@ -133,7 +133,7 @@
 (defcustom shell-prompt-pattern "^[^#$%>\n]*[#$%>] *"
   "Regexp to match prompts in the inferior shell.
 Defaults to \"^[^#$%>\\n]*[#$%>] *\", which works pretty well.
-This variable is used to initialise `comint-prompt-regexp' in the
+This variable is used to initialize `comint-prompt-regexp' in the
 shell buffer.
 
 If `comint-use-prompt-regexp' is nil, then this variable is only used
@@ -159,7 +159,7 @@
   :group 'shell)
 
 (defvar shell-delimiter-argument-list '(?\| ?& ?< ?> ?\( ?\) ?\;)
-  "List of characters to recognise as separate arguments.
+  "List of characters to recognize as separate arguments.
 This variable is used to initialize `comint-delimiter-argument-list' in the
 shell buffer.  The value may depend on the operating system or shell.
 
@@ -192,7 +192,7 @@
     shell-replace-by-expanded-directory
     comint-dynamic-complete-filename)
   "List of functions called to perform completion.
-This variable is used to initialise `comint-dynamic-complete-functions' in the
+This variable is used to initialize `comint-dynamic-complete-functions' in the
 shell buffer.
 
 This is a fine thing to set in your `.emacs' file.")
@@ -407,7 +407,7 @@
 `comint-completion-recexact' and `comint-completion-fignore' control the
 behavior of file name, command name and variable name completion.  Variable
 `shell-completion-execonly' controls the behavior of command name completion.
-Variable `shell-completion-fignore' is used to initialise the value of
+Variable `shell-completion-fignore' is used to initialize the value of
 `comint-completion-fignore'.
 
 Variables `comint-input-ring-file-name' and `comint-input-autoexpand' control
@@ -950,7 +950,7 @@
 	  (and comint-completion-fignore
 	       (mapconcat (function (lambda (x) (concat (regexp-quote x) "$")))
 			  comint-completion-fignore "\\|")))
-	 (dir "") (comps-in-dir ()) 
+	 (dir "") (comps-in-dir ())
 	 (file "") (abs-file-name "") (completions ()))
     ;; Go thru each dir in the search path, finding completions.
     (while path-dirs
--- a/lisp/simple.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/simple.el	Tue Jun 21 15:42:45 2005 +0000
@@ -327,7 +327,8 @@
 Other major modes are defined by comparison with this one."
   (interactive)
   (kill-all-local-variables)
-  (run-hooks 'after-change-major-mode-hook))
+  (unless delay-mode-hooks
+    (run-hooks 'after-change-major-mode-hook)))
 
 ;; Making and deleting lines.
 
@@ -1287,7 +1288,7 @@
 
 (defvar pending-undo-list nil
   "Within a run of consecutive undo commands, list remaining to be undone.
-t if we undid all the way to the end of it.")
+If t, we undid all the way to the end of it.")
 
 (defun undo (&optional arg)
   "Undo some previous changes.
@@ -1399,16 +1400,16 @@
   "Non-nil while performing an undo.
 Some change-hooks test this variable to do something different.")
 
-(defun undo-more (count)
+(defun undo-more (n)
   "Undo back N undo-boundaries beyond what was already undone recently.
 Call `undo-start' to get ready to undo recent changes,
 then call `undo-more' one or more times to undo them."
   (or (listp pending-undo-list)
-      (error (format "No further undo information%s"
-		     (if (and transient-mark-mode mark-active)
-			 " for region" ""))))
+      (error (concat "No further undo information"
+                     (and transient-mark-mode mark-active
+                          " for region"))))
   (let ((undo-in-progress t))
-    (setq pending-undo-list (primitive-undo count pending-undo-list))
+    (setq pending-undo-list (primitive-undo n pending-undo-list))
     (if (null pending-undo-list)
 	(setq pending-undo-list t))))
 
@@ -4846,7 +4847,7 @@
 	(if (minibufferp mainbuf)
 	    (if (and (symbolp minibuffer-completion-table)
 		     (get minibuffer-completion-table 'completion-base-size-function))
-		(setq completion-base-size 
+		(setq completion-base-size
 		      (funcall (get minibuffer-completion-table 'completion-base-size-function)))
 	      (setq completion-base-size 0))))
       ;; Put faces on first uncommon characters and common parts.
--- a/lisp/smerge-mode.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/smerge-mode.el	Tue Jun 21 15:42:45 2005 +0000
@@ -247,7 +247,7 @@
 
 (defun smerge-ensure-match (n)
   (unless (match-end n)
-    (error (format "No `%s'" (aref smerge-match-names n)))))
+    (error "No `%s'" (aref smerge-match-names n))))
 
 (defun smerge-auto-leave ()
   (when (and smerge-auto-leave
--- a/lisp/startup.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/startup.el	Tue Jun 21 15:42:45 2005 +0000
@@ -801,6 +801,14 @@
     ;; the startup message.
     (setq inhibit-startup-message nil)
 
+    ;; Warn for invalid user name.
+    (and init-file-user
+	 (not (file-directory-p (expand-file-name (concat "~" init-file-user))))
+	 (display-warning 'initialization
+			  (format "User %s has no home directory"
+				  init-file-user)
+			  :error))
+
     ;; Load that user's init file, or the default one, or none.
     (let (debug-on-error-from-init-file
 	  debug-on-error-should-be-set
--- a/lisp/subr.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/subr.el	Tue Jun 21 15:42:45 2005 +0000
@@ -963,36 +963,32 @@
 The test for presence of ELEMENT is done with `equal'.
 
 The resulting list is reordered so that the elements are in the
-order given by each element's numeric list order.  Elements which
-are not symbols, and symbol elements without a numeric list order
-are placed at the end of the list.
+order given by each element's numeric list order.
+Elements without a numeric list order are placed at the end of
+the list.
 
-If the third optional argument ORDER is non-nil and ELEMENT is
-a symbol, set the symbol's list order to the given value.
+If the third optional argument ORDER is non-nil, set the
+element's list order to the given value.
 
-The list order for each symbol is stored in LIST-VAR's
+The list order for each element is stored in LIST-VAR's
 `list-order' property.
 
 The return value is the new value of LIST-VAR."
-  (let* ((ordering (get list-var 'list-order))
-	 (cur (and (symbolp element) (assq element ordering))))
+  (let ((ordering (get list-var 'list-order)))
+    (unless ordering
+      (put list-var 'list-order
+           (setq ordering (make-hash-table :weakness 'key :test 'eq))))
     (when order
-      (unless (symbolp element)
-	(error "cannot specify order for non-symbols"))
-      (if cur
-	  (setcdr cur order)
-	(setq cur (cons element order))
-	(setq ordering (cons cur ordering))
-	(put list-var 'list-order ordering)))
+      (puthash element order ordering))
     (add-to-list list-var element)
     (set list-var (sort (symbol-value list-var)
 			(lambda (a b)
-			  (let ((oa (and (symbolp a) (assq a ordering)))
-				(ob (and (symbolp b) (assq b ordering))))
+			  (let ((oa (gethash a ordering))
+				(ob (gethash b ordering)))
 			    (cond
 			     ((not oa) nil)
 			     ((not ob) t)
-			     (t (< (cdr oa) (cdr ob))))))))))
+			     (t (< oa ob)))))))))
 
 
 ;;; Load history
--- a/lisp/term.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/term.el	Tue Jun 21 15:42:45 2005 +0000
@@ -485,7 +485,7 @@
   :group 'term)
 
 (defvar term-prompt-regexp "^"
-  "Regexp to recognise prompts in the inferior process.
+  "Regexp to recognize prompts in the inferior process.
 Defaults to \"^\", the null string at BOL.
 
 Good choices:
@@ -499,7 +499,7 @@
 This is a good thing to set in mode hooks.")
 
 (defvar term-delimiter-argument-list ()
-  "List of characters to recognise as separate arguments in input.
+  "List of characters to recognize as separate arguments in input.
 Strings comprising a character in this list will separate the arguments
 surrounding them, and also be regarded as arguments in their own right (unlike
 whitespace).  See `term-arguments'.
@@ -570,8 +570,8 @@
   "Function that submits old text in term mode.
 This function is called when return is typed while the point is in old text.
 It returns the text to be submitted as process input.  The default is
-term-get-old-input-default, which grabs the current line, and strips off
-leading text matching term-prompt-regexp")
+`term-get-old-input-default', which grabs the current line, and strips off
+leading text matching `term-prompt-regexp'.")
 
 (defvar term-dynamic-complete-functions
   '(term-replace-by-expanded-history term-dynamic-complete-filename)
@@ -585,7 +585,7 @@
   (function (lambda (str) (not (string-match "\\`\\s *\\'" str))))
   "Predicate for filtering additions to input history.
 Only inputs answering true to this function are saved on the input
-history list.  Default is to save anything that isn't all whitespace")
+history list.  Default is to save anything that isn't all whitespace.")
 
 (defvar term-input-filter-functions '()
   "Functions to call before input is sent to the process.
@@ -595,9 +595,9 @@
 
 (defvar term-input-sender (function term-simple-send)
   "Function to actually send to PROCESS the STRING submitted by user.
-Usually this is just 'term-simple-send, but if your mode needs to
+Usually this is just `term-simple-send', but if your mode needs to
 massage the input string, this is your hook.  This is called from
-the user command term-send-input.  `term-simple-send' just sends
+the user command `term-send-input'.  `term-simple-send' just sends
 the string plus a newline.")
 
 (defcustom term-eol-on-send t
@@ -607,16 +607,16 @@
   :group 'term)
 
 (defcustom term-mode-hook '()
-  "Called upon entry into term-mode
+  "Called upon entry into term mode.
 This is run before the process is cranked up."
   :type 'hook
   :group 'term)
 
 (defcustom term-exec-hook '()
-  "Called each time a process is exec'd by term-exec.
+  "Called each time a process is exec'd by `term-exec'.
 This is called after the process is cranked up.  It is useful for things that
-must be done each time a process is executed in a term-mode buffer (e.g.,
-\(process-kill-without-query)).  In contrast, the term-mode-hook is only
+must be done each time a process is executed in a term mode buffer (e.g.,
+`process-kill-without-query').  In contrast, `term-mode-hook' is only
 executed once when the buffer is created."
   :type 'hook
   :group 'term)
@@ -625,7 +625,7 @@
 (defvar term-raw-map nil
   "Keyboard map for sending characters directly to the inferior process.")
 (defvar term-escape-char nil
-  "Escape character for char-sub-mode of term mode.
+  "Escape character for char sub-mode of term mode.
 Do not change it directly;  use `term-set-escape-char' instead.")
 (defvar term-raw-escape-map nil)
 
@@ -3951,9 +3951,9 @@
 
 (defun term-replace-by-expanded-filename ()
   "Dynamically expand and complete the filename at point.
-Replace the filename with an expanded, canonicalised and completed replacement.
+Replace the filename with an expanded, canonicalized and completed replacement.
 \"Expanded\" means environment variables (e.g., $HOME) and `~'s are replaced
-with the corresponding directories.  \"Canonicalised\" means `..'  and `.' are
+with the corresponding directories.  \"Canonicalized\" means `..'  and `.' are
 removed, and the filename is made absolute instead of relative.  For expansion
 see `expand-file-name' and `substitute-in-file-name'.  For completion see
 `term-dynamic-complete-filename'."
--- a/lisp/term/linux.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/term/linux.el	Tue Jun 21 15:42:45 2005 +0000
@@ -4,6 +4,9 @@
 (unless (terminal-coding-system)
   (set-terminal-coding-system 'iso-latin-1))
 
+;; It can't really display underlines.
+(tty-no-underline)
+
 ;; Make Latin-1 input characters work, too.
 ;; Meta will continue to work, because the kernel
 ;; turns that into Escape.
--- a/lisp/textmodes/bibtex.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/textmodes/bibtex.el	Tue Jun 21 15:42:45 2005 +0000
@@ -4277,9 +4277,11 @@
   (bibtex-move-outside-of-entry)
   (indent-to-column bibtex-entry-offset)
   (insert "@Preamble"
-          (bibtex-entry-left-delimiter))
+          (bibtex-entry-left-delimiter)
+          (bibtex-field-left-delimiter))
   (let ((endpos (point)))
     (insert (bibtex-entry-right-delimiter)
+            (bibtex-field-right-delimiter)
             "\n")
     (goto-char endpos)))
 
--- a/lisp/textmodes/sgml-mode.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/textmodes/sgml-mode.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1386,7 +1386,7 @@
 	    (* sgml-basic-offset (length context)))))))
 
     (otherwise
-     (error "Unrecognised context %s" (car lcon)))
+     (error "Unrecognized context %s" (car lcon)))
 
     ))
 
@@ -1721,7 +1721,7 @@
     ("dir" . "Directory list (obsolete)")
     ("dl" . "Definition list")
     ("dt" . "Term to be definined")
-    ("em" . "Emphasised")
+    ("em" . "Emphasized")
     ("embed" . "Embedded data in foreign format")
     ("fig" . "Figure")
     ("figa" . "Figure anchor")
--- a/lisp/tooltip.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/tooltip.el	Tue Jun 21 15:42:45 2005 +0000
@@ -119,11 +119,6 @@
   :tag "Use echo area"
   :group 'tooltip)
 
-(make-obsolete-variable 'tooltip-use-echo-area
-"To display help tooltips in the echo area turn tooltip-mode off.
-To display GUD tooltips in the echo area turn gud-tooltip-mode on and set
-gud-tooltip-echo-area to t." "22.1")
-
 
 ;;; Variables that are not customizable.
 
@@ -201,12 +196,12 @@
     (setq tooltip-timeout-id nil)))
 
 (defun tooltip-start-delayed-tip ()
-  "Add a one-shot timeout to call function tooltip-timeout."
+  "Add a one-shot timeout to call function `tooltip-timeout'."
   (setq tooltip-timeout-id
 	(add-timeout (tooltip-delay) 'tooltip-timeout nil)))
 
 (defun tooltip-timeout (object)
-  "Function called when timer with id tooltip-timeout-id fires."
+  "Function called when timer with id `tooltip-timeout-id' fires."
   (run-hook-with-args-until-success 'tooltip-hook
 				    tooltip-last-mouse-motion-event))
 
@@ -301,8 +296,8 @@
 
 (defun tooltip-process-prompt-regexp (process)
   "Return regexp matching the prompt of PROCESS at the end of a string.
-The prompt is taken from the value of COMINT-PROMPT-REGEXP in the buffer
-of PROCESS."
+The prompt is taken from the value of `comint-prompt-regexp' in
+the buffer of PROCESS."
   (let ((prompt-regexp (save-excursion
 			 (set-buffer (process-buffer process))
 			 comint-prompt-regexp)))
@@ -349,7 +344,7 @@
 (defun tooltip-help-tips (event)
   "Hook function to display a help tooltip.
 This is installed on the hook `tooltip-hook', which is run when
-the timer with ID `tooltip-timeout-id' fires.
+the timer with id `tooltip-timeout-id' fires.
 Value is non-nil if this function handled the tip."
   (when (stringp tooltip-help-message)
     (tooltip-show tooltip-help-message tooltip-use-echo-area)
--- a/lisp/tree-widget.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/tree-widget.el	Tue Jun 21 15:42:45 2005 +0000
@@ -1,6 +1,6 @@
 ;;; tree-widget.el --- Tree widget
 
-;; Copyright (C) 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 ;; Author: David Ponce <david@dponce.com>
 ;; Maintainer: David Ponce <david@dponce.com>
@@ -174,7 +174,7 @@
 
 ;;; Image support
 ;;
-(eval-when-compile ;; GNU Emacs/XEmacs compatibility stuff
+(eval-and-compile ;; GNU Emacs/XEmacs compatibility stuff
   (cond
    ;; XEmacs
    ((featurep 'xemacs)
@@ -469,21 +469,6 @@
                    'widget-type)
               property))
 
-(defsubst tree-widget-super-format-handler (widget escape)
-  "Call WIDGET's inherited format handler to process ESCAPE character."
-  (let ((handler (tree-widget-get-super widget :format-handler)))
-    (and handler (funcall handler widget escape))))
-
-(defun tree-widget-format-handler (widget escape)
-  "For WIDGET, signal that the %p format template is obsolete.
-Call WIDGET's inherited format handler to process other ESCAPE
-characters."
-  (if (eq escape ?p)
-      (message "The %%p format template is obsolete and ignored")
-    (tree-widget-super-format-handler widget escape)))
-(make-obsolete 'tree-widget-format-handler
-               'tree-widget-super-format-handler)
-
 (defsubst tree-widget-node (widget)
   "Return the tree WIDGET :node value.
 If not found setup a default 'item' widget."
@@ -630,26 +615,28 @@
   (let* ((widget-image-enable (tree-widget-use-image-p))     ; Emacs
          (widget-glyph-enable widget-image-enable)           ; XEmacs
          (node (tree-widget-node tree))
+         (flags (widget-get tree :tree-widget--guide-flags))
+         (indent (widget-get tree :indent))
          children buttons)
+    (and indent (not (widget-get tree :parent))
+         (insert-char ?\  indent))
     (if (widget-get tree :open)
 ;;;; Unfolded node.
-        (let* ((args     (widget-get tree :args))
-               (dynargs  (widget-get tree :dynargs))
-               (flags    (widget-get tree :tree-widget--guide-flags))
-               (rflags   (reverse flags))
-               (guide    (tree-widget-guide     tree))
-               (noguide  (tree-widget-no-guide  tree))
-               (endguide (tree-widget-end-guide tree))
-               (handle   (tree-widget-handle    tree))
-               (nohandle (tree-widget-no-handle tree))
-               ;; Lookup for images and set widgets' tag-glyphs here,
-               ;; to allow to dynamically change the image theme.
-               (guidi    (tree-widget-find-image "guide"))
-               (noguidi  (tree-widget-find-image "no-guide"))
-               (endguidi (tree-widget-find-image "end-guide"))
-               (handli   (tree-widget-find-image "handle"))
-               (nohandli (tree-widget-find-image "no-handle"))
-               child)
+        (let ((args     (widget-get tree :args))
+              (dynargs  (widget-get tree :dynargs))
+              (guide    (tree-widget-guide     tree))
+              (noguide  (tree-widget-no-guide  tree))
+              (endguide (tree-widget-end-guide tree))
+              (handle   (tree-widget-handle    tree))
+              (nohandle (tree-widget-no-handle tree))
+              ;; Lookup for images and set widgets' tag-glyphs here,
+              ;; to allow to dynamically change the image theme.
+              (guidi    (tree-widget-find-image "guide"))
+              (noguidi  (tree-widget-find-image "no-guide"))
+              (endguidi (tree-widget-find-image "end-guide"))
+              (handli   (tree-widget-find-image "handle"))
+              (nohandli (tree-widget-find-image "no-handle"))
+              child)
           (when dynargs
             ;; Request the definition of dynamic children
             (setq dynargs (funcall dynargs tree))
@@ -671,8 +658,9 @@
           (while args
             (setq child (car args)
                   args  (cdr args))
+            (and indent (insert-char ?\  indent))
             ;; Insert guide lines elements
-            (dolist (f rflags)
+            (dolist (f (reverse flags))
               (widget-create-child-and-convert
                tree (if f guide noguide)
                :tag-glyph (if f guidi noguidi))
--- a/lisp/woman.el	Wed Jun 15 12:57:51 2005 +0000
+++ b/lisp/woman.el	Tue Jun 21 15:42:45 2005 +0000
@@ -828,7 +828,7 @@
   :group 'woman-formatting)
 
 (defcustom woman-ignore t
-  "*If non-nil then unrecognised requests etc. are ignored.  Default is t.
+  "*If non-nil then unrecognized requests etc. are ignored.  Default is t.
 This gives the standard ?roff behavior.  If nil then they are left in
 the buffer, which may aid debugging."
   :type 'boolean
@@ -2504,7 +2504,7 @@
       (setq c (memq (following-char) woman-if-conditions-true)))
      ;; Unrecognised letter so reject:
      ((looking-at "[A-Za-z]") (setq c nil)
-      (WoMan-warn "%s %s -- unrecognised condition name rejected!"
+      (WoMan-warn "%s %s -- unrecognized condition name rejected!"
 		  request (match-string 0)))
      ;; Accept strings if identical:
      ((save-restriction
--- a/lispref/ChangeLog	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/ChangeLog	Tue Jun 21 15:42:45 2005 +0000
@@ -1,3 +1,75 @@
+2005-06-19  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* lists.texi (Rings): Various minor clarifications and corrections.
+
+2005-06-18  Richard M. Stallman  <rms@gnu.org>
+
+	* functions.texi (Obsolete Functions): Simplify.
+
+	* variables.texi (Variable Aliases): Simplify.
+
+	* anti.texi, backups.texi, compile.texi, customization.texi:
+	* debugging.texi, display.texi, edebug.texi, errors.texi, frames.texi:
+	* functions.texi, help.texi, keymaps.texi, modes.texi, nonascii.texi:
+	* os.texi, processes.texi, searching.texi, strings.texi, text.texi:
+	* variables.texi: Fix formatting ugliness.
+
+	* elisp.texi: Add links to Rings and Byte Packing.
+	Update version and copyright years.
+
+	* minibuf.texi: Fix formatting ugliness.
+	(Completion Commands): Move keymap vars to the end
+	and vars completing-read binds to the top.
+
+2005-06-17  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* processes.texi: Fix typos.
+	(Bindat Spec): Correct Texinfo error.
+	(Byte Packing): Fix ungrammatical sentence.
+
+2005-06-17  Thien-Thi Nguyen  <ttn@gnu.org>
+
+	* lists.texi (Rings): New node.
+	(Lists): Add it to menu.
+
+	* processes.texi (Byte Packing): New node.
+	(Processes): Add it to menu.
+
+2005-06-17  Richard M. Stallman  <rms@gnu.org>
+
+	* syntax.texi (Parsing Expressions): Fix texinfo usage.
+
+	* help.texi (Documentation Basics): Explain the xref to
+	Documentation Tips.
+
+	* debugging.texi (Debugger Commands): Minor fix.
+
+2005-06-16  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* edebug.texi (Instrumenting): Eliminate duplicate link.
+	(Specification List): Replace references to "below", referring to
+	a later node, with one @ref to that node.
+
+	* os.texi (Timers): Timers should save and restore the match data
+	if they change it.
+
+	* debugging.texi (Debugger Commands): Mention that the Lisp
+	debugger can not step through primitive functions.
+
+2005-06-16  Juanma Barranquero  <lekktu@gmail.com>
+
+	* functions.texi (Obsolete Functions): Update argument names of
+	`make-obsolete' and `define-obsolete-function-alias'.
+
+	* variables.texi (Variable Aliases): Update argument names of
+	`defvaralias', `make-obsolete-variable' and
+	`define-obsolete-variable-alias'.
+
+2005-06-15  Kim F. Storm  <storm@cua.dk>
+
+	* searching.texi (Entire Match Data): Rephrase warnings about
+	evaporate arg to match-data and set-match-data.
+
 2005-06-14  Luc Teirlinck  <teirllm@auburn.edu>
 
 	* elisp.texi (Top): Update detailed menu.
@@ -50,7 +122,7 @@
 
 2005-06-10  Luc Teirlinck  <teirllm@auburn.edu>
 
-	* syntax.texi (Parsing Exprssions): Fix Texinfo error.
+	* syntax.texi (Parsing Expressions): Fix Texinfo error.
 
 2005-06-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 
--- a/lispref/anti.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/anti.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -164,9 +164,10 @@
 @item
 Many programming shortcuts have been deleted, to provide you with the
 enjoyment of ``rolling your own''.  The macros @code{while-no-input},
-@code{with-local-quit}, @code{with-selected-window},
-@code{dynamic-completion-table}, and @code{lazy-completion-table} no
-longer exist.  Also, there are no built-in progress reporters.
+@code{with-local-quit}, and @code{with-selected-window}, along with
+@code{dynamic-completion-table} and @code{lazy-completion-table} no
+longer exist.  Also, there are no built-in progress reporters;
+with Emacs, you can take progress for granted.
 
 @item
 Variable aliases are no longer supported.  Aliases are for functions,
--- a/lispref/backups.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/backups.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -589,10 +589,10 @@
 saves all buffers for which auto-saving is enabled and that have been
 changed since the previous auto-save.
 
-Normally, if any buffers are auto-saved, a message that says
-@samp{Auto-saving...} is displayed in the echo area while auto-saving is
-going on.  However, if @var{no-message} is non-@code{nil}, the message
-is inhibited.
+If any buffers are auto-saved, @code{do-auto-save} normally displays a
+message saying @samp{Auto-saving...} in the echo area while
+auto-saving is going on.  However, if @var{no-message} is
+non-@code{nil}, the message is inhibited.
 
 If @var{current-only} is non-@code{nil}, only the current buffer
 is auto-saved.
--- a/lispref/compile.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/compile.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -426,7 +426,7 @@
 @section Compiler Errors
 @cindex compiler errors
 
-  Byte compilation writes errors and warnings into the buffer
+  Byte compilation outputs all errors and warnings into the buffer
 @samp{*Compile-Log*}.  The messages include file names and line
 numbers that identify the location of the problem.  The usual Emacs
 commands for operating on compiler diagnostics work properly on
--- a/lispref/customize.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/customize.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -658,7 +658,8 @@
 most general last.  Here's an example of proper usage:
 
 @example
-(choice (const :tag "Off" nil) symbol (sexp :tag "Other"))
+(choice (const :tag "Off" nil)
+        symbol (sexp :tag "Other"))
 @end example
 
 @noindent
--- a/lispref/debugging.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/debugging.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -350,7 +350,8 @@
 byte-compiled function.  If you would like to step through a
 byte-compiled function, replace it with an interpreted definition of
 the same function.  (To do this, visit the source for the function and
-type @kbd{C-M-x} on its definition.)
+type @kbd{C-M-x} on its definition.)  You cannot use the Lisp debugger
+to step through a primitive function.
 
   Here is a list of Debugger mode commands:
 
@@ -470,15 +471,15 @@
 buffer.
 
 @item debug
-@code{debug} as first argument indicates a call to @code{debug}
-because of entry to a function that was set to debug on entry.  The
-debugger displays @samp{Debugger entered--entering a function:}, just
-as in the @code{lambda} case.  It also marks the stack frame for that
-function so that it will invoke the debugger when exited.
+@code{debug} as first argument means @code{debug} was called because
+of entry to a function that was set to debug on entry.  The debugger
+displays the string @samp{Debugger entered--entering a function:},
+just as in the @code{lambda} case.  It also marks the stack frame for
+that function so that it will invoke the debugger when exited.
 
 @item t
 When the first argument is @code{t}, this indicates a call to
-@code{debug} due to evaluation of a list form when
+@code{debug} due to evaluation of a function call form when
 @code{debug-on-next-call} is non-@code{nil}.  The debugger displays
 @samp{Debugger entered--beginning evaluation of function call form:}
 as the top line in the buffer.
--- a/lispref/display.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/display.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -547,15 +547,15 @@
 reporting operation progress.  Here is a working example that does
 nothing useful:
 
-@example
+@smallexample
 (let ((progress-reporter
-       (make-progress-reporter "Collecting some mana for Emacs..."
+       (make-progress-reporter "Collecting mana for Emacs..."
                                0  500)))
   (dotimes (k 500)
     (sit-for 0.01)
     (progress-reporter-update progress-reporter k))
   (progress-reporter-done progress-reporter))
-@end example
+@end smallexample
 
 @defun make-progress-reporter message min-value max-value &optional current-value min-change min-time
 This function creates and returns a @dfn{progress reporter}---an
@@ -1296,8 +1296,8 @@
 @code{(background-color . @var{color-name})}.  These elements specify
 just the foreground color or just the background color.
 
-@code{(foreground-color . @var{color-name})} is equivalent to
-@code{(:foreground @var{color-name})}, and likewise for the background.
+@code{(foreground-color . @var{color-name})} has the same effect as
+@code{(:foreground @var{color-name})}; likewise for the background.
 @end itemize
 
 @item mouse-face
@@ -2757,10 +2757,9 @@
 registry name is @samp{JISX0208.1983} for all characters belonging to
 the charset @code{japanese-jisx0208}.
 
-@example
+@smallexample
 (set-fontset-font nil 'japanese-jisx0208 '(nil . "JISX0208.1983"))
-@end example
-
+@end smallexample
 @end defun
 
 @defun char-displayable-p char
@@ -3137,7 +3136,7 @@
 Lisp objects as their @code{display} properties are handled
 separately.  Here's a function that illustrates this point:
 
-@example
+@smallexample
 (defun foo ()
   (goto-char (point-min))
   (dotimes (i 5)
@@ -3146,7 +3145,7 @@
       (forward-char 1)
       (put-text-property (point) (1+ (point)) 'display string)
       (forward-char 1))))
-@end example
+@end smallexample
 
 @noindent
 It gives each of the first ten characters in the buffer string
@@ -3158,7 +3157,7 @@
 characters appear as five A's.  This function would have the same
 results:
 
-@example
+@smallexample
 (defun foo ()
   (goto-char (point-min))
   (dotimes (i 5)
@@ -3166,7 +3165,7 @@
       (put-text-property (point) (2+ (point)) 'display string)
       (put-text-property (point) (1+ (point)) 'display string)
       (forward-char 2))))
-@end example
+@end smallexample
 
 @noindent
 This illustrates that what matters is the property value for
@@ -3262,18 +3261,20 @@
 
   The following expressions are supported:
 
-@example
+@smallexample
 @group
   @var{expr} ::= @var{num} | (@var{num}) | @var{unit} | @var{elem} | @var{pos} | @var{image} | @var{form}
   @var{num}  ::= @var{integer} | @var{float} | @var{symbol}
   @var{unit} ::= in | mm | cm | width | height
+@end group
+@group
   @var{elem} ::= left-fringe | right-fringe | left-margin | right-margin
         |  scroll-bar | text
   @var{pos}  ::= left | center | right
   @var{form} ::= (@var{num} . @var{expr}) | (@var{op} @var{expr} ...)
   @var{op}   ::= + | -
 @end group
-@end example
+@end smallexample
 
   The form @var{num} specifies a fraction of the default frame font
 height or width.  The form @code{(@var{num})} specifies an absolute
@@ -3331,7 +3332,7 @@
 Display @var{string} instead of the text that has this property.
 
 @item (image . @var{image-props})
-This display specification is an image descriptor (@pxref{Images}).
+This kind of display specification is an image descriptor (@pxref{Images}).
 When used as a display specification, it means to display the image
 instead of the text that has the display specification.
 
--- a/lispref/edebug.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/edebug.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -203,14 +203,13 @@
 @code{interactive} forms with an expression argument, anonymous lambda
 expressions, and other defining forms.  However, Edebug cannot determine
 on its own what a user-defined macro will do with the arguments of a
-macro call, so you must provide that information; see @ref{Edebug and
-Macros}, for details.
+macro call, so you must provide that information using Edebug
+specifications; see @ref{Edebug and Macros}, for details.
 
   When Edebug is about to instrument code for the first time in a
 session, it runs the hook @code{edebug-setup-hook}, then sets it to
 @code{nil}.  You can use this to load Edebug specifications
-(@pxref{Edebug and Macros}) associated with a package you are
-using, but only when you use Edebug.
+associated with a package you are using, but only when you use Edebug.
 
 @findex eval-expression @r{(Edebug)}
   To remove instrumentation from a definition, simply re-evaluate its
@@ -331,7 +330,7 @@
 Proceed to the stop point near where point is (@code{edebug-goto-here}).
 
 @item f
-Run the program forward over one expression
+Run the program for one expression
 (@code{edebug-forward-sexp}).
 
 @item o
@@ -463,9 +462,9 @@
 
 @item x @var{condition} @key{RET}
 Set a conditional breakpoint which stops the program only if
-@var{condition} evaluates to a non-@code{nil} value
-(@code{edebug-set-conditional-breakpoint}).  With a prefix argument, the
-breakpoint is temporary.
+evaluating @var{condition} produces a non-@code{nil} value
+(@code{edebug-set-conditional-breakpoint}).  With a prefix argument,
+the breakpoint is temporary.
 
 @item B
 Move point to the next breakpoint in the current definition
@@ -586,8 +585,8 @@
 
 @table @kbd
 @item v
-View the outside window configuration (@code{edebug-view-outside}).
-Type @kbd{C-x X w} to return to Edebug.
+Switch to viewing the outside window configuration
+(@code{edebug-view-outside}).  Type @kbd{C-x X w} to return to Edebug.
 
 @item p
 Temporarily display the outside current buffer with point at its
@@ -1036,11 +1035,12 @@
 The current match data.  @xref{Match Data}.
 
 @item
-@code{last-command}, @code{this-command}, @code{last-command-char},
-@code{last-input-char}, @code{last-input-event},
-@code{last-command-event}, @code{last-event-frame},
-@code{last-nonmenu-event}, and @code{track-mouse}.  Commands used within
-Edebug do not affect these variables outside of Edebug.
+The variables @code{last-command}, @code{this-command},
+@code{last-command-char}, @code{last-input-char},
+@code{last-input-event}, @code{last-command-event},
+@code{last-event-frame}, @code{last-nonmenu-event}, and
+@code{track-mouse}.  Commands used within Edebug do not affect these
+variables outside of Edebug.
 
 The key sequence returned by @code{this-command-keys} is changed by
 executing commands within Edebug and there is no way to reset
@@ -1100,13 +1100,13 @@
 definition.  Here is a simple example that shows the specification for
 the @code{for} example macro (@pxref{Argument Evaluation}).
 
-@example
+@smallexample
 (defmacro for (var from init to final do &rest body)
   "Execute a simple \"for\" loop.
 For example, (for i from 1 to 10 do (print i))."
   (declare (debug (symbolp "from" form "to" form "do" &rest form)))
   ...)
-@end example
+@end smallexample
 
   The Edebug specification says which parts of a call to the macro are
 forms to be evaluated.  For simple macros, the @var{specification}
@@ -1185,7 +1185,8 @@
 indirect specifications.
 
 Here's a table of the possible elements of a specification list, with
-their meanings:
+their meanings (see @ref{Specification Examples}, for the referenced
+examples):
 
 @table @code
 @item sexp
@@ -1221,7 +1222,7 @@
 To make just a few elements optional followed by non-optional elements,
 use @code{[&optional @var{specs}@dots{}]}.  To specify that several
 elements must all match or none, use @code{&optional
-[@var{specs}@dots{}]}.  See the @code{defun} example below.
+[@var{specs}@dots{}]}.  See the @code{defun} example.
 
 @item &rest
 @c @kindex &rest @r{(Edebug)}
@@ -1262,15 +1263,14 @@
 @item nil
 This is successful when there are no more arguments to match at the
 current argument list level; otherwise it fails.  See sublist
-specifications and the backquote example below.
+specifications and the backquote example.
 
 @item gate
 @cindex preventing backtracking
 No argument is matched but backtracking through the gate is disabled
 while matching the remainder of the specifications at this level.  This
 is primarily used to generate more specific syntax error messages.  See
-@ref{Backtracking}, for more details.  Also see the @code{let} example
-below.
+@ref{Backtracking}, for more details.  Also see the @code{let} example.
 
 @item @var{other-symbol}
 @cindex indirect specifications
@@ -1281,7 +1281,7 @@
 specification} should be either a list specification that is used in
 place of the symbol, or a function that is called to process the
 arguments.  The specification may be defined with @code{def-edebug-spec}
-just as for macros. See the @code{defun} example below.
+just as for macros. See the @code{defun} example.
 
 Otherwise, the symbol should be a predicate.  The predicate is called
 with the argument and the specification fails if the predicate returns
@@ -1302,7 +1302,7 @@
 
 @item (vector @var{elements}@dots{})
 The argument should be a vector whose elements must match the
-@var{elements} in the specification.  See the backquote example below.
+@var{elements} in the specification.  See the backquote example.
 
 @item (@var{elements}@dots{})
 Any other list is a @dfn{sublist specification} and the argument must be
@@ -1315,7 +1315,7 @@
 grouping or an indirect specification, e.g., @code{(spec .  [(more
 specs@dots{})])}) whose elements match the non-dotted list arguments.
 This is useful in recursive specifications such as in the backquote
-example below.  Also see the description of a @code{nil} specification
+example.  Also see the description of a @code{nil} specification
 above for terminating such recursion.
 
 Note that a sublist specification written as @code{(specs .  nil)}
@@ -1327,7 +1327,7 @@
 @c Need to document extensions with &symbol and :symbol
 
 Here is a list of additional specifications that may appear only after
-@code{&define}.  See the @code{defun} example below.
+@code{&define}.  See the @code{defun} example.
 
 @table @code
 @item name
@@ -1364,7 +1364,7 @@
 like @code{def-body}, except use this to match a single form rather than
 a list of forms.  As a special case, @code{def-form} also means that
 tracing information is not output when the form is executed.  See the
-@code{interactive} example below.
+@code{interactive} example.
 @end table
 
 @node Backtracking
--- a/lispref/elisp.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/elisp.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -6,7 +6,7 @@
 
 @c Version of the manual and of Emacs.
 @c Please remember to update the edition number in README as well.
-@set VERSION  2.9
+@set VERSION  2.7
 @set EMACSVER 22.0.50
 
 @dircategory Emacs
@@ -34,8 +34,8 @@
 59 Temple Place, Suite 330
 Boston, MA  02111-1307  USA
 
-Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2005,@*
-              2000, 2002 Free Software Foundation, Inc.
+Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, @*
+              2000, 2002, 2003, 2004, 2005, Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
@@ -60,7 +60,7 @@
 @page
 @vskip 0pt plus 1filll
 Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998,@*
-1999, 2000, 2002 Free Software Foundation, Inc.
+1999, 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 @sp 2
 Edition @value{VERSION} @*
@@ -288,6 +288,7 @@
 * Modifying Lists::         Storing new pieces into an existing list.
 * Sets And Lists::          A list can represent a finite mathematical set.
 * Association Lists::       A list can represent a finite relation or mapping.
+* Rings::                   Managing a fixed-size ring of objects.
 
 Modifying Existing List Structure
 
@@ -983,6 +984,7 @@
 * Datagrams::               UDP network connections.
 * Low-Level Network::       Lower-level but more general function
                               to create connections and servers.
+* Byte Packing::             Using bindat to pack and unpack binary data.
 
 Receiving Output from Processes
 
--- a/lispref/errors.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/errors.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -63,7 +63,7 @@
 @xref{Function Indirection}.
 
 @item cyclic-variable-indirection
-@code{"Symbol's chain of variable indirections contains a loop"}@*
+@code{"Symbol's chain of variable indirections\@* contains a loop"}@*
 @xref{Variable Aliases}.
 
 @item end-of-buffer
--- a/lispref/files.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/files.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -98,9 +98,9 @@
 Aside from some technical details, the body of the @code{find-file}
 function is basically equivalent to:
 
-@example
+@smallexample
 (switch-to-buffer (find-file-noselect filename nil nil wildcards))
-@end example
+@end smallexample
 
 @noindent
 (See @code{switch-to-buffer} in @ref{Displaying Buffers}.)
@@ -2731,9 +2731,9 @@
 If @var{filename} is indeed remote, the return value is a string that
 identifies the remote system.
 
-This identifier string may include a host name, a user name, and
-characters designating the method used to access the remote system.
-For example, the remote identifier string for the filename
+This identifier string can include a host name and a user name, as
+well as characters designating the method used to access the remote
+system.  For example, the remote identifier string for the filename
 @code{/ssh:user@@host:/some/file} is @code{/ssh:user@@host:}.
 
 If @code{file-remote-p} returns the same identifier for two different
--- a/lispref/frames.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/frames.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -1550,13 +1550,13 @@
 The @var{data-type} argument specifies the form of data conversion to
 use, to convert the raw data obtained from another X client into Lisp
 data.  Meaningful values include @code{TEXT}, @code{STRING},
-@code{UTF8_STRING},
-@code{TARGETS}, @code{LENGTH}, @code{DELETE}, @code{FILE_NAME},
-@code{CHARACTER_POSITION}, @code{LINE_NUMBER}, @code{COLUMN_NUMBER},
-@code{OWNER_OS}, @code{HOST_NAME}, @code{USER}, @code{CLASS},
-@code{NAME}, @code{ATOM}, and @code{INTEGER}.  (These are symbols with
-upper-case names in accord with X conventions.)  The default for
-@var{data-type} is @code{STRING}.
+@code{UTF8_STRING}, @code{TARGETS}, @code{LENGTH}, @code{DELETE},
+@code{FILE_NAME}, @code{CHARACTER_POSITION}, @code{NAME},
+@code{LINE_NUMBER}, @code{COLUMN_NUMBER}, @code{OWNER_OS},
+@code{HOST_NAME}, @code{USER}, @code{CLASS}, @code{ATOM}, and
+@code{INTEGER}.  (These are symbols with upper-case names in accord
+with X conventions.)  The default for @var{data-type} is
+@code{STRING}.
 @end defun
 
 @cindex cut buffer
@@ -1822,8 +1822,8 @@
 @end example
 
 @noindent
-in in your X resources file (usually named @file{~/.Xdefaults} or
-@file{~/.Xresources}).  Then:
+in in your X resources file (whose name is usually @file{~/.Xdefaults}
+or @file{~/.Xresources}).  Then:
 
 @example
 @group
--- a/lispref/functions.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/functions.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -525,9 +525,9 @@
 @var{name}.  It returns the value @var{name}, but usually we ignore this
 value.
 
-As described previously (@pxref{Lambda Expressions}),
-@var{argument-list} is a list of argument names and may include the
-keywords @code{&optional} and @code{&rest}.  Also, the first two of the
+As described previously, @var{argument-list} is a list of argument
+names and may include the keywords @code{&optional} and @code{&rest}
+(@pxref{Lambda Expressions}).  Also, the first two of the
 @var{body-forms} may be a documentation string and an interactive
 declaration.
 
@@ -1157,13 +1157,14 @@
 You can use @code{make-obsolete} to declare a function obsolete.  This
 indicates that the function may be removed at some stage in the future.
 
-@defun make-obsolete function new &optional when
+@defun make-obsolete obsolete-name current-name &optional when
 This function makes the byte compiler warn that the function
-@var{function} is obsolete.  If @var{new} is a symbol, the warning
-message says to use @var{new} instead of @var{function}.  @var{new}
-does not need to be an alias for @var{function}; it can be a different
-function with similar functionality.  If @var{new} is a string, it is
-the warning message.
+@var{obsolete-name} is obsolete.  If @var{current-name} is a symbol, the
+warning message says to use @var{current-name} instead of
+@var{obsolete-name}.  @var{current-name} does not need to be an alias for
+@var{obsolete-name}; it can be a different function with similar
+functionality.  If @var{current-name} is a string, it is the warning
+message.
 
 If provided, @var{when} should be a string indicating when the function
 was first made obsolete---for example, a date or a release number.
@@ -1172,20 +1173,14 @@
 You can define a function as an alias and declare it obsolete at the
 same time using the macro @code{define-obsolete-function-alias}.
 
-@defmac define-obsolete-function-alias function new &optional when docstring
-This macro marks the function @var{function} obsolete and also defines
-it as an alias for the function @var{new}.  A typical call has the form:
+@defmac define-obsolete-function-alias obsolete-name current-name &optional when docstring
+This macro marks the function @var{obsolete-name} obsolete and also
+defines it as an alias for the function @var{current-name}.  It is
+equivalent to the following:
 
 @example
-(define-obsolete-function-alias 'old-fun 'new-fun "22.1" "Doc.")
-@end example
-
-@noindent
-which is equivalent to the following two lines of code:
-
-@example
-(defalias 'old-fun 'new-fun "Doc.")
-(make-obsolete 'old-fun 'new-fun "22.1")
+(defalias @var{obsolete-name} @var{current-name} @var{docstring})
+(make-obsolete @var{obsolete-name} @var{current-name} @var{when})
 @end example
 @end defmac
 
--- a/lispref/help.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/help.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -47,13 +47,15 @@
 string follows the argument list.  In a variable definition, the
 documentation string follows the initial value of the variable.
 
-  When you write a documentation string, make the first line a complete
-sentence (or two complete sentences) since some commands, such as
-@code{apropos}, show only the first line of a multi-line documentation
-string.  Also, you should not indent the second line of a documentation
-string, if it has one, because that looks odd when you use @kbd{C-h f}
-(@code{describe-function}) or @kbd{C-h v} (@code{describe-variable}) to
-view the documentation string.  @xref{Documentation Tips}.
+  When you write a documentation string, make the first line a
+complete sentence (or two complete sentences) since some commands,
+such as @code{apropos}, show only the first line of a multi-line
+documentation string.  Also, you should not indent the second line of
+a documentation string, if it has one, because that looks odd when you
+use @kbd{C-h f} (@code{describe-function}) or @kbd{C-h v}
+(@code{describe-variable}) to view the documentation string.  There
+are many other conventions for doc strings; see @ref{Documentation
+Tips}.
 
   Documentation strings can contain several special substrings, which
 stand for key bindings to be looked up in the current keymaps when the
@@ -117,7 +119,7 @@
 property value isn't @code{nil}, isn't a string, and doesn't refer to
 text in a file, then it is evaluated to obtain a string.
 
-Finally, @code{documentation-property} passes the string through
+The last thing this function does is pass the string through
 @code{substitute-command-keys} to substitute actual key bindings,
 unless @var{verbatim} is non-@code{nil}.
 
--- a/lispref/keymaps.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/keymaps.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -1335,10 +1335,10 @@
 instead of @code{kill-line} and @code{kill-word}.  It can establish
 this by making these two command-remapping bindings in its keymap:
 
-@example
+@smallexample
 (define-key my-mode-map [remap kill-line] 'my-kill-line)
 (define-key my-mode-map [remap kill-word] 'my-kill-word)
-@end example
+@end smallexample
 
 Whenever @code{my-mode-map} is an active keymap, if the user types
 @kbd{C-k}, Emacs will find the standard global binding of
@@ -1349,10 +1349,10 @@
 
 Remapping only works through a single level.  In other words,
 
-@example
+@smallexample
 (define-key my-mode-map [remap kill-line] 'my-kill-line)
 (define-key my-mode-map [remap my-kill-line] 'my-other-kill-line)
-@end example
+@end smallexample
 
 @noindent
 does not have the effect of remapping @code{kill-line} into
--- a/lispref/lists.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/lists.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -24,6 +24,7 @@
 * Modifying Lists::     Storing new pieces into an existing list.
 * Sets And Lists::      A list can represent a finite mathematical set.
 * Association Lists::   A list can represent a finite relation or mapping.
+* Rings::               Managing a fixed-size ring of objects.
 @end menu
 
 @node Cons Cells
@@ -714,7 +715,7 @@
 primitives @code{setcar} and @code{setcdr}.  We call these ``destructive''
 operations because they change existing list structure.
 
-@cindex CL note---@code{rplaca} vrs @code{setcar}
+@cindex CL note---@code{rplaca} vs @code{setcar}
 @quotation
 @findex rplaca
 @findex rplacd
@@ -1676,6 +1677,94 @@
 @sc{car}.
 @end defun
 
+@node Rings
+@section Managing a Fixed-Size Ring of Objects
+
+@cindex ring data structure
+  This section describes functions for operating on rings.  A
+@dfn{ring} is a fixed-size data structure that supports insertion,
+deletion, rotation, and modulo-indexed reference and traversal.
+
+@defun make-ring size
+This returns a new ring capable of holding @var{size} objects.
+@var{size} should be an integer.
+@end defun
+
+@defun ring-p object
+This returns @code{t} if @var{object} is a ring, @code{nil} otherwise.
+@end defun
+
+@defun ring-size ring
+This returns the maximum capacity of the @var{ring}.
+@end defun
+
+@defun ring-length ring
+This returns the number of objects that @var{ring} currently contains.
+The value will never exceed that returned by @code{ring-size}.
+@end defun
+
+@defun ring-elements ring
+This returns a list of the objects in @var{ring}, in no particular
+order.
+@end defun
+
+@defun ring-copy ring
+This returns a new ring which is a copy of @var{ring}.
+The new ring contains the same (@code{eq}) objects as @var{ring}.
+@end defun
+
+@defun ring-empty-p ring
+This returns @code{t} if @var{ring} is empty, @code{nil} otherwise.
+@end defun
+
+  The newest element in the ring always has index 0.  Higher indices
+correspond to older elements.  Indices are computed modulo the ring
+length.  Index @minus{}1 corresponds to the oldest element, @minus{}2
+to the next-oldest, and so forth.
+
+@defun ring-ref ring index
+This returns the object in @var{ring} found at index @var{index}.
+@var{index} may be negative or greater than the ring length.  If
+@var{ring} is empty, @code{ring-ref} signals an error.
+@end defun
+
+@defun ring-insert ring object
+This inserts @var{object} into @var{ring}, making it the newest
+element, and returns @var{object}.
+
+If the ring is full, insertion removes the oldest element to
+make room for the new element.
+@end defun
+
+@defun ring-remove ring &optional index
+Remove an object from @var{ring}, and return that object.  The
+argument @var{index} specifies which item to remove; if it is
+@code{nil}, that means to remove the oldest item.  If @var{ring} is
+empty, @code{ring-remove} signals an error.
+@end defun
+
+@defun ring-insert-at-beginning ring object
+This inserts @var{object} into @var{ring}, treating it as the oldest
+element.  The return value is not significant.
+
+If the ring is full, this function removes the newest element to make
+room for the inserted element.
+@end defun
+
+@cindex fifo data structure
+  If you are careful not to exceed the ring size, you can
+use the ring as a first-in-first-out queue.  For example:
+
+@lisp
+(let ((fifo (make-ring 5)))
+  (mapc (lambda (obj) (ring-insert fifo obj))
+        '(0 one "two"))
+  (list (ring-remove fifo) t
+        (ring-remove fifo) t
+        (ring-remove fifo)))
+     @result{} (0 t one t "two")
+@end lisp
+
 @ignore
    arch-tag: 31fb8a4e-4aa8-4a74-a206-aa00451394d4
 @end ignore
--- a/lispref/minibuf.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/minibuf.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -414,10 +414,9 @@
 inputs.  It's the Lisp programmer's job to specify the right history
 list for each use of the minibuffer.
 
-  The basic minibuffer input functions @code{read-from-minibuffer} and
-@code{completing-read} both accept an optional argument named @var{hist}
-which is how you specify the history list.  Here are the possible
-values:
+  You specify the history list with the optional @var{hist} argument
+to either @code{read-from-minibuffer} or @code{completing-read}.  Here
+are the possible values for it:
 
 @table @asis
 @item @var{variable}
@@ -587,10 +586,11 @@
 @node Basic Completion
 @subsection Basic Completion Functions
 
-  The functions @code{try-completion}, @code{all-completions} and
-@code{test-completion} have nothing in themselves to do with
-minibuffers.  We describe them in this chapter so as to keep them near
-the higher-level completion features that do use the minibuffer.
+  The completion functions @code{try-completion},
+@code{all-completions} and @code{test-completion} have nothing in
+themselves to do with minibuffers.  We describe them in this chapter
+so as to keep them near the higher-level completion features that do
+use the minibuffer.
 
 @defun try-completion string collection &optional predicate
 This function returns the longest common substring of all possible
@@ -788,12 +788,12 @@
 
 Here are two examples of use:
 
-@example
+@smallexample
 (defvar foo (lazy-completion-table foo make-my-alist 'global))
 
 (make-local-variable 'bar)
 (setq bar (lazy-completion-table foo make-my-alist 'local)
-@end example
+@end smallexample
 @end defmac
 
 @node Minibuffer Completion
@@ -879,12 +879,9 @@
 If the user then types @kbd{@key{DEL} @key{DEL} b @key{RET}},
 @code{completing-read} returns @code{barfoo}.
 
-The @code{completing-read} function binds three variables to pass
-information to the commands that actually do completion.  These
-variables are @code{minibuffer-completion-table},
-@code{minibuffer-completion-predicate} and
-@code{minibuffer-completion-confirm}.  For more information about them,
-see @ref{Completion Commands}.
+The @code{completing-read} function binds variables to pass
+information to the commands that actually do completion.
+They are described in the following section.
 @end defun
 
 @node Completion Commands
@@ -898,6 +895,84 @@
 emacs, The GNU Emacs Manual}, for a short description of Partial
 Completion mode.
 
+@defvar minibuffer-completion-table
+The value of this variable is the collection used for completion in
+the minibuffer.  This is the global variable that contains what
+@code{completing-read} passes to @code{try-completion}.  It is used by
+minibuffer completion commands such as @code{minibuffer-complete-word}.
+@end defvar
+
+@defvar minibuffer-completion-predicate
+This variable's value is the predicate that @code{completing-read}
+passes to @code{try-completion}.  The variable is also used by the other
+minibuffer completion functions.
+@end defvar
+
+@defvar minibuffer-completion-confirm
+When the value of this variable is non-@code{nil}, Emacs asks for
+confirmation of a completion before exiting the minibuffer.
+@code{completing-read} binds this variable, and the function
+@code{minibuffer-complete-and-exit} checks the value before exiting.
+@end defvar
+
+@deffn Command minibuffer-complete-word
+This function completes the minibuffer contents by at most a single
+word.  Even if the minibuffer contents have only one completion,
+@code{minibuffer-complete-word} does not add any characters beyond the
+first character that is not a word constituent.  @xref{Syntax Tables}.
+@end deffn
+
+@deffn Command minibuffer-complete
+This function completes the minibuffer contents as far as possible.
+@end deffn
+
+@deffn Command minibuffer-complete-and-exit
+This function completes the minibuffer contents, and exits if
+confirmation is not required, i.e., if
+@code{minibuffer-completion-confirm} is @code{nil}.  If confirmation
+@emph{is} required, it is given by repeating this command
+immediately---the command is programmed to work without confirmation
+when run twice in succession.
+@end deffn
+
+@deffn Command minibuffer-completion-help
+This function creates a list of the possible completions of the
+current minibuffer contents.  It works by calling @code{all-completions}
+using the value of the variable @code{minibuffer-completion-table} as
+the @var{collection} argument, and the value of
+@code{minibuffer-completion-predicate} as the @var{predicate} argument.
+The list of completions is displayed as text in a buffer named
+@samp{*Completions*}.
+@end deffn
+
+@defun display-completion-list completions
+This function displays @var{completions} to the stream in
+@code{standard-output}, usually a buffer.  (@xref{Read and Print}, for more
+information about streams.)  The argument @var{completions} is normally
+a list of completions just returned by @code{all-completions}, but it
+does not have to be.  Each element may be a symbol or a string, either
+of which is simply printed.  It can also be a list of two strings,
+which is printed as if the strings were concatenated.  The first of
+the two strings is the actual completion, the second string serves as
+annotation.
+
+This function is called by @code{minibuffer-completion-help}.  The
+most common way to use it is together with
+@code{with-output-to-temp-buffer}, like this:
+
+@example
+(with-output-to-temp-buffer "*Completions*"
+  (display-completion-list
+    (all-completions (buffer-string) my-alist)))
+@end example
+@end defun
+
+@defopt completion-auto-help
+If this variable is non-@code{nil}, the completion commands
+automatically display a list of possible completions whenever nothing
+can be completed because the next character is not uniquely determined.
+@end defopt
+
 @defvar minibuffer-local-completion-map
 @code{completing-read} uses this value as the local keymap when an
 exact match of one of the completions is not required.  By default, this
@@ -947,84 +1022,6 @@
 with other characters bound as in @code{minibuffer-local-map}.
 @end defvar
 
-@defvar minibuffer-completion-table
-The value of this variable is the collection used for completion in
-the minibuffer.  This is the global variable that contains what
-@code{completing-read} passes to @code{try-completion}.  It is used by
-minibuffer completion commands such as @code{minibuffer-complete-word}.
-@end defvar
-
-@defvar minibuffer-completion-predicate
-This variable's value is the predicate that @code{completing-read}
-passes to @code{try-completion}.  The variable is also used by the other
-minibuffer completion functions.
-@end defvar
-
-@deffn Command minibuffer-complete-word
-This function completes the minibuffer contents by at most a single
-word.  Even if the minibuffer contents have only one completion,
-@code{minibuffer-complete-word} does not add any characters beyond the
-first character that is not a word constituent.  @xref{Syntax Tables}.
-@end deffn
-
-@deffn Command minibuffer-complete
-This function completes the minibuffer contents as far as possible.
-@end deffn
-
-@deffn Command minibuffer-complete-and-exit
-This function completes the minibuffer contents, and exits if
-confirmation is not required, i.e., if
-@code{minibuffer-completion-confirm} is @code{nil}.  If confirmation
-@emph{is} required, it is given by repeating this command
-immediately---the command is programmed to work without confirmation
-when run twice in succession.
-@end deffn
-
-@defvar minibuffer-completion-confirm
-When the value of this variable is non-@code{nil}, Emacs asks for
-confirmation of a completion before exiting the minibuffer.  The
-function @code{minibuffer-complete-and-exit} checks the value of this
-variable before it exits.
-@end defvar
-
-@deffn Command minibuffer-completion-help
-This function creates a list of the possible completions of the
-current minibuffer contents.  It works by calling @code{all-completions}
-using the value of the variable @code{minibuffer-completion-table} as
-the @var{collection} argument, and the value of
-@code{minibuffer-completion-predicate} as the @var{predicate} argument.
-The list of completions is displayed as text in a buffer named
-@samp{*Completions*}.
-@end deffn
-
-@defun display-completion-list completions
-This function displays @var{completions} to the stream in
-@code{standard-output}, usually a buffer.  (@xref{Read and Print}, for more
-information about streams.)  The argument @var{completions} is normally
-a list of completions just returned by @code{all-completions}, but it
-does not have to be.  Each element may be a symbol or a string, either
-of which is simply printed.  It can also be a list of two strings,
-which is printed as if the strings were concatenated.  The first of
-the two strings is the actual completion, the second string serves as
-annotation.
-
-This function is called by @code{minibuffer-completion-help}.  The
-most common way to use it is together with
-@code{with-output-to-temp-buffer}, like this:
-
-@example
-(with-output-to-temp-buffer "*Completions*"
-  (display-completion-list
-    (all-completions (buffer-string) my-alist)))
-@end example
-@end defun
-
-@defopt completion-auto-help
-If this variable is non-@code{nil}, the completion commands
-automatically display a list of possible completions whenever nothing
-can be completed because the next character is not uniquely determined.
-@end defopt
-
 @node High-Level Completion
 @subsection High-Level Completion  Functions
 
--- a/lispref/modes.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/modes.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -395,7 +395,7 @@
 @item
 The mode should specify how Imenu should find the definitions or
 sections of a buffer, by setting up a buffer-local value for the
-variable @code{imenu-generic-expression}, for the pair of variables
+variable @code{imenu-generic-expression}, for the two variables
 @code{imenu-prev-index-position-function} and
 @code{imenu-extract-index-name-function}, or for the variable
 @code{imenu-create-index-function} (@pxref{Imenu}).
@@ -2290,8 +2290,8 @@
 It creates the submenu @var{menu-title} specified by @var{sub-alist}.
 
 The default value of @code{imenu-create-index-function} is
-@code{imenu-default-create-index-function}.  This function uses
-@code{imenu-prev-index-position-function} and
+@code{imenu-default-create-index-function}.  This function calls the
+value of @code{imenu-prev-index-position-function} and the value of
 @code{imenu-extract-index-name-function} to produce the index alist.
 However, if either of these two variables is @code{nil}, the default
 function uses @code{imenu-generic-expression} instead.
@@ -2456,7 +2456,7 @@
 @end example
 
 If you use @code{regexp-opt} to produce the regular expression
-@var{matcher}, then you can use @code{regexp-opt-depth} (@pxref{Regexp
+@var{matcher}, you can use @code{regexp-opt-depth} (@pxref{Regexp
 Functions}) to calculate the value for @var{subexp}.
 
 @item (@var{matcher} . @var{facespec})
@@ -2657,8 +2657,7 @@
 Some modes provide specialized support you can use in additional
 highlighting patterns.  See the variables
 @code{c-font-lock-extra-types}, @code{c++-font-lock-extra-types},
-@code{objc-font-lock-extra-types} and
-@code{java-font-lock-extra-types}, for example.
+and @code{java-font-lock-extra-types}, for example.
 
 @strong{Warning:} major mode functions must not call
 @code{font-lock-add-keywords} under any circumstances, either directly
--- a/lispref/nonascii.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/nonascii.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -1067,11 +1067,11 @@
 @var{encoding-system} is the coding system for encoding (in case
 @var{operation} does encoding).
 
-The argument @var{operation} should be a symbol, one of
-@code{insert-file-contents}, @code{write-region}, @code{call-process},
-@code{call-process-region}, @code{start-process}, or
-@code{open-network-stream}.  These are the names of the Emacs I/O primitives
-that can do coding system conversion.
+The argument @var{operation} should be a symbol, any one of
+@code{insert-file-contents}, @code{write-region},
+@code{start-process}, @code{call-process}, @code{call-process-region},
+or @code{open-network-stream}.  These are the names of the Emacs I/O
+primitives that can do coding system conversion.
 
 The remaining arguments should be the same arguments that might be given
 to that I/O primitive.  Depending on the primitive, one of those
@@ -1081,9 +1081,9 @@
 target.  For @code{open-network-stream}, the target is the service name
 or port number.
 
-This function looks up the target in @code{file-coding-system-alist},
-@code{process-coding-system-alist}, or
-@code{network-coding-system-alist}, depending on @var{operation}.
+Depending on @var{operation}, this function looks up the target in
+@code{file-coding-system-alist}, @code{process-coding-system-alist},
+or @code{network-coding-system-alist}.
 @end defun
 
 @node Specifying Coding Systems
--- a/lispref/os.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/os.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -91,10 +91,10 @@
 @cindex @file{site-start.el}
 
 @item
-It loads your init file (usually @file{~/.emacs}), unless @samp{-q}
-(or @samp{--no-init-file}), @samp{-Q}, or @samp{--batch} was specified
-on the command line.  The @samp{-u} option can specify another user
-whose home directory should be used instead of @file{~}.
+It loads your init file (usually @file{~/.emacs}), unless the option
+@samp{-q} (or @samp{--no-init-file}), @samp{-Q}, or @samp{--batch} was
+specified on the command line.  The @samp{-u} option can specify
+another user whose home directory should be used instead of @file{~}.
 
 @item
 It loads the library @file{default} (if any), unless
@@ -606,9 +606,10 @@
 system, the user's @acronym{UID}, and so on.
 
 @defvar system-configuration
-This variable holds the GNU configuration name for the hardware/software
-configuration of your system, as a string.  The convenient way to test
-parts of this string is with @code{string-match}.
+This variable holds the standard GNU configuration name for the
+hardware/software configuration of your system, as a string.  The
+convenient way to test parts of this string is with
+@code{string-match}.
 @end defvar
 
 @defvar system-type
@@ -1375,6 +1376,9 @@
 changes from user commands' changes and prevent a single undo entry
 from growing to be quite large.
 
+  If a timer function calls functions that can change the match data,
+it should save and restore the match data.  @xref{Saving Match Data}.
+
 @deffn Command run-at-time time repeat function &rest args
 This sets up a timer that calls the function @var{function} with
 arguments @var{args} at time @var{time}.  If @var{repeat} is a number
--- a/lispref/processes.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/processes.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -52,6 +52,7 @@
 * Datagrams::                UDP network connections.
 * Low-Level Network::        Lower-level but more general function
                                to create connections and servers.
+* Byte Packing::             Using bindat to pack and unpack binary data.
 @end menu
 
 @node Subprocess Creation
@@ -168,7 +169,7 @@
 (shell-quote-argument "foo > bar")
      @result{} "foo\\ \\>\\ bar"
 
-;; @r{This example shows the behavior on MS-DOS and MS-Windows systems.}
+;; @r{This example shows the behavior on MS-DOS and MS-Windows.}
 (shell-quote-argument "foo > bar")
      @result{} "\"foo > bar\""
 @end example
@@ -766,9 +767,9 @@
 data appears on the ``standard input'' of the subprocess.
 
   Some operating systems have limited space for buffered input in a
-@acronym{PTY}.  On these systems, Emacs sends an @acronym{EOF} periodically amidst
-the other characters, to force them through.  For most programs,
-these @acronym{EOF}s do no harm.
+@acronym{PTY}.  On these systems, Emacs sends an @acronym{EOF}
+periodically amidst the other characters, to force them through.  For
+most programs, these @acronym{EOF}s do no harm.
 
   Subprocess input is normally encoded using a coding system before the
 subprocess receives it, much like text written into a file.  You can use
@@ -972,7 +973,7 @@
 @defvar process-adaptive-read-buffering
 On some systems, when Emacs reads the output from a subprocess, the
 output data is read in very small blocks, potentially resulting in
-very poor performance.  This behaviour can be remedied to some extent
+very poor performance.  This behavior can be remedied to some extent
 by setting the variable @var{process-adaptive-read-buffering} to a
 non-@code{nil} value (the default), as it will automatically delay reading
 from such processes, thus allowing them to produce more output before
@@ -1559,7 +1560,7 @@
 keyword/argument pairs, for example @code{:server t} to create a
 server process, or @code{:type 'datagram} to create a datagram
 connection.  @xref{Low-Level Network}, for details.  You can also use
-the @code{open-network-stream} function descibed below.
+the @code{open-network-stream} function described below.
 
   You can distinguish process objects representing network connections
 and servers from those representing subprocesses with the
@@ -1823,7 +1824,8 @@
 is to determine the coding systems from the data.
 
 @item :noquery @var{query-flag}
-Initialize the process query flag to @var{query-flag}.  @xref{Query Before Exit}.
+Initialize the process query flag to @var{query-flag}.
+@xref{Query Before Exit}.
 
 @item :filter @var{filter}
 Initialize the process filter to @var{filter}.
@@ -1938,7 +1940,8 @@
 
 @defun network-interface-info ifname
 This function returns information about the network interface named
-@var{ifname}.  The value is a list of the form @code{(@var{addr} @var{bcast} @var{netmask} @var{hwaddr} @var{flags})}.
+@var{ifname}.  The value is a list of the form
+@code{(@var{addr} @var{bcast} @var{netmask} @var{hwaddr} @var{flags})}.
 
 @table @var
 @item addr
@@ -2015,7 +2018,411 @@
 @code{make-network-process} and @code{set-network-process-option}.
 @end table
 
+@node Byte Packing
+@section Packing and Unpacking Byte Arrays
+
+  This section describes how to pack and unpack arrays of bytes,
+usually for binary network protocols.  These functions convert byte arrays
+to alists, and vice versa.  The byte array can be represented as a
+unibyte string or as a vector of integers, while the alist associates
+symbols either with fixed-size objects or with recursive sub-alists.
+
+@cindex serializing
+@cindex deserializing
+@cindex packing
+@cindex unpacking
+  Conversion from byte arrays to nested alists is also known as
+@dfn{deserializing} or @dfn{unpacking}, while going in the opposite
+direction is also known as @dfn{serializing} or @dfn{packing}.
+
+@menu
+* Bindat Spec::         Describing data layout.
+* Bindat Functions::    Doing the unpacking and packing.
+* Bindat Examples::     Samples of what bindat.el can do for you!
+@end menu
+
+@node Bindat Spec
+@subsection Describing Data Layout
+
+  To control unpacking and packing, you write a @dfn{data layout
+specification}, a special nested list describing named and typed
+@dfn{fields}.  This specification controls length of each field to be
+processed, and how to pack or unpack it.
+
+@cindex endianness
+@cindex big endian
+@cindex little endian
+@cindex network byte ordering
+  A field's @dfn{type} describes the size (in bytes) of the object
+that the field represents and, in the case of multibyte fields, how
+the bytes are ordered within the field.  The two possible orderings
+are ``big endian'' (also known as ``network byte ordering'') and
+``little endian''.  For instance, the number @code{#x23cd} (decimal
+9165) in big endian would be the two bytes @code{#x23} @code{#xcd};
+and in little endian, @code{#xcd} @code{#x23}.  Here are the possible
+type values:
+
+@table @code
+@item u8
+@itemx byte
+Unsigned byte, with length 1.
+
+@item u16
+@itemx word
+@itemx short
+Unsigned integer in network byte order, with length 2.
+
+@item u24
+Unsigned integer in network byte order, with length 3.
+
+@item u32
+@itemx dword
+@itemx long
+Unsigned integer in network byte order, with length 4.
+Note: These values may be limited by Emacs' integer implementation limits.
+
+@item u16r
+@itemx u24r
+@itemx u32r
+Unsigned integer in little endian order, with length 2, 3 and 4, respectively.
+
+@item str @var{len}
+String of length @var{len}.
+
+@item strz @var{len}
+Zero-terminated string of length @var{len}.
+
+@item vec @var{len}
+Vector of @var{len} bytes.
+
+@item ip
+Four-byte vector representing an Internet address.  For example:
+@code{[127 0 0 1]} for localhost.
+
+@item bits @var{len}
+List of set bits in @var{len} bytes.  The bytes are taken in big
+endian order and the bits are numbered starting with @code{8 *
+@var{len} @minus{} 1} and ending with zero.  For example: @code{bits
+2} unpacks @code{#x28} @code{#x1c} to @code{(2 3 4 11 13)} and
+@code{#x1c} @code{#x28} to @code{(3 5 10 11 12)}.
+
+@item (eval @var{form})
+@var{form} is a Lisp expression evaluated at the moment the field is
+unpacked or packed.  The result of the evaluation should be one of the
+above-listed type specifications.
+@end table
+
+A field specification generally has the form @code{([@var{name}]
+@var{handler})}.  The square braces indicate that @var{name} is
+optional.  (Don't use names that are symbols meaningful as type
+specifications (above) or handler specifications (below), since that
+would be ambiguous.)  @var{name} can be a symbol or the expression
+@code{(eval @var{form})}, in which case @var{form} should evaluate to
+a symbol.
+
+@var{handler} describes how to unpack or pack the field and can be one
+of the following:
+
+@table @code
+@item @var{type}
+Unpack/pack this field according to the type specification @var{type}.
+
+@item eval @var{form}
+Evaluate @var{form}, a Lisp expression, for side-effect only.  If the
+field name is specified, the value is bound to that field name.
+@var{form} can access and update these dynamically bound variables:
+
+@table @code
+@item raw-data
+The data as a byte array.
+
+@item pos
+Current position of the unpacking or packing operation.
+
+@item struct
+Alist.
+
+@item last
+Value of the last field processed.
+@end table
+
+@item fill @var{len}
+Skip @var{len} bytes.  In packing, this leaves them unchanged,
+which normally means they remain zero.  In unpacking, this means
+they are ignored.
+
+@item align @var{len}
+Skip to the next multiple of @var{len} bytes.
+
+@item struct @var{spec-name}
+Process @var{spec-name} as a sub-specification.  This describes a
+structure nested within another structure.
+
+@item union @var{form} (@var{tag} @var{spec})@dots{}
+@c ??? I don't see how one would actually  use this.
+@c ??? what kind of expression would be useful for @var{form}?
+Evaluate @var{form}, a Lisp expression, find the first @var{tag}
+that matches it, and process its associated data layout specification
+@var{spec}.  Matching can occur in one of three ways:
+
+@itemize
+@item
+If a @var{tag} has the form @code{(eval @var{expr})}, evaluate
+@var{expr} with the variable @code{tag} dynamically bound to the value
+of @var{form}.  A non-@code{nil} result indicates a match.
+
+@item
+@var{tag} matches if it is @code{equal} to the value of @var{form}.
+
+@item
+@var{tag} matches unconditionally if it is @code{t}.
+@end itemize
+
+@item repeat @var{count} @var{field-spec}@dots{}
+@var{count} may be an integer, or a list of one element naming a
+previous field.  For correct operation, each @var{field-spec} must
+include a name.
+@c ??? What does it MEAN?
+@end table
+
+@node Bindat Functions
+@subsection Functions to Unpack and Pack Bytes
+
+  In the following documentation, @var{spec} refers to a data layout
+specification, @code{raw-data} to a byte array, and @var{struct} to an
+alist representing unpacked field data.
+
+@defun bindat-unpack spec raw-data &optional pos
+This function unpacks data from the byte array @code{raw-data}
+according to @var{spec}.  Normally this starts unpacking at the
+beginning of the byte array, but if @var{pos} is non-@code{nil}, it
+specifies a zero-based starting position to use instead.
+
+The value is an alist or nested alist in which each element describes
+one unpacked field.
+@end defun
+
+@defun bindat-get-field struct &rest name
+This function selects a field's data from the nested alist
+@var{struct}.  Usually @var{struct} was returned by
+@code{bindat-unpack}.  If @var{name} corresponds to just one argument,
+that means to extract a top-level field value.  Multiple @var{name}
+arguments specify repeated lookup of sub-structures.  An integer name
+acts as an array index.
+
+For example, if @var{name} is @code{(a b 2 c)}, that means to find
+field @code{c} in the second element of subfield @code{b} of field
+@code{a}.  (This corresponds to @code{struct.a.b[2].c} in C.)
+@end defun
+
+@defun bindat-length spec struct
+@c ??? I don't understand this at all -- rms
+This function returns the length in bytes of @var{struct}, according
+to @var{spec}.
+@end defun
+
+@defun bindat-pack spec struct &optional raw-data pos
+This function returns a byte array packed according to @var{spec} from
+the data in the alist @var{struct}.  Normally it creates and fills a
+new byte array starting at the beginning.  However, if @var{raw-data}
+is non-@code{nil}, it specifies a pre-allocated string or vector to
+pack into.  If @var{pos} is non-@code{nil}, it specifies the starting
+offset for packing into @code{raw-data}.
+
+@c ??? Isn't this a bug?  Shouldn't it always be unibyte?
+Note: The result is a multibyte string; use @code{string-make-unibyte}
+on it to make it unibyte if necessary.
+@end defun
+
+@defun bindat-ip-to-string ip
+Convert the Internet address vector @var{ip} to a string in the usual
+dotted notation.
+
+@example
+(bindat-ip-to-string [127 0 0 1])
+     @result{} "127.0.0.1"
+@end example
+@end defun
+
+@node Bindat Examples
+@subsection Examples of Byte Unpacking and Packing
+
+  Here is a complete example of byte unpacking and packing:
+
+@lisp
+(defvar fcookie-index-spec
+  '((:version  u32)
+    (:count    u32)
+    (:longest  u32)
+    (:shortest u32)
+    (:flags    u32)
+    (:delim    u8)
+    (:ignored  fill 3)
+    (:offset   repeat (:count)
+               (:foo u32)))
+  "Description of a fortune cookie index file's contents.")
+
+(defun fcookie (cookies &optional index)
+  "Display a random fortune cookie from file COOKIES.
+Optional second arg INDEX specifies the associated index
+filename, which is by default constructed by appending
+\".dat\" to COOKIES.  Display cookie text in possibly
+new buffer \"*Fortune Cookie: BASENAME*\" where BASENAME
+is COOKIES without the directory part."
+  (interactive "fCookies file: ")
+  (let* ((info (with-temp-buffer
+                 (insert-file-contents-literally
+                  (or index (concat cookies ".dat")))
+                 (bindat-unpack fcookie-index-spec
+                                (buffer-string))))
+         (sel (random (bindat-get-field info :count)))
+         (beg (cdar (bindat-get-field info :offset sel)))
+         (end (or (cdar (bindat-get-field info
+                                          :offset (1+ sel)))
+                  (nth 7 (file-attributes cookies)))))
+    (switch-to-buffer
+     (get-buffer-create
+      (format "*Fortune Cookie: %s*"
+              (file-name-nondirectory cookies))))
+    (erase-buffer)
+    (insert-file-contents-literally
+     cookies nil beg (- end 3))))
+
+(defun fcookie-create-index (cookies &optional index delim)
+  "Scan file COOKIES, and write out its index file.
+Optional second arg INDEX specifies the index filename,
+which is by default constructed by appending \".dat\" to
+COOKIES.  Optional third arg DELIM specifies the unibyte
+character which, when found on a line of its own in
+COOKIES, indicates the border between entries."
+  (interactive "fCookies file: ")
+  (setq delim (or delim ?%))
+  (let ((delim-line (format "\n%c\n" delim))
+        (count 0)
+        (max 0)
+        min p q len offsets)
+    (unless (= 3 (string-bytes delim-line))
+      (error "Delimiter cannot be represented in one byte"))
+    (with-temp-buffer
+      (insert-file-contents-literally cookies)
+      (while (and (setq p (point))
+                  (search-forward delim-line (point-max) t)
+                  (setq len (- (point) 3 p)))
+        (setq count (1+ count)
+              max (max max len)
+              min (min (or min max) len)
+              offsets (cons (1- p) offsets))))
+    (with-temp-buffer
+      (set-buffer-multibyte nil)
+      (insert
+       (string-make-unibyte
+        (bindat-pack
+         fcookie-index-spec
+         `((:version . 2)
+           (:count . ,count)
+           (:longest . ,max)
+           (:shortest . ,min)
+           (:flags . 0)
+           (:delim . ,delim)
+           (:offset . ,(mapcar (lambda (o)
+                                 (list (cons :foo o)))
+                               (nreverse offsets)))))))
+      (let ((coding-system-for-write 'raw-text-unix))
+        (write-file (or index (concat cookies ".dat")))))))
+@end lisp
+
+Following is an example of defining and unpacking a complex structure.
+Consider the following C structures:
+
+@example
+struct header @{
+    unsigned long    dest_ip;
+    unsigned long    src_ip;
+    unsigned short   dest_port;
+    unsigned short   src_port;
+@};
+
+struct data @{
+    unsigned char    type;
+    unsigned char    opcode;
+    unsigned long    length;  /* In little endian order */
+    unsigned char    id[8];   /* null-terminated string  */
+    unsigned char    data[/* (length + 3) & ~3 */];
+@};
+
+struct packet @{
+    struct header    header;
+    unsigned char    items;
+    unsigned char    filler[3];
+    struct data      item[/* items */];
+
+@};
+@end example
+
+The corresponding data layout specification:
+
+@lisp
+(setq header-spec
+      '((dest-ip   ip)
+        (src-ip    ip)
+        (dest-port u16)
+        (src-port  u16)))
+
+(setq data-spec
+      '((type      u8)
+        (opcode    u8)
+        (length    u16r) ;; little endian order
+        (id        strz 8)
+        (data      vec (length))
+        (align     4)))
+
+(setq packet-spec
+      '((header    struct header-spec)
+        (items     u8)
+        (fill      3)
+        (item      repeat (items)
+                   (struct data-spec))))
+@end lisp
+
+A binary data representation:
+
+@lisp
+(setq binary-data
+      [ 192 168 1 100 192 168 1 101 01 28 21 32 2 0 0 0
+        2 3 5 0 ?A ?B ?C ?D ?E ?F 0 0 1 2 3 4 5 0 0 0
+        1 4 7 0 ?B ?C ?D ?E ?F ?G 0 0 6 7 8 9 10 11 12 0 ])
+@end lisp
+
+The corresponding decoded structure:
+
+@lisp
+(setq decoded (bindat-unpack packet-spec binary-data))
+     @result{}
+((header
+  (dest-ip   . [192 168 1 100])
+  (src-ip    . [192 168 1 101])
+  (dest-port . 284)
+  (src-port  . 5408))
+ (items . 2)
+ (item ((data . [1 2 3 4 5])
+        (id . "ABCDEF")
+        (length . 5)
+        (opcode . 3)
+        (type . 2))
+       ((data . [6 7 8 9 10 11 12])
+        (id . "BCDEFG")
+        (length . 7)
+        (opcode . 4)
+        (type . 1))))
+@end lisp
+
+Fetching data from this structure:
+
+@lisp
+(bindat-get-field decoded 'item 1 'id)
+     @result{} "BCDEFG"
+@end lisp
+
 @ignore
    arch-tag: ba9da253-e65f-4e7f-b727-08fba0a1df7a
 @end ignore
-
--- a/lispref/searching.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/searching.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -244,16 +244,15 @@
 The next alternative is for @samp{a*} to match only two @samp{a}s.  With
 this choice, the rest of the regexp matches successfully.@refill
 
-Nested repetition operators can be extremely slow or loop infinitely
-if they use repetition operators inside repetition operators.  For
-example, it could take hours for the regular expression
-@samp{\(x+y*\)*a} to try to match the sequence
-@samp{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz}, before it ultimately
-fails.  Emacs must try each way of grouping the 35 @samp{x}s before
-concluding that none of them can work.  Even worse, @samp{\(x*\)*} can
-match the null string in infinitely many ways, so it causes an
-infinite loop.  To avoid these problems, check nested repetitions
-carefully.
+Nested repetition operators take a long time, or even forever, if they
+lead to ambiguous matching.  For example, trying to match the regular
+expression @samp{\(x+y*\)*a} against the string
+@samp{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz} could take hours before it
+ultimately fails.  Emacs must try each way of grouping the 35
+@samp{x}s before concluding that none of them can work.  Even worse,
+@samp{\(x*\)*} can match the null string in infinitely many ways, so
+it causes an infinite loop.  To avoid these problems, check nested
+repetitions carefully.
 
 @item @samp{+}
 @cindex @samp{+} in regexp
@@ -347,9 +346,10 @@
 
 @item @samp{[^ @dots{} ]}
 @cindex @samp{^} in regexp
-@samp{[^} begins a @dfn{complemented character alternative}, which matches any
-character except the ones specified.  Thus, @samp{[^a-z0-9A-Z]} matches
-all characters @emph{except} letters and digits.
+@samp{[^} begins a @dfn{complemented character alternative}.  This
+matches any character except the ones specified.  Thus,
+@samp{[^a-z0-9A-Z]} matches all characters @emph{except} letters and
+digits.
 
 @samp{^} is not special in a character alternative unless it is the first
 character.  The character following the @samp{^} is treated as if it
@@ -1531,8 +1531,9 @@
 the markers are put back on the free list.
 
 @strong{Warning:} When @code{evaporate} is specified for @var{reseat},
-no other references to the markers on the @var{reuse} list; otherwise,
-Emacs may crash during the next garbage collection.
+you must ensure that no other references to the markers on the
+@var{reuse} list exists; otherwise, Emacs may crash during the next
+garbage collection.
 
 As always, there must be no possibility of intervening searches between
 the call to a search function and the call to @code{match-data} that is
@@ -1563,8 +1564,9 @@
 the markers are put back on the free list.
 
 @strong{Warning:} When @code{evaporate} is specified for @var{reseat},
-no other references to the markers on the @var{match-list} list; otherwise,
-Emacs may crash during the next garbage collection.
+you must ensure that no other references to the markers on the
+@var{match-list} list exists; otherwise, Emacs may crash during the
+next garbage collection.
 
 @findex store-match-data
 @code{store-match-data} is a semi-obsolete alias for @code{set-match-data}.
--- a/lispref/strings.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/strings.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -298,7 +298,8 @@
 @var{separators}:
 
 @example
-(split-string "  two words " split-string-default-separators)
+(split-string "  two words "
+              split-string-default-separators)
      @result{} ("" "two" "words" "")
 @end example
 
@@ -353,8 +354,8 @@
 @end defun
 
 @defvar split-string-default-separators
-The default value of @var{separators} for @code{split-string}, initially
-@w{@samp{"[ \f\t\n\r\v]+"}}.
+The default value of @var{separators} for @code{split-string}.  Its
+usual value is @w{@samp{"[ \f\t\n\r\v]+"}}.
 @end defvar
 
 @node Modifying Strings
--- a/lispref/syntax.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/syntax.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -754,10 +754,11 @@
 @end defun
 
 @defvar syntax-begin-function
-If this is non-nil, it should be a function that moves to an earlier
-buffer position where the parser state is equivalent to @code{nil},
-i.e., a position outside of any comment, string, or parenthesis.
-@code{syntax-ppss} uses it to supplement its cache.
+If this is non-@code{nil}, it should be a function that moves to an
+earlier buffer position where the parser state is equivalent to
+@code{nil}---in other words, a position outside of any comment,
+string, or parenthesis.  @code{syntax-ppss} uses it to supplement its
+cache.
 @end defvar
 
 @defun scan-lists from count depth
--- a/lispref/text.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/text.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -1497,10 +1497,10 @@
 follow specified justification style (see @code{current-justification},
 below).  @code{nil} means to do full justification.
 
-If @var{eop} is non-@code{nil}, that means do left-justification if
-@code{current-justification} specifies full justification.  This is used
-for the last line of a paragraph; even if the paragraph as a whole is
-fully justified, the last line should not be.
+If @var{eop} is non-@code{nil}, that means do only left-justification
+if @code{current-justification} specifies full justification.  This is
+used for the last line of a paragraph; even if the paragraph as a
+whole is fully justified, the last line should not be.
 
 If @var{nosqueeze} is non-@code{nil}, that means do not change interior
 whitespace.
@@ -1727,12 +1727,11 @@
 starting after the left margin whitespace (if any) on a line; the
 characters it matches are that line's candidate for the fill prefix.
 
-The default value of this variable is
-@w{@samp{"[ \t]*\\([-|#;>*]+[ \t]*\\|(?[0-9]+[.)][ \t]*\\)*"}}.  This
-matches a number enclosed in parentheses or followed by a period,
-or certain punctuation characters, or any sequence of these
-intermingled with whitespace.  In particular, it matches a sequence of
-whitespace, possibly empty.
+@w{@samp{"[ \t]*\\([-|#;>*]+[ \t]*\\|(?[0-9]+[.)][ \t]*\\)*"}} is the
+default value.  This matches a number enclosed in parentheses or
+followed by a period, or certain punctuation characters, or any
+sequence of these intermingled with whitespace.  In particular, it
+matches a sequence of whitespace, possibly empty.
 @end defopt
 
 @defopt adaptive-fill-first-line-regexp
@@ -2969,7 +2968,8 @@
 just the foreground color or just the background color.
 
 @code{(foreground-color . @var{color-name})} is equivalent to
-@code{(:foreground @var{color-name})}, and likewise for the background.
+specifying @code{(:foreground @var{color-name})}, and likewise for the
+background.
 @end itemize
 
 You can use Font Lock Mode (@pxref{Font Lock Mode}), to dynamically
@@ -3561,9 +3561,9 @@
 
 For example, here is how Info mode handles @key{Mouse-1}:
 
-@example
+@smallexample
 (define-key Info-mode-map [follow-link] 'mouse-face)
-@end example
+@end smallexample
 
 @item a function
 If the condition is a valid function, @var{func}, then a position
@@ -3574,11 +3574,11 @@
 For example, here is how pcvs enables @key{Mouse-1} to follow links on
 file names only:
 
-@example
+@smallexample
 (define-key map [follow-link]
   (lambda (pos)
-    (if (eq (get-char-property pos 'face) 'cvs-filename-face) t)))
-@end example
+    (eq (get-char-property pos 'face) 'cvs-filename-face)))
+@end smallexample
 
 @item anything else
 If the condition value is anything else, then the position is inside a
--- a/lispref/variables.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/lispref/variables.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -1722,24 +1722,24 @@
 visiting a file could take over your Emacs.  To prevent this, Emacs
 takes care not to allow to set such file local variables.
 
-  For one thing, any variable whose name ends in @samp{-command},
-@samp{-frame-alist}, @samp{-function}, @samp{-functions},
-@samp{-hook}, @samp{-hooks}, @samp{-form}, @samp{-forms}, @samp{-map},
-@samp{-map-alist}, @samp{-mode-alist}, @samp{-program}, or
-@samp{-predicate} cannot be given a file local value.  In general,
-you should use such a name whenever it is appropriate for the
-variable's meaning.  The variables @samp{font-lock-keywords},
-@samp{font-lock-keywords-[0-9]}, and
-@samp{font-lock-syntactic-keywords} cannot be given file local values either.
-These rules can be overridden by giving the variable's
-name a non-@code{nil} @code{safe-local-variable} property.  If one
-gives it a @code{safe-local-variable} property of @code{t}, then one
-can give the variable any file local value.  One can also give any
-symbol, including the above, a @code{safe-local-variable} property
-that is a function taking exactly one argument.  In that case, giving
-a variable with that name a file local value is only allowed if the
-function returns non-@code{nil} when called with that value as
-argument.
+  For one thing, any variable whose name ends in any of
+@samp{-command}, @samp{-frame-alist}, @samp{-function},
+@samp{-functions}, @samp{-hook}, @samp{-hooks}, @samp{-form},
+@samp{-forms}, @samp{-map}, @samp{-map-alist}, @samp{-mode-alist},
+@samp{-program}, or @samp{-predicate} cannot be given a file local
+value.  In general, you should use such a name whenever it is
+appropriate for the variable's meaning.  The variables
+@samp{font-lock-keywords}, @samp{font-lock-keywords} followed by a
+digit, and @samp{font-lock-syntactic-keywords} cannot be given file
+local values either.  These rules can be overridden by giving the
+variable's name a non-@code{nil} @code{safe-local-variable} property.
+If one gives it a @code{safe-local-variable} property of @code{t},
+then one can give the variable any file local value.  One can also
+give any symbol, including the above, a @code{safe-local-variable}
+property that is a function taking exactly one argument.  In that
+case, giving a variable with that name a file local value is only
+allowed if the function returns non-@code{nil} when called with that
+value as argument.
 
   In addition, any variable whose name has a non-@code{nil}
 @code{risky-local-variable} property is also ignored.  So are all
@@ -1785,19 +1785,19 @@
 to keep the old name as an @emph{alias} of the new one for
 compatibility.  You can do this with @code{defvaralias}.
 
-@defun defvaralias alias-var base-var &optional docstring
-This function defines the symbol @var{alias-var} as a variable alias
-for symbol @var{base-var}. This means that retrieving the value of
-@var{alias-var} returns the value of @var{base-var}, and changing the
-value of @var{alias-var} changes the value of @var{base-var}.
+@defun defvaralias new-alias base-variable &optional docstring
+This function defines the symbol @var{new-alias} as a variable alias
+for symbol @var{base-variable}. This means that retrieving the value of
+@var{new-alias} returns the value of @var{base-variable}, and changing the
+value of @var{new-alias} changes the value of @var{base-variable}.
 
 If the @var{docstring} argument is non-@code{nil}, it specifies the
-documentation for @var{alias-var}; otherwise, the alias gets the same
-documentation as @var{base-var} has, if any, unless @var{base-var} is
-itself an alias, in which case @var{alias-var} gets the documentation
-of the variable at the end of the chain of aliases.
+documentation for @var{new-alias}; otherwise, the alias gets the same
+documentation as @var{base-variable} has, if any, unless
+@var{base-variable} is itself an alias, in which case @var{new-alias} gets
+the documentation of the variable at the end of the chain of aliases.
 
-This function returns @var{base-var}.
+This function returns @var{base-variable}.
 @end defun
 
   Variable aliases are convenient for replacing an old name for a
@@ -1805,12 +1805,12 @@
 the old name is obsolete and therefore that it may be removed at some
 stage in the future.
 
-@defun make-obsolete-variable variable new &optional when
+@defun make-obsolete-variable obsolete-name current-name &optional when
 This function makes the byte-compiler warn that the variable
-@var{variable} is obsolete.  If @var{new} is a symbol, it is the
-variable's new name; then the warning message says to use @var{new}
-instead of @var{variable}.  If @var{new} is a string, this is the
-message and there is no replacement variable.
+@var{obsolete-name} is obsolete.  If @var{current-name} is a symbol, it is
+the variable's new name; then the warning message says to use
+@var{current-name} instead of @var{obsolete-name}.  If @var{current-name}
+is a string, this is the message and there is no replacement variable.
 
 If provided, @var{when} should be a string indicating when the
 variable was first made obsolete---for example, a date or a release
@@ -1820,20 +1820,14 @@
   You can make two variables synonyms and declare one obsolete at the
 same time using the macro @code{define-obsolete-variable-alias}.
 
-@defmac define-obsolete-variable-alias variable new &optional when docstring
-This macro marks the variable @var{variable} as obsolete and also
-makes it an alias for the variable @var{new}.  A typical call has the form:
+@defmac define-obsolete-variable-alias obsolete-name current-name &optional when docstring
+This macro marks the variable @var{obsolete-name} as obsolete and also
+makes it an alias for the variable @var{current-name}.  It is
+equivalent to the following:
 
 @example
-(define-obsolete-variable-alias 'old-var 'new-var "22.1" "Doc.")
-@end example
-
-@noindent
-which is equivalent to the following two lines of code:
-
-@example
-(defvaralias 'oldvar 'newvar "Doc.")
-(make-obsolete-variable 'old-var 'new-var "22.1")
+(defvaralias @var{obsolete-name} @var{current-name} @var{docstring})
+(make-obsolete-variable @var{obsolete-name} @var{current-name} @var{when})
 @end example
 @end defmac
 
--- a/man/ChangeLog	Wed Jun 15 12:57:51 2005 +0000
+++ b/man/ChangeLog	Tue Jun 21 15:42:45 2005 +0000
@@ -1,3 +1,7 @@
+2005-06-17  Richard M. Stallman  <rms@gnu.org>
+
+	* text.texi (Adaptive Fill): Minor clarification.
+
 2005-06-13  Carsten Dominik  <dominik@science.uva.nl>
 
 	* org.texi: Version 3.11
--- a/man/text.texi	Wed Jun 15 12:57:51 2005 +0000
+++ b/man/text.texi	Tue Jun 21 15:42:45 2005 +0000
@@ -745,8 +745,8 @@
 automatically by setting the variable @code{adaptive-fill-function} to a
 function.  This function is called with point after the left margin of a
 line, and it should return the appropriate fill prefix based on that
-line.  If it returns @code{nil}, that means it sees no fill prefix in
-that line.
+line.  If it returns @code{nil}, @code{adaptive-fill-regexp} gets
+a chance to find a prefix.
 
 @node Longlines
 @subsection Long Lines Mode
--- a/nt/INSTALL	Wed Jun 15 12:57:51 2005 +0000
+++ b/nt/INSTALL	Tue Jun 21 15:42:45 2005 +0000
@@ -18,12 +18,9 @@
 
      cvs update -kb
 
-  (WARNING: Do NOT use this suggestion if you have write access to the
-  Emacs CVS tree and intend to commit changes to CVS.  This is because -kb
-  is sticky: it will be used in all future CVS operations on the files you
-  check out like this.)  Alternatively, use programs that convert
-  end-of-line format, such as dos2unix and unix2dos available from
-  GnuWin32 or dtou and utod from the DJGPP project.
+  Alternatively, use programs that convert end-of-line format, such as
+  dos2unix and unix2dos available from GnuWin32 or dtou and utod from
+  the DJGPP project.
 
   In addition to this file, you should also read INSTALL.CVS in the
   parent directory, and make sure that you have a version of
@@ -63,7 +60,7 @@
 
   and at this URL:
 
-  http://ourcomments.org/Emacs/EmacsW32.html
+  http://ourcomments.org/Emacs/w32-build-emacs.html
 
   For reference, here is a list of which builds of GNU make are known
   to work or not, and whether they work in the presence and/or absence
--- a/src/ChangeLog	Wed Jun 15 12:57:51 2005 +0000
+++ b/src/ChangeLog	Tue Jun 21 15:42:45 2005 +0000
@@ -1,3 +1,30 @@
+2005-06-17  Richard M. Stallman  <rms@gnu.org>
+
+	* xdisp.c (get_next_display_element): Reverse
+	test of Vshow_nonbreak_escape.
+
+	* term.c (produce_special_glyphs): Use spec_glyph_lookup_face.
+	(Ftty_no_underline): New function.
+	(syms_of_term): defsubr it.
+	
+	* keyboard.c (read_char): Call restore_getcjmp after jump occurs.
+
+	* dispnew.c (spec_glyph_lookup_face): New function.
+	(build_frame_matrix_from_leaf_window): Use it.
+
+	* dispextern.h (spec_glyph_lookup_face): Add declaration.
+
+	* buffer.c (syms_of_buffer) <cursor-type>: Doc fix.
+
+2005-06-12  Richard M. Stallman  <rms@gnu.org>
+
+	* keyboard.c (read_char): After catching a longjmp,
+	call restore_getcjmp.
+
+2005-06-17  Juanma Barranquero  <lekktu@gmail.com>
+
+	* xselect.c (lisp_data_to_selection_data): Fix spelling.
+
 2005-06-15  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
 	* macterm.c (mac_compute_glyph_string_overhangs): Don't set
@@ -101,7 +128,6 @@
 
 	* xdisp.c (note_mode_line_or_margin_highlight): Call clear_mouse_face
 	when mouse_face is not given.
-	Remove unnecessary tabs.
 
 2005-06-09  Luc Teirlinck  <teirllm@auburn.edu>
 
--- a/src/buffer.c	Wed Jun 15 12:57:51 2005 +0000
+++ b/src/buffer.c	Tue Jun 21 15:42:45 2005 +0000
@@ -5934,8 +5934,8 @@
   hollow	 display a hollow box cursor
   bar		 display a vertical bar cursor with default width
   (bar . WIDTH)	 display a vertical bar cursor with width WIDTH
-  hbar		 display a horizontal bar cursor with default width
-  (hbar . WIDTH) display a horizontal bar cursor with width WIDTH
+  hbar		 display a horizontal bar cursor with default height
+  (hbar . HEIGHT) display a horizontal bar cursor with height HEIGHT
   ANYTHING ELSE	 display a hollow box cursor.
 
 When the buffer is displayed in a nonselected window,
--- a/src/dispextern.h	Wed Jun 15 12:57:51 2005 +0000
+++ b/src/dispextern.h	Tue Jun 21 15:42:45 2005 +0000
@@ -366,7 +366,8 @@
 
 #define FACE_ID_BITS	21
 
-  /* Face of the glyph.  */
+  /* Face of the glyph.  This is a realized face ID,
+     an index in the face cache of the frame.  */
   unsigned face_id : FACE_ID_BITS;
 
   /* Type of font used to display the character glyph.  May be used to
@@ -2903,6 +2904,7 @@
 void init_display P_ ((void));
 void syms_of_display P_ ((void));
 extern Lisp_Object Qredisplay_dont_pause;
+GLYPH spec_glyph_lookup_face P_ ((struct window *, GLYPH));
 
 /* Defined in term.c */
 
--- a/src/dispnew.c	Wed Jun 15 12:57:51 2005 +0000
+++ b/src/dispnew.c	Tue Jun 21 15:42:45 2005 +0000
@@ -2711,6 +2711,7 @@
 	  right_border_glyph = (dp && INTEGERP (DISP_BORDER_GLYPH (dp))
 				? XINT (DISP_BORDER_GLYPH (dp))
 				: '|');
+	  right_border_glyph = spec_glyph_lookup_face (w, right_border_glyph);
 	}
     }
   else
@@ -2791,6 +2792,27 @@
     }
 }
 
+/* Given a user-specified glyph, possibly including a Lisp-level face
+   ID, return a glyph that has a realized face ID.
+   This is used for glyphs displayed specially and not part of the text;
+   for instance, vertical separators, truncation markers, etc.  */
+
+GLYPH
+spec_glyph_lookup_face (w, glyph)
+     struct window *w;
+     GLYPH glyph;
+{
+  int lface_id = FAST_GLYPH_FACE (glyph);
+  /* Convert the glyph's specified face to a realized (cache) face.  */
+  if (lface_id > 0)
+    {
+      int face_id = merge_faces (XFRAME (w->frame),
+				 Qt, lface_id, DEFAULT_FACE_ID);
+      glyph
+	= FAST_MAKE_GLYPH (FAST_GLYPH_CHAR (glyph), face_id);
+    }
+  return glyph;
+}
 
 /* Add spaces to a glyph row ROW in a window matrix.
 
--- a/src/keyboard.c	Wed Jun 15 12:57:51 2005 +0000
+++ b/src/keyboard.c	Tue Jun 21 15:42:45 2005 +0000
@@ -2610,6 +2610,9 @@
 
   if (_setjmp (local_getcjmp))
     {
+      /* We must have saved the outer value of getcjmp here,
+	 so restore it now.  */
+      restore_getcjmp (save_jump);
       XSETINT (c, quit_char);
       internal_last_event_frame = selected_frame;
       Vlast_event_frame = internal_last_event_frame;
--- a/src/term.c	Wed Jun 15 12:57:51 2005 +0000
+++ b/src/term.c	Tue Jun 21 15:42:45 2005 +0000
@@ -1695,6 +1695,7 @@
      enum display_element_type what;
 {
   struct it temp_it;
+  GLYPH glyph;
 
   temp_it = *it;
   temp_it.dp = NULL;
@@ -1710,15 +1711,11 @@
 	  && INTEGERP (DISP_CONTINUE_GLYPH (it->dp))
 	  && GLYPH_CHAR_VALID_P (XINT (DISP_CONTINUE_GLYPH (it->dp))))
 	{
-	  temp_it.c = FAST_GLYPH_CHAR (XINT (DISP_CONTINUE_GLYPH (it->dp)));
-	  temp_it.len = CHAR_BYTES (temp_it.c);
+	  glyph = XINT (DISP_CONTINUE_GLYPH (it->dp));
+	  glyph = spec_glyph_lookup_face (XWINDOW (it->window), glyph);
 	}
       else
-	temp_it.c = '\\';
-
-      produce_glyphs (&temp_it);
-      it->pixel_width = temp_it.pixel_width;
-      it->nglyphs = temp_it.pixel_width;
+	glyph = '\\';
     }
   else if (what == IT_TRUNCATION)
     {
@@ -1727,18 +1724,22 @@
 	  && INTEGERP (DISP_TRUNC_GLYPH (it->dp))
 	  && GLYPH_CHAR_VALID_P (XINT (DISP_TRUNC_GLYPH (it->dp))))
 	{
-	  temp_it.c = FAST_GLYPH_CHAR (XINT (DISP_TRUNC_GLYPH (it->dp)));
-	  temp_it.len = CHAR_BYTES (temp_it.c);
+	  glyph = XINT (DISP_TRUNC_GLYPH (it->dp));
+	  glyph = spec_glyph_lookup_face (XWINDOW (it->window), glyph);
 	}
       else
-	temp_it.c = '$';
-
-      produce_glyphs (&temp_it);
-      it->pixel_width = temp_it.pixel_width;
-      it->nglyphs = temp_it.pixel_width;
+	glyph = '$';
     }
   else
     abort ();
+
+  temp_it.c = FAST_GLYPH_CHAR (glyph);
+  temp_it.face_id = FAST_GLYPH_FACE (glyph);
+  temp_it.len = CHAR_BYTES (temp_it.c);
+
+  produce_glyphs (&temp_it);
+  it->pixel_width = temp_it.pixel_width;
+  it->nglyphs = temp_it.pixel_width;
 }
 
 
@@ -1757,7 +1758,8 @@
    ? (tty->TN_no_color_video & (ATTR)) == 0             \
    : 1)
 
-/* Turn appearances of face FACE_ID on tty frame F on.  */
+/* Turn appearances of face FACE_ID on tty frame F on.
+   FACE_ID is a realized face ID number, in the face cache.  */
 
 static void
 turn_on_face (f, face_id)
@@ -2195,7 +2197,7 @@
        doc: /* Return the name of the device that DISPLAY uses.
 It is not guaranteed that the returned value is unique among opened displays.
 
-DISPLAY can be a display, a frame, or nil (meaning the selected
+DISPLAY may be a display, a frame, or nil (meaning the selected
 frame's display). */)
   (display)
      Lisp_Object display;
@@ -2209,7 +2211,10 @@
 }
 
 DEFUN ("display-tty-type", Fdisplay_tty_type, Sdisplay_tty_type, 0, 1, 0,
-       doc: /* Return the type of the TTY device that DISPLAY uses. */)
+       doc: /* Return the type of the TTY device that DISPLAY uses.
+
+DISPLAY may be a display, a frame, or nil (meaning the selected
+frame's display).  */)
   (display)
      Lisp_Object display;
 {
@@ -2225,7 +2230,10 @@
 }
 
 DEFUN ("display-controlling-tty-p", Fdisplay_controlling_tty_p, Sdisplay_controlling_tty_p, 0, 1, 0,
-       doc: /* Return non-nil if DISPLAY is on the controlling tty of the Emacs process. */)
+       doc: /* Return non-nil if DISPLAY is on the controlling tty of the Emacs process.
+
+DISPLAY may be a display, a frame, or nil (meaning the selected
+frame's display).  */)
   (display)
      Lisp_Object display;
 {
@@ -2237,6 +2245,25 @@
     return Qt;
 }
 
+DEFUN ("tty-no-underline", Ftty_no_underline, Stty_no_underline, 0, 1, 0,
+       doc: /* Declare that the tty used by DISPLAY does not handle underlining.
+This is used to override the terminfo data, for certain terminals that
+do not really do underlining, but say that they do.  This function has
+no effect if used on a non-tty display.
+
+DISPLAY may be a display, a frame, or nil (meaning the selected
+frame's display).  */)
+  (display)
+     Lisp_Object display;
+{
+  struct display *d = get_display (display, 1);
+
+  if (d->type == output_termcap)
+    d->display_info.tty->TS_enter_underline_mode = 0;
+  return Qnil;
+}
+
+
 
 /***********************************************************************
 			    Initialization
@@ -3384,6 +3411,7 @@
 
   defsubr (&Stty_display_color_p);
   defsubr (&Stty_display_color_cells);
+  defsubr (&Stty_no_underline);
   defsubr (&Sdisplay_name);
   defsubr (&Sdisplay_tty_type);
   defsubr (&Sdisplay_controlling_tty_p);
--- a/src/xdisp.c	Wed Jun 15 12:57:51 2005 +0000
+++ b/src/xdisp.c	Tue Jun 21 15:42:45 2005 +0000
@@ -5139,7 +5139,7 @@
 	      /* Handle non-break space in the mode where it only gets
 		 highlighting.  */
 
-	      if (! EQ (Vshow_nonbreak_escape, Qt)
+	      if (EQ (Vshow_nonbreak_escape, Qt)
 		  && (it->c == 0x8a0 || it->c == 0x920
 		      || it->c == 0xe20 || it->c == 0xf20))
 		{
--- a/src/xselect.c	Wed Jun 15 12:57:51 2005 +0000
+++ b/src/xselect.c	Tue Jun 21 15:42:45 2005 +0000
@@ -2048,7 +2048,7 @@
 
           /* Use sizeof(long) even if it is more than 32 bits.  See comment
              in x_get_window_property and x_fill_property_data.  */
-          
+
           if (*format_ret == 32) data_size = sizeof(long);
 	  *data_ret = (unsigned char *) xmalloc (*size_ret * data_size);
 	  for (i = 0; i < *size_ret; i++)
@@ -2062,7 +2062,7 @@
     }
   else
     Fsignal (Qerror, /* Qselection_error */
-	     Fcons (build_string ("unrecognised selection data"),
+	     Fcons (build_string ("unrecognized selection data"),
 		    Fcons (obj, Qnil)));
 
   *type_ret = symbol_to_x_atom (dpyinfo, display, type);
@@ -2864,7 +2864,7 @@
      when sending to the root window.  */
   event.xclient.window = to_root ? FRAME_OUTER_WINDOW (f) : wdest;
 
-  
+
   memset (event.xclient.data.b, 0, sizeof (event.xclient.data.b));
   x_fill_property_data (dpyinfo->display, values, event.xclient.data.b,
                         event.xclient.format);