changeset 83429:ec395f552d45

Merged from miles@gnu.org--gnu-2005 (patch 681) Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-681 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-469
author Karoly Lorentey <lorentey@elte.hu>
date Thu, 29 Dec 2005 04:46:59 +0000
parents d0eee3282e6b (current diff) c6d86f53dcf3 (diff)
children 10f26433fe3f
files lisp/ChangeLog lisp/cus-start.el lisp/files.el lisp/progmodes/gdb-ui.el lisp/simple.el lisp/startup.el lisp/subr.el lisp/url/url-cache.el lisp/url/url.el lisp/vc.el lispref/ChangeLog man/ChangeLog man/frames.texi src/Makefile.in src/fns.c src/keyboard.c src/keyboard.h src/lread.c src/minibuf.c src/xfns.c
diffstat 51 files changed, 802 insertions(+), 408 deletions(-) [+]
line wrap: on
line diff
--- a/etc/ChangeLog	Thu Dec 29 04:41:02 2005 +0000
+++ b/etc/ChangeLog	Thu Dec 29 04:46:59 2005 +0000
@@ -1,3 +1,8 @@
+2005-12-28  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* e/eterm-color.ti: Temporarily disable the ri entry.
+	* e/eterm-color: Regenerate.
+	
 2005-12-21  L$,1 q(Brentey K,Aa(Broly  <lorentey@elte.hu>
 
 	* TODO: Add note on the multi-tty branch.
--- a/etc/NEWS	Thu Dec 29 04:41:02 2005 +0000
+++ b/etc/NEWS	Thu Dec 29 04:46:59 2005 +0000
@@ -4214,13 +4214,13 @@
 *** The new macro `lazy-completion-table' initializes a variable
 as a lazy completion table.
 
-  (lazy-completion-table VAR FUN &rest ARGS)
+  (lazy-completion-table VAR FUN)
 
 If the completion table VAR is used for the first time (e.g., by passing VAR
-as an argument to `try-completion'), the function FUN is called with arguments
-ARGS. FUN must return the completion table that will be stored in VAR. If
-completion is requested in the minibuffer, FUN will be called in the buffer
-from which the minibuffer was entered. The return value of
+as an argument to `try-completion'), the function FUN is called with no
+arguments.  FUN must return the completion table that will be stored in VAR.
+If completion is requested in the minibuffer, FUN will be called in the buffer
+from which the minibuffer was entered.  The return value of
 `lazy-completion-table' must be used to initialize the value of VAR.
 
 +++
Binary file etc/e/eterm-color has changed
--- a/etc/e/eterm-color.ti	Thu Dec 29 04:41:02 2005 +0000
+++ b/etc/e/eterm-color.ti	Thu Dec 29 04:46:59 2005 +0000
@@ -52,7 +52,7 @@
 	op=\E[39;49m,
 	rc=\E8,
 	rev=\E[7m,
-	ri=\EM,
+#	ri=\EM, #temporarily disable, it causes problems for mutt
 	rmir=\E[4l,
 	rmso=\E[27m,
 	rmul=\E[24m,
--- a/lisp/ChangeLog	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/ChangeLog	Thu Dec 29 04:46:59 2005 +0000
@@ -1,5 +1,153 @@
+2005-12-29  Nick Roberts  <nickrob@snap.net.nz>
+
+	* progmodes/gdb-ui.el (gdb-tooltip-print, gdb-tooltip-print-1):
+	Display name of expression instead of convenience variable.
+	(gdb-post-prompt): Only call gdb-get-changed-registers if needed.
+
+	* progmodes/gud.el (gud-tooltip-dereference): Rename from
+	toggle-gud-tooltip-dereference.
+	(gud-tooltip-print-command): Move concatenation of "*" to expr to...
+	(gud-tooltip-tips): ...here when dereferencing..
+
+2005-12-28  Bill Wohler  <wohler@newt.com>
+
+	* simple.el (mh-e-user-agent): Move to mh-e/mh-comp.el and
+	autoload.
+
+2005-12-28  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* vc.el (vc-annotate-display): Replace optional arg `color-map' with
+	compulsory arg `ratio'.  Inline body of vc-annotate-time-span.
+	(vc-annotate-display-autoscale): Adjust call.
+	(vc-annotate-display-default): Adjust call.  Make arg compulsory.
+	Fix interactive spec.
+	(vc-annotate-time-span): Remove.
+	(vc-annotate-oldest-in-map): Rename from vc-annotate-car-last-cons.
+	(vc-annotate-mode-menu, vc-annotate-display-autoscale)
+	(vc-annotate-display-select): Use new name.
+
+	* vc.el (vc-annotate-mode-map): Remove obsolete binding.
+	(vc-annotate-mode-menu): Remove left-over redundant declaration.
+	Correct the construction of span entries.  Simplify.
+	(vc-annotate-display-select): Fix the nil case.
+	(vc-annotate): Remove obsolete (and now broken) code.
+	(vc-annotate-extract-revision-at-line): Remove obsolete code.
+	(vc-annotate-time-span): Remove unused arg `quantize'.  Simplify.
+
+2005-12-28  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* subr.el (lazy-completion-table): Correct typo in docstring.
+
+	* startup.el (command-line): Use `custom-reevaluate-setting' for
+	`send-mail-function'.
+
+	* mail/sendmail.el (send-mail-function): Autoload the standard-value.
+
+2005-12-05  Ralf Angeli  <angeli@iwi.uni-sb.de>
+
+	* mail/smtpmail.el (smtpmail-try-auth-methods):
+	Send credentials together with "AUTH PLAIN" command.
+
+2005-12-27  Richard M. Stallman  <rms@gnu.org>
+
+	* mouse.el (mouse-drag-region-1): When remapping mouse-1 to
+	mouse-2, go back to previously selected window, so it's selected
+	when mouse-2 command runs.
+
+2005-12-27  Juri Linkov  <juri@jurta.org>
+
+	* descr-text.el (describe-text-sexp): Use square brackets for
+	button [Show] to distinguish it from the property value `show'.
+	(describe-property-list): Use `insert-text-button' with
+	`help-face' type instead of putting face in quotes, because button
+	is not created automatically for a list of faces.
+	(describe-text-properties-1): Put button-type value in quotes to
+	distinguish from plain text "button".
+	(describe-char): Display code point values in hex.  Don't use
+	`symbol-name' for `current-input-method' because it is a string.
+	Use `insert-text-button' with `help-face' type instead of putting
+	hardcoded face in quotes, because button is not created automatically.
+
+2005-12-27  Richard M. Stallman  <rms@gnu.org>
+
+	* progmodes/glasses.el (glasses-face): More specific custom type.
+
+	* files.el (set-visited-file-name): Doc fix.
+
+	* textmodes/flyspell.el (flyspell-external-point-words):
+	Use local var buffer-scan-pos to advance scan for next misspelling.
+	Advance it only after we find the misspelling.
+
+2005-12-27  Agustin Martin  <agustin.martin@hispalinux.es>
+
+	* textmodes/flyspell.el (flyspell-external-point-words):
+	New criteria for finding the misspelling in the buffer.
+
+2005-12-27  Nick Roberts  <nickrob@snap.net.nz>
+
+	* help-mode.el (help-insert-string): Set help-xref-stack-item
+	rather than call help-setup-xref.
+
+	* descr-text.el (describe-char): Revert previous changes for
+	optional buffer argument.
+
+2005-12-27  Juri Linkov  <juri@jurta.org>
+
+	* help-mode.el (help-insert-string): New function.  Save buffer
+	contents in cases where it is impossible to recompute the old contents.
+
+	* descr-text.el (describe-char): Set help-xref-stack-item
+	explicitly after buffer has been generated.
+
+2005-12-27  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* cus-start.el (all): Add x-gtk-show-hidden-files.
+
+2005-12-26  Richard M. Stallman  <rms@gnu.org>
+
+	* replace.el (perform-replace): Calculate match-again
+	before skipping read-only matches.
+
+	* paren.el (paren-showing-faces): New group.
+	(show-paren-match, show-paren-mismatch): Move to that group.
+
+	* button.el (button): Put into group `basic-faces'.
+
+	* progmodes/make-mode.el: Remove faces from group `faces'.
+
+	* apropos.el (apropos, apropos-value): Doc fix.
+	(apropos-documentation): Doc fix.
+
+2005-12-26  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* subr.el (lazy-completion-table): Remove argument `args'.
+
+	* textmodes/bibtex.el (bibtex-strings, bibtex-reference-keys):
+	Don't use the `args' argument of lazy-completion-table.
+
+2005-12-26  Nick Roberts  <nickrob@snap.net.nz>
+
+	* descr-text.el (describe-char): Add optional argument for buffer.
+	Set buffer appropriately.  Call help-setup-xref.
+	Suggested by Stefan Monnier.
+
+2005-12-26  Juri Linkov  <juri@jurta.org>
+
+	* descr-text.el: Require `help-fns' at runtime.  Don't require
+	`button' for byte compilation.
+	(describe-text-widget): Add `help-echo' for first button.
+	Use `help-info' for second.
+	(describe-property-list): Use `help-argument-name' instead of `italic'.
+	(describe-text-category): Add prompt to interactive spec.
+	Call `help-setup-xref'.
+	(describe-char): Use `help-character-set'.  Add `help-echo' for
+	code point.  Use `help-input-method'.  Remove superfluous insert.
+
 2005-12-25  Richard M. Stallman  <rms@gnu.org>
 
+	* progmodes/cc-defs.el (c-emacs-features): Do parse-partial-sexp
+	at point, in case of narrowing.
+
 	* progmodes/delphi.el (delphi-other-face): Allow nil in type.
 
 	* locate.el (locate-header-face): Allow nil in type.
@@ -15,16 +163,16 @@
 
 	* custom.el (custom-push-theme): Fix docstring.
 
-	* cus-edit.el (custom-variable-set, custom-variable-save,
-	custom-variable-save): Custom-quote widget values.
+	* cus-edit.el (custom-variable-set, custom-variable-save)
+	(custom-variable-save): Custom-quote widget values.
 	(customize-save-variable): Fix custom-push-theme call.
 
 2005-12-24  Eli Zaretskii  <eliz@gnu.org>
 
 	* w32-fns.el (w32-batch-update-autoloads): New function.
 
-	* makefile.w32-in (autoloads, $(lisp)/mh-e/mh-loaddefs.el): Use
-	w32-batch-update-autoloads, and don't setq generated-autoload-file
+	* makefile.w32-in (autoloads, $(lisp)/mh-e/mh-loaddefs.el):
+	Use w32-batch-update-autoloads, and don't setq generated-autoload-file
 	from the command line.
 
 2005-12-23  Chong Yidong  <cyd@stupidchicken.com>
@@ -37,15 +185,15 @@
 	customization" button one line up.
 	(custom-themed): New face.
 	(custom-magic-alist): New value, THEMED, for theme settings.
-	(custom-variable-state-set, custom-face-state-set): Check
-	theme-value instead of saved-value.
+	(custom-variable-state-set, custom-face-state-set):
+	Check theme-value instead of saved-value.
 	(custom-variable-reset-standard, custom-face-reset-standard):
 	Remove theme setting entirely.  Recalculate new values.
 	(custom-variable-set, custom-variable-set)
 	(custom-variable-reset-saved, custom-variable-reset-backup)
 	(custom-face-set, custom-face-reset-saved): Update `user' theme.
 	(custom-variable-save): Fix typos.
-	
+
 2005-12-23  Juri Linkov  <juri@jurta.org>
 
 	* emacs-lisp/edebug.el (edebug-all-defs, edebug-all-forms):
@@ -1384,7 +1532,7 @@
 	5D.1 and 5D.2 removed since they aren't trigged anymore (case 5B.1
 	covers all cases now).
 
-	* progmodes/cc-defs.el (c-point): Added 'bosws and 'eosws.
+	* progmodes/cc-defs.el (c-point): Added `bosws' and `eosws'.
 
 2005-12-08  Alan Mackenzie  <bug-cc-mode@gnu.org>
 
@@ -1454,7 +1602,7 @@
 	* progmodes/cc-engine.el, cc-fonts.el (c-forward-keyword-clause):
 	Specify which submatch to use.
 
-	* progmodes/cc-langs.el (c-symbol-start): Include '@' in ObjC.
+	* progmodes/cc-langs.el (c-symbol-start): Include `@' in ObjC.
 
 	(c-decl-start-re): No no longer any need for special treatment of
 	ObjC due to the above.
@@ -1653,7 +1801,7 @@
 
 	(c-decl-start-re): New language variable to make
 	`c-font-lock-declarations' stop for the special protection labels
-	in Objective-C that start with '@'.
+	in Objective-C that start with `@'.
 
 	(c-label-key): Removed since it's no longer used.
 
@@ -1843,7 +1991,7 @@
 	has now taken the place of this function.
 
 	* progmodes/cc-vars.el (c-emacs-features): Removed compatibility
-	with older emacsen: We now require 'pps-extended-state.
+	with older emacsen: We now require `pps-extended-state'.
 
 2005-12-08  Alan Mackenzie  <bug-cc-mode@gnu.org>
 
@@ -2020,21 +2168,21 @@
 	(cua-rectangle-modifier-key): ... this.  New defcustom.  Can now
 	select either meta, hyper, or super modifier for rectangle commands.
 	(cua--rectangle-modifier-key): New defvar.
-	(cua--M/H-key): Use it.  Remove special case for 'space.
+	(cua--M/H-key): Use it.  Remove special case for `space'.
 	(cua--init-keymaps): Initialize it from cua-rectangle-modifier-key
 	on X, to meta otherwise.  Always bind C-return to toggle
-	rectangle.  Pass ?\s instead of 'space to cua--M/H-key.
+	rectangle.  Pass ?\s instead of `space' to cua--M/H-key.
 
 	* emulation/cua-rect.el (cua-help-for-rectangle): Use
 	cua--rectangle-modifier-key.  Handle super modifier too.
 	(cua--init-rectangles): Always bind C-return to toggle rectangle.
-	Pass ?\s instead of 'space to cua--M/H-key and cua--rect-M/H-key.
+	Pass ?\s instead of `space' to cua--M/H-key and cua--rect-M/H-key.
 
 	* ido.el: Move Acknowledgements and History after Commentary.
 	Minor changes to Commentary.
 
 	* emulation/cua-base.el (cua--select-keymaps): Enable repeat
-	keymap if cua--prefix-override-timer equals 'shift.
+	keymap if cua--prefix-override-timer is `shift'.
 	(cua--shift-control-prefix): New function; emulate "type prefix
 	key twice" functionality to handle shifted prefix key override.
 	(cua--shift-control-c-prefix, cua--shift-control-x-prefix): New
@@ -2330,7 +2478,7 @@
 
 2005-12-02  Ken Manheimer  <ken.manheimer@gmail.com>
 
-	* allout.el:(eval-when-compile): Remove unnecessary load of 'cl.
+	* allout.el:(eval-when-compile): Remove unnecessary load of cl.
 	Add fset of allout-real-isearch-abort during compile to fix
 	byte-compilation warnings.
 	(allout-mode-p): Move definition of this macro above all uses, or
@@ -3467,7 +3615,7 @@
 	* jka-cmpr-hook.el (jka-compr-install): Use push and dolist.
 	Add jka-compr-load-suffixes to load-suffixes.
 
-	* jka-compr.el: Require 'jka-cmpr-hook.
+	* jka-compr.el: Require jka-cmpr-hook.
 	(jka-compr-info-compress-message, jka-compr-info-compress-program)
 	(jka-compr-info-compress-args, jka-compr-info-uncompress-message)
 	(jka-compr-info-uncompress-program, jka-compr-info-uncompress-args)
@@ -3650,7 +3798,7 @@
 	* pgg-pgp.el (pgg-pgp-encrypt-region, pgg-pgp-decrypt-region)
 	(pgg-pgp-encrypt-symmetric-region, pgg-pgp-encrypt-symmetric)
 	(pgg-pgp-encrypt, pgg-pgp-decrypt-region, pgg-pgp-decrypt)
-	(pgg-pgp-sign-region, pgg-pgp-sign): Add optional 'passphrase'
+	(pgg-pgp-sign-region, pgg-pgp-sign): Add optional PASSPHRASE
 	argument to all these routines, so the passphrase can be managed
 	externally and passed in to the system.
 	(pgg-pgp-decrypt-region, pgg-pgp-sign-region): Use new name for
@@ -3659,7 +3807,7 @@
 	* pgg-pgp5.el (pgg-pgp5-encrypt-region, pgg-pgp5-decrypt-region)
 	(pgg-pgp5-encrypt-symmetric-region, pgg-pgp5-encrypt-symmetric)
 	(pgg-pgp5-encrypt, pgg-pgp5-decrypt-region, pgg-pgp5-decrypt)
-	(pgg-pgp5-sign-region, pgg-pgp5-sign): Add optional 'passphrase'
+	(pgg-pgp5-sign-region, pgg-pgp5-sign): Add optional PASSPHRASE
 	argument to all these routines, so the passphrase can be managed
 	externally and passed in to the system.
 	(pgg-pgp5-sign-region): Use new name of	pgg-add-passphrase-to-cache
@@ -3843,7 +3991,7 @@
 	Change defvar to defcustom.
 	(rcirc-update-prompt): Add optional ALL arg, which will update
 	prompts in all rcirc buffers.  Regexp quote replacement text.
-	(rcirc-fill-column): Accept 'frame-width as a value.
+	(rcirc-fill-column): Accept frame-width as a value.
 	(rcirc-set-changed): Add function.
 	(rcirc-next-active-buffer): Write more meaningful messages.
 	(rcirc-faces): Add customization group.
@@ -3854,7 +4002,7 @@
 	(rcirc-debug-buffer): Rename from `rcirc-log-buffer'.
 	(rcirc-debug-flag): Rename from `rcirc-log-p'.
 	(rcirc-debug): Rename from `rcirc-log'.
-	(rcirc-format-response-string): Do not print '-' chars for a
+	(rcirc-format-response-string): Do not print `-' chars for a
 	NOTICE with no sender.  Simplify output of server responses.
 
 2005-11-04  Henrik Enberg  <henrik.enberg@telia.com>
@@ -3872,7 +4020,7 @@
 	* pgg-pgp.el (pgg-pgp-encrypt-region, pgg-pgp-decrypt-region)
 	(pgg-pgp-encrypt-symmetric-region, pgg-pgp-encrypt-symmetric)
 	(pgg-pgp-encrypt, pgg-pgp-decrypt-region, pgg-pgp-decrypt)
-	(pgg-pgp-sign-region, pgg-pgp-sign): Add optional 'passphrase'
+	(pgg-pgp-sign-region, pgg-pgp-sign): Add optional PASSPHRASE
 	argument to all these routines, so the passphrase can be managed
 	externally and passed in to the system.
 	(pgg-pgp-decrypt-region, pgg-pgp-sign-region): Use new name for
@@ -3881,7 +4029,7 @@
 	* pgg-pgp5.el (pgg-pgp5-encrypt-region, pgg-pgp5-decrypt-region)
 	(pgg-pgp5-encrypt-symmetric-region, pgg-pgp5-encrypt-symmetric)
 	(pgg-pgp5-encrypt, pgg-pgp5-decrypt-region, pgg-pgp5-decrypt)
-	(pgg-pgp5-sign-region, pgg-pgp5-sign): Add optional 'passphrase'
+	(pgg-pgp5-sign-region, pgg-pgp5-sign): Add optional PASSPHRASE
 	argument to all these routines, so the passphrase can be managed
 	externally and passed in to the system.
 	(pgg-pgp5-sign-region): Use new name of	pgg-add-passphrase-to-cache
@@ -3896,7 +4044,7 @@
 
 	* textmodes/org.el (org-read-date, org-goto-calendar)
 	(org-recenter-calendar, org-agenda-goto-calendar):
-	Temporarily clear 'calendar-move-hook'.
+	Temporarily clear `calendar-move-hook'.
 
 2005-11-04  Michael Kifer  <kifer@cs.stonybrook.edu>
 
@@ -4257,7 +4405,7 @@
 	key.  Also, added a note pointing out fact that the prompt only
 	indicates the first matching key.
 
-	* pgg.el (pgg-decrypt): Passing along 'passphrase' in call to
+	* pgg.el (pgg-decrypt): Passing along PASSPHRASE in call to
 	pgg-decrypt-region.
 	(pgg-pending-timers): A new hash for tracking the passphrase cache
 	timers, so that new ones supercede old ones.
@@ -4287,14 +4435,14 @@
 	and then passed in to the system.
 
 	* pgg.el (pgg-read-passphrase, pgg-add-passphrase-cache)
-	(pgg-remove-passphrase-cache): Add optional 'notruncate' argument,
+	(pgg-remove-passphrase-cache): Add optional NOTRUNCATE argument,
 	so the passphrase cache can be used reliably with identifiers
 	besides a pgp packet's key id.
 
 	* pgg-gpg.el (pgg-pgp-encrypt-region)
 	(pgg-pgp-encrypt-symmetric-region, pgg-pgp-encrypt-symmetric)
 	(pgg-pgp-encrypt, pgg-pgp-decrypt-region, pgg-pgp-decrypt)
-	(pgg-pgp-sign-region, pgg-pgp-sign): Add optional 'passphrase'
+	(pgg-pgp-sign-region, pgg-pgp-sign): Add optional PASSPHRASE
 	argument to all these routines, so the passphrase can be managed
 	externally and passed in to the system.
 
@@ -4343,7 +4491,7 @@
 	key.  Also, added a note pointing out fact that the prompt only
 	indicates the first matching key.
 
-	* pgg.el (pgg-decrypt): Passing along 'passphrase' in call to
+	* pgg.el (pgg-decrypt): Passing along PASSPHRASE in call to
 	pgg-decrypt-region.
 	(pgg-pending-timers): A new hash for tracking the passphrase cache
 	timers, so that new ones supercede old ones.
@@ -4375,14 +4523,14 @@
 	and then passed in to the system.
 
 	* pgg.el (pgg-read-passphrase, pgg-add-passphrase-cache)
-	(pgg-remove-passphrase-cache): Add optional 'notruncate' argument,
+	(pgg-remove-passphrase-cache): Add optional NOTRUNCATE argument,
 	so the passphrase cache can be used reliably with identifiers
 	besides a pgp packet's key id.
 
 	* pgg-gpg.el (pgg-pgp-encrypt-region)
 	(pgg-pgp-encrypt-symmetric-region, pgg-pgp-encrypt-symmetric)
 	(pgg-pgp-encrypt, pgg-pgp-decrypt-region, pgg-pgp-decrypt)
-	(pgg-pgp-sign-region, pgg-pgp-sign): Add optional 'passphrase'
+	(pgg-pgp-sign-region, pgg-pgp-sign): Add optional PASSPHRASE
 	argument to all these routines, so the passphrase can be managed
 	externally and passed in to the system.
 
@@ -5020,7 +5168,7 @@
 	* allout.el: Add autoloads of crypt++ and mailcrypt routines, all
 	for encryption functionality.
 	Move allout customization subgroup from `editing' to `outlines' group.
-	Fix commentary 'keywords' to legitimate ones.
+	Fix commentary keywords to legitimate ones.
 	Update author info (using my current email address, obscurified).
 	(allout-encrypt-string, allout-encryption-produce-work-buffer)
 	(allout-encrypted-topic-p, allout-encrypted-text-type)
@@ -5061,9 +5209,9 @@
 	any universal argument provokes now prompt for bullet, defaulting
 	to the bullet of the previous topic.
 	(allout-plain-bullets-string, allout-distinctive-bullets-string):
-	Plain bullet alternates '.' period and ',' comma only.  All other
+	Plain bullet alternates `.' period and `,' comma only.  All other
 	bullets are relegated to special status (but customizable).
-	(allout-end-of-entry): Rename from 'allout-end-of-current-entry
+	(allout-end-of-entry): Rename from allout-end-of-current-entry
 	since it actually operates w.r.t. most immediately containing
 	entry, visible or not.
 	(allout-hide-current-entry, allout-show-current-entry): Use the
@@ -5084,8 +5232,8 @@
 	(allout-isearch-rectification): Refine condition for isearching.
 	(allout-isearch-abort, allout-enwrap-isearch)
 	(allout-flag-region, my-region-active-p): Relocate some macros.
-	(allout-title): Fallback title is '(buffer-name)', not
-	non-existing '(current-buffer-name)'.
+	(allout-title): Fallback title is (buffer-name), not
+	non-existing (current-buffer-name).
 	(subst-char-in-string): Define if absent (for some XEmacs versions).
 
 2005-10-20  Jari Aalto  <jari.aalto@cante.net>
@@ -5600,10 +5748,10 @@
 	(math-super-types): Add sqmatrix type.
 
 	* calc/calc-mode.el (calc-matrix-mode, math-get-modes-vec): Change the
-	mode name `square' to 'sqmatrix'.
+	mode name `square' to `sqmatrix'.
 
 	* calc/calc.el (calc-matrix-mode, calc-set-mode-line): Change the
-	mode name `square' to 'sqmatrix'.
+	mode name `square' to `sqmatrix'.
 
 2005-10-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 
@@ -7193,7 +7341,7 @@
 	(vhdl-trailer-re): Add "record" keyword (better indentation).
 	(vhdl-fixup-whitespace-region): "[^ \t\"-]+" instead of
 	"[^ \t-\"]+".
-	(vhdl-font-lock-keywords-2): Not highlight formal parameter after '|'.
+	(vhdl-font-lock-keywords-2): Not highlight formal parameter after `|'.
 	(vhdl-testbench-entity-file-name)
 	(vhdl-testbench-architecture-file-name): Allow separate
 	customization of testbench file names.
@@ -7803,8 +7951,8 @@
 	* subr.el (insert-for-yank-1): Doc fix.
 
 	* ido.el (ido-enter-matching-directory): Rename from
-	ido-enter-single-matching-directory.  Change 'slash choice to
-	'only. 	Add 'first choice.
+	ido-enter-single-matching-directory.  Change `slash' choice to
+	`only'.  Add `first' choice.
 	(ido-exhibit): Adapt to above changes.
 
 2005-08-16  Luc Teirlinck  <teirllm@auburn.edu>
@@ -12064,7 +12212,7 @@
 	included diary buffer if it was not already being visited.
 	Reported by Stephen Berman <Stephen.Berman@gmx.net>.
 
-	* calendar/icalendar.el (top-level): Do not require 'appt.
+	* calendar/icalendar.el (top-level): Do not require appt.
 
 	* mail/supercite.el (sc-select-attribution): Only use a list
 	element from sc-attrib-selection-list if it returns a string.
@@ -15371,7 +15519,7 @@
 
 	* calendar/cal-x.el (calendar-one-frame-setup)
 	(calendar-only-one-frame-setup, calendar-two-frame-setup): Use t
-	rather than 'symbol for set-window-dedicated-p.
+	rather than `symbol' for set-window-dedicated-p.
 
 	* calendar/appt.el (appt-buffer-name): Make it a constant.
 	(appt-add): Doc fix.
@@ -18000,10 +18148,10 @@
 	(reftex-index-region-phrases): Add slave parameter to call of
 	`reftex-index-this-phrase'.
 	(reftex-display-index): New argument redo.
-	(reftex-index-rescan): Add 'redo to arguments of
+	(reftex-index-rescan): Add `redo' to arguments of
 	`reftex-display-index'.
 	(reftex-index-Rescan, reftex-index-revert)
-	(reftex-index-switch-index-tag): Add 'redo to arguments of
+	(reftex-index-switch-index-tag): Add `redo' to arguments of
 	`reftex-display-index'.
 	(reftex-index-make-phrase-regexp): Fix bug with case-sensitive
 	indexing.  Fix bug with matching is there is a quote before or
@@ -18070,8 +18218,8 @@
 
 	* xt-mouse.el (xterm-mouse-translate, xterm-mouse-event):
 	Enable mouse clicks on mode-line, header-line and margin.
-	(event-type): Give mouse event symbols an 'event-kind property
-	with value 'mouse-click.
+	(event-type): Give mouse event symbols an `event-kind' property
+	with value `mouse-click'.
 
 2005-01-12  Juri Linkov  <juri@jurta.org>
 
--- a/lisp/apropos.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/apropos.el	Thu Dec 29 04:46:59 2005 +0000
@@ -502,27 +502,31 @@
 
 ;;;###autoload
 (defun apropos (pattern &optional do-all)
-  "Show all bound symbols whose names match PATTERN.
+  "Show all meaningful Lisp symbols whose names match PATTERN.
+Symbols are shown if they are defined as functions, variables, or
+faces, or if they have nonempty property lists.
+
 PATTERN can be a word, a list of words (separated by spaces),
 or a regexp (using some regexp special characters).  If it is a word,
 search for matches for that word as a substring.  If it is a list of words,
 search for matches for any two (or more) of those words.
 
-With \\[universal-argument] prefix, or if `apropos-do-all' is non-nil, also
-show unbound symbols and key bindings, which is a little more
-time-consuming.  Returns list of symbols and documentation found."
+With \\[universal-argument] prefix, or if `apropos-do-all' is non-nil,
+consider all symbols (if they match PATTERN).
+
+Returns list of symbols and documentation found."
   (interactive (list (apropos-read-pattern "symbol")
 		     current-prefix-arg))
   (apropos-parse-pattern pattern)
   (apropos-symbols-internal
    (apropos-internal apropos-regexp
-			  (and (not do-all)
-			       (not apropos-do-all)
-			       (lambda (symbol)
-				 (or (fboundp symbol)
-				     (boundp symbol)
-				     (facep symbol)
-				     (symbol-plist symbol)))))
+		     (and (not do-all)
+			  (not apropos-do-all)
+			  (lambda (symbol)
+			    (or (fboundp symbol)
+				(boundp symbol)
+				(facep symbol)
+				(symbol-plist symbol)))))
    (or do-all apropos-do-all)))
 
 (defun apropos-symbols-internal (symbols keys &optional text)
@@ -571,7 +575,7 @@
 
 ;;;###autoload
 (defun apropos-value (pattern &optional do-all)
-  "Show all symbols whose value's printed image matches PATTERN.
+  "Show all symbols whose value's printed representation matches PATTERN.
 PATTERN can be a word, a list of words (separated by spaces),
 or a regexp (using some regexp special characters).  If it is a word,
 search for matches for that word as a substring.  If it is a list of words,
@@ -616,7 +620,7 @@
 
 ;;;###autoload
 (defun apropos-documentation (pattern &optional do-all)
-  "Show symbols whose documentation contain matches for PATTERN.
+  "Show symbols whose documentation contains matches for PATTERN.
 PATTERN can be a word, a list of words (separated by spaces),
 or a regexp (using some regexp special characters).  If it is a word,
 search for matches for that word as a substring.  If it is a list of words,
--- a/lisp/button.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/button.el	Thu Dec 29 04:46:59 2005 +0000
@@ -55,7 +55,7 @@
 		   (:foreground "lightblue"))
 		  (t :underline t))
   "Default face used for buttons."
-  :group 'faces)
+  :group 'basic-faces)
 
 ;;;###autoload
 (defvar button-map
--- a/lisp/cus-start.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/cus-start.el	Thu Dec 29 04:46:59 2005 +0000
@@ -356,6 +356,7 @@
 	     (x-bitmap-file-path installation
 				 (repeat (directory :format "%v")))
 	     (x-use-old-gtk-file-dialog menu boolean "22.1")
+	     (x-gtk-show-hidden-files menu boolean "22.1")
 	     ;; xterm.c
              (mouse-autoselect-window display boolean "21.3")
 	     (x-use-underline-position-properties display boolean "21.3")
--- a/lisp/descr-text.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/descr-text.el	Thu Dec 29 04:46:59 2005 +0000
@@ -30,7 +30,8 @@
 
 ;;; Code:
 
-(eval-when-compile (require 'button) (require 'quail))
+(eval-when-compile (require 'quail))
+(require 'help-fns)
 
 ;;; Describe-Text Utilities.
 
@@ -39,11 +40,11 @@
   (insert-text-button
    (symbol-name (if (symbolp widget) widget (car widget)))
    'action `(lambda (&rest ignore)
-	      (widget-browse ',widget)))
+	      (widget-browse ',widget))
+   'help-echo "mouse-2, RET: browse this widget")
   (insert " ")
-  (insert-text-button "(widget)Top"
-		      'action (lambda (&rest ignore) (info "(widget)Top"))
-		      'help-echo "mouse-2, RET: read this Info node"))
+  (insert-text-button
+   "(widget)Top" 'type 'help-info 'help-args '("(widget)Top")))
 
 (defun describe-text-sexp (sexp)
   "Insert a short description of SEXP in the current buffer."
@@ -59,7 +60,7 @@
 	      (t t))
 	(insert pp)
       (insert-text-button
-       "show" 'action `(lambda (&rest ignore)
+       "[Show]" 'action `(lambda (&rest ignore)
 			(with-output-to-temp-buffer
 			    "*Pp Eval Output*"
 			  (princ ',pp)))
@@ -81,15 +82,17 @@
     (let ((key (nth 0 elt))
 	  (value (nth 1 elt)))
       (insert (propertize (format "  %-20s " key)
-			  'face 'italic))
+			  'face 'help-argument-name))
       (cond ((eq key 'category)
-	     (insert-text-button (symbol-name value)
-				 'action `(lambda (&rest ignore)
-					    (describe-text-category ',value))
-				 'help-echo
-				 "mouse-2, RET: describe this category"))
+	     (insert-text-button
+	      (symbol-name value)
+	      'action `(lambda (&rest ignore)
+			 (describe-text-category ',value))
+	      'help-echo "mouse-2, RET: describe this category"))
             ((memq key '(face font-lock-face mouse-face))
-	     (insert (concat "`" (format "%S" value) "'")))
+	     (insert-text-button
+	      (format "%S" value)
+	      'type 'help-face 'help-args (list value)))
             ((widgetp value)
 	     (describe-text-widget value))
 	    (t
@@ -100,7 +103,8 @@
 
 (defun describe-text-category (category)
   "Describe a text property category."
-  (interactive "S")
+  (interactive "SCategory: ")
+  (help-setup-xref (list #'describe-text-category category) (interactive-p))
   (save-excursion
     (with-output-to-temp-buffer "*Help*"
       (set-buffer standard-output)
@@ -159,8 +163,8 @@
       ;; Buttons
       (when (and button (not (widgetp wid-button)))
 	(newline)
-	(insert "Here is a " (format "%S" button-type)
-		" button labeled `" button-label "'.\n\n"))
+	(insert "Here is a `" (format "%S" button-type)
+		"' button labeled `" button-label "'.\n\n"))
       ;; Overlays
       (when overlays
 	(newline)
@@ -428,13 +432,13 @@
 				 (single-key-description char)
 			       (string-to-multibyte
 				(char-to-string char)))))
-         (text-props-desc
-          (let ((tmp-buf (generate-new-buffer " *text-props*")))
-            (unwind-protect
-                (progn
-                  (describe-text-properties pos tmp-buf)
-                  (with-current-buffer tmp-buf (buffer-string)))
-              (kill-buffer tmp-buf))))
+	 (text-props-desc
+	  (let ((tmp-buf (generate-new-buffer " *text-props*")))
+	    (unwind-protect
+		(progn
+		  (describe-text-properties pos tmp-buf)
+		  (with-current-buffer tmp-buf (buffer-string)))
+	      (kill-buffer tmp-buf))))
 	 item-list max-width unicode)
 
     (if (or (< char 256)
@@ -444,36 +448,36 @@
 			  (encode-char char 'ucs))))
     (setq item-list
 	  `(("character"
-	    ,(format "%s (%d, #o%o, #x%x%s)"
-		     (apply 'propertize char-description
-			    (text-properties-at pos))
-		     char char char
-		     (if unicode
-			 (format ", U+%04X" unicode)
-		       "")))
+	     ,(format "%s (%d, #o%o, #x%x%s)"
+		      (apply 'propertize char-description
+			     (text-properties-at pos))
+		      char char char
+		      (if unicode
+			  (format ", U+%04X" unicode)
+			"")))
 	    ("charset"
 	     ,`(insert-text-button
-		(symbol-name charset)
-		'action `(lambda (&rest ignore)
-			   (describe-character-set ',charset))
-		'help-echo
-		"mouse-2, RET: describe this character set")
+		,(symbol-name charset)
+		'type 'help-character-set 'help-args '(,charset))
 	     ,(format "(%s)" (charset-description charset)))
 	    ("code point"
 	     ,(let ((split (split-char char)))
-		`(insert-text-button ,(if (= (charset-dimension charset) 1)
-					  (format "%d" (nth 1 split))
-					(format "%d %d" (nth 1 split)
-						(nth 2 split)))
-		 'action (lambda (&rest ignore)
-			   (list-charset-chars ',charset)
-			   (with-selected-window
-			       (get-buffer-window "*Character List*" 0)
-			     (goto-char (point-min))
-                              (forward-line 2) ;Skip the header.
-                              (let ((case-fold-search nil))
-                                (search-forward ,(char-to-string char)
-                                                nil t)))))))
+		`(insert-text-button
+		  ,(if (= (charset-dimension charset) 1)
+		       (format "#x%02X" (nth 1 split))
+		     (format "#x%02X #x%02X" (nth 1 split)
+			     (nth 2 split)))
+		  'action (lambda (&rest ignore)
+			    (list-charset-chars ',charset)
+			    (with-selected-window
+				(get-buffer-window "*Character List*" 0)
+			      (goto-char (point-min))
+			      (forward-line 2) ;Skip the header.
+			      (let ((case-fold-search nil))
+				(search-forward ,(char-to-string char)
+						nil t))))
+		  'help-echo
+		  "mouse-2, RET: show this character in its character set")))
 	    ("syntax"
 	     ,(let ((syntax (syntax-after pos)))
 		(with-temp-buffer
@@ -503,10 +507,9 @@
 				      key-list " or ")
 			   "with"
 			   `(insert-text-button
-			     (symbol-name current-input-method)
-			     'action (lambda (&rest ignore)
-				       (describe-input-method
-					',current-input-method)))))))
+			     ,current-input-method
+			     'type 'help-input-method
+			     'help-args '(,current-input-method))))))
 	    ("buffer code"
 	     ,(encoded-string-description
 	       (string-as-unibyte (char-to-string char)) nil))
@@ -575,8 +578,9 @@
 			  ((and (< char 32) (not (memq char '(9 10))))
 			   'escape-glyph)))))
 		(if face (list (list "hardcoded face"
-				     '(insert
-				       (concat "`" (symbol-name face) "'"))))))
+				     `(insert-text-button
+				       ,(symbol-name face)
+				       'type 'help-face 'help-args '(,face))))))
 	    ,@(let ((unicodedata (and unicode
 				      (describe-char-unicode-data unicode))))
 		(if unicodedata
@@ -687,6 +691,7 @@
 		  "the meaning of the rule.\n"))
 
         (if text-props-desc (insert text-props-desc))
+	(setq help-xref-stack-item (list 'help-insert-string (buffer-string)))
 	(toggle-read-only 1)
 	(print-help-return-message)))))
 
--- a/lisp/files.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/files.el	Thu Dec 29 04:46:59 2005 +0000
@@ -2565,8 +2565,9 @@
 
 (defun set-visited-file-name (filename &optional no-query along-with-file)
   "Change name of file visited in current buffer to FILENAME.
+This also renames the buffer to correspond to the new file.
 The next time the buffer is saved it will go in the newly specified file.
-FILENAME nil or an empty string means make buffer not be visiting any file.
+FILENAME nil or an empty string means mark buffer as not visiting any file.
 Remember to delete the initial contents of the minibuffer
 if you wish to pass an empty string as the argument.
 
--- a/lisp/help-mode.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/help-mode.el	Thu Dec 29 04:46:59 2005 +0000
@@ -648,6 +648,15 @@
 		(fboundp sym) (facep sym))
 	(help-do-xref pos #'help-xref-interned (list sym))))))
 
+(defun help-insert-string (string)
+  "Insert STRING to the help buffer and install xref info for it.
+This function can be used to restore the old contents of the help buffer
+when going back to the previous topic in the xref stack.  It is needed
+in case when it is impossible to recompute the old contents of the
+help buffer by other means."
+  (setq help-xref-stack-item (list #'help-insert-string string))
+  (with-output-to-temp-buffer (help-buffer)
+    (insert string)))
 
 (provide 'help-mode)
 
--- a/lisp/mail/sendmail.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/mail/sendmail.el	Thu Dec 29 04:46:59 2005 +0000
@@ -123,6 +123,15 @@
   :type 'regexp
   :group 'sendmail)
 
+;; Prevent problems with `window-system' not having the correct value
+;; when loaddefs.el is loaded. `custom-reevaluate-setting' needs the
+;; standard value.
+;;;###autoload
+(put 'send-mail-function 'standard-value
+     '((if (and window-system (memq system-type '(darwin windows-nt)))
+	   'mailclient-send-it
+	 'sendmail-send-it)))
+
 ;; Useful to set in site-init.el
 ;;;###autoload
 (defcustom send-mail-function
--- a/lisp/mail/smtpmail.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/mail/smtpmail.el	Thu Dec 29 04:46:59 2005 +0000
@@ -560,16 +560,13 @@
 		(>= (car ret) 400))
 	    (throw 'done nil)))
        ((eq mech 'plain)
-	(smtpmail-send-command process "AUTH PLAIN")
-	(if (or (null (car (setq ret (smtpmail-read-response process))))
-		(not (integerp (car ret)))
-		(not (equal (car ret) 334)))
-	    (throw 'done nil))
-	(smtpmail-send-command process (base64-encode-string
+	(smtpmail-send-command process
+			       (concat "AUTH PLAIN "
+				       (base64-encode-string
 					(concat "\0"
 						(smtpmail-cred-user cred)
 						"\0"
-						passwd)))
+						passwd))))
 	(if (or (null (car (setq ret (smtpmail-read-response process))))
 		(not (integerp (car ret)))
 		(not (equal (car ret) 235)))
--- a/lisp/mh-e/ChangeLog	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/mh-e/ChangeLog	Thu Dec 29 04:46:59 2005 +0000
@@ -1,3 +1,17 @@
+2005-12-28  Bill Wohler  <wohler@newt.com>
+
+	* mh-comp.el (mh-e-user-agent): Move here from simple.el. Use
+	mh-user-agent-compose instead of mh-smail-batch.
+
+2005-12-27  Bill Wohler  <wohler@newt.com>
+
+	* mh-utils.el (mh-prompt-for-folder): Use can-create argument to
+	suppress creation of folder if it doesn't exist.
+
+2005-12-27  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* mh-utils.el (mh-process-daemon): Don't change buffer in proc-filter.
+
 2005-12-23  Bill Wohler  <wohler@newt.com>
 
 	* mh-e.el (mh-folders-changed): Fix typo in docstring.
@@ -6,12 +20,12 @@
 	hyperlinks such as symbols, Info nodes, or URLs. Use \" quotes for
 	everything else. Otherwise, you can accidently get links to
 	nonsense symbols.
-	
+
 2005-12-22  Bill Wohler  <wohler@newt.com>
 
 	Follow Emacs coding conventions. Use default setting of
 	emacs-lisp-docstring-fill-column which is 65.
-	
+
 	* mh-alias.el (mh-alias-reload): Sync docstrings with manual.
 
 	* mh-comp.el (mh-letter-mode): Use 60 column width.
@@ -50,8 +64,8 @@
 	(mh-index-data, mh-first-msg-num, mh-last-msg-num)
 	(mh-mode-line-annotation, mh-sequence-notation-history)
 	(mh-colors-available-flag): Move comment into docstring.
-	(mh-delete-msg, mh-execute-commands, mh-inc-folder, mh-quit,
-	mh-process-commands): Sync docstrings with manual.
+	(mh-delete-msg, mh-execute-commands, mh-inc-folder, mh-quit)
+	(mh-process-commands): Sync docstrings with manual.
 	(mh-refile-msg): Small doc edit.
 	(mh-delete-a-msg, mh-refile-a-msg): Sync docstrings with manual.
 	Rename msg argument to message.
@@ -62,7 +76,7 @@
 	`foo-hook' is a list of functions to be called, with no arguments,
 	...," but rather just "The hook foo-hook is called...".
 
-	* mh-mime.el (mh-mh-to-mime): Ditto
+	* mh-mime.el (mh-mh-to-mime): Ditto.
 
 	* mh-pick.el (mh-pick-mode): Ditto.
 
@@ -73,13 +87,15 @@
 	(mh-show-mode, mh-show-msg, mh-find-path): Sync docstrings with
 	manual.
 
-2005-12-19  Stephen Gildea
+2005-12-19  Stephen Gildea  <gildea@stop.mail-abuse.org>
 
-	* mh-customize.el (mh-after-commands-processed-hook): New variable.
-	(mh-before-commands-processed-hook): mh-folder-updated-hook, renamed.
+	* mh-customize.el (mh-after-commands-processed-hook): New
+	variable.
+	(mh-before-commands-processed-hook): Rename
+	mh-folder-updated-hook.
 
-	* mh-e.el (mh-process-commands): Rename mh-folder-updated-hook 
-	to mh-before-commands-processed-hook, call new
+	* mh-e.el (mh-process-commands): Rename mh-folder-updated-hook to
+	mh-before-commands-processed-hook, call new
 	mh-after-commands-processed-hook.
 	(mh-folders-changed): New variable (for use in
 	mh-after-commands-processed-hook).
@@ -125,8 +141,8 @@
 	to nil. Sync docstrings with manual.
 	(mh-tool-bar-define): Replace toolbar with tool-bar or tool bar
 	depending on context.
-	(mh-toolbar-init): Rename to mh-tool-bar-init. Simplified
-	condition for calling set-specifier. Only look at the value of
+	(mh-toolbar-init): Rename to mh-tool-bar-init. Simplify condition
+	for calling set-specifier. Only look at the value of
 	mh-xemacs-use-tool-bar-flag.
 	(mh-tool-bar-folder-buttons, mh-tool-bar-letter-buttons): Sync
 	docstrings with manual.
@@ -172,7 +188,7 @@
 	* mh-customize.el (mh-sortm-args): Sync docstrings with manual.
 	(mh-invisible-header-fields-internal): Add X-Bugzilla-* and
 	X-Virus-Scanned.
- 	
+
 	* mh-customize.el (mh-insert-signature-hook): Rename
 	mh-letter-insert-signature-hook to mh-insert-signature-hook.
 
@@ -189,7 +205,7 @@
 	mh-index-new-messages-folders.
 	(mh-ticked-messages-folders): Rename from
 	mh-index-ticked-messages-folders.
-	
+
 	* mh-index.el (mh-index-sequenced-messages)
 	(mh-index-new-messages): Ditto.
 
@@ -218,12 +234,11 @@
 	* mh-seq.el (mh-put-msg-in-seq, mh-range-to-msg-list)
 	(mh-narrow-to-range, mh-toggle-tick): Ditto.
 
-
 2005-12-01  Bill Wohler  <wohler@newt.com>
 
 	Rewrote Reading Mail chapter in manual which affected mh-show
 	customization group and related functions.
-	
+
 	* mh-comp.el (mh-letter-mode): Use mh-highlight-citation-style
 	instead of mh-highlight-citation-p.
 	(mh-letter-toggle-header-field-display): "Ellipsed" isn't a word,
@@ -269,7 +284,7 @@
 	(mh-show-use-xface-flag, mh-store-default-directory)
 	(mh-summary-height, mh-delete-msg-hook
 	(mh-show-hook, mh-show-mode-hook): Sync docstrings with manual.
-	
+
 	* mh-e.el
 	(mh-scan-format-mh, mh-scan-good-msg-regexp)
 	(mh-scan-deleted-msg-regexp, mh-scan-refiled-msg-regexp)
@@ -288,7 +303,7 @@
 	to no-header. Sync docstrings with manual.
 	(mh-ps-print-map): Delete keybindings for deleted commands
 	mh-ps-print-toggle-mime and mh-ps-print-msg-show.
-	(mh-help-messages): Updated printing help.
+	(mh-help-messages): Update printing help.
 	(mh-delete-msg, mh-delete-msg-no-motion, mh-first-msg)
 	(mh-last-msg, mh-previous-unread-msg, mh-next-button)
 	(mh-prev-button, mh-folder-toggle-mime-part)
@@ -296,8 +311,8 @@
 	(mh-next-unread-msg, mh-toggle-mime-buttons): Sync docstrings with
 	manual.
 
-	* mh-funcs.el (mh-sortm-args): Now a customization option and
-	in mh-customize.el.
+	* mh-funcs.el (mh-sortm-args): Now a customization option and in
+	mh-customize.el.
 	(mh-pipe-msg): Rename include-headers to include-header. Sync
 	docstrings with manual.
 	(mh-burst-digest, mh-page-digest, mh-page-digest-backwards)
@@ -314,13 +329,13 @@
 	minibuffer. Sync docstrings with manual.
 
 	* mh-print.el: (mh-ps-print-mime, mh-ps-print-toggle-mime):
-	Deleted.
+	Delete.
 	(mh-ps-print-color-option): Incorporate docstring from
 	ps-print-color-p.
 	(mh-ps-spool-buffer): Remove unused code. Fix indent. Slimline
 	docstring.
 	(mh-ps-spool-msg): Slimline docstring. Rename from
-	mh-ps-spool-a-msg. Rewrote to use existing show buffer when
+	mh-ps-spool-a-msg. Rewrite to use existing show buffer when
 	available.
 	(mh-ps-print-range): Extract method from common code in
 	mh-ps-print-msg and mh-ps-print-msg-file.
@@ -334,9 +349,9 @@
 	(mh-ps-print-toggle-faces, mh-ps-print-toggle-color): Sync
 	docstrings with manual.
 	
-	* mh-utils.el (mh-show-ps-print-msg-show,
+	* mh-utils.el (mh-show-ps-print-msg-show)
 	mh-show-ps-print-toggle-mime): Delete.
-	(mh-show-ps-print-map): Updated accordingly.
+	(mh-show-ps-print-map): Update accordingly.
 	(mh-show-mode): Use mh-highlight-citation-style instead of
 	mh-highlight-citation-p.
 	(mh-show-xface, mh-display-msg): Use mh-mhl-format-file instead of
@@ -361,16 +376,16 @@
 
 	* mh-init.el: Modify commentary since file is used for load and
 	initialization as well as setting and getting the variant.
-	(mh-min-colors-defined-flag, mh-defface-compat): Move
-	here from mh-customize.el. 
+	(mh-min-colors-defined-flag, mh-defface-compat): Move here from
+	mh-customize.el.
 
 	* mh-customize.el: Refactor faces. Move grayscale requirements
 	last before t. Use uniform line breaks.
 	(mh-min-colors-defined-flag): New variable.
 	(mh-defface-compat): New function. Provides backward compatibility
 	for face specs.
-	(mh-show-header, mh-show-date, mh-show-cc, mh-folder-to) 
-	(mh-folder-refiled, mh-folder-cur-msg-number, mh-folder-cur-msg) 
+	(mh-show-header, mh-show-date, mh-show-cc, mh-folder-to)
+	(mh-folder-refiled, mh-folder-cur-msg-number, mh-folder-cur-msg)
 	(mh-folder-body): Use mh-defface-compat.
 
 2005-11-03  Dan Nicolaescu  <dann@ics.uci.edu>
@@ -388,7 +403,7 @@
 
 	* mh-e.el (mh-update-sequences): Sync docstrings with manual.
 
-	* mh-seq.el (mh-delete-seq, mh-list-sequences, mh-narrow-to-seq) 
+	* mh-seq.el (mh-delete-seq, mh-list-sequences, mh-narrow-to-seq)
 	(mh-widen, mh-toggle-tick, mh-narrow-to-tick): Sync docstrings
 	with manual.
 
@@ -410,15 +425,15 @@
 	(mh-reply-show-message-flag, mh-letter-mode-hook): Sync docstrings
 	with manual.
 
-	* mh-print.el (mh-ps-spool-buffer, mh-ps-spool-a-msg) 
+	* mh-print.el (mh-ps-spool-buffer, mh-ps-spool-a-msg)
 	(mh-ps-print-msg): Remove debugging messages.
-	(mh-ps-print-msg-show, mh-ps-print-msg-show) 
+	(mh-ps-print-msg-show, mh-ps-print-msg-show)
 	(mh-ps-print-toggle-color, mh-ps-print-toggle-mime): Remove period
 	after message per conventions.
 
 2005-10-30  Bill Wohler  <wohler@newt.com>
 
-	* mh-e.el (mh-scan-good-msg-regexp, mh-scan-deleted-msg-regexp) 
+	* mh-e.el (mh-scan-good-msg-regexp, mh-scan-deleted-msg-regexp)
 	(mh-scan-refiled-msg-regexp, mh-scan-cur-msg-number-regexp): Sync
 	docstrings with manual.
 
@@ -459,7 +474,7 @@
 	column, not a width.
 	(mh-add-sequence-notation, mh-remove-sequence-notation): Use new
 	variable mh-scan-field-destination-offset rather than hard-coding
-	1. 
+	1.
 
 	* mh-utils.el (mh-cmd-note) Synced docstring with manual.
 	(mh-notate): Use new variable mh-scan-field-destination-offset
@@ -470,8 +485,8 @@
 	* mh-customize.el (mh-x-face-file, mh-show-use-xface-flag)
 	(mail-citation-hook): Quote URLs in docstrings and precede with
 	`URL'. The former will suppress checkdoc warnings, the latter will
-	turn them into hyperlinks in Emacs 22 (I just added the code
-	to do that today).
+	turn them into hyperlinks in Emacs 22 (I just added the code to do
+	that today).
 	(mh-scan-format-file): Checkdoc fix.
 
 2005-10-27  Bill Wohler  <wohler@newt.com>
@@ -503,10 +518,10 @@
 	Checkdoc fixes.
 
 	* mh-customize.el (mh-compose-insertion, mh-x-face-file): Ditto.
-	
-	* mh-mime.el (mh-mh-to-mime, mh-mml-attach-file) 
-	(mh-mml-secure-message-sign, mh-mml-secure-message-encrypt) 
-	(mh-mml-secure-message-signencrypt): Ditto
+
+	* mh-mime.el (mh-mh-to-mime, mh-mml-attach-file)
+	(mh-mml-secure-message-sign, mh-mml-secure-message-encrypt)
+	(mh-mml-secure-message-signencrypt): Ditto.
 
 2005-10-24  Bill Wohler  <wohler@newt.com>
 
@@ -610,7 +625,7 @@
 	(mh-yank-from-start-of-msg): Rename to mh-yank-behavior.
 	(mh-compose-insertion): Rename values from 'gnus and 'mhn to 'mh
 	and user-visible values from mhn and Gnus to MH and MML.
-	(mh-before-send-letter-hook): Added 'ispell-message option.
+	(mh-before-send-letter-hook): Add 'ispell-message option.
 	(mh-mml-method-default): Rename mh-gnus-pgp-support-flag to
 	mh-pgp-support-flag.
 	(mh-compose-insertion, mh-compose-space-does-completion-flag)
@@ -652,14 +667,13 @@
 	(mh-mh-compose-external-type, mh-mh-forward-message)
 	(mh-mml-attach-file): Use mml-minibuffer-read-description,
 	mh-minibuffer-read-type.
-	(mh-mime-content-types): Moved comment about only being used in
+	(mh-mime-content-types): Move comment about only being used in
 	Emacs 20 to docstring.
 	(mh-mh-compose-external-type): Rename extra-param argument to
 	parameters.
-	(mh-mml-to-mime, mh-secure-message)
-	(mh-mml-unsecure-message, mh-mime-display-part)
-	(mh-mime-display-single): Rename mh-gnus-pgp-support-flag to
-	mh-pgp-support-flag.
+	(mh-mml-to-mime, mh-secure-message, mh-mml-unsecure-message)
+	(mh-mime-display-part, mh-mime-display-single): Rename
+	mh-gnus-pgp-support-flag to mh-pgp-support-flag.
 	(mh-compose-insertion): Rename mh-mhn-compose-insertion to
 	mh-mh-attach-file.
 	(mh-compose-forward): Rename mh-mhn-compose-forw to
@@ -671,7 +685,7 @@
 	(mh-mh-compose-anon-ftp, mh-mh-compose-external-compressed-tar)
 	(mh-mh-compose-external-compressed-tar)
 	(mh-mh-compose-external-type, mh-mh-forward-message)
-	(mh-mh-to-mime, mh-mh-quote-unescaped-sharp,
+	(mh-mh-to-mime, mh-mh-quote-unescaped-sharp)
 	(mh-mh-to-mime-undo, mh-mh-directive-present-p, mh-mml-to-mime)
 	(mh-mml-attach-file, mh-secure-message, mh-mml-unsecure-message)
 	(mh-mml-secure-message-sign, mh-mml-secure-message-encrypt)
@@ -690,10 +704,10 @@
 
 2005-10-17  Bill Wohler  <wohler@newt.com>
 
-	* mh-customize.el (mh-folder-tool-bar-map): Renamed image file
+	* mh-customize.el (mh-folder-tool-bar-map): Rename image file
 	left_arrow to left-arrow, right_arrow to right-arrow, mail_compose
 	to mail/compose, fld_open to fld-open.
-	(mh-letter-tool-bar-map): Renamed image file mail_send to
+	(mh-letter-tool-bar-map): Rename image file mail_send to
 	mail/send.
 
 2005-10-16  Bill Wohler  <wohler@newt.com>
@@ -718,14 +732,14 @@
 
 2005-10-16  Masatake YAMATO  <jet@gyve.org>
 
-	* mh-comp.el (mh-complete-word): Pass the common
-	prefix substring of completion to `display-completion-list'.
+	* mh-comp.el (mh-complete-word): Pass the common prefix substring
+	of completion to `display-completion-list'.
 
 2005-10-15  Satyaki Das  <satyaki@theforce.stanford.edu>
 
 	* mh-init.el (mh-image-load-path-called-flag): New variable which
 	is used by mh-image-load-path so that it runs only once.
-	(mh-image-load-path): Modified so that it gets run only once. Also
+	(mh-image-load-path): Modify so that it gets run only once. Also
 	flatten out heavily nested if statements to make it clearer.
 
 	* mh-e.el (mh-folder-mode): Call mh-image-load-path to allow Emacs
@@ -735,29 +749,29 @@
 
 2005-10-14  Bill Wohler  <wohler@newt.com>
 
-	* mh-e.el (Version, mh-version): Added +cvs to version.
+	* mh-e.el (Version, mh-version): Add +cvs to version.
 
 2005-10-14  Bill Wohler	 <wohler@newt.com>
 
 	Released MH-E version 7.85.
-	  
-	* mh-e.el (Version, mh-version): Updated for release 7.85.
-	
+
+	* mh-e.el (Version, mh-version): Update for release 7.85.
+
 2005-10-14  Bill Wohler  <wohler@newt.com>
 
-	* mh-e.el, mh-funcs.el, mh-init.el, mh-mime.el, mh-pick.el:
-	* mh-seq.el, mh-utils.el: Ran mh-unit. Continued copyright lines
-	need to be indented. 
-	
+	* mh-e.el, mh-funcs.el, mh-init.el, mh-mime.el, mh-pick.el: *
+	mh-seq.el, mh-utils.el: Ran mh-unit. Continued copyright lines
+	need to be indented.
+
 	* mh-e.el: mh-folder-tick-face had been renamed to mh-folder-tick
 	but the code that invoked the face had not been updated. Tick
 	highlighting working again.
 
-	* mh-seq.el (mh-non-seq-mode-line-annotation): Moved
+	* mh-seq.el (mh-non-seq-mode-line-annotation): Move
 	make-variable-buffer-local call to top level to avoid warnings in
 	CVS Emacs.
 
-	* mh-comp.el (mh-insert-letter): Replaced deprecated read-input
+	* mh-comp.el (mh-insert-letter): Replace deprecated read-input
 	with read-string.
 
 2005-10-09  Bill Wohler  <wohler@newt.com>
@@ -771,8 +785,8 @@
 
 2005-10-04  Bill Wohler  <wohler@newt.com>
 
-	* ChangeLog: Moved contents into ChangeLog.1 and trimmed.
-	
+	* ChangeLog: Move contents into ChangeLog.1 and trim.
+
 	* ChangeLog.1: New file. Contains old ChangeLog.
 
 
@@ -782,4 +796,8 @@
   are permitted in any medium without royalty provided the copyright
   notice and this notice are preserved.
 
+;; Local Variables:
+;; sentence-end-double-space: nil
+;; End:
+
 ;;; arch-tag: 87324964-69b6-4925-a3c2-9c1df53d7d51
--- a/lisp/mh-e/mh-comp.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/mh-e/mh-comp.el	Thu Dec 29 04:46:59 2005 +0000
@@ -228,18 +228,28 @@
 buffer. Users should use \\[mh-smail] to compose mail.
 
 Optional arguments for setting certain fields include TO,
-SUBJECT, and OTHER-HEADERS. Additional arguments are IGNORED."
+SUBJECT, and OTHER-HEADERS. Additional arguments are IGNORED.
+
+This function remains for Emacs 21 compatibility. New
+applications should use `mh-user-agent-compose'."
   (mh-find-path)
   (let ((mh-error-if-no-draft t))
     (mh-send (or to "") "" (or subject ""))))
 
-;; XEmacs needs this:
+;;;###autoload
+(define-mail-user-agent 'mh-e-user-agent
+  'mh-user-agent-compose 'mh-send-letter 'mh-fully-kill-draft
+  'mh-before-send-letter-hook)
+
 ;;;###autoload
 (defun mh-user-agent-compose (&optional to subject other-headers continue
                                         switch-function yank-action
                                         send-actions)
   "Set up mail composition draft with the MH mail system.
-This is `mail-user-agent' entry point to MH-E.
+This is the `mail-user-agent' entry point to MH-E. This function
+conforms to the contract specified by `define-mail-user-agent'
+which means that this function should accept the same arguments
+as `compose-mail'.
 
 The optional arguments TO and SUBJECT specify recipients and the
 initial Subject field, respectively.
--- a/lisp/mh-e/mh-utils.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/mh-e/mh-utils.el	Thu Dec 29 04:46:59 2005 +0000
@@ -2312,7 +2312,7 @@
 This variable should never be set.")
 
 (defvar mh-folder-completion-map (copy-keymap minibuffer-local-completion-map))
-(define-key mh-folder-completion-map " " 'minibuffer-complete)
+(define-key mh-folder-completion-map " " 'minibuffer-complete)  ;Why???
 
 (defvar mh-speed-flists-inhibit-flag nil)
 
@@ -2416,6 +2416,7 @@
     (let ((new-file-flag
            (not (file-exists-p (mh-expand-file-name folder-name)))))
       (cond ((and new-file-flag
+                  can-create
                   (y-or-n-p
                    (format "Folder %s does not exist.  Create it? "
                            folder-name)))
@@ -2426,7 +2427,7 @@
                (mh-speed-add-folder folder-name))
              (message "Creating %s...done" folder-name))
             (new-file-flag
-             (error "Folder %s is not created" folder-name))
+             (error "Folder %s does not exist" folder-name))
             ((not (file-directory-p (mh-expand-file-name folder-name)))
              (error "\"%s\" is not a directory"
                     (mh-expand-file-name folder-name)))))
@@ -2532,9 +2533,9 @@
   "PROCESS daemon that puts OUTPUT into a temporary buffer.
 Any output from the process is displayed in an asynchronous
 pop-up window."
-  (set-buffer (get-buffer-create mh-log-buffer))
-  (insert-before-markers output)
-  (display-buffer mh-log-buffer))
+  (with-current-buffer (get-buffer-create mh-log-buffer)
+    (insert-before-markers output)
+    (display-buffer mh-log-buffer)))
 
 (defun mh-exec-cmd-quiet (raise-error command &rest args)
   "Signal RAISE-ERROR if COMMAND with ARGS fails.
--- a/lisp/mouse.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/mouse.el	Thu Dec 29 04:46:59 2005 +0000
@@ -1002,25 +1002,30 @@
                          (or end-point
                              (= (window-start start-window)
                                 start-window-start)))
-                (if (and on-link
-                         (or (not end-point) (= end-point start-point))
-                         (consp event)
-                         (or remap-double-click
-                             (and
-                              (not (eq mouse-1-click-follows-link 'double))
-                              (= click-count 0)
-                              (= (event-click-count event) 1)
-                              (not (input-pending-p))
-                              (or (not (integerp mouse-1-click-follows-link))
-                                  (let ((t0 (posn-timestamp (event-start start-event)))
-                                        (t1 (posn-timestamp (event-end event))))
-                                    (and (integerp t0) (integerp t1)
-                                         (if (> mouse-1-click-follows-link 0)
-                                             (<= (- t1 t0) mouse-1-click-follows-link)
-                                           (< (- t0 t1) mouse-1-click-follows-link))))))))
-		    (if (or (vectorp on-link) (stringp on-link))
-			(setq event (aref on-link 0))
-		      (setcar event 'mouse-2)))
+                (when (and on-link
+			   (or (not end-point) (= end-point start-point))
+			   (consp event)
+			   (or remap-double-click
+			       (and
+				(not (eq mouse-1-click-follows-link 'double))
+				(= click-count 0)
+				(= (event-click-count event) 1)
+				(not (input-pending-p))
+				(or (not (integerp mouse-1-click-follows-link))
+				    (let ((t0 (posn-timestamp (event-start start-event)))
+					  (t1 (posn-timestamp (event-end event))))
+				      (and (integerp t0) (integerp t1)
+					   (if (> mouse-1-click-follows-link 0)
+					       (<= (- t1 t0) mouse-1-click-follows-link)
+					     (< (- t0 t1) mouse-1-click-follows-link))))))))
+		  ;; Reselect previous selected window,
+		  ;; so that the mouse-2 event runs in the same
+		  ;; situation as if user had clicked it directly.
+		  ;; Fixes the bug reported by juri@jurta.org on 2005-12-27.
+		  (select-window original-window)
+		  (if (or (vectorp on-link) (stringp on-link))
+		      (setq event (aref on-link 0))
+		    (setcar event 'mouse-2)))
 		(push event unread-command-events))))
 
         ;; Case where the end-event is not a cons cell (it's just a boring
--- a/lisp/paren.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/paren.el	Thu Dec 29 04:46:59 2005 +0000
@@ -72,6 +72,12 @@
   :group 'paren-showing
   :version "20.3")
 
+(defgroup paren-showing-faces ()
+  "Group for faces of Show Paren mode"
+  :group 'paren-showing
+  :group 'faces
+  :version "22.1")
+
 (defface show-paren-match
   '((((class color) (background light))
      :background "turquoise")		; looks OK on tty (becomes cyan)
@@ -82,8 +88,7 @@
     (t
      :background "gray"))
   "Show Paren mode face used for a matching paren."
-  :group 'faces
-  :group 'paren-showing)
+  :group 'show-paren-faces)
 ;; backward-compatibility alias
 (put 'show-paren-match-face 'face-alias 'show-paren-match)
 
@@ -91,8 +96,7 @@
   '((((class color)) (:foreground "white" :background "purple"))
     (t (:inverse-video t)))
   "Show Paren mode face used for a mismatching paren."
-  :group 'faces
-  :group 'paren-showing)
+  :group 'show-paren-faces)
 ;; backward-compatibility alias
 (put 'show-paren-mismatch-face 'face-alias 'show-paren-mismatch)
 
--- a/lisp/progmodes/cc-defs.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/progmodes/cc-defs.el	Thu Dec 29 04:46:59 2005 +0000
@@ -1464,7 +1464,8 @@
       (kill-buffer buf))
 
     ;; See if `parse-partial-sexp' returns the eighth element.
-    (if (c-safe (>= (length (save-excursion (parse-partial-sexp 1 1))) 10))
+    (if (c-safe (>= (length (save-excursion (parse-partial-sexp (point) (point))))
+		    10))
 	(setq list (cons 'pps-extended-state list))
       (error (concat
 	      "CC Mode is incompatible with this version of Emacs - "
--- a/lisp/progmodes/gdb-ui.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/progmodes/gdb-ui.el	Thu Dec 29 04:46:59 2005 +0000
@@ -331,10 +331,14 @@
       (setq name (nth 1 (split-string define "[( ]")))
       (push (cons name define) gdb-define-alist))))
 
-(defun gdb-tooltip-print ()
+(defun gdb-tooltip-print (expr)
   (tooltip-show
    (with-current-buffer (gdb-get-buffer 'gdb-partial-output-buffer)
-     (let ((string (buffer-string)))
+     (goto-char (point-min))
+     (let ((string
+	    (if (search-forward "=" nil t)
+		(concat expr (buffer-substring (- (point) 2) (point-max)))
+	      (buffer-string))))
        ;; remove newline for gud-tooltip-echo-area
        (substring string 0 (- (length string) 1))))
    (or gud-tooltip-echo-area tooltip-use-echo-area)))
@@ -349,7 +353,7 @@
 	(unless (looking-at "\\S-+.*(.*).*")
 	  (gdb-enqueue-input
 	   (list  (concat gdb-server-prefix "print " expr "\n")
-		  'gdb-tooltip-print))))))
+		  `(lambda () (gdb-tooltip-print ,expr))))))))
 
 (defconst gdb-source-file-regexp "\\(.+?\\), \\|\\([^, \n].*$\\)")
 
@@ -541,7 +545,8 @@
   :version "22.1")
 
 (defun gdb-speedbar-auto-raise (arg)
-  "Toggle automatic raising of the speedbar for watch expressions."
+  "Toggle automatic raising of the speedbar for watch expressions.
+With arg, automatically raise speedbar iff arg is positive."
   (interactive "P")
   (setq gdb-speedbar-auto-raise
 	(if (null arg)
@@ -1194,7 +1199,7 @@
 
     (if (string-equal gdb-version "pre-6.4")
 	(gdb-invalidate-registers)
-      (gdb-get-changed-registers)
+      (if (gdb-get-buffer 'gdb-registers-buffer) (gdb-get-changed-registers))
       (gdb-invalidate-registers-1))
 
     (gdb-invalidate-memory)
--- a/lisp/progmodes/glasses.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/progmodes/glasses.el	Thu Dec 29 04:46:59 2005 +0000
@@ -82,7 +82,7 @@
 `glasses-face' to `bold'.  Then unreadable identifiers will have no separators,
 but will have their capitals in bold."
   :group 'glasses
-  :type 'symbol
+  :type '(choice face (const nil))
   :set 'glasses-custom-set
   :initialize 'custom-initialize-default)
 
--- a/lisp/progmodes/gud.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/progmodes/gud.el	Thu Dec 29 04:46:59 2005 +0000
@@ -3343,16 +3343,19 @@
   "The mouse movement event that led to a tooltip display.
 This event can be examined by forms in GUD-TOOLTIP-DISPLAY.")
 
-(defun toggle-gud-tooltip-dereference ()
-  "Toggle whether tooltips should show `* expr' or `expr'."
-  (interactive)
-  (setq gud-tooltip-dereference (not gud-tooltip-dereference))
-  (when (interactive-p)
-    (message "Dereferencing is now %s."
-	     (if gud-tooltip-dereference "on" "off"))))
+(defun gud-tooltip-dereference ()
+  "Toggle whether tooltips should show `* expr' or `expr'.
+With arg, dereference expr iff arg is positive."
+ (interactive "P")
+  (setq gud-tooltip-dereference
+	(if (null arg)
+	    (not gud-tooltip-dereference)
+	  (> (prefix-numeric-value arg) 0)))
+  (message "Dereferencing is now %s."
+	   (if gud-tooltip-dereference "on" "off")))
 
 (define-obsolete-function-alias 'tooltip-gud-toggle-dereference
-                                'toggle-gud-tooltip-dereference "22.1")
+                                'gud-tooltip-dereference "22.1")
 
 ; This will only display data that comes in one chunk.
 ; Larger arrays (say 400 elements) are displayed in
@@ -3367,10 +3370,7 @@
 		(or gud-tooltip-echo-area tooltip-use-echo-area)))
 
 (defun gud-tooltip-print-command (expr)
-  "Return a suitable command to print the expression EXPR.
-If GUD-TOOLTIP-DEREFERENCE is t, also prepend a `*' to EXPR."
-  (when gud-tooltip-dereference
-    (setq expr (concat "*" expr)))
+  "Return a suitable command to print the expression EXPR."
   (case gud-minor-mode
 	(gdba (concat "server print " expr))
 	((dbx gdbmi) (concat "print " expr))
@@ -3412,6 +3412,8 @@
 		       (cdr define-elt)
 		       (or gud-tooltip-echo-area tooltip-use-echo-area))
 		      expr))))
+	    (when gud-tooltip-dereference
+	      (setq expr (concat "*" expr)))
 	    (let ((cmd (gud-tooltip-print-command expr)))
 	      (when (and gud-tooltip-mode (eq gud-minor-mode 'gdb))
 		(gud-tooltip-mode -1)
--- a/lisp/progmodes/make-mode.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/progmodes/make-mode.el	Thu Dec 29 04:46:59 2005 +0000
@@ -105,7 +105,6 @@
   '((((class color)) (:background  "hotpink"))
     (t (:reverse-video t)))
   "Face to use for highlighting leading spaces in Font-Lock mode."
-  :group 'faces
   :group 'makefile)
 (put 'makefile-space-face 'face-alias 'makefile-space)
 
@@ -113,7 +112,6 @@
   ;; This needs to go along both with foreground and background colors (i.e. shell)
   '((t (:inherit font-lock-function-name-face)))
   "Face to use for additionally highlighting rule targets in Font-Lock mode."
-  :group 'faces
   :group 'makefile
   :version "22.1")
 
@@ -122,7 +120,6 @@
   ;;'((((class color) (min-colors 88) (background light)) (:background  "seashell1"))
   ;;  (((class color) (min-colors 88) (background dark)) (:background  "seashell4")))
   "Face to use for additionally highlighting Shell commands in Font-Lock mode."
-  :group 'faces
   :group 'makefile
   :version "22.1")
 
@@ -131,7 +128,6 @@
     (((class color) (background dark)) (:background  "DarkBlue"))
     (t (:reverse-video t)))
   "Face to use for additionally highlighting Perl code in Font-Lock mode."
-  :group 'faces
   :group 'makefile
   :version "22.1")
 
--- a/lisp/replace.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/replace.el	Thu Dec 29 04:46:59 2005 +0000
@@ -1474,32 +1474,33 @@
 				 ;; For speed, use only integers and
 				 ;; reuse the list used last time.
 				 (replace-match-data t real-match-data)))))
+	  
+	  ;; Record whether the match is nonempty, to avoid an infinite loop
+	  ;; repeatedly matching the same empty string.
+	  (setq nonempty-match
+		(/= (nth 0 real-match-data) (nth 1 real-match-data)))
+
+	  ;; If the match is empty, record that the next one can't be
+	  ;; adjacent.
+
+	  ;; Otherwise, if matching a regular expression, do the next
+	  ;; match now, since the replacement for this match may
+	  ;; affect whether the next match is adjacent to this one.
+	  ;; If that match is empty, don't use it.
+	  (setq match-again
+		(and nonempty-match
+		     (or (not regexp-flag)
+			 (and (looking-at search-string)
+			      (let ((match (match-data)))
+				(and (/= (nth 0 match) (nth 1 match))
+				     match))))))
+
 	  ;; Optionally ignore matches that have a read-only property.
 	  (unless (and query-replace-skip-read-only
 		       (text-property-not-all
-			(match-beginning 0) (match-end 0)
+			(nth 0 real-match-data) (nth 1 real-match-data)
 			'read-only nil))
 
-	    ;; Record whether the match is nonempty, to avoid an infinite loop
-	    ;; repeatedly matching the same empty string.
-	    (setq nonempty-match
-		  (/= (nth 0 real-match-data) (nth 1 real-match-data)))
-
-	    ;; If the match is empty, record that the next one can't be
-	    ;; adjacent.
-
-	    ;; Otherwise, if matching a regular expression, do the next
-	    ;; match now, since the replacement for this match may
-	    ;; affect whether the next match is adjacent to this one.
-	    ;; If that match is empty, don't use it.
-	    (setq match-again
-		  (and nonempty-match
-		       (or (not regexp-flag)
-			   (and (looking-at search-string)
-				(let ((match (match-data)))
-				  (and (/= (nth 0 match) (nth 1 match))
-				       match))))))
-
 	    ;; Calculate the replacement string, if necessary.
 	    (when replacements
 	      (set-match-data real-match-data)
--- a/lisp/simple.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/simple.el	Thu Dec 29 04:46:59 2005 +0000
@@ -4561,10 +4561,6 @@
 	(insert body))
       t)))
 
-(define-mail-user-agent 'mh-e-user-agent
-  'mh-smail-batch 'mh-send-letter 'mh-fully-kill-draft
-  'mh-before-send-letter-hook)
-
 (defun compose-mail (&optional to subject other-headers continue
 			       switch-function yank-action send-actions)
   "Start composing a mail message to send.
--- a/lisp/startup.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/startup.el	Thu Dec 29 04:46:59 2005 +0000
@@ -781,6 +781,7 @@
   (custom-reevaluate-setting 'mouse-wheel-down-event)
   (custom-reevaluate-setting 'mouse-wheel-up-event)
   (custom-reevaluate-setting 'file-name-shadow-mode)
+  (custom-reevaluate-setting 'send-mail-function)
 
   (normal-erase-is-backspace-setup-frame)
 
--- a/lisp/subr.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/subr.el	Thu Dec 29 04:46:59 2005 +0000
@@ -2268,20 +2268,33 @@
           ((not ,mode) (try-completion ,string (,fun ,string) ,predicate))
           (t (test-completion ,string (,fun ,string) ,predicate)))))))
 
-(defmacro lazy-completion-table (var fun &rest args)
+(defmacro lazy-completion-table (var fun)
+  ;; We used to have `&rest args' where `args' were evaluated late (at the
+  ;; time of the call to `fun'), which was counter intuitive.  But to get
+  ;; them to be evaluated early, we have to either use lexical-let (which is
+  ;; not available in subr.el) or use `(lambda (,str) ...) which prevents the use
+  ;; of lexical-let in the callers.
+  ;; So we just removed the argument.  Callers can then simply use either of:
+  ;;   (lazy-completion-table var (lambda () (fun x y)))
+  ;; or
+  ;;   (lazy-completion-table var `(lambda () (fun ',x ',y)))
+  ;; or
+  ;;   (lexical-let ((x x)) ((y y))
+  ;;     (lazy-completion-table var (lambda () (fun x y))))
+  ;; depending on the behavior they want.
   "Initialize variable VAR as a lazy completion table.
 If the completion table VAR is used for the first time (e.g., by passing VAR
-as an argument to `try-completion'), the function FUN is called with arguments
-ARGS.  FUN must return the completion table that will be stored in VAR.
+as an argument to `try-completion'), the function FUN is called with no
+arguments.  FUN must return the completion table that will be stored in VAR.
 If completion is requested in the minibuffer, FUN will be called in the buffer
 from which the minibuffer was entered.  The return value of
 `lazy-completion-table' must be used to initialize the value of VAR."
-  (declare (debug (symbol lambda-expr def-body)))
+  (declare (debug (symbol lambda-expr)))
   (let ((str (make-symbol "string")))
     `(dynamic-completion-table
       (lambda (,str)
         (when (functionp ,var)
-          (setq ,var (,fun ,@args)))
+          (setq ,var (,fun)))
         ,var))))
 
 (defmacro complete-in-turn (a b)
--- a/lisp/textmodes/bibtex.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/textmodes/bibtex.el	Thu Dec 29 04:46:59 2005 +0000
@@ -1044,13 +1044,15 @@
 
 (defvar bibtex-strings
   (lazy-completion-table bibtex-strings
-                         bibtex-parse-strings (bibtex-string-files-init))
+                         (lambda ()
+                           (bibtex-parse-strings (bibtex-string-files-init))))
   "Completion table for BibTeX string keys.
 Initialized from `bibtex-predefined-strings' and `bibtex-string-files'.")
 (make-variable-buffer-local 'bibtex-strings)
 
 (defvar bibtex-reference-keys
-  (lazy-completion-table bibtex-reference-keys bibtex-parse-keys nil t)
+  (lazy-completion-table bibtex-reference-keys
+                         (lambda () (bibtex-parse-keys nil t)))
   "Completion table for BibTeX reference keys.
 The CDRs of the elements are t for header keys and nil for crossref keys.")
 (make-variable-buffer-local 'bibtex-reference-keys)
--- a/lisp/textmodes/flyspell.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/textmodes/flyspell.el	Thu Dec 29 04:46:59 2005 +0000
@@ -1308,10 +1308,12 @@
 \(We finish by killing that buffer and setting the variable to nil.)
 The buffer to mark them in is `flyspell-large-region-buffer'."
   (let (words-not-found
-	(ispell-otherchars (ispell-get-otherchars)))
+	(ispell-otherchars (ispell-get-otherchars))
+	(buffer-scan-pos flyspell-large-region-beg))
     (with-current-buffer flyspell-external-ispell-buffer
       (goto-char (point-min))
-      ;; Loop over incorrect words.
+      ;; Loop over incorrect words, in the order they were reported,
+      ;; which is also the order they appear in the buffer being checked.
       (while (re-search-forward "\\([^\n]+\\)\n" nil t)
 	;; Bind WORD to the next one.
 	(let ((word (match-string 1)) (wordpos (point)))
@@ -1325,43 +1327,53 @@
 		       (* 100 (/ (float (point)) (point-max)))
 		       word))
 	  (with-current-buffer flyspell-large-region-buffer
-	    (goto-char flyspell-large-region-beg)
+	    (goto-char buffer-scan-pos)
 	    (let ((keep t))
 	      ;; Iterate on string search until string is found as word,
 	      ;; not as substring
 	      (while keep
 		(if (search-forward word
 				    flyspell-large-region-end t)
-		    (save-excursion
-		      (goto-char (- (point) 1))
-		      (let* ((flyword-prev-l (flyspell-get-word nil))
-			     (flyword-prev (car flyword-prev-l))
-			     (size-match (= (length flyword-prev) (length word))))
-			(when (or
-			       ;; size matches, we are done
-			       size-match
-			       ;; Matches as part of a boundary-char separated word
-			       (member word
-				       (split-string flyword-prev ispell-otherchars))
-			       ;; ispell treats beginning of some TeX
-			       ;; commands as nroff control sequences
-			       ;; and strips them in the list of
-			       ;; misspelled words thus giving a
-			       ;; non-existent word.  Skip if ispell
-			       ;; is used, string is a TeX command
-			       ;; (char before beginning of word is
-			       ;; backslash) and none of the previous
-			       ;; contitions match
-			       (and (not ispell-really-aspell)
-				    (save-excursion
-				      (goto-char (- (nth 1 flyword-prev-l) 1))
-				      (if (looking-at "[\\]" )
-					  t
-					nil))))
-			  (setq keep nil)
-			  (flyspell-word)
-			  ;; Next search will begin from end of last match
-			  )))
+		    (let* ((found-list
+			    (save-excursion
+			      ;; Move back into the match
+			      ;; so flyspell-get-word will find it.
+			      (forward-char -1)
+			      (flyspell-get-word nil)))
+			   (found (car found-list))
+			   (found-length (length found))
+			   (misspell-length (length word)))
+		      (when (or
+			     ;; Size matches, we really found it.
+			     (= found-length misspell-length)
+			     ;; Matches as part of a boundary-char separated word
+			     (member word
+				     (split-string found ispell-otherchars))
+			     ;; Misspelling has higher length than
+			     ;; what flyspell considers the
+			     ;; word.  Caused by boundary-chars
+			     ;; mismatch.  Validating seems safe.
+			     (< found-length misspell-length)
+			     ;; ispell treats beginning of some TeX
+			     ;; commands as nroff control sequences
+			     ;; and strips them in the list of
+			     ;; misspelled words thus giving a
+			     ;; non-existent word.  Skip if ispell
+			     ;; is used, string is a TeX command
+			     ;; (char before beginning of word is
+			     ;; backslash) and none of the previous
+			     ;; contitions match
+			     (and (not ispell-really-aspell)
+				  (save-excursion
+				    (goto-char (- (nth 1 found-list) 1))
+				    (if (looking-at "[\\]" )
+					t
+				      nil))))
+			(setq keep nil)
+			(flyspell-word)
+			;; Search for next misspelled word will begin from
+			;; end of last validated match.
+			(setq buffer-scan-pos (point))))
 		  ;; Record if misspelling is not found and try new one
 		  (add-to-list 'words-not-found
 			       (concat " -> " word " - "
--- a/lisp/url/ChangeLog	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/url/ChangeLog	Thu Dec 29 04:46:59 2005 +0000
@@ -1,3 +1,10 @@
+2005-12-27  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* url-cache.el (url-store-in-cache): Use save-current-buffer.
+
+	* url.el (url-configuration-directory): Don't autoload because the
+	default value needs to be computed at run-time, not dump-time.
+
 2005-12-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* url-cookie.el (url-cookie-write-file): Create parent dir.
--- a/lisp/url/url-cache.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/url/url-cache.el	Thu Dec 29 04:46:59 2005 +0000
@@ -65,7 +65,7 @@
   "Store buffer BUFF in the cache."
   (if (not (and buff (get-buffer buff)))
       nil
-    (save-excursion
+    (save-current-buffer
       (and buff (set-buffer buff))
       (let* ((fname (url-cache-create-filename (url-view-url t))))
 	(if (url-cache-prepare fname)
@@ -202,5 +202,5 @@
 
 (provide 'url-cache)
 
-;;; arch-tag: 95b050a6-8e81-4f23-8e63-191b9d1d657c
+;; arch-tag: 95b050a6-8e81-4f23-8e63-191b9d1d657c
 ;;; url-cache.el ends here
--- a/lisp/url/url.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/url/url.el	Thu Dec 29 04:46:59 2005 +0000
@@ -47,7 +47,6 @@
 (require 'url-util)
 
 ;; Fixme: customize? convert-standard-filename?
-;;;###autoload
 (defvar url-configuration-directory
   (cond
    ((file-directory-p "~/.url") "~/.url")
--- a/lisp/vc.el	Thu Dec 29 04:41:02 2005 +0000
+++ b/lisp/vc.el	Thu Dec 29 04:46:59 2005 +0000
@@ -659,7 +659,6 @@
 
 (defvar vc-annotate-mode-map
   (let ((m (make-sparse-keymap)))
-    (define-key m [menu-bar] (make-sparse-keymap "VC-Annotate"))
     (define-key m "A" 'vc-annotate-revision-previous-to-line)
     (define-key m "D" 'vc-annotate-show-diff-revision-at-line)
     (define-key m "J" 'vc-annotate-revision-at-line)
@@ -670,9 +669,6 @@
     m)
   "Local keymap used for VC-Annotate mode.")
 
-(defvar vc-annotate-mode-menu nil
-  "Local keymap used for VC-Annotate mode's menu bar menu.")
-
 ;; Header-insertion hair
 
 (defcustom vc-static-header-alist
@@ -2926,19 +2922,19 @@
        '(vc-annotate-font-lock-keywords t))
   (view-mode 1))
 
-(defun vc-annotate-display-default (&optional ratio)
+(defun vc-annotate-display-default (ratio)
   "Display the output of \\[vc-annotate] using the default color range.
-The color range is given by `vc-annotate-color-map', scaled by RATIO
-if present.  The current time is used as the offset."
-  (interactive "e")
+The color range is given by `vc-annotate-color-map', scaled by RATIO.
+The current time is used as the offset."
+  (interactive (progn (kill-local-variable 'vc-annotate-color-map) '(1.0)))
   (message "Redisplaying annotation...")
-  (vc-annotate-display
-   (if ratio (vc-annotate-time-span vc-annotate-color-map ratio)))
+  (vc-annotate-display ratio)
   (message "Redisplaying annotation...done"))
 
-(defun vc-annotate-car-last-cons (a-list)
-  "Return car of last cons in association list A-LIST."
-  (caar (last a-list)))
+(defun vc-annotate-oldest-in-map (color-map)
+  "Return the oldest time in the COLOR-MAP."
+  ;; Since entries should be sorted, we can just use the last one.
+  (caar (last color-map)))
 
 (defun vc-annotate-display-autoscale (&optional full)
   "Highlight the output of \\[vc-annotate] using an autoscaled color map.
@@ -2962,10 +2958,8 @@
 	(if (< date oldest)
 	    (setq oldest date))))
     (vc-annotate-display
-     (vc-annotate-time-span		;return the scaled colormap.
-      vc-annotate-color-map
-      (/ (-  (if full newest current) oldest)
-	 (vc-annotate-car-last-cons vc-annotate-color-map)))
+     (/ (- (if full newest current) oldest)
+        (vc-annotate-oldest-in-map vc-annotate-color-map))
      (if full newest))
     (message "Redisplaying annotation...done \(%s\)"
 	     (if full
@@ -2982,22 +2976,17 @@
                  (setq vc-annotate-display-mode nil)
                  (vc-annotate-display-select))
      :style toggle :selected (null vc-annotate-display-mode)]
-    ,@(let ((oldest-in-map (vc-annotate-car-last-cons vc-annotate-color-map)))
+    ,@(let ((oldest-in-map (vc-annotate-oldest-in-map vc-annotate-color-map)))
         (mapcar (lambda (element)
                   (let ((days (* element oldest-in-map)))
-                    `([,(format "Span %.1f days" days)
-                       (unless (and (numberp vc-annotate-display-mode)
-                                    (= vc-annotate-display-mode ,days))
-                         (vc-annotate-display-select nil ,days))
-                       :style toggle :selected
-                       (and (numberp vc-annotate-display-mode)
-                            (= vc-annotate-display-mode ,days)) ])))
+                    `[,(format "Span %.1f days" days)
+                      (vc-annotate-display-select nil ,days)
+                      :style toggle :selected
+                      (eql vc-annotate-display-mode ,days) ]))
                 vc-annotate-menu-elements))
     ["Span ..."
-     (let ((days
-            (float (string-to-number
-                    (read-string "Span how many days? ")))))
-       (vc-annotate-display-select nil days)) t]
+     (vc-annotate-display-select
+      nil (float (string-to-number (read-string "Span how many days? "))))]
     "--"
     ["Span to Oldest"
      (unless (eq vc-annotate-display-mode 'scale)
@@ -3031,23 +3020,21 @@
   (if (not vc-annotate-parent-rev)
       (vc-annotate-mode))
   (cond ((null vc-annotate-display-mode)
-	 (vc-annotate-display-default vc-annotate-ratio))
-	;; One of the auto-scaling modes
+         ;; The ratio is global, thus relative to the global color-map.
+         (kill-local-variable 'vc-annotate-color-map)
+	 (vc-annotate-display-default (or vc-annotate-ratio 1.0)))
+        ;; One of the auto-scaling modes
 	((eq vc-annotate-display-mode 'scale)
 	 (vc-annotate-display-autoscale))
 	((eq vc-annotate-display-mode 'fullscale)
 	 (vc-annotate-display-autoscale t))
 	((numberp vc-annotate-display-mode) ; A fixed number of days lookback
 	 (vc-annotate-display-default
-	  (/ vc-annotate-display-mode (vc-annotate-car-last-cons
-				       vc-annotate-color-map))))
+	  (/ vc-annotate-display-mode
+             (vc-annotate-oldest-in-map vc-annotate-color-map))))
 	(t (error "No such display mode: %s"
 		  vc-annotate-display-mode))))
 
-;;;; (defun vc-BACKEND-annotate-command (file buffer) ...)
-;;;;  Execute "annotate" on FILE by using `call-process' and insert
-;;;;  the contents in BUFFER.
-
 ;;;###autoload
 (defun vc-annotate (file rev &optional display-mode buf)
   "Display the edit history of the current file using colors.
@@ -3100,9 +3087,6 @@
 	      (rename-buffer temp-buffer-name t)
 	      ;; In case it had to be uniquified.
 	      (setq temp-buffer-name (buffer-name))))
-    (if (not (vc-find-backend-function vc-annotate-backend 'annotate-command))
-	(error "Sorry, annotating is not implemented for %s"
-	       vc-annotate-backend))
     (with-output-to-temp-buffer temp-buffer-name
       (vc-call annotate-command file (get-buffer temp-buffer-name) rev))
     (with-current-buffer temp-buffer-name
@@ -3143,9 +3127,6 @@
 (defun vc-annotate-extract-revision-at-line ()
   "Extract the revision number of the current line."
   ;; This function must be invoked from a buffer in vc-annotate-mode
-  (save-window-excursion
-    (vc-ensure-vc-buffer)
-    (setq vc-annotate-backend (vc-backend buffer-file-name)))
   (vc-call-backend vc-annotate-backend 'annotate-extract-revision-at-line))
 
 (defun vc-annotate-revision-at-line ()
@@ -3243,18 +3224,6 @@
 				       (previous-line)
 				       (line-number-at-pos))))))))
 
-(defun vc-annotate-time-span (a-list span &optional quantize)
-  "Apply factor SPAN to the time-span of association list A-LIST.
-Return the new alist.
-Optionally quantize to the factor of QUANTIZE."
-  ;; Apply span to each car of every cons
-  (if (not (eq nil a-list))
-      (append (list (cons (* (car (car a-list)) span)
-			  (cdr (car a-list))))
-	      (vc-annotate-time-span (nthcdr (or quantize ; optional
-						 1) ; Default to cdr
-					     a-list) span quantize))))
-
 (defun vc-annotate-compcar (threshold a-list)
   "Test successive cons cells of A-LIST against THRESHOLD.
 Return the first cons cell with a car that is not less than THRESHOLD,
@@ -3289,12 +3258,14 @@
 
 (defvar vc-annotate-offset nil)
 
-(defun vc-annotate-display (&optional color-map offset)
+(defun vc-annotate-display (ratio &optional offset)
   "Highlight `vc-annotate' output in the current buffer.
-COLOR-MAP, if present, overrides `vc-annotate-color-map'.
+RATIO, is the expansion that should be applied to `vc-annotate-color-map'.
 The annotations are relative to the current time, unless overridden by OFFSET."
-  (if (and color-map (not (eq color-map vc-annotate-color-map)))
-      (set (make-local-variable 'vc-annotate-color-map) color-map))
+  (if (/= ratio 1.0)
+      (set (make-local-variable 'vc-annotate-color-map)
+           (mapcar (lambda (elem) (cons (* (car elem) ratio) (cdr elem)))
+                   vc-annotate-color-map)))
   (set (make-local-variable 'vc-annotate-offset) offset)
   (font-lock-mode 1))
 
--- a/lispref/ChangeLog	Thu Dec 29 04:41:02 2005 +0000
+++ b/lispref/ChangeLog	Thu Dec 29 04:46:59 2005 +0000
@@ -1,3 +1,8 @@
+2005-12-28  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* minibuf.texi (Basic Completion): Update lazy-completion-table
+	examples for removal of ARGS argument.
+
 2005-12-23  Richard M. Stallman  <rms@gnu.org>
 
 	* text.texi (Undo): Restore some explanation from the version
--- a/lispref/minibuf.texi	Thu Dec 29 04:41:02 2005 +0000
+++ b/lispref/minibuf.texi	Thu Dec 29 04:46:59 2005 +0000
@@ -768,22 +768,19 @@
 bound to the value of @code{completion-ignore-case}.
 @end defvar
 
-@defmac lazy-completion-table var fun &rest args
+@defmac lazy-completion-table var fun
 This macro provides a way to initialize the variable @var{var} as a
 collection for completion in a lazy way, not computing its actual
 contents until they are first needed.  You use this macro to produce a
 value that you store in @var{var}.  The actual computation of the
 proper value is done the first time you do completion using @var{var}.
-It is done by calling @var{fun} with the arguments @var{args}.  The
+It is done by calling @var{fun} with no arguments.  The
 value @var{fun} returns becomes the permanent value of @var{var}.
 
-Here are two examples of use:
+Here is an example of use:
 
 @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)
+(defvar foo (lazy-completion-table foo make-my-alist))
 @end smallexample
 @end defmac
 
@@ -954,7 +951,7 @@
 feedback.  This is not needed in the minibuffer; for minibuffer
 completion, you can pass @code{nil}.
 
-This function is called by @code{minibuffer-completion-help}.  The 
+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:
 
--- a/man/ChangeLog	Thu Dec 29 04:41:02 2005 +0000
+++ b/man/ChangeLog	Thu Dec 29 04:46:59 2005 +0000
@@ -1,3 +1,13 @@
+2005-12-28  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* org.texi: Remove blank line in @direntry.  It is non-standard
+	and recursively produces blank lines all over the dir file (when
+	using Texinfo 4.8).
+
+2005-12-27  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* frames.texi (Dialog Boxes): Add x-gtk-show-hidden-files.
+
 2005-12-24  Chong Yidong  <cyd@stupidchicken.com>
 
 	* custom.texi (Custom Themes): `load-theme' always loads.
--- a/man/frames.texi	Thu Dec 29 04:41:02 2005 +0000
+++ b/man/frames.texi	Thu Dec 29 04:46:59 2005 +0000
@@ -994,6 +994,12 @@
 value.  If Emacs is built with a Gtk+ version that has only one file dialog,
 the setting of this variable has no effect.
 
+@vindex x-gtk-show-hidden-files
+  For Gtk+ version 2.4 and newer, Emacs use the Gtk+ file chooser dialog.
+Emacs adds a toggle button that enables and disables showing of hidden files
+(files starting with a dot) in that dialog.  This variable controls if
+hidden files should be shown by default or not.
+
 @node Tooltips
 @section Tooltips
 @cindex tooltips
--- a/man/org.texi	Thu Dec 29 04:41:02 2005 +0000
+++ b/man/org.texi	Thu Dec 29 04:46:59 2005 +0000
@@ -9,8 +9,7 @@
 
 @dircategory Emacs
 @direntry
-* Org Mode: (org).	outline-based notes management and organizer
-
+* Org Mode: (org).	outline-based notes management and organizer.
 @end direntry
 
 @c Version and Contact Info
--- a/src/ChangeLog	Thu Dec 29 04:41:02 2005 +0000
+++ b/src/ChangeLog	Thu Dec 29 04:46:59 2005 +0000
@@ -1,3 +1,69 @@
+2005-12-28  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* gtkutil.c (xg_get_file_with_chooser): Changed message shown
+	in file chooser.
+
+2005-12-27  Richard M. Stallman  <rms@gnu.org>
+
+	* lread.c (readevalloop): Set PT and ZV in the proper buffer,
+	not the current one.
+
+	* minibuf.c (Fminibuffer_message): Doc fix.
+	(read_minibuf): Set current_buffer->enable_multibyte_characters sooner.
+
+	* eval.c (do_autoload): Ignore elements of Vautoload_queue
+	where car is not symbol.
+
+2005-12-27  Kenichi Handa  <handa@m17n.org>
+
+	* charset.c (lisp_string_width): Check multibyteness of STRING.
+
+2005-12-27  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* xfns.c: x_show_hidden_files, new variable.
+	(syms_of_xfns): Defvar it.
+
+	* gtkutil.c (xg_toggle_visibility_cb): New function.
+	(xg_get_file_with_chooser): Add toggle hidden files and a message
+	to the new file chooser dialog.  Show hidden files if
+	x_show_hidden_files is non-zero.
+
+2005-12-26  Richard M. Stallman  <rms@gnu.org>
+
+	* keyboard.h: Undo previous change.
+
+	* Makefile.in (undo.o): Undo previous change.
+
+	* undo.c: Undo previous change.
+
+2005-12-26  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* keyboard.h: extern last_point_position_window.
+
+	* undo.c: include keyboard.h.
+
+	* Makefile.in (undo.o): Depend on keyboard.h.
+
+2005-12-26  Richard M. Stallman  <rms@gnu.org>
+
+	* commands.h (last_point_position_window): Declare.
+
+	* undo.c: Depend on window.h.
+	(record_point): Save old point from the correct window.
+
+	* keyboard.c (last_point_position_window): New variable.
+	(command_loop_1): Set last_point_position_window.
+	(syms_of_keyboard): Init it.
+
+	* Makefile.in (undo.o): Depend on window.h.
+
+2005-12-25  Richard M. Stallman  <rms@gnu.org>
+
+	* eval.c (un_autoload): Expect (0 . OFEATURES) in Vautoload_queue
+	to undo a `provide'.
+
+	* fns.c (Fprovide): Store (0 . OFEATURES) in Vautoload_queue.
+
 2005-12-25  Giorgos Keramidas  <keramida@ceid.upatras.gr>
 
 	* m/amdx86-64.h [__FreeBSD__] (START_FILES, LIB_STANDARD):
--- a/src/Makefile.in	Thu Dec 29 04:41:02 2005 +0000
+++ b/src/Makefile.in	Thu Dec 29 04:46:59 2005 +0000
@@ -1175,7 +1175,7 @@
    keyboard.h $(config_h)
 terminfo.o: terminfo.c $(config_h)
 tparam.o: tparam.c $(config_h)
-undo.o: undo.c buffer.h commands.h $(config_h)
+undo.o: undo.c buffer.h commands.h window.h $(config_h)
 /* This hack is to discard any space that cpp might put at the beginning
    of UNEXEC when substituting it in.  */
 UNEXEC_ALIAS=UNEXEC
--- a/src/charset.c	Thu Dec 29 04:41:02 2005 +0000
+++ b/src/charset.c	Thu Dec 29 04:46:59 2005 +0000
@@ -1344,6 +1344,10 @@
 {
   int len = SCHARS (string);
   int len_byte = SBYTES (string);
+  /* This set multibyte to 0 even if STRING is multibyte when it
+     contains only ascii and eight-bit-graphic, but that's
+     intentional.  */
+  int multibyte = len < len_byte;
   const unsigned char *str = SDATA (string);
   int i = 0, i_byte = 0;
   int width = 0;
@@ -1366,8 +1370,12 @@
 	}
       else if (dp)
 	{
-	  int c = STRING_CHAR_AND_LENGTH (str + i_byte, len - i_byte, bytes);
+	  int c;
 
+	  if (multibyte)
+	    c = STRING_CHAR_AND_LENGTH (str + i_byte, len - i_byte, bytes);
+	  else
+	    c = str[i_byte], bytes = 1;
 	  chars = 1;
 	  val = DISP_CHAR_VECTOR (dp, c);
 	  if (VECTORP (val))
@@ -1378,7 +1386,10 @@
       else
 	{
 	  chars = 1;
-	  PARSE_MULTIBYTE_SEQ (str + i_byte, len_byte - i_byte, bytes);
+	  if (multibyte)
+	    PARSE_MULTIBYTE_SEQ (str + i_byte, len_byte - i_byte, bytes);
+	  else
+	    bytes = 1;
 	  thiswidth = ONE_BYTE_CHAR_WIDTH (str[i_byte]);
 	}
 
--- a/src/commands.h	Thu Dec 29 04:41:02 2005 +0000
+++ b/src/commands.h	Thu Dec 29 04:46:59 2005 +0000
@@ -75,12 +75,15 @@
    events until a non-ASCII event is acceptable as input.  */
 extern Lisp_Object unread_switch_frame;
 
-/* The value of point when the last command was executed.  */
+/* The value of point when the last command was started.  */
 extern int last_point_position;
 
 /* The buffer that was current when the last command was started.  */
 extern Lisp_Object last_point_position_buffer;
 
+/* The window that was selected when the last command was started.  */
+extern Lisp_Object last_point_position_window;
+
 /* Nonzero means ^G can quit instantly */
 extern int immediate_quit;
 
--- a/src/eval.c	Thu Dec 29 04:41:02 2005 +0000
+++ b/src/eval.c	Thu Dec 29 04:46:59 2005 +0000
@@ -103,7 +103,7 @@
 /* Non-nil means record all fset's and provide's, to be undone
    if the file being autoloaded is not fully loaded.
    They are recorded by being consed onto the front of Vautoload_queue:
-   (FUN . ODEF) for a defun, (OFEATURES . nil) for a provide.  */
+   (FUN . ODEF) for a defun, (0 . OFEATURES) for a provide.  */
 
 Lisp_Object Vautoload_queue;
 
@@ -2022,8 +2022,8 @@
       first = XCAR (queue);
       second = Fcdr (first);
       first = Fcar (first);
-      if (EQ (second, Qnil))
-	Vfeatures = first;
+      if (EQ (first, make_number (0)))
+	Vfeatures = second;
       else
 	Ffset (first, second);
       queue = XCDR (queue);
@@ -2069,7 +2069,7 @@
       second = Fcdr (first);
       first = Fcar (first);
 
-      if (CONSP (second) && EQ (XCAR (second), Qautoload))
+      if (SYMBOLP (first) && CONSP (second) && EQ (XCAR (second), Qautoload))
 	Fput (first, Qautoload, (XCDR (second)));
 
       queue = XCDR (queue);
--- a/src/fns.c	Thu Dec 29 04:41:02 2005 +0000
+++ b/src/fns.c	Thu Dec 29 04:46:59 2005 +0000
@@ -3519,7 +3519,8 @@
   CHECK_SYMBOL (feature);
   CHECK_LIST (subfeatures);
   if (!NILP (Vautoload_queue))
-    Vautoload_queue = Fcons (Fcons (Vfeatures, Qnil), Vautoload_queue);
+    Vautoload_queue = Fcons (Fcons (make_number (0), Vfeatures),
+			     Vautoload_queue);
   tem = Fmemq (feature, Vfeatures);
   if (NILP (tem))
     Vfeatures = Fcons (feature, Vfeatures);
--- a/src/gtkutil.c	Thu Dec 29 04:41:02 2005 +0000
+++ b/src/gtkutil.c	Thu Dec 29 04:46:59 2005 +0000
@@ -1220,6 +1220,19 @@
   return gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (w));
 }
 
+static void
+xg_toggle_visibility_cb (widget, data)
+     GtkWidget *widget;
+     gpointer data;
+{
+  GtkFileChooser *dialog = GTK_FILE_CHOOSER (data);
+  gboolean visible;
+  extern int x_gtk_show_hidden_files;
+  g_object_get (G_OBJECT (dialog), "show-hidden", &visible, NULL);
+  g_object_set (G_OBJECT (dialog), "show-hidden", !visible, NULL);
+  x_gtk_show_hidden_files = !visible;
+}
+
 /* Read a file name from the user using a file chooser dialog.
    F is the current frame.
    PROMPT is a prompt to show to the user.  May not be NULL.
@@ -1239,11 +1252,14 @@
      int mustmatch_p, only_dir_p;
      xg_get_file_func *func;
 {
-  GtkWidget *filewin;
+  char message[1024];
+
+  GtkWidget *filewin, *wtoggle, *wbox, *wmessage;
   GtkWindow *gwin = GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f));
   GtkFileChooserAction action = (mustmatch_p ?
                                  GTK_FILE_CHOOSER_ACTION_OPEN :
                                  GTK_FILE_CHOOSER_ACTION_SAVE);
+  extern int x_gtk_show_hidden_files;
 
   if (only_dir_p)
     action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER;
@@ -1256,6 +1272,31 @@
                                          NULL);
   gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (filewin), TRUE);
 
+  wbox = gtk_vbox_new (FALSE, 0);
+  gtk_widget_show (wbox);
+  wtoggle = gtk_check_button_new_with_label ("Show hidden files.");
+  
+  if (x_gtk_show_hidden_files) 
+    {
+      g_object_set (G_OBJECT (filewin), "show-hidden", TRUE, NULL);
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (wtoggle), TRUE);
+    }
+  gtk_widget_show (wtoggle);
+  g_signal_connect (G_OBJECT (wtoggle), "clicked",
+                    G_CALLBACK (xg_toggle_visibility_cb), G_OBJECT(filewin));
+
+  message[0] = '\0';
+  if (action != GTK_FILE_CHOOSER_ACTION_SAVE)
+    strcat (message, "\nType C-l to display a file name text entry box.\n");
+  strcat (message, "\nIf you don't like this file selector, customize "
+          "use-file-dialog\nto turn it off, or type C-x C-f to visit files.");
+
+  wmessage = gtk_label_new (message);
+  gtk_widget_show (wmessage);
+  gtk_box_pack_start (GTK_BOX (wbox), wtoggle, FALSE, FALSE, 0);
+  gtk_box_pack_start (GTK_BOX (wbox), wmessage, FALSE, FALSE, 0);
+  gtk_file_chooser_set_extra_widget (GTK_FILE_CHOOSER (filewin), wbox);
+
   if (default_filename)
     {
       Lisp_Object file;
--- a/src/keyboard.c	Thu Dec 29 04:41:02 2005 +0000
+++ b/src/keyboard.c	Thu Dec 29 04:46:59 2005 +0000
@@ -377,12 +377,15 @@
    command is stored in this-original-command.  It is nil otherwise.  */
 Lisp_Object Vthis_original_command;
 
-/* The value of point when the last command was executed.  */
+/* The value of point when the last command was started.  */
 int last_point_position;
 
 /* The buffer that was current when the last command was started.  */
 Lisp_Object last_point_position_buffer;
 
+/* The window that was selected when the last command was started.  */
+Lisp_Object last_point_position_window;
+
 /* The frame in which the last input event occurred, or Qmacro if the
    last event came from a macro.  We use this to determine when to
    generate switch-frame events.  This may be cleared by functions
@@ -1619,6 +1622,7 @@
       prev_buffer = current_buffer;
       prev_modiff = MODIFF;
       last_point_position = PT;
+      last_point_position_window = selected_window;
       XSETBUFFER (last_point_position_buffer, prev_buffer);
 
       /* By default, we adjust point to a boundary of a region that
@@ -11298,6 +11302,7 @@
   Fset (Qinput_method_use_echo_area, Qnil);
 
   last_point_position_buffer = Qnil;
+  last_point_position_window = Qnil;
 
   {
     struct event_head *p;
--- a/src/keyboard.h	Thu Dec 29 04:41:02 2005 +0000
+++ b/src/keyboard.h	Thu Dec 29 04:46:59 2005 +0000
@@ -312,7 +312,6 @@
 /* Parent keymap of terminal-local key-translation-map instances.  */
 extern Lisp_Object Vkey_translation_map;
 
-
 extern int parse_menu_item P_ ((Lisp_Object, int, int));
 
 extern void echo_now P_ ((void));
--- a/src/lread.c	Thu Dec 29 04:41:02 2005 +0000
+++ b/src/lread.c	Thu Dec 29 04:46:59 2005 +0000
@@ -1345,10 +1345,20 @@
       if (b != 0 && NILP (b->name))
 	error ("Reading from killed buffer");
 
+
       if (!NILP (start))
 	{
+	  /* Switch to the buffer we are reading from.  */
 	  record_unwind_protect (save_excursion_restore, save_excursion_save ());
+	  set_buffer_internal (b);
+
+	  /* Save point in it.  */
+	  record_unwind_protect (save_excursion_restore, save_excursion_save ());
+	  /* Save ZV in it.  */
 	  record_unwind_protect (save_restriction_restore, save_restriction_save ());
+	  /* Those get unbound after we read one expression.  */
+
+	  /* Set point and ZV around stuff to be read.  */
 	  Fgoto_char (start);
 	  Fnarrow_to_region (make_number (BEGV), end);
 	}
--- a/src/minibuf.c	Thu Dec 29 04:41:02 2005 +0000
+++ b/src/minibuf.c	Thu Dec 29 04:46:59 2005 +0000
@@ -602,6 +602,10 @@
   minibuffer = get_minibuffer (minibuf_level);
   Fset_buffer (minibuffer);
 
+  /* If appropriate, copy enable-multibyte-characters into the minibuffer.  */
+  if (inherit_input_method)
+    current_buffer->enable_multibyte_characters = enable_multibyte;
+
   /* The current buffer's default directory is usually the right thing
      for our minibuffer here.  However, if you're typing a command at
      a minibuffer-only frame when minibuf_level is zero, then buf IS
@@ -673,10 +677,6 @@
 
   minibuf_prompt_width = (int) current_column (); /* iftc */
 
-  /* If appropriate, copy enable-multibyte-characters into the minibuffer.  */
-  if (inherit_input_method)
-    current_buffer->enable_multibyte_characters = enable_multibyte;
-
   /* Put in the initial input.  */
   if (!NILP (initial))
     {
@@ -1244,11 +1244,11 @@
   int bestmatchsize = 0;
   /* These are in bytes, too.  */
   int compare, matchsize;
-  int type = HASH_TABLE_P (alist) ? 3
-    : VECTORP (alist) ? 2
-    : NILP (alist) || (CONSP (alist)
-		       && (!SYMBOLP (XCAR (alist))
-			   || NILP (XCAR (alist))));
+  int type = (HASH_TABLE_P (alist) ? 3
+	      : VECTORP (alist) ? 2
+	      : NILP (alist) || (CONSP (alist)
+				 && (!SYMBOLP (XCAR (alist))
+				     || NILP (XCAR (alist)))));
   int index = 0, obsize = 0;
   int matchcount = 0;
   int bindcount = -1;
@@ -2692,7 +2692,7 @@
 DEFUN ("minibuffer-message", Fminibuffer_message, Sminibuffer_message,
        1, 1, 0,
        doc: /* Temporarily display STRING at the end of the minibuffer.
-The text is displayed for two seconds,
+The text is displayed for a period controlled by `minibuffer-message-timeout',
 or until the next input event arrives, whichever comes first.  */)
      (string)
      Lisp_Object string;
--- a/src/undo.c	Thu Dec 29 04:41:02 2005 +0000
+++ b/src/undo.c	Thu Dec 29 04:46:59 2005 +0000
@@ -24,6 +24,7 @@
 #include "lisp.h"
 #include "buffer.h"
 #include "commands.h"
+#include "window.h"
 
 /* Limits controlling how much undo information to keep.  */
 
@@ -100,12 +101,19 @@
   /* If we are just after an undo boundary, and
      point wasn't at start of deleted range, record where it was.  */
   if (at_boundary
-      && last_point_position != pt
+      && BUFFERP (last_point_position_buffer)
       /* If we're called from batch mode, this could be nil.  */
-      && BUFFERP (last_point_position_buffer)
       && current_buffer == XBUFFER (last_point_position_buffer))
-    current_buffer->undo_list
-      = Fcons (make_number (last_point_position), current_buffer->undo_list);
+    {
+      /* If we have switched windows, use the point value
+	 from the window we are in.  */
+      if (! EQ (last_point_position_window, selected_window))
+	last_point_position = marker_position (XWINDOW (selected_window)->pointm);
+
+      if (last_point_position != pt)
+	current_buffer->undo_list
+	  = Fcons (make_number (last_point_position), current_buffer->undo_list);
+    }
 }
 
 /* Record an insertion that just happened or is about to happen,
--- a/src/xfns.c	Thu Dec 29 04:41:02 2005 +0000
+++ b/src/xfns.c	Thu Dec 29 04:46:59 2005 +0000
@@ -155,6 +155,10 @@
 
 int x_use_old_gtk_file_dialog;
 
+/* If non-zero, by default show hidden files in the GTK file chooser.  */
+
+int x_gtk_show_hidden_files;
+
 /* The background and shape of the mouse pointer, and shape when not
    over text or in the modeline.  */
 
@@ -5790,6 +5794,12 @@
 variable `use-file-dialog'.  */);
   x_use_old_gtk_file_dialog = 0;
 
+  DEFVAR_BOOL ("x-gtk-show-hidden-files", &x_gtk_show_hidden_files,
+    doc: /* *If non-nil, the GTK file chooser will by default show hidden files.
+Note that this is just the default, there is a toggle button on the file
+chooser to show or not show hidden files on a case by case basis.  */);
+  x_gtk_show_hidden_files = 0;
+
   Fprovide (intern ("x"), Qnil);
 
 #ifdef USE_X_TOOLKIT