changeset 90295:4b3d39451150

Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-14 Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 58-65) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 22-28) - Update from CVS - Merge from emacs--devo--0 - Update from CVS: lisp/gnus.el: Remove bogus comment.
author Miles Bader <miles@gnu.org>
date Sat, 11 Feb 2006 00:11:19 +0000
parents c5406394f567 (current diff) b3bce12214a9 (diff)
children d57ee9eab157
files MAINTAINERS admin/FOR-RELEASE etc/ChangeLog etc/NEWS etc/PROBLEMS lisp/ChangeLog lisp/Makefile.in lisp/calendar/appt.el lisp/calendar/cal-china.el lisp/calendar/cal-coptic.el lisp/calendar/cal-dst.el lisp/calendar/cal-french.el lisp/calendar/cal-hebrew.el lisp/calendar/cal-islam.el lisp/calendar/cal-iso.el lisp/calendar/cal-julian.el lisp/calendar/cal-mayan.el lisp/calendar/cal-move.el lisp/calendar/cal-persia.el lisp/calendar/cal-tex.el lisp/calendar/cal-x.el lisp/calendar/diary-lib.el lisp/calendar/holidays.el lisp/calendar/lunar.el lisp/calendar/parse-time.el lisp/calendar/solar.el lisp/calendar/time-date.el lisp/calendar/timeclock.el lisp/calendar/todo-mode.el lisp/desktop.el lisp/dired-x.el lisp/frame.el lisp/gnus/ChangeLog lisp/gnus/gnus.el lisp/gnus/mm-view.el lisp/gnus/nnfolder.el lisp/gnus/rfc2231.el lisp/hilit-chg.el lisp/mh-e/ChangeLog lisp/mh-e/mh-e.el lisp/mh-e/mh-utils.el lisp/mouse.el lisp/net/rcirc.el lisp/net/tramp.el lisp/progmodes/ada-mode.el lisp/progmodes/ada-prj.el lisp/progmodes/ada-stmt.el lisp/progmodes/ada-xref.el lisp/progmodes/antlr-mode.el lisp/progmodes/asm-mode.el lisp/progmodes/autoconf.el lisp/progmodes/cc-align.el lisp/progmodes/cc-awk.el lisp/progmodes/cc-bytecomp.el lisp/progmodes/cc-cmds.el lisp/progmodes/cc-compat.el lisp/progmodes/cc-defs.el lisp/progmodes/cc-engine.el lisp/progmodes/cc-fonts.el lisp/progmodes/cc-langs.el lisp/progmodes/cc-menus.el lisp/progmodes/cc-mode.el lisp/progmodes/cc-styles.el lisp/progmodes/cc-vars.el lisp/progmodes/cfengine.el lisp/progmodes/cmacexp.el lisp/progmodes/compile.el lisp/progmodes/cperl-mode.el lisp/progmodes/cpp.el lisp/progmodes/cwarn.el lisp/progmodes/dcl-mode.el lisp/progmodes/delphi.el lisp/progmodes/ebnf-abn.el lisp/progmodes/ebnf-bnf.el lisp/progmodes/ebnf-dtd.el lisp/progmodes/ebnf-ebx.el lisp/progmodes/ebnf-iso.el lisp/progmodes/ebnf-otz.el lisp/progmodes/ebnf-yac.el lisp/progmodes/ebnf2ps.el lisp/progmodes/ebrowse.el lisp/progmodes/etags.el lisp/progmodes/executable.el lisp/progmodes/f90.el lisp/progmodes/gdb-ui.el lisp/progmodes/glasses.el lisp/progmodes/grep.el lisp/progmodes/gud.el lisp/progmodes/hideif.el lisp/progmodes/hideshow.el lisp/progmodes/icon.el lisp/progmodes/idlw-rinfo.el lisp/progmodes/idlw-shell.el lisp/progmodes/idlw-toolbar.el lisp/progmodes/idlwave.el lisp/progmodes/inf-lisp.el lisp/progmodes/ld-script.el lisp/progmodes/m4-mode.el lisp/progmodes/make-mode.el lisp/progmodes/mantemp.el lisp/progmodes/meta-mode.el lisp/progmodes/mixal-mode.el lisp/progmodes/octave-hlp.el lisp/progmodes/octave-inf.el lisp/progmodes/octave-mod.el lisp/progmodes/pascal.el lisp/progmodes/perl-mode.el lisp/progmodes/prolog.el lisp/progmodes/ps-mode.el lisp/progmodes/python.el lisp/progmodes/scheme.el lisp/progmodes/sh-script.el lisp/progmodes/simula.el lisp/progmodes/sql.el lisp/progmodes/vhdl-mode.el lisp/progmodes/which-func.el lisp/progmodes/xscheme.el lisp/subr.el lisp/term/mac-win.el lisp/tumme.el lisp/vc-svn.el lispref/ChangeLog lispref/eval.texi lispref/modes.texi mac/ChangeLog mac/makefile.MPW man/ChangeLog man/dired.texi man/faq.texi man/gnus.texi man/macos.texi src/ChangeLog src/alloc.c src/data.c src/doc.c src/eval.c src/keyboard.c src/keymap.c src/lisp.h src/macfns.c src/macterm.c src/window.c src/xterm.c
diffstat 155 files changed, 1283 insertions(+), 687 deletions(-) [+]
line wrap: on
line diff
--- a/MAINTAINERS	Wed Feb 08 04:26:44 2006 +0000
+++ b/MAINTAINERS	Sat Feb 11 00:11:19 2006 +0000
@@ -65,6 +65,12 @@
 	lisp/minibuf-eldef.el
 	lisp/rfn-eshadow.el
 
+Jay Belanger
+        Calc
+            lisp/calc/*
+            etc/calccard.tex
+            man/calc.texi
+
 ==============================================================================
 2.
 ==============================================================================
--- a/admin/FOR-RELEASE	Wed Feb 08 04:26:44 2006 +0000
+++ b/admin/FOR-RELEASE	Sat Feb 11 00:11:19 2006 +0000
@@ -69,7 +69,7 @@
 lib-src			done		ttn
 lisp			done		ttn
 lisp/calc		done		Jay Belanger
-lisp/calendar		working		Glenn Morris
+lisp/calendar		done		Glenn Morris
 lisp/emacs-lisp		done		ttn
 lisp/emulation		done		ttn
 lisp/eshell		done		ttn
@@ -81,7 +81,7 @@
 lisp/net		done		ttn
 lisp/obsolete		done		ttn
 lisp/play		done		Romain Francoise
-lisp/progmodes		working		Nick Roberts
+lisp/progmodes		done		Nick Roberts
 lisp/term		done		ttn
 lisp/textmodes		done		ttn
 lisp/url		done		ttn
--- a/etc/ChangeLog	Wed Feb 08 04:26:44 2006 +0000
+++ b/etc/ChangeLog	Sat Feb 11 00:11:19 2006 +0000
@@ -1,3 +1,11 @@
+2006-02-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* PROBLEMS (Mac OS X): Add QuickTime 7.0.4 / Mac OS X 10.3.9 breakage.
+
+2006-02-09  Mathias Dahl  <mathias.dahl@gmail.com>
+
+	* NEWS: New key bindings for Tumme in Dired.
+
 2006-02-05  Jay Belanger  <belanger@truman.edu>
 
 	* calccard.tex: Update copyright year.
--- a/etc/NEWS	Wed Feb 08 04:26:44 2006 +0000
+++ b/etc/NEWS	Sat Feb 11 00:11:19 2006 +0000
@@ -1908,6 +1908,12 @@
 
 * Changes in Specialized Modes and Packages in Emacs 22.1:
 
+** Changes in Dired
+*** Bindings for Tumme added
+Several new keybindings, all starting with the C-t prefix, have been
+added to Dired. They are all bound to commands in Tumme. As a starting
+point, mark some image files in a dired buffer and do C-t d to display
+thumbnails of them in a separate buffer.
 ** Changes in Hi Lock:
 
 +++
--- a/etc/PROBLEMS	Wed Feb 08 04:26:44 2006 +0000
+++ b/etc/PROBLEMS	Sat Feb 11 00:11:19 2006 +0000
@@ -1778,6 +1778,13 @@
 Mac OS X that causes process output to be truncated.  To avoid this,
 leave process-connection-type set to its default value of nil.
 
+*** Mac OS X 10.3.9 (Carbon): QuickTime 7.0.4 updater breaks build.
+
+On the above environment, build fails at the link stage with the
+message like "Undefined symbols: _HICopyAccessibilityActionDescription
+referenced from QuickTime expected to be defined in Carbon".  A
+workaround is to use QuickTime 7.0.1 reinstaller.
+
 ** FreeBSD
 
 *** FreeBSD 2.1.5: useless symbolic links remain in /tmp or other
--- a/lisp/ChangeLog	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/ChangeLog	Sat Feb 11 00:11:19 2006 +0000
@@ -1,3 +1,109 @@
+2006-02-10  Juanma Barranquero  <lekktu@gmail.com>
+
+	* desktop.el (desktop-outvar): Fix typo.
+	(desktop-save-buffer-p): Doc fix.
+
+	* subr.el (substitute-key-definition): Fix typo.
+
+2006-02-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* frame.el (select-frame-set-input-focus): Call x-focus-frame also
+	when window-system is mac.
+
+	* term/mac-win.el (fontset-standard): Rename from "fontset-mac".
+
+2006-02-10  Kim F. Storm  <storm@cua.dk>
+
+	* subr.el (substitute-key-definition-key): Pass t for NOERROR to
+	indirect-function instead of using condition-case.
+
+2006-02-10  Mathias Dahl  <mathias.dahl@gmail.com>
+
+	* tumme.el (tumme-copy-with-exif-file-name): Tried to make
+	docstring less `colloquial'...
+
+2006-02-09  Mathias Dahl  <mathias.dahl@gmail.com>
+
+	* tumme.el: Added a couple of todo items.
+
+2006-02-09  Lars Hansen  <larsh@soem.dk>
+
+	* hilit-chg.el: Add highlight-changes-mode to desktop-locals-to-save.
+	(highlight-changes-mode): Don't change desktop-locals-to-save.
+
+2006-02-09  Chong Yidong  <cyd@stupidchicken.com>
+
+	* image-mode.el (image-toggle-display): Clear image cache if using
+	filename.
+
+2006-02-09  Masatake YAMATO  <jet@gyve.org>
+
+	* dired-x.el (dired-guess-shell-alist-default): Add .man as
+	a `dired-man' target.
+
+	* progmodes/autoconf.el (autoconf-font-lock-keywords): Check start
+	boundary of symbols.
+
+2006-02-08  Peter Doornbosch  <peter.doornbosch@luminis.nl>  (tiny change)
+
+	* vc-svn.el (vc-svn-print-log): Show recent commits as well.
+
+2006-02-09  Juanma Barranquero  <lekktu@gmail.com>
+
+	* hilit-chg.el (hilit-chg-update-all-buffers): Use `mapc' instead of
+	`mapcar'; return nil.
+
+2006-02-08  Chong Yidong  <cyd@stupidchicken.com>
+
+	* mouse.el (mouse-drag-track): Don't change window if we rebind to
+	some other event.
+
+2006-02-08  Ryan Yeske  <rcyeske@gmail.com>
+
+	* net/rcirc.el (rcirc-startup-channels-alist):
+	Add irc.freenode.net and #emacs as defaults.
+	(rcirc-ignore-all-activity-flag): Remove variable.
+	(rcirc-authinfo): New variable.
+	(rcirc-authinfo-filename): Remove variable.
+	(rcirc-always-use-server-buffer-flag): New flag.
+	(rcirc): M-x rcirc will automatically connect without prompting.
+	C-u M-x rcirc will prompt.  Use rcirc-connect to create a
+	connection in lisp.
+	(rcirc-process-server-response-1): Remove everything but the nick
+	portion of the sender so it doesn't need to be done everywhere
+	else.  Update related code.
+	(global-map): Remove global keybindings.
+	(rcirc-get-buffer-create): Make sure rcirc-topic is set.
+	(rcirc-send-input): Split into several functions.
+	(rcirc-process-input-line, rcirc-process-message)
+	(rcirc-process-command): New functions.
+	(rcirc-target-buffer): New function to determine where to route
+	messages.
+	(rcirc-user-nick): Save match data.
+	(rcirc-toggle-ignore-buffer-activity)
+	(rcirc-update-activity-string): Remove global ignore functionality,
+	which can be done now by toggling rcirc-track-minor-mode.
+	(rcirc-track-minor-mode-map): New keymap.
+	(rcirc-track-minor-mode): New minor-mode.
+	(ignore): Make the ignore output nicer.  Always print it when
+	adding or removing nicks.
+	(rcirc-url-regexp): Improve.
+	(rcirc-mangle-text): Remove properties before using text in the
+	modeline.
+	(rcirc-authenticate): Authentication data comes from
+	rcirc-authinfo, not the file pointed to by rcirc-authinfo-file.
+	(rcirc-server-prefix): Inherit from rcirc-server.
+
+2006-02-08  Mathias Megyei  <Mathias.Megyei@micronas.com>  (tiny change)
+
+	* Makefile.in (compile): Append "|| true" to the end of the `find'
+	command, like compile-always does.
+
+2006-02-08  Sam Steingold  <sds@gnu.org>
+
+	* net/tramp.el (tramp-maybe-open-connection): Do not wait for
+	output from a dead connection.
+
 2006-02-07  Mathias Dahl  <brakjoller@hotmail.com>
 
 	* dired.el (dired-mode-map): Add more bindings for tumme.
@@ -351,7 +457,7 @@
 	* international/latexenc.el: Add a suitable `coding:' tag.
 	(latexenc-find-file-coding-system): Undo last change.
 
-2006-01-27  Arne J,bx(Brgensen  <arne@arnested.dk>
+2006-01-27  Arne J,Ax(Brgensen  <arne@arnested.dk>
 
 	* international/latexenc.el (latexenc-find-file-coding-system):
 	Make sure latexenc-main-file is a regular file and is readable.
--- a/lisp/Makefile.in	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/Makefile.in	Sat Feb 11 00:11:19 2006 +0000
@@ -155,8 +155,10 @@
 # subdirectories, to make sure require's and load's in the files being
 # compiled find the right files.
 
+# `|| true' below prevents old Bash versions from getting confused
+# by an error.
 compile: $(lisp)/subdirs.el mh-autoloads doit
-	find $(lisp) -name "*.elc" -print | xargs chmod +w >/dev/null 2>&1; \
+	find $(lisp) -name "*.elc" -print | xargs chmod +w >/dev/null 2>&1 || true; \
 	wd=$(lisp); $(setwins);	\
 	els=`echo $$wins | tr ' \011' '\012\012' | \
 		sed -e 's|\(.\)$$|\1/|' -e 's|^\./||' -e 's|$$|*.el|'`;	\
--- a/lisp/calendar/appt.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/appt.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; appt.el --- appointment notification functions
 
-;; Copyright (C) 1989, 1990, 1994, 1998, 2001, 2002, 2003, 2004, 2005
-;;   Free Software Foundation, Inc.
+;; Copyright (C) 1989, 1990, 1994, 1998, 2001, 2002, 2003, 2004, 2005,
+;;   2006  Free Software Foundation, Inc.
 
 ;; Author: Neil Mager <neilm@juliet.ll.mit.edu>
 ;; Maintainer: Glenn Morris <rgm@gnu.org>
--- a/lisp/calendar/cal-bahai.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/cal-bahai.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,7 @@
 ;;; cal-bahai.el --- calendar functions for the Baha'i calendar.
 
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005  Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
+;;   Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <johnw@gnu.org>
 ;; Keywords: calendar
--- a/lisp/calendar/cal-china.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/cal-china.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cal-china.el --- calendar functions for the Chinese calendar
 
-;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
--- a/lisp/calendar/cal-coptic.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/cal-coptic.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cal-coptic.el --- calendar functions for the Coptic/Ethiopic calendars
 
-;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
--- a/lisp/calendar/cal-dst.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/cal-dst.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; cal-dst.el --- calendar functions for daylight savings rules
 
-;; Copyright (C) 1993, 1994, 1995, 1996, 2001, 2002, 2003, 2004, 2005
-;;   Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 1996, 2001, 2002, 2003, 2004, 2005,
+;;   2006  Free Software Foundation, Inc.
 
 ;; Author: Paul Eggert <eggert@twinsun.com>
 ;;	Edward M. Reingold <reingold@cs.uiuc.edu>
--- a/lisp/calendar/cal-french.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/cal-french.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; cal-french.el --- calendar functions for the French Revolutionary calendar
 
 ;; Copyright (C) 1988, 1989, 1992, 1994, 1995, 1997, 2001, 2002, 2003,
-;;   2004, 2005  Free Software Foundation, Inc.
+;;   2004, 2005, 2006  Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
 ;; Maintainer: Glenn Morris <rgm@gnu.org>
--- a/lisp/calendar/cal-hebrew.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/cal-hebrew.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cal-hebrew.el --- calendar functions for the Hebrew calendar
 
-;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Nachum Dershowitz <nachum@cs.uiuc.edu>
--- a/lisp/calendar/cal-islam.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/cal-islam.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cal-islam.el --- calendar functions for the Islamic calendar
 
-;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
--- a/lisp/calendar/cal-iso.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/cal-iso.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cal-iso.el --- calendar functions for the ISO calendar
 
-;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
--- a/lisp/calendar/cal-julian.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/cal-julian.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cal-julian.el --- calendar functions for the Julian calendar
 
-;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
--- a/lisp/calendar/cal-mayan.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/cal-mayan.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; cal-mayan.el --- calendar functions for the Mayan calendars
 
-;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005
-;;   Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005,
+;;   2006  Free Software Foundation, Inc.
 
 ;; Author: Stewart M. Clamen <clamen@cs.cmu.edu>
 ;;	Edward M. Reingold <reingold@cs.uiuc.edu>
--- a/lisp/calendar/cal-move.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/cal-move.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cal-move.el --- calendar functions for movement in the calendar
 
-;; Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005, 2006
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
--- a/lisp/calendar/cal-persia.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/cal-persia.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cal-persia.el --- calendar functions for the Persian calendar
 
-;; Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, 2005, 2006
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
--- a/lisp/calendar/cal-tex.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/cal-tex.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cal-tex.el --- calendar functions for printing calendars with LaTeX
 
-;; Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005, 2006
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Steve Fisk <fisk@bowdoin.edu>
--- a/lisp/calendar/cal-x.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/cal-x.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cal-x.el --- calendar windows in dedicated frames in X
 
-;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004, 2005, 2006
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <kifer@cs.sunysb.edu>
--- a/lisp/calendar/diary-lib.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/diary-lib.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; diary-lib.el --- diary functions
 
 ;; Copyright (C) 1989, 1990, 1992, 1993, 1994, 1995, 2001, 2002, 2003,
-;;   2004, 2005  Free Software Foundation, Inc.
+;;   2004, 2005, 2006  Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
 ;; Maintainer: Glenn Morris <rgm@gnu.org>
--- a/lisp/calendar/holidays.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/holidays.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; holidays.el --- holiday functions for the calendar package
 
 ;; Copyright (C) 1989, 1990, 1992, 1993, 1994, 1997, 2001, 2002, 2003,
-;;   2004, 2005  Free Software Foundation, Inc.
+;;   2004, 2005, 2006  Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
 ;; Maintainer: Glenn Morris <rgm@gnu.org>
--- a/lisp/calendar/icalendar.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/icalendar.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; icalendar.el --- iCalendar implementation -*-coding: utf-8 -*-
 
-;; Copyright (C) 2002, 2003, 2004, 2005  Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 
 ;; Author:         Ulf Jasper <ulf.jasper@web.de>
 ;; Created:        August 2002
--- a/lisp/calendar/lunar.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/lunar.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; lunar.el --- calendar functions for phases of the moon
 
-;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005
-;;   Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005,
+;;   2006  Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
 ;; Maintainer: Glenn Morris <rgm@gnu.org>
--- a/lisp/calendar/parse-time.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/parse-time.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; parse-time.el --- parsing time strings
 
-;; Copyright (C) 1996, 2000, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1996, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Erik Naggum <erik@naggum.no>
--- a/lisp/calendar/solar.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/solar.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; solar.el --- calendar functions for solar events
 
-;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005
-;;   Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005,
+;;   2006  Free Software Foundation, Inc.
 
 ;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
 ;;	Denis B. Roegel <Denis.Roegel@loria.fr>
--- a/lisp/calendar/time-date.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/time-date.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; time-date.el --- Date and time handling functions
 
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
--- a/lisp/calendar/timeclock.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/timeclock.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; timeclock.el --- mode for keeping track of how much you work
 
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 ;;   Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <johnw@gnu.org>
--- a/lisp/calendar/todo-mode.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/calendar/todo-mode.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; todo-mode.el --- major mode for editing TODO list files
 
-;; Copyright (C) 1997, 1999, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1997, 1999, 2001, 2002, 2003, 2004, 2005, 2006
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Oliver Seidel <os10000@seidel-space.de>
--- a/lisp/desktop.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/desktop.el	Sat Feb 11 00:11:19 2006 +0000
@@ -57,17 +57,17 @@
 ;; are supplied to handle special major and minor modes respectively.
 ;; `desktop-buffer-mode-handlers' is an alist of major mode specific functions
 ;; to restore a desktop buffer. Elements must have the form
-;; 
+;;
 ;;    (MAJOR-MODE . RESTORE-BUFFER-FUNCTION).
-;; 
+;;
 ;; Functions listed are called by `desktop-create-buffer' when `desktop-read'
 ;; evaluates the desktop file. Buffers with a major mode not specified here,
 ;; are restored by the default handler `desktop-restore-file-buffer'.
 ;; `desktop-minor-mode-handlers' is an alist of functions to restore
 ;; non-standard minor modes.  Elements must have the form
-;; 
+;;
 ;;    (MINOR-MODE . RESTORE-FUNCTION).
-;; 
+;;
 ;; Functions are called by `desktop-create-buffer' to restore minor modes.
 ;; Minor modes not specified here, are restored by the standard minor mode
 ;; function.  If you write a module that defines a major or minor mode that
@@ -661,7 +661,7 @@
 (defun desktop-outvar (varspec)
   "Output a setq statement for variable VAR to the desktop file.
 The argument VARSPEC may be the variable name VAR (a symbol),
-or a cons cell of the form  (VAR . MAX-SIZE),
+or a cons cell of the form (VAR . MAX-SIZE),
 which means to truncate VAR's value to at most MAX-SIZE elements
 \(if the value is a list) before saving the value."
   (let (var size)
@@ -684,7 +684,8 @@
 (defun desktop-save-buffer-p (filename bufname mode &rest dummy)
   "Return t if buffer should have its state saved in the desktop file.
 FILENAME is the visited file name, BUFNAME is the buffer name, and
-MODE is the major mode."
+MODE is the major mode.
+\n\(fn FILENAME BUFNAME MODE)"
   (let ((case-fold-search nil))
     (and (not (string-match desktop-buffers-not-to-save bufname))
          (not (memq mode desktop-modes-not-to-save))
--- a/lisp/dired-x.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/dired-x.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1027,11 +1027,11 @@
                   " " dired-guess-shell-znew-switches))
 
    ;; The following four extensions are useful with dired-man ("N" key)
-   (list "\\.[0-9]$" '(progn (require 'man)
+   (list "\\.\\(?:[0-9]\\|man\\)$" '(progn (require 'man)
                              (if (Man-support-local-filenames)
                                  "man -l"
                                "cat * | tbl | nroff -man -h")))
-   (list "\\.[0-9]\\.g?z$" '(progn (require 'man)
+   (list "\\.\\(?:[0-9]\\|man\\)\\.g?z$" '(progn (require 'man)
                                    (if (Man-support-local-filenames)
                                        "man -l"
                                      "gunzip -qc * | tbl | nroff -man -h"))
--- a/lisp/frame.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/frame.el	Sat Feb 11 00:11:19 2006 +0000
@@ -695,7 +695,7 @@
     (select-frame frame)
     (raise-frame frame)
     ;; Ensure, if possible, that frame gets input focus.
-    (cond ((eq window-system 'x)
+    (cond ((memq window-system '(x mac))
 	   (x-focus-frame frame))
 	  ((eq window-system 'w32)
 	   (w32-focus-frame frame)))
--- a/lisp/gnus/ChangeLog	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/gnus/ChangeLog	Sat Feb 11 00:11:19 2006 +0000
@@ -1,3 +1,41 @@
+2006-02-10  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus.el: Remove bogus comment.
+
+2006-02-09  Daiki Ueno  <ueno@unixuser.org>
+
+	* pgg-gpg.el (pgg-gpg-encrypt-region): Don't convert line-endings
+	in elisp.
+	(pgg-gpg-encrypt-symmetric-region): Ditto.
+	(pgg-gpg-sign-region): Ditto.
+
+	* pgg-def.el (pgg-text-mode): New variable.
+
+	* mml2015.el (mml2015-pgg-sign): Enable pgg-text-mode.
+	(mml2015-pgg-encrypt): Ditto.
+
+	* mml1991.el (mml1991-pgg-sign): Enable pgg-text-mode.
+	(mml1991-pgg-encrypt): Ditto.
+
+2006-02-08  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nnfolder.el (nnfolder-insert-newsgroup-line): Use
+	message-make-date instead of current-time-string.
+
+	* mm-view.el (mm-inline-message): Don't set gnus-newsgroup-charset
+	to gnus-decoded which mm-uu might set.
+
+2006-02-08  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2231.el (rfc2231-parse-string): Sort segmented parameters;
+	don't decode quoted parameters; remove misimported Emacs code.
+	Suggested by ARISAWA Akihiro <ari@mbf.ocn.ne.jp>.
+	(rfc2231-decode-encoded-string): Don't use split-string which
+	behaves differently according to Emacs version; use
+	mm-decode-coding-region to convert charset to coding-system.
+	Suggested by ARISAWA Akihiro <ari@mbf.ocn.ne.jp>.
+	(rfc2231-encode-string): Remove misimported Emacs code.
+
 2006-02-07  Katsumi Yamaoka  <yamaoka@jpl.org>
 
 	* gnus-art.el (article-decode-charset): Don't use ignore-errors
@@ -50,7 +88,7 @@
 
 	* gnus-util.el (gnus-error): Describe `args'.
 
-2006-02-03  Andreas Seltenreich <uwi7@stud.uni-karlsruhe.de>
+2006-02-03  Andreas Seltenreich  <uwi7@stud.uni-karlsruhe.de>
 
 	* nnweb.el (nnweb-request-group): Avoid growing overview files.
 
@@ -67,7 +105,7 @@
 	* mml.el (mml-generate-mime-1): Correct the order of inline signed
 	parts.
 
-2006-01-31  Andreas Seltenreich <uwi7@stud.uni-karlsruhe.de>
+2006-01-31  Andreas Seltenreich  <uwi7@stud.uni-karlsruhe.de>
 
 	* nnweb.el (nnweb-group-alist): Use defvar instead of defvoo,
 	there's only one active file for all servers.
@@ -108,7 +146,7 @@
 
 	* nnweb.el (nnweb-google-parse-1): Clarify some comments.
 
-2006-01-30  Andreas Seltenreich <uwi7@stud.uni-karlsruhe.de>
+2006-01-30  Andreas Seltenreich  <uwi7@stud.uni-karlsruhe.de>
 
 	* nnweb.el (nnweb-type-definition, nnweb-google-parse-1)
 	(nnweb-google-create-mapping, nnweb-google-search): Adapt to
@@ -466,6 +504,98 @@
 	as a buffer-local variable.  This avoids creating truncated
 	dribble files as a result of a hang up, eg.
 
+2005-11-04 Ken Manheimer  <ken.manheimer@gmail.com>
+
+	* 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'
+	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
+	pgg-add-passphrase-to-cache function.
+
+	* 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'
+	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
+	function.
+
+2005-10-29  Ken Manheimer  <ken.manheimer@gmail.com>
+
+	* pgg-gpg.el (pgg-gpg-select-matching-key): Fix: look at the right
+	part of the decoded armor to find the key-identifier.
+	(pgg-gpg-lookup-key-owner): New function to return the
+	human-readable identifier of a key owner.
+	(pgg-gpg-lookup-id-from-key-owner): Make it easy to identify the
+	key itself.
+	(pgg-gpg-decrypt-region): Prompt with the key owner (rather than
+	the key value) if we have a key and can match it against a secret
+	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-decrypt-region.
+	(pgg-pending-timers): A new hash for tracking the passphrase cache
+	timers, so that new ones supercede old ones.
+	(pgg-add-passphrase-to-cache): Rename from
+	`pgg-add-passphrase-cache' to reduce confusion (all callers
+	changed).  Modified to cancel old timers when new ones are added.
+	(pgg-remove-passphrase-from-cache): Rename from
+	`pgg-remove-passphrase-cache' to reduce confusion (all callers
+	changed).  Modified to cancel old timers when their keys are
+	removed from the cache.
+	(pgg-cancel-timer): In Emacs, an alias for cancel-timer; in
+	XEmacs, an indirection to delete-itimer.
+	(pgg-read-passphrase-from-cache, pgg-read-passphrase):
+	Extract pgg-read-passphrase-from-cache from pgg-read-passphrase so
+	users can only check cache without risk of prompting.  Correct bug in
+	notruncate behavior.
+	(pgg-read-passphrase-from-cache, pgg-read-passphrase)
+	(pgg-add-passphrase-cache, pgg-remove-passphrase-cache):
+	Add informative docstrings.
+	(pgg-decrypt): Convey provided passphrase in subordinate call to
+	pgg-decrypt-region.
+
+2005-10-20  Ken Manheimer  <ken.manheimer+emacs@gmail.com>
+
+	* pgg.el (pgg-encrypt-region, pgg-encrypt-symmetric-region)
+	(pgg-encrypt-symmetric, pgg-encrypt, pgg-decrypt-region)
+	(pgg-decrypt, pgg-sign-region, pgg-sign): Add optional
+	'passphrase' argument, so the passphrase can be managed externally
+	and then passed in to the system.
+
+	* pgg.el (pgg-read-passphrase, pgg-add-passphrase-cache)
+	(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'
+	argument to all these routines, so the passphrase can be managed
+	externally and passed in to the system.
+
+	* pgg-gpg.el (pgg-gpg-possibly-cache-passphrase): Add optional
+	'notruncate' argument, so the passphrase cache can be used
+	reliably with identifiers besides a pgp packet's key id.
+
+2005-10-29  Sascha Wilde  <swilde@sha-bang.de>
+
+	* pgg-gpg.el (pgg-gpg-encrypt-symmetric-region): New function for
+	symmetric encryption.
+	(pgg-gpg-symmetric-key-p): New function to check for an symmetric
+	encrypted session key.
+	(pgg-gpg-decrypt-region): When decrypting a symmetric encrypted
+	message ask for the passphrase in a proper way.
+
+	* pgg.el (pgg-encrypt-symmetric, pgg-encrypt-symmetric-region):
+	New user commands for symmetric encryption.
+
 2005-11-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* gnus-delay.el (gnus-delay-group): Don't autoload.
--- a/lisp/gnus/gnus.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/gnus/gnus.el	Sat Feb 11 00:11:19 2006 +0000
@@ -4257,9 +4257,6 @@
 		       (delete-frame gnus-other-frame-object))
 		     (setq gnus-other-frame-object nil)))))))
 
-;;(setq thing ?				; this is a comment
-;;      more 'yes)
-
 ;;;###autoload
 (defun gnus (&optional arg dont-connect slave)
   "Read network news.
--- a/lisp/gnus/mm-view.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/gnus/mm-view.el	Sat Feb 11 00:11:19 2006 +0000
@@ -486,7 +486,8 @@
 	      ;; disable prepare hook
 	      gnus-article-prepare-hook
 	      (gnus-newsgroup-charset
-	       (or charset gnus-newsgroup-charset)))
+	       (unless (eq charset 'gnus-decoded) ;; mm-uu might set it.
+		 (or charset gnus-newsgroup-charset))))
 	  (let ((gnus-original-article-buffer (mm-handle-buffer handle)))
 	    (run-hooks 'gnus-article-decode-hook))
 	  (gnus-article-prepare-display)
--- a/lisp/gnus/mml1991.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/gnus/mml1991.el	Sat Feb 11 00:11:19 2006 +0000
@@ -229,7 +229,8 @@
   (defvar pgg-output-buffer))
 
 (defun mml1991-pgg-sign (cont)
-  (let (headers cte)
+  (let ((pgg-text-mode t)
+	headers cte)
     ;; Don't sign headers.
     (goto-char (point-min))
     (while (not (looking-at "^$"))
@@ -261,7 +262,8 @@
     t))
 
 (defun mml1991-pgg-encrypt (cont &optional sign)
-  (let (cte)
+  (let ((pgg-text-mode t)
+	cte)
     ;; Strip MIME Content[^ ]: headers since it will be ASCII ARMOURED
     (goto-char (point-min))
     (while (looking-at "^Content[^ ]+:")
--- a/lisp/gnus/mml2015.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/gnus/mml2015.el	Sat Feb 11 00:11:19 2006 +0000
@@ -814,6 +814,7 @@
 	(boundary (mml-compute-boundary cont))
 	(pgg-default-user-id (or (message-options-get 'mml-sender)
 				 pgg-default-user-id))
+	(pgg-text-mode t)
 	entry)
     (unless (pgg-sign-region (point-min) (point-max))
       (pop-to-buffer mml2015-result-buffer)
@@ -841,6 +842,7 @@
 
 (defun mml2015-pgg-encrypt (cont &optional sign)
   (let ((pgg-errors-buffer mml2015-result-buffer)
+	(pgg-text-mode t)
 	(boundary (mml-compute-boundary cont)))
     (unless (pgg-encrypt-region (point-min) (point-max)
 				(split-string
--- a/lisp/gnus/nnfolder.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/gnus/nnfolder.el	Sat Feb 11 00:11:19 2006 +0000
@@ -826,7 +826,7 @@
       (insert "\n"))
     (forward-char -1)
     (insert (format (concat nnfolder-article-marker "%d   %s\n")
-		    (cdr group-art) (current-time-string)))))
+		    (cdr group-art) (message-make-date)))))
 
 (defun nnfolder-active-number (group)
   ;; Find the next article number in GROUP.
--- a/lisp/gnus/rfc2231.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/gnus/rfc2231.el	Sat Feb 11 00:11:19 2006 +0000
@@ -52,14 +52,8 @@
     (let ((ttoken (ietf-drums-token-to-list ietf-drums-text-token))
 	  (stoken (ietf-drums-token-to-list ietf-drums-tspecials))
 	  (ntoken (ietf-drums-token-to-list "0-9"))
-	  (prev-value "")
-	  display-name mailbox c display-string parameters
-	  attribute value type subtype number encoded
-	  prev-attribute prev-encoded)
-      ;; Some mailer (e.g. Thunderbird 1.5) doesn't terminate each
-      ;; line with semicolon when folding a long parameter value.
-      (while (string-match "\\([^\t\n\r ;]\\)[\t ]*\r?\n[\t ]+" string)
-	(setq string (replace-match "\\1;\n " nil nil string)))
+	  c type attribute encoded number prev-attribute vals
+	  prev-encoded parameters value)
       (ietf-drums-init (mail-header-remove-whitespace
 			(mail-header-remove-comments string)))
       (let ((table (copy-syntax-table ietf-drums-syntax-table)))
@@ -97,31 +91,36 @@
 			       (point) (progn (forward-sexp 1) (point))))))
 		    (error "Invalid header: %s" string))
 		  (setq c (char-after))
-		  (when (eq c ?*)
-		    (forward-char 1)
-		    (setq c (char-after))
-		    (if (not (memq c ntoken))
-			(setq encoded t
-			      number nil)
-		      (setq number
-			    (string-to-number
-			     (buffer-substring
-			      (point) (progn (forward-sexp 1) (point)))))
-		      (setq c (char-after))
-		      (when (eq c ?*)
-			(setq encoded t)
+		  (if (eq c ?*)
+		      (progn
 			(forward-char 1)
-			(setq c (char-after)))))
+			(setq c (char-after))
+			(if (not (memq c ntoken))
+			    (setq encoded t
+				  number nil)
+			  (setq number
+				(string-to-number
+				 (buffer-substring
+				  (point) (progn (forward-sexp 1) (point)))))
+			  (setq c (char-after))
+			  (when (eq c ?*)
+			    (setq encoded t)
+			    (forward-char 1)
+			    (setq c (char-after)))))
+		    (setq number nil
+			  encoded nil))
 		  ;; See if we have any previous continuations.
 		  (when (and prev-attribute
 			     (not (eq prev-attribute attribute)))
+		    (setq vals
+			  (mapconcat 'cdr (sort vals 'car-less-than-car) ""))
 		    (push (cons prev-attribute
 				(if prev-encoded
-				    (rfc2231-decode-encoded-string prev-value)
-				  prev-value))
+				    (rfc2231-decode-encoded-string vals)
+				  vals))
 			  parameters)
 		    (setq prev-attribute nil
-			  prev-value ""
+			  vals nil
 			  prev-encoded nil))
 		  (unless (eq c ?=)
 		    (error "Invalid header: %s" string))
@@ -132,7 +131,10 @@
 		    (setq value (buffer-substring (1+ (point))
 						  (progn
 						    (forward-sexp 1)
-						    (1- (point))))))
+						    (1- (point)))))
+		    (when encoded
+		      (setq value (mapconcat (lambda (c) (format "%%%02x" c))
+					     value ""))))
 		   ((and (or (memq c ttoken)
 			     ;; EXTENSION: Support non-ascii chars.
 			     (> c ?\177))
@@ -153,9 +155,10 @@
 		   (t
 		    (error "Invalid header: %s" string)))
 		  (if number
-		      (setq prev-attribute attribute
-			    prev-value (concat prev-value value)
-			    prev-encoded encoded)
+		      (progn
+			(push (cons number value) vals)
+			(setq prev-attribute attribute
+			      prev-encoded encoded))
 		    (push (cons attribute
 				(if encoded
 				    (rfc2231-decode-encoded-string value)
@@ -164,10 +167,11 @@
 
 	      ;; Take care of any final continuations.
 	      (when prev-attribute
+		(setq vals (mapconcat 'cdr (sort vals 'car-less-than-car) ""))
 		(push (cons prev-attribute
 			    (if prev-encoded
-				(rfc2231-decode-encoded-string prev-value)
-			      prev-value))
+				(rfc2231-decode-encoded-string vals)
+			      vals))
 		      parameters)))
 	  (error
 	   (setq parameters nil)
@@ -181,25 +185,27 @@
 
 (defun rfc2231-decode-encoded-string (string)
   "Decode an RFC2231-encoded string.
-These look like \"us-ascii'en-us'This%20is%20%2A%2A%2Afun%2A%2A%2A\"."
-  (with-temp-buffer
-    (let ((elems (split-string string "'")))
-      ;; The encoded string may contain zero to two single-quote
-      ;; marks.  This should give us the encoded word stripped
-      ;; of any preceding values.
-      (insert (car (last elems)))
+These look like:
+ \"us-ascii'en-us'This%20is%20%2A%2A%2Afun%2A%2A%2A\",
+ \"us-ascii''This%20is%20%2A%2A%2Afun%2A%2A%2A\",
+ \"'en-us'This%20is%20%2A%2A%2Afun%2A%2A%2A\",
+ \"''This%20is%20%2A%2A%2Afun%2A%2A%2A\", or
+ \"This is ***fun***\"."
+  (string-match "\\`\\(\\([^']+\\)?'\\([^']+\\)?'\\)?\\(.+\\)" string)
+  (let ((coding-system (mm-charset-to-coding-system (match-string 2 string)))
+	;;(language (match-string 3 string))
+	(value (match-string 4 string)))
+    (mm-with-multibyte-buffer
+      (insert value)
       (goto-char (point-min))
       (while (search-forward "%" nil t)
 	(insert
 	 (prog1
 	     (string-to-number (buffer-substring (point) (+ (point) 2)) 16)
 	   (delete-region (1- (point)) (+ (point) 2)))))
-      ;; Encode using the charset, if any.
-      (when (and (mm-multibyte-p)
-		 (> (length elems) 1)
-		 (not (equal (intern (downcase (car elems))) 'us-ascii)))
-	(mm-decode-coding-region (point-min) (point-max)
-				 (intern (downcase (car elems)))))
+      ;; Decode using the charset, if any.
+      (unless (memq coding-system '(nil ascii))
+	(mm-decode-coding-region (point-min) (point-max) coding-system))
       (buffer-string))))
 
 (defun rfc2231-encode-string (param value)
@@ -263,12 +269,12 @@
 	    (forward-line 1))))
        (spacep
 	(goto-char (point-min))
-	(insert "\n " param "=\"")
+	(insert param "=\"")
 	(goto-char (point-max))
 	(insert "\""))
        (t
 	(goto-char (point-min))
-	(insert "\n " param "=")))
+	(insert param "=")))
       (buffer-string))))
 
 (provide 'rfc2231)
--- a/lisp/hilit-chg.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/hilit-chg.el	Sat Feb 11 00:11:19 2006 +0000
@@ -521,7 +521,7 @@
 This allows you to manually remove highlighting from uninteresting changes."
   (interactive "r")
   (let ((after-change-functions nil))
-    (remove-text-properties beg end  '(hilit-chg nil))
+    (remove-text-properties beg end '(hilit-chg nil))
     (hilit-chg-fixup beg end)))
 
 (defun hilit-chg-set-face-on-change (beg end leng-before
@@ -662,7 +662,7 @@
 	      ;; an argument is given
 	      ((eq arg 'active)
 	       'active)
-	      ((eq arg  'passive)
+	      ((eq arg 'passive)
 	       'passive)
 	      ((> (prefix-numeric-value arg) 0)
 	       'active)
@@ -673,7 +673,6 @@
 	(if new-highlight-changes-mode
 	    ;; mode is turned on -- but may be passive
 	    (progn
-	      (add-to-list 'desktop-locals-to-save 'highlight-changes-mode)
 	      (hilit-chg-set new-highlight-changes-mode)
 	      (or was-on
 		  ;; run highlight-changes-enable-hook once
@@ -960,9 +959,9 @@
   ;; which calls this function as a hook
   (defvar x)  ;; placate the byte-compiler
   (defvar y)
-  (setq  e (current-buffer))
+  (setq e (current-buffer))
   (let ((n 0) extent p va vb a b)
-    (setq  x nil  y nil)    ;; x and y are bound by hilit-chg-get-diff-info
+    (setq x nil y nil)    ;; x and y are bound by hilit-chg-get-diff-info
     (while (< n ediff-number-of-differences)
       (ediff-make-fine-diffs n)
       (setq va (ediff-get-fine-diff-vector n 'A))
@@ -1085,7 +1084,7 @@
       (progn
 	(if (eq arg 'active)
 	    (setq highlight-changes-global-initial-state 'active)
-	  (if (eq arg  'passive)
+	  (if (eq arg 'passive)
 	      (setq highlight-changes-global-initial-state 'passive)))
 	(setq global-highlight-changes t)
 	(message "Turning ON Global Highlight Changes mode in %s state"
@@ -1131,7 +1130,7 @@
 	       (memq major-mode highlight-changes-global-modes)))
 	    (t
 	     (and
-	      (not (string-match "^[ *]"  (buffer-name)))
+	      (not (string-match "^[ *]" (buffer-name)))
 	      (buffer-file-name))))
 	  (progn
 	    (hilit-chg-set value)
@@ -1146,14 +1145,15 @@
 
 
 (defun hilit-chg-update-all-buffers (value)
-  (mapcar
+  (mapc
    (function (lambda (buffer)
 	       (with-current-buffer buffer
 		 (if value
 		     (hilit-chg-turn-on-maybe value)
 		   (hilit-chg-turn-off-maybe))
 		 )))
-   (buffer-list)))
+   (buffer-list))
+  nil)
 
 ;;;; Desktop support.
 
@@ -1165,6 +1165,8 @@
 (add-to-list 'desktop-minor-mode-handlers
              '(highlight-changes-mode . hilit-chg-desktop-restore))
 
+(add-to-list 'desktop-locals-to-save 'highlight-changes-mode)
+
 ;; ===================== debug ==================
 ;; For debug & test use:
 ;;
--- a/lisp/image-mode.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/image-mode.el	Sat Feb 11 00:11:19 2006 +0000
@@ -140,7 +140,8 @@
     (let* ((image
 	    (if (and (buffer-file-name)
 		     (not (buffer-modified-p)))
-		(create-image (buffer-file-name))
+		(progn (clear-image-cache)
+		       (create-image (buffer-file-name)))
 	      (create-image
 	       (string-make-unibyte
 		(buffer-substring-no-properties (point-min) (point-max)))
--- a/lisp/mh-e/ChangeLog	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/mh-e/ChangeLog	Sat Feb 11 00:11:19 2006 +0000
@@ -1,3 +1,22 @@
+2006-02-10  Bill Wohler  <wohler@newt.com>
+
+	* mh-search.el (mh-search): Wrap code in (block mh-search ...)
+	rather than use defun*. XEmacs cannot create a proper autoload for
+	a defun*.
+
+2006-02-09  Bill Wohler  <wohler@newt.com>
+
+	* mh-utils.el (mh-folder-list): Don't replace "/*$" with "/" since
+	that causes an infinite loop on XEmacs.
+
+	* mh-compat.el(mh-replace-regexp-in-string): Add missing regexp
+	argument.
+
+2006-02-08  Peter S Galbraith  <psg@debian.org>
+
+	* mh-e.el (mh-invisible-header-fields-internal): Added entries
+	"X-BrightmailFiltered:", "X-Brightmail-Tracker:" and "X-Hashcash"
+
 2006-02-04  Bill Wohler  <wohler@newt.com>
 
 	* mh-e.el (mh-inc-spool-list): Update example for Emacs 22 which
--- a/lisp/mh-e/mh-compat.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/mh-e/mh-compat.el	Sat Feb 11 00:11:19 2006 +0000
@@ -144,7 +144,7 @@
    (match-beginning num) (match-end num)))
 
 (mh-defun-compat mh-replace-regexp-in-string replace-regexp-in-string
-  (rep string &optional fixedcase literal subexp start)
+  (regexp rep string &optional fixedcase literal subexp start)
   "Replace REGEXP with REP everywhere in STRING and return result.
 This function is used by XEmacs that lacks `replace-regexp-in-string'.
 The function `replace-in-string' is used instead.
--- a/lisp/mh-e/mh-e.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/mh-e/mh-e.el	Sat Feb 11 00:11:19 2006 +0000
@@ -2306,6 +2306,8 @@
     "X-Authentication-Warning:"         ; sendmail
     "X-Beenthere:"                      ; Mailman mailing list manager
     "X-Bogosity:"                       ; bogofilter
+    "X-BrightmailFiltered:"             ; Brightmail
+    "X-Brightmail-Tracker:"             ; Brightmail
     "X-Bugzilla-*"                      ; Bugzilla
     "X-Complaints-To:"
     "X-ContentStamp:"                   ; NetZero
@@ -2333,6 +2335,7 @@
     "X-Habeas-SWE-7:"                   ; Spam
     "X-Habeas-SWE-8:"                   ; Spam
     "X-Habeas-SWE-9:"                   ; Spam
+    "X-Hashcash:"                       ; hashcash
     "X-Info:"                           ; NTMail
     "X-Juno-"                           ; Juno
     "X-List-Host:"                      ; Unknown mailing list managers
--- a/lisp/mh-e/mh-search.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/mh-e/mh-search.el	Sat Feb 11 00:11:19 2006 +0000
@@ -81,8 +81,8 @@
 ;;; MH-Folder Commands
 
 ;;;###mh-autoload
-(defun* mh-search (folder search-regexp
-                          &optional redo-search-flag window-config)
+(defun mh-search (folder search-regexp
+                         &optional redo-search-flag window-config)
   "Search your MH mail.
 
 This command helps you find messages in your entire corpus of
@@ -230,96 +230,98 @@
                   mh-search-regexp-builder)
              (current-window-configuration)
            nil)))
-  ;; Redoing a sequence search?
-  (when (and redo-search-flag mh-index-data mh-index-sequence-search-flag
-             (not mh-flists-called-flag))
-    (let ((mh-flists-called-flag t))
-      (apply #'mh-index-sequenced-messages mh-index-previous-search))
-    (return-from mh-search))
-  ;; We have fancy query parsing.
-  (when (symbolp search-regexp)
-    (mh-search-folder folder window-config)
-    (return-from mh-search))
-  ;; Begin search proper.
-  (mh-checksum-choose)
-  (let ((result-count 0)
-        (old-window-config (or window-config mh-previous-window-config))
-        (previous-search mh-index-previous-search)
-        (index-folder (format "%s/%s" mh-index-folder
-                              (mh-index-generate-pretty-name search-regexp))))
-    ;; Create a new folder for the search results or recreate the old one...
-    (if (and redo-search-flag mh-index-previous-search)
-        (let ((buffer-name (buffer-name (current-buffer))))
-          (mh-process-or-undo-commands buffer-name)
-          (save-excursion (mh-exec-cmd-quiet nil "rmf" buffer-name))
-          (mh-exec-cmd-quiet nil "folder" "-create" "-fast" buffer-name)
-          (setq index-folder buffer-name))
-      (setq index-folder (mh-index-new-folder index-folder search-regexp)))
+  (block mh-search
+    ;; Redoing a sequence search?
+    (when (and redo-search-flag mh-index-data mh-index-sequence-search-flag
+               (not mh-flists-called-flag))
+      (let ((mh-flists-called-flag t))
+        (apply #'mh-index-sequenced-messages mh-index-previous-search))
+      (return-from mh-search))
+    ;; We have fancy query parsing.
+    (when (symbolp search-regexp)
+      (mh-search-folder folder window-config)
+      (return-from mh-search))
+    ;; Begin search proper.
+    (mh-checksum-choose)
+    (let ((result-count 0)
+          (old-window-config (or window-config mh-previous-window-config))
+          (previous-search mh-index-previous-search)
+          (index-folder (format "%s/%s" mh-index-folder
+                                (mh-index-generate-pretty-name search-regexp))))
+      ;; Create a new folder for the search results or recreate the old one...
+      (if (and redo-search-flag mh-index-previous-search)
+          (let ((buffer-name (buffer-name (current-buffer))))
+            (mh-process-or-undo-commands buffer-name)
+            (save-excursion (mh-exec-cmd-quiet nil "rmf" buffer-name))
+            (mh-exec-cmd-quiet nil "folder" "-create" "-fast" buffer-name)
+            (setq index-folder buffer-name))
+        (setq index-folder (mh-index-new-folder index-folder search-regexp)))
 
-    (let ((folder-path (format "%s%s" mh-user-path (substring folder 1)))
-          (folder-results-map (make-hash-table :test #'equal))
-          (origin-map (make-hash-table :test #'equal)))
-      ;; Run search program...
-      (message "Executing %s... " mh-searcher)
-      (funcall mh-search-function folder-path search-regexp)
+      (let ((folder-path (format "%s%s" mh-user-path (substring folder 1)))
+            (folder-results-map (make-hash-table :test #'equal))
+            (origin-map (make-hash-table :test #'equal)))
+        ;; Run search program...
+        (message "Executing %s... " mh-searcher)
+        (funcall mh-search-function folder-path search-regexp)
 
-      ;; Parse searcher output.
-      (message "Processing %s output... " mh-searcher)
-      (goto-char (point-min))
-      (loop for next-result = (funcall mh-search-next-result-function)
-            while next-result
-            do (unless (eq next-result 'error)
-                 (unless (gethash (car next-result) folder-results-map)
-                   (setf (gethash (car next-result) folder-results-map)
-                         (make-hash-table :test #'equal)))
-                 (setf (gethash (cadr next-result)
-                                (gethash (car next-result) folder-results-map))
-                       t)))
+        ;; Parse searcher output.
+        (message "Processing %s output... " mh-searcher)
+        (goto-char (point-min))
+        (loop for next-result = (funcall mh-search-next-result-function)
+              while next-result
+              do (unless (eq next-result 'error)
+                   (unless (gethash (car next-result) folder-results-map)
+                     (setf (gethash (car next-result) folder-results-map)
+                           (make-hash-table :test #'equal)))
+                   (setf (gethash (cadr next-result)
+                                  (gethash (car next-result) folder-results-map))
+                         t)))
 
-      ;; Copy the search results over.
-      (maphash #'(lambda (folder msgs)
-                   (let ((cur (car (mh-translate-range folder "cur")))
-                         (msgs (sort (loop for msg being the hash-keys of msgs
-                                           collect msg)
-                                     #'<)))
-                     (mh-exec-cmd "refile" msgs "-src" folder
-                                  "-link" index-folder)
-                     ;; Restore cur to old value, that refile changed
-                     (when cur
-                       (mh-exec-cmd-quiet nil "mark" folder "-add" "-zero"
-                                          "-sequence" "cur" (format "%s" cur)))
-                     (loop for msg in msgs
-                           do (incf result-count)
-                           (setf (gethash result-count origin-map)
-                                 (cons folder msg)))))
-               folder-results-map)
+        ;; Copy the search results over.
+        (maphash #'(lambda (folder msgs)
+                     (let ((cur (car (mh-translate-range folder "cur")))
+                           (msgs (sort (loop for msg being the hash-keys of msgs
+                                             collect msg)
+                                       #'<)))
+                       (mh-exec-cmd "refile" msgs "-src" folder
+                                    "-link" index-folder)
+                       ;; Restore cur to old value, that refile changed
+                       (when cur
+                         (mh-exec-cmd-quiet nil "mark" folder "-add" "-zero"
+                                            "-sequence"
+                                            "cur" (format "%s" cur)))
+                       (loop for msg in msgs
+                             do (incf result-count)
+                             (setf (gethash result-count origin-map)
+                                   (cons folder msg)))))
+                 folder-results-map)
 
-      ;; Vist the results folder.
-      (mh-visit-folder index-folder () (list folder-results-map origin-map))
+        ;; Vist the results folder.
+        (mh-visit-folder index-folder () (list folder-results-map origin-map))
 
-      (goto-char (point-min))
-      (forward-line)
-      (mh-update-sequences)
-      (mh-recenter nil)
+        (goto-char (point-min))
+        (forward-line)
+        (mh-update-sequences)
+        (mh-recenter nil)
 
-      ;; Update the speedbar, if needed.
-      (when (mh-speed-flists-active-p)
-        (mh-speed-flists t mh-current-folder))
+        ;; Update the speedbar, if needed.
+        (when (mh-speed-flists-active-p)
+          (mh-speed-flists t mh-current-folder))
 
-      ;; Maintain history.
-      (when (or (and redo-search-flag previous-search) window-config)
-        (setq mh-previous-window-config old-window-config))
-      (setq mh-index-previous-search (list folder mh-searcher search-regexp))
+        ;; Maintain history.
+        (when (or (and redo-search-flag previous-search) window-config)
+          (setq mh-previous-window-config old-window-config))
+        (setq mh-index-previous-search (list folder mh-searcher search-regexp))
 
-      ;; Write out data to disk.
-      (unless mh-flists-called-flag (mh-index-write-data))
+        ;; Write out data to disk.
+        (unless mh-flists-called-flag (mh-index-write-data))
 
-      (message "%s found %s matches in %s folders"
-               (upcase-initials (symbol-name mh-searcher))
-               (loop for msg-hash being hash-values of mh-index-data
-                     sum (hash-table-count msg-hash))
-               (loop for msg-hash being hash-values of mh-index-data
-                     count (> (hash-table-count msg-hash) 0))))))
+        (message "%s found %s matches in %s folders"
+                 (upcase-initials (symbol-name mh-searcher))
+                 (loop for msg-hash being hash-values of mh-index-data
+                       sum (hash-table-count msg-hash))
+                 (loop for msg-hash being hash-values of mh-index-data
+                       count (> (hash-table-count msg-hash) 0)))))))
 
 ;; Shush compiler.
 (eval-when-compile (mh-do-in-xemacs (defvar pick-folder)))
--- a/lisp/mh-e/mh-utils.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/mh-e/mh-utils.el	Sat Feb 11 00:11:19 2006 +0000
@@ -516,13 +516,15 @@
 the sub-folders have not been explicitly viewed, then they will
 not be returned."
   (let ((folder-list))
-    ;; Normalize folder. Strip leading +. Add trailing slash. If no
-    ;; folder is specified, ensure it is nil to ensure we get the
-    ;; top-level folders; otherwise mh-sub-folders returns all the
-    ;; files in / if given an empty string or +.
+    ;; Normalize folder. Strip leading +. Add trailing slash (done in
+    ;; two steps to avoid infinite loops when replacing "/*$" with "/"
+    ;; in XEmacs). If no folder is specified, ensure it is nil to
+    ;; ensure we get the top-level folders; otherwise mh-sub-folders
+    ;; returns all the files in / if given an empty string or +.
     (when folder
       (setq folder (mh-replace-regexp-in-string "^\+" "" folder))
-      (setq folder (mh-replace-regexp-in-string "/*$" "/" folder))
+      (setq folder (mh-replace-regexp-in-string "/+$" "" folder))
+      (setq folder (concat folder "/"))
       (if (equal folder "")
         (setq folder nil)))
     (loop for f in (mh-sub-folders folder) do
--- a/lisp/mouse.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/mouse.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1036,13 +1036,13 @@
 					   (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,
+		  ;; If we rebind to mouse-2, 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))
+		    (select-window original-window)
 		    (setcar event 'mouse-2)
 		    ;; If this mouse click has never been done by
 		    ;; the user, it doesn't have the necessary
--- a/lisp/net/rcirc.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/net/rcirc.el	Sat Feb 11 00:11:19 2006 +0000
@@ -79,7 +79,7 @@
   :type 'string
   :group 'rcirc)
 
-(defcustom rcirc-startup-channels-alist nil
+(defcustom rcirc-startup-channels-alist '(("^irc.freenode.net$" "#emacs"))
   "Alist of channels to join at startup.
 Each element looks like (SERVER-REGEXP . CHANNEL-LIST)."
   :type '(alist :key-type string :value-type (repeat string))
@@ -111,11 +111,6 @@
   "If non-nil, ignore activity in this buffer.")
 (make-variable-buffer-local 'rcirc-ignore-buffer-activity-flag)
 
-(defcustom rcirc-ignore-all-activity-flag nil
-  "*Non-nil means do not indicate any activity in the modeline."
-  :type 'boolean
-  :group 'rcirc)
-
 (defcustom rcirc-time-format "%H:%M "
   "*Describes how timestamps are printed.
 Used as the first arg to `format-time-string'."
@@ -140,29 +135,42 @@
 		 (integer :tag "Number of lines"))
   :group 'rcirc)
 
-(defcustom rcirc-authinfo-file-name
-  "~/.rcirc-authinfo"
-  "File containing rcirc authentication passwords.
-The file consists of a single list, with each element itself a
-list with a SERVER-REGEXP string, a NICK-REGEXP string, a METHOD
-and the remaining method specific ARGUMENTS.  The valid METHOD
-symbols are `nickserv', `chanserv' and `bitlbee'.
+(defcustom rcirc-authinfo nil
+  "List of authentication passwords.
+Each element of the list is a list with a SERVER-REGEXP string
+and a method symbol followed by method specific arguments.
+
+The valid METHOD symbols are `nickserv', `chanserv' and
+`bitlbee'.
 
 The required ARGUMENTS for each METHOD symbol are:
-  `nickserv': PASSWORD
-  `chanserv': CHANNEL PASSWORD
-  `bitlbee': PASSWORD
+  `nickserv': NICK PASSWORD
+  `chanserv': NICK CHANNEL PASSWORD
+  `bitlbee': NICK PASSWORD
 
 Example:
- ((\"freenode\" \"bob\" nickserv \"p455w0rd\")
-  (\"freenode\" \"bob\" chanserv \"#bobland\" \"passwd99\")
-  (\"bitlbee\" \"robert\" bitlbee \"sekrit\"))"
-  :type 'string
+ ((\"freenode\" nickserv \"bob\" \"p455w0rd\")
+  (\"freenode\" chanserv \"bob\" \"#bobland\" \"passwd99\")
+  (\"bitlbee\" bitlbee \"robert\" \"sekrit\"))"
+  :type '(alist :key-type (string :tag "Server")
+		:value-type (choice (list :tag "NickServ"
+					  (const nickserv)
+					  (string :tag "Nick")
+					  (string :tag "Password"))
+				    (list :tag "ChanServ"
+					  (const chanserv)
+					  (string :tag "Nick")
+					  (string :tag "Channel")
+					  (string :tag "Password"))
+				    (list :tag "BitlBee"
+					  (const bitlbee)
+					  (string :tag "Nick")
+					  (string :tag "Password"))))
   :group 'rcirc)
 
-(defcustom rcirc-auto-authenticate-flag (file-readable-p rcirc-authinfo-file-name)
+(defcustom rcirc-auto-authenticate-flag t
   "*Non-nil means automatically send authentication string to server.
-See also `rcirc-authinfo-file-name'."
+See also `rcirc-authinfo'."
   :type 'boolean
   :group 'rcirc)
 
@@ -199,6 +207,11 @@
   :type 'hook
   :group 'rcirc)
 
+(defcustom rcirc-always-use-server-buffer-flag nil
+  "Non-nil means messages without a channel target will go to the server buffer."
+  :type 'boolean
+  :group 'rcirc)
+
 (defvar rcirc-prompt-start-marker nil)
 (defvar rcirc-prompt-end-marker nil)
 
@@ -238,37 +251,35 @@
 
 (defvar rcirc-startup-channels nil)
 ;;;###autoload
-(defun rcirc (&optional server port nick channels)
+(defun rcirc (arg)
   "Connect to IRC.
-
-If any of the the optional SERVER, PORT, NICK or CHANNELS are not
-supplied, they are taken from the variables `rcirc-server',
-`rcirc-port', `rcirc-nick', and `rcirc-startup-channels-alist',
-respectively."
-  (interactive (list (read-string "IRC Server: " rcirc-server)
-		     (read-string "IRC Port: " (number-to-string rcirc-port))
-		     (read-string "IRC Nick: " rcirc-nick)))
-  (or server (setq server rcirc-server))
-  (or port (setq port rcirc-port))
-  (or nick (setq nick rcirc-nick))
-  (or channels
-      (setq channels
-	    (if (interactive-p)
-		(split-string
-		 (read-string "Channels: "
-			      (mapconcat 'identity
-					 (rcirc-startup-channels server)
-					 " "))
-			 "[, ]+" t)
-	      (rcirc-startup-channels server))))
-  (or global-mode-string (setq global-mode-string '("")))
-  (and (not (memq 'rcirc-activity-string global-mode-string))
-       (setq global-mode-string
-	     (append global-mode-string '(rcirc-activity-string))))
-  (add-hook 'window-configuration-change-hook
-	    'rcirc-window-configuration-change)
-  (rcirc-connect server port nick rcirc-user-name rcirc-user-full-name
-		 channels))
+If ARG is non-nil, prompt for a server to connect to."
+  (interactive "P")
+  (if arg
+      (let* ((server (read-string "IRC Server: " rcirc-server))
+	     (port (read-string "IRC Port: " (number-to-string rcirc-port)))
+	     (nick (read-string "IRC Nick: " rcirc-nick))
+	     (channels (split-string
+			(read-string "IRC Channels: "
+				     (mapconcat 'identity
+						(rcirc-startup-channels server)
+						" "))
+			"[, ]+" t)))
+	(rcirc-connect server port nick rcirc-user-name rcirc-user-full-name
+		       channels))
+    ;; make new connection using defaults unless already connected to
+    ;; the default rcirc-server
+    (let ((default-server (default-value 'rcirc-server))
+	  connected)
+      (dolist (p (rcirc-process-list))
+	(when (string= default-server (process-name p))
+	  (setq connected p)))
+      (if (not connected)
+	  (rcirc-connect rcirc-server rcirc-port rcirc-nick
+			 rcirc-user-name rcirc-user-full-name
+			 (rcirc-startup-channels rcirc-server))
+	(switch-to-buffer (process-buffer connected))
+	(message "Connected to %s" rcirc-server)))))
 
 ;;;###autoload
 (defalias 'irc 'rcirc)
@@ -279,11 +290,9 @@
 (defvar rcirc-keepalive-timer nil)
 (defvar rcirc-last-server-message-time nil)
 (defun rcirc-connect (server port nick user-name full-name startup-channels)
-  "Return a connection to SERVER on PORT.
+  (add-hook 'window-configuration-change-hook
+	    'rcirc-window-configuration-change)
 
-User will identify using the values of NICK, USER-NAME and
-FULL-NAME.  The variable list of channel names in
-STARTUP-CHANNELS will automatically be joined on startup."
   (save-excursion
     (message "Connecting to %s..." server)
     (let* ((inhibit-eol-conversion)
@@ -377,13 +386,13 @@
     (rcirc-debug process (format "SENTINEL: %S %S\n" process sentinel))
     (with-rcirc-process-buffer process
       (dolist (buffer (cons nil (mapcar 'cdr rcirc-buffer-alist)))
-        (rcirc-print process "rcirc.el" "ERROR" buffer
-                     (format "%s: %s (%S)"
-                             (process-name process)
-                             sentinel
-                             (process-status process)) t)
-	;; remove the prompt from buffers
 	(with-current-buffer (or buffer (current-buffer))
+	  (rcirc-print process "rcirc.el" "ERROR" rcirc-target
+		       (format "%s: %s (%S)"
+			       (process-name process)
+			       sentinel
+			       (process-status process)) t)
+	  ;; remove the prompt from buffers
 	  (let ((inhibit-read-only t))
 	    (delete-region rcirc-prompt-start-marker
 			   rcirc-prompt-end-marker)))))
@@ -428,7 +437,8 @@
 
 (defun rcirc-process-server-response-1 (process text)
   (if (string-match "^\\(:\\([^ ]+\\) \\)?\\([^ ]+\\) \\(.+\\)$" text)
-      (let* ((sender (match-string 2 text))
+      (let* ((user (match-string 2 text))
+	     (sender (rcirc-user-nick user))
              (cmd (match-string 3 text))
              (args (match-string 4 text))
              (handler (intern-soft (concat "rcirc-handler-" cmd))))
@@ -487,12 +497,10 @@
                  text))
          (more (if oversize
                    (substring message rcirc-max-message-length))))
-    (rcirc-print process (rcirc-nick process) response
-		 (rcirc-get-buffer-create process target)
-		 text)
+    (rcirc-get-buffer-create process target)
+    (rcirc-print process (rcirc-nick process) response target text)
     (rcirc-send-string process (concat response " " target " :" text))
-    (if more
-        (rcirc-send-message process target more noticep))))
+    (when more (rcirc-send-message process target more noticep))))
 
 (defvar rcirc-input-ring nil)
 (defvar rcirc-input-ring-index 0)
@@ -582,10 +590,6 @@
 (define-key rcirc-mode-map (kbd "C-c C-s") 'rcirc-switch-to-server-buffer)
 (define-key rcirc-mode-map (kbd "C-c C-a") 'rcirc-jump-to-first-unread-line)
 
-(define-key global-map (kbd "C-c `") 'rcirc-next-active-buffer)
-(define-key global-map (kbd "C-c C-@") 'rcirc-next-active-buffer)
-(define-key global-map (kbd "C-c C-SPC") 'rcirc-next-active-buffer)
-
 (defvar rcirc-browse-url-map (make-sparse-keymap)
   "Keymap used for browsing URLs in `rcirc-mode'.")
 
@@ -730,8 +734,6 @@
 (defun rcirc-get-buffer (process target &optional server)
   "Return the buffer associated with the PROCESS and TARGET.
 
-If TARGET is nil, return the server buffer.
-
 If optional argument SERVER is non-nil, return the server buffer
 if there is no existing buffer for TARGET, otherwise return nil."
   (with-rcirc-process-buffer process
@@ -744,7 +746,11 @@
   "Return the buffer associated with the PROCESS and TARGET.
 Create the buffer if it doesn't exist."
   (let ((buffer (rcirc-get-buffer process target)))
-    (or buffer
+    (if buffer
+	(progn
+	  (when (not rcirc-target)
+	    (setq rcirc-target target))
+	  buffer)
 	;; create the buffer
 	(with-rcirc-process-buffer process
 	  (let ((new-buffer (get-buffer-create
@@ -781,36 +787,45 @@
 	  (delete-backward-char 1))
 	(let ((input (buffer-substring-no-properties
 		      rcirc-prompt-end-marker (point))))
-	  ;; process a /cmd
-	  (if (string-match "^/\\([^ ]+\\) ?\\(.*\\)$" input)
-	      (let* ((command (match-string 1 input))
-		     (fun (intern-soft (concat "rcirc-cmd-" command)))
-		     (args (match-string 2 input)))
-		(newline)
-		(with-current-buffer (current-buffer)
-		  (delete-region rcirc-prompt-end-marker (point))
-		  (if (string= command "me")
-		      (rcirc-print rcirc-process (rcirc-nick rcirc-process)
-				   "ACTION" (current-buffer) args)
-		    (rcirc-print rcirc-process (rcirc-nick rcirc-process)
-				 "COMMAND" (current-buffer) input))
-		  (set-marker rcirc-prompt-end-marker (point))
-		  (if (fboundp fun)
-		      (funcall fun args rcirc-process target)
-		    (rcirc-send-string rcirc-process
-				       (concat command " " args)))))
-	    ;; send message to server
-	    (if (not rcirc-target)
-		(message "Not joined")
-	      (delete-region rcirc-prompt-end-marker (point))
-	      (mapc (lambda (message)
-		      (rcirc-send-message rcirc-process target message))
-		    (split-string input "\n"))))
+	  (dolist (line (split-string input "\n"))
+	    (rcirc-process-input-line rcirc-process target line))
 	  ;; add to input-ring
 	  (save-excursion
 	    (ring-insert rcirc-input-ring input)
 	    (setq rcirc-input-ring-index 0)))))))
 
+(defun rcirc-process-input-line (process target line)
+  (if (string-match "^/\\([^ ]+\\) ?\\(.*\\)$" line)
+      (rcirc-process-command (match-string 1 line)
+			     (match-string 2 line)
+			     line)
+    (rcirc-process-message line)))
+
+(defun rcirc-process-message (line)
+  (if (not rcirc-target)
+      (message "Not joined")
+    (delete-region rcirc-prompt-end-marker (point))
+    (rcirc-send-message rcirc-process rcirc-target line)))
+
+(defun rcirc-process-command (command args line)
+  (if (eq (aref command 0) ?/)
+      ;; "//text" will send "/text" as a message
+      (rcirc-process-message (substring line 1))
+    (let* ((fun (intern-soft (concat "rcirc-cmd-" command))))
+      (newline)
+      (with-current-buffer (current-buffer)
+	(delete-region rcirc-prompt-end-marker (point))
+	(if (string= command "me")
+	    (rcirc-print rcirc-process (rcirc-nick rcirc-process)
+			 "ACTION" rcirc-target args)
+	  (rcirc-print rcirc-process (rcirc-nick rcirc-process)
+		       "COMMAND" rcirc-target line))
+	(set-marker rcirc-prompt-end-marker (point))
+	(if (fboundp fun)
+	    (funcall fun args rcirc-process rcirc-target)
+	  (rcirc-send-string rcirc-process
+			     (concat command " " args)))))))
+
 (defvar rcirc-parent-buffer nil)
 (defvar rcirc-window-configuration nil)
 (defun rcirc-edit-multiline ()
@@ -828,7 +843,8 @@
       (setq rcirc-parent-buffer parent)
       (setq rcirc-process process)
       (insert text)
-      (and (> pos 0) (goto-char pos)))))
+      (and (> pos 0) (goto-char pos))
+      (message "Type C-c C-c to return text to %s, or C-c C-k to cancel" parent))))
 
 (define-derived-mode rcirc-multiline-edit-mode
   text-mode "rcirc multi"
@@ -894,13 +910,15 @@
                          (t
                           (setq first "[" middle " " end "]")))
                    (concat first
-                           (rcirc-facify (rcirc-user-nick sender)
+                           (rcirc-facify (concat
+					  sender
+					  (when target (concat "," target)))
                                          (if (string= sender
                                                       (rcirc-nick process))
                                              'rcirc-my-nick
                                            'rcirc-other-nick))
-                           middle
-                           (rcirc-mangle-text process text)
+			   middle
+			   (rcirc-mangle-text process text)
                            end)))
                 ((string= response "COMMAND")
                  text)
@@ -914,31 +932,41 @@
 			  (rcirc-facify
 			   (concat
 			    (when (not (string= sender (rcirc-server process)))
-			      (concat (rcirc-user-nick sender) " "))
+			      (concat sender " "))
 			    (when (zerop (string-to-number response))
 			      (concat response " "))
 			    text)
 			   'rcirc-server)))))))
 
+(defun rcirc-target-buffer (process sender response target text)
+  "Return a buffer to print the server response."
+  (assert (not (bufferp target)))
+  (with-rcirc-process-buffer process
+    (cond ((not target)
+	   (if rcirc-always-use-server-buffer-flag
+	       (process-buffer process)
+	     (rcirc-get-any-buffer process)))
+	  ((not (rcirc-channel-p target))
+	   ;; message from another user
+	   (if (string= response "PRIVMSG")
+	       (rcirc-get-buffer-create process (if (string= sender rcirc-nick)
+						    target
+						  sender))
+	     (rcirc-get-buffer process target t)))
+	  ((or (rcirc-get-buffer process target)
+	       (rcirc-get-any-buffer process))))))
+
 (defvar rcirc-activity-type nil)
 (make-variable-buffer-local 'rcirc-activity-type)
 (defun rcirc-print (process sender response target text &optional activity)
   "Print TEXT in the buffer associated with TARGET.
 Format based on SENDER and RESPONSE.  If ACTIVITY is non-nil,
 record activity."
-  (unless (or (member (rcirc-user-nick sender) rcirc-ignore-list)
+  (unless (or (member sender rcirc-ignore-list)
 	      (member (with-syntax-table rcirc-nick-syntax-table
 			(when (string-match "^\\([^/]\\w*\\)[:,]" text)
 			  (match-string 1 text))) rcirc-ignore-list))
-    (let* ((buffer (cond ((bufferp target)
-			  target)
-			 ((not target)
-			  (rcirc-get-any-buffer process))
-			 ((not (rcirc-channel-p target))
-			  (rcirc-get-buffer-create process
-						   (rcirc-user-nick sender)))
-			 ((or (rcirc-get-buffer process target)
-			      (rcirc-get-any-buffer process)))))
+    (let* ((buffer (rcirc-target-buffer process sender response target text))
 	   (inhibit-read-only t))
       (with-current-buffer buffer
 	(let ((moving (= (point) rcirc-prompt-end-marker))
@@ -961,7 +989,7 @@
 	  (set-marker-insertion-type rcirc-prompt-start-marker t)
 	  (set-marker-insertion-type rcirc-prompt-end-marker t)
 	  (insert
-	   (rcirc-format-response-string process sender response target text)
+	   (rcirc-format-response-string process sender response nil text)
 	   (propertize "\n" 'hard t))
 	  (set-marker-insertion-type rcirc-prompt-start-marker nil)
 	  (set-marker-insertion-type rcirc-prompt-end-marker nil)
@@ -978,10 +1006,10 @@
 			     0)
 			   (cond ((or (string= response "PRIVMSG")
 				      (string= response "NOTICE"))
-				  (+ (length (rcirc-user-nick sender))
+				  (+ (length sender)
 				     2)) ; <>
 				 ((string= response "ACTION")
-				  (+ (length (rcirc-user-nick sender))
+				  (+ (length sender)
 				     1))	; [
 				 (t 3))		; ***
 			   1)
@@ -1056,17 +1084,17 @@
 (defun rcirc-join-channels (process channels)
   "Join CHANNELS."
   (save-window-excursion
-    (mapc (lambda (channel)
-            (with-rcirc-process-buffer process
-              (rcirc-cmd-join channel process)))
-          channels)))
+    (dolist (channel channels)
+      (with-rcirc-process-buffer process
+	(rcirc-cmd-join channel process)))))
 
 ;;; nick management
 (defun rcirc-user-nick (user)
   "Return the nick from USER.  Remove any non-nick junk."
-  (if (string-match "^[@%+]?\\([^! ]+\\)!?" (or user ""))
-      (match-string 1 user)
-    user))
+  (save-match-data
+    (if (string-match "^[@%+]?\\([^! ]+\\)!?" (or user ""))
+	(match-string 1 user)
+      user)))
 
 (defun rcirc-user-non-nick (user)
   "Return the non-nick portion of USER."
@@ -1076,17 +1104,15 @@
 
 (defun rcirc-nick-channels (process nick)
   "Return list of channels for NICK."
-  (let ((nick (rcirc-user-nick nick)))
-    (with-rcirc-process-buffer process
-      (mapcar (lambda (x) (car x))
-              (gethash nick rcirc-nick-table)))))
+  (with-rcirc-process-buffer process
+    (mapcar (lambda (x) (car x))
+	    (gethash nick rcirc-nick-table))))
 
 (defun rcirc-put-nick-channel (process nick channel)
   "Add CHANNEL to list associated with NICK."
   (with-rcirc-process-buffer process
-    (let* ((nick (rcirc-user-nick nick))
-           (chans (gethash nick rcirc-nick-table))
-           (record (assoc-string channel chans t)))
+    (let* ((chans (gethash nick rcirc-nick-table))
+	   (record (assoc-string channel chans t)))
       (if record
           (setcdr record (current-time))
         (puthash nick (cons (cons channel (current-time))
@@ -1101,8 +1127,7 @@
 (defun rcirc-remove-nick-channel (process nick channel)
   "Remove the CHANNEL from list associated with NICK."
   (with-rcirc-process-buffer process
-    (let* ((nick (rcirc-user-nick nick))
-           (chans (gethash nick rcirc-nick-table))
+    (let* ((chans (gethash nick rcirc-nick-table))
            (newchans
 	    ;; instead of assoc-string-delete-all:
 	    (let ((record (assoc-string channel chans t)))
@@ -1136,28 +1161,44 @@
 	    (delete nick rcirc-ignore-list))))
 
 ;;; activity tracking
+(defvar rcirc-track-minor-mode-map (make-sparse-keymap)
+  "Keymap for rcirc track minor mode.")
+
+(define-key rcirc-track-minor-mode-map (kbd "C-c `") 'rcirc-next-active-buffer)
+(define-key rcirc-track-minor-mode-map (kbd "C-c C-@") 'rcirc-next-active-buffer)
+(define-key rcirc-track-minor-mode-map (kbd "C-c C-SPC") 'rcirc-next-active-buffer)
+
+;;; FIXME: the code to insert `rcirc-activity-string' into
+;;; `global-mode-string' isn't called when the mode is activated by
+;;; customize.  I don't know how to set that up.
+(define-minor-mode rcirc-track-minor-mode
+  "Global minor mode for tracking activity in rcirc buffers."
+  :init-value nil
+  :lighter ""
+  :keymap rcirc-track-minor-mode-map
+  :global t
+  :group 'rcirc
+  (or global-mode-string (setq global-mode-string '("")))
+  ;; toggle the mode-line channel indicator
+  (if rcirc-track-minor-mode
+      (and (not (memq 'rcirc-activity-string global-mode-string))
+	   (setq global-mode-string
+		 (append global-mode-string '(rcirc-activity-string))))
+    (setq global-mode-string 
+	  (delete 'rcirc-activity-string global-mode-string))))
+
 (or (assq 'rcirc-ignore-buffer-activity-flag minor-mode-alist)
     (setq minor-mode-alist
           (cons '(rcirc-ignore-buffer-activity-flag " Ignore") minor-mode-alist)))
 
-(defun rcirc-toggle-ignore-buffer-activity (&optional all)
-  "Toggle the value of `rcirc-ignore-buffer-activity-flag'.
-If ALL is non-nil, instead toggle the value of
-`rcirc-ignore-all-activity-flag'."
-  (interactive "P")
-  (if all
-      (progn
-        (setq rcirc-ignore-all-activity-flag
-              (not rcirc-ignore-all-activity-flag))
-        (message (if rcirc-ignore-all-activity-flag
-		     "Hide all buffer activity"
-		   "Display buffer activity"))
-        (rcirc-update-activity-string))
-    (setq rcirc-ignore-buffer-activity-flag
-          (not rcirc-ignore-buffer-activity-flag))
-    (message (if rcirc-ignore-buffer-activity-flag
-		 "Ignore activity in this buffer"
-	       "Notice activity in this buffer")))
+(defun rcirc-toggle-ignore-buffer-activity ()
+  "Toggle the value of `rcirc-ignore-buffer-activity-flag'."
+  (interactive)
+  (setq rcirc-ignore-buffer-activity-flag
+	(not rcirc-ignore-buffer-activity-flag))
+  (message (if rcirc-ignore-buffer-activity-flag
+	       "Ignore activity in this buffer"
+	     "Notice activity in this buffer"))
   (force-mode-line-update))
 
 (defvar rcirc-switch-to-buffer-function 'switch-to-buffer
@@ -1229,21 +1270,18 @@
 (defun rcirc-update-activity-string ()
   "Update mode-line string."
   (setq rcirc-activity-string
-	(cond (rcirc-ignore-all-activity-flag
-	       " DND")
-	      ((not rcirc-activity)
-	       "")
-	      (t
-	       (concat " ["
-		       (mapconcat
-			(lambda (b)
-			  (let ((s (rcirc-short-buffer-name b)))
-			    (with-current-buffer b
-			      (if (not (eq rcirc-activity-type 'nick))
-				  s
-				(rcirc-facify s 'rcirc-mode-line-nick)))))
-			rcirc-activity ",")
-		       "]")))))
+	(if (not rcirc-activity)
+	       ""
+	  (concat " ["
+		  (mapconcat
+		   (lambda (b)
+		     (let ((s (rcirc-short-buffer-name b)))
+		       (with-current-buffer b
+			 (if (not (eq rcirc-activity-type 'nick))
+			     s
+			   (rcirc-facify s 'rcirc-mode-line-nick)))))
+		   rcirc-activity ",")
+		  "]"))))
 
 (defun rcirc-short-buffer-name (buffer)
   "Return a short name for BUFFER to use in the modeline indicator."
@@ -1488,23 +1526,22 @@
 nicks when no NICK is given.  When listing ignored nicks, the
 ones added to the list automatically are marked with an asterisk."
   (interactive "sToggle ignoring of nick: ")
-  (if (string= "" nick)
-      (rcirc-print process (rcirc-nick process) "NOTICE" target
-		   (mapconcat
-		    (lambda (nick)
-		      (concat nick
-			      (if (member nick rcirc-ignore-list-automatic)
-				  "*" "")))
-		    rcirc-ignore-list " "))
+  (when (not (string= "" nick))
     (if (member nick rcirc-ignore-list)
 	(setq rcirc-ignore-list (delete nick rcirc-ignore-list))
-      (setq rcirc-ignore-list (cons nick rcirc-ignore-list)))))
-
+      (setq rcirc-ignore-list (cons nick rcirc-ignore-list))))
+  (rcirc-print process (rcirc-nick process) "IGNORE" target 
+	       (mapconcat
+		(lambda (nick)
+		  (concat nick
+			  (if (member nick rcirc-ignore-list-automatic)
+			      "*" "")))
+		rcirc-ignore-list " ")))
 
 
 (defun rcirc-message-leader (sender face)
   "Return a string with SENDER propertized with FACE."
-  (rcirc-facify (concat "<" (rcirc-user-nick sender) "> ") face))
+  (rcirc-facify (concat "<" sender "> ") face))
 
 (defun rcirc-facify (string face)
   "Return a copy of STRING with FACE property added."
@@ -1518,8 +1555,8 @@
 	       "://"
 	       (1+ (char "a-zA-Z0-9_."))
 	       (optional ":" (1+ (char "0-9")))))
-      (1+ (char "-a-zA-Z0-9_=!?#$\@~`%&*+|\\/:;.,"))
-      (char "-a-zA-Z0-9_=!?#$\@~`%&*+|\\/:;"))
+      (1+ (char "-a-zA-Z0-9_=!?#$\@~`%&*+|\\/:;.,{}[]"))
+      (char "-a-zA-Z0-9_=#$\@~`%&*+|\\/:;{}[]"))
   "Regexp matching URLs.  Set to nil to disable URL features in rcirc.")
 
 (defun rcirc-browse-url (&optional arg)
@@ -1603,7 +1640,7 @@
 					'mouse-face 'highlight
 					'keymap rcirc-browse-url-map)
 				  string))
-	     (push (substring string start end) rcirc-urls))
+	     (push (substring-no-properties string start end) rcirc-urls))
 	   rcirc-url-regexp
 	   text))
   text)
@@ -1627,7 +1664,7 @@
 (defun rcirc-handler-PRIVMSG (process sender args text)
   (let ((target (if (rcirc-channel-p (car args))
                     (car args)
-                  (rcirc-user-nick sender)))
+                  sender))
         (message (or (cadr args) "")))
     (if (string-match "^\C-a\\(.*\\)\C-a$" message)
         (rcirc-handler-CTCP process target sender (match-string 1 message))
@@ -1650,25 +1687,21 @@
 			  (match-string 1 message))
 			 (sender
 			  (if (string= sender (rcirc-server process))
-			      (process-buffer process)
-			    (rcirc-user-nick sender))))
+			      nil	; server notice
+			    sender)))
                  message t))))
-    ;; do we need this:
-    ;;(and sender (rcirc-put-nick-channel process sender target))))
 
 (defun rcirc-handler-WALLOPS (process sender args text)
-  (let ((target (rcirc-user-nick sender)))
-    (rcirc-print process sender "WALLOPS" target (car args) t)))
+  (rcirc-print process sender "WALLOPS" sender (car args) t))
 
 (defun rcirc-handler-JOIN (process sender args text)
-  (let ((channel (car args))
-        (nick (rcirc-user-nick sender)))
+  (let ((channel (car args)))
     (rcirc-get-buffer-create process channel)
     (rcirc-print process sender "JOIN" channel "")
 
     ;; print in private chat buffer if it exists
-    (when (rcirc-get-buffer rcirc-process nick)
-      (rcirc-print process sender "JOIN" nick channel))
+    (when (rcirc-get-buffer rcirc-process sender)
+      (rcirc-print process sender "JOIN" sender channel))
 
     (rcirc-put-nick-channel process sender channel)))
 
@@ -1695,9 +1728,9 @@
 	  (setq rcirc-target nil))))))
 
 (defun rcirc-handler-PART (process sender args text)
-  (rcirc-ignore-update-automatic (rcirc-user-nick sender))
+  (rcirc-ignore-update-automatic sender)
   (rcirc-handler-PART-or-KICK process "PART"
-                              (car args) sender (rcirc-user-nick sender)
+                              (car args) sender sender
                               (cadr args)))
 
 (defun rcirc-handler-KICK (process sender args text)
@@ -1705,21 +1738,19 @@
                               (caddr args)))
 
 (defun rcirc-handler-QUIT (process sender args text)
-  (rcirc-ignore-update-automatic (rcirc-user-nick sender))
-  (let ((nick (rcirc-user-nick sender)))
-    (mapc (lambda (channel)
-            (rcirc-print process sender "QUIT" channel (apply 'concat args)))
-          (rcirc-nick-channels process nick))
+  (rcirc-ignore-update-automatic sender)
+  (mapc (lambda (channel)
+	  (rcirc-print process sender "QUIT" channel (apply 'concat args)))
+	(rcirc-nick-channels process sender))
 
-    ;; print in private chat buffer if it exists
-    (let ((buffer (rcirc-get-buffer rcirc-process nick)))
-      (when buffer
-	(rcirc-print process sender "QUIT" buffer (apply 'concat args))))
+  ;; print in private chat buffer if it exists
+  (when (rcirc-get-buffer rcirc-process sender)
+    (rcirc-print process sender "QUIT" sender (apply 'concat args)))
 
-    (rcirc-nick-remove process nick)))
+  (rcirc-nick-remove process sender))
 
 (defun rcirc-handler-NICK (process sender args text)
-  (let* ((old-nick (rcirc-user-nick sender))
+  (let* ((old-nick sender)
          (new-nick (car args))
          (channels (rcirc-nick-channels process old-nick)))
     ;; update list of ignored nicks
@@ -1796,9 +1827,8 @@
 
     ;; print in private chat buffers if they exist
     (mapc (lambda (nick)
-	    (let ((existing-buffer (rcirc-get-buffer process nick)))
-	      (when existing-buffer
-		(rcirc-print process sender "MODE" existing-buffer msg))))
+	    (when (rcirc-get-buffer process nick)
+	      (rcirc-print process sender "MODE" nick msg)))
 	  (cddr args))))
 
 (defun rcirc-get-temp-buffer-create (process channel)
@@ -1834,40 +1864,35 @@
 
 (defun rcirc-authenticate ()
   "Send authentication to process associated with current buffer.
-Passwords are read from `rcirc-authinfo-file-name' (which see)."
+Passwords are stored in `rcirc-authinfo' (which see)."
   (interactive)
-  (let ((password-alist
-         (with-temp-buffer
-           (insert-file-contents-literally rcirc-authinfo-file-name)
-           (goto-char (point-min))
-           (read (current-buffer)))))
-    (with-rcirc-process-buffer rcirc-process
-      (dolist (i password-alist)
-        (let ((server (car i))
-              (nick (cadr i))
-              (method (caddr i))
-              (args (cdddr i)))
-          (when (and (string-match server rcirc-server)
-                     (string-match nick rcirc-nick))
-            (cond ((equal method 'nickserv)
-                   (rcirc-send-string
-                    rcirc-process
-                    (concat
-                     "PRIVMSG nickserv :identify "
-		     (car args))))
-                  ((equal method 'chanserv)
-                   (rcirc-send-string
-                    rcirc-process
-                    (concat
-                     "PRIVMSG chanserv :identify "
-		     (car args) " " (cadr args))))
-                  ((equal method 'bitlbee)
-                   (rcirc-send-string
-                    rcirc-process
-                    (concat "PRIVMSG #bitlbee :identify " (car args))))
-                  (t
-                   (message "No %S authentication method defined"
-			    method)))))))))
+  (with-rcirc-process-buffer rcirc-process
+    (dolist (i rcirc-authinfo)
+      (let ((server (car i))
+	    (nick (caddr i))
+	    (method (cadr i))
+	    (args (cdddr i)))
+	(when (and (string-match server rcirc-server)
+		   (string-match nick rcirc-nick))
+	  (cond ((equal method 'nickserv)
+		 (rcirc-send-string
+		  rcirc-process
+		  (concat
+		   "PRIVMSG nickserv :identify "
+		   (car args))))
+		((equal method 'chanserv)
+		 (rcirc-send-string
+		  rcirc-process
+		  (concat
+		   "PRIVMSG chanserv :identify "
+		   (cadr args) " " (car args))))
+		((equal method 'bitlbee)
+		 (rcirc-send-string
+		  rcirc-process
+		  (concat "PRIVMSG &bitlbee :identify " (car args))))
+		(t
+		 (message "No %S authentication method defined"
+			  method))))))))
 
 (defun rcirc-handler-INVITE (process sender args text)
   (rcirc-print process sender "INVITE" nil (mapconcat 'identity args " ") t))
@@ -1879,22 +1904,19 @@
   (if (string-match "^\\([^ ]+\\) *\\(.*\\)$" text)
       (let* ((request (upcase (match-string 1 text)))
              (args (match-string 2 text))
-             (nick (rcirc-user-nick sender))
              (handler (intern-soft (concat "rcirc-handler-ctcp-" request))))
         (if (not (fboundp handler))
-            (rcirc-print process sender "ERROR"
-			 (rcirc-get-buffer process target)
-                         (format "%s sent unsupported ctcp: %s" nick text)
+            (rcirc-print process sender "ERROR" target
+                         (format "%s sent unsupported ctcp: %s" sender text)
 			 t)
           (funcall handler process target sender args)
           (if (not (string= request "ACTION"))
-              (rcirc-print process sender "CTCP"
-			   (rcirc-get-buffer process target)
+              (rcirc-print process sender "CTCP" target
 			   (format "%s" text) t))))))
 
 (defun rcirc-handler-ctcp-VERSION (process target sender args)
   (rcirc-send-string process
-                     (concat "NOTICE " (rcirc-user-nick sender)
+                     (concat "NOTICE " sender
                              " :\C-aVERSION " rcirc-id-string
                              "\C-a")))
 
@@ -1903,7 +1925,7 @@
 
 (defun rcirc-handler-ctcp-TIME (process target sender args)
   (rcirc-send-string process
-                     (concat "NOTICE " (rcirc-user-nick sender)
+                     (concat "NOTICE " sender
                              " :\C-aTIME " (current-time-string) "\C-a")))
 
 (defun rcirc-handler-CTCP-response (process target sender message)
@@ -1960,7 +1982,7 @@
   :group 'rcirc-faces)
 
 (defface rcirc-server-prefix	 ; font-lock-comment-delimiter-face
-  '((default :inherit font-lock-comment-face)
+  '((default :inherit rcirc-server)
     (((class grayscale)))
     (((class color) (min-colors 16)))
     (((class color) (min-colors 8) (background light))
--- a/lisp/net/tramp.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/net/tramp.el	Sat Feb 11 00:11:19 2006 +0000
@@ -6482,7 +6482,8 @@
 		 p (processp p) (memq (process-status p) '(run open)))
 	(tramp-send-command
 	 multi-method method user host "echo are you awake" nil t)
-	(unless (tramp-wait-for-output 10)
+	(unless (and (memq (process-status p) '(run open))
+                     (tramp-wait-for-output 10))
 	  (delete-process p)
 	  (setq p nil))
 	(erase-buffer)))
--- a/lisp/pgg-def.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/pgg-def.el	Sat Feb 11 00:11:19 2006 +0000
@@ -83,6 +83,9 @@
 (defvar pgg-scheme nil
   "Current scheme of PGP implementation.")
 
+(defvar pgg-text-mode nil
+  "If t, inform the recipient that the input is text.")
+
 (defmacro pgg-truncate-key-identifier (key)
   `(if (> (length ,key) 8) (substring ,key 8) ,key))
 
--- a/lisp/pgg-gpg.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/pgg-gpg.el	Sat Feb 11 00:11:19 2006 +0000
@@ -87,7 +87,9 @@
 	    (buffer-disable-undo)
 	    (erase-buffer)
 	    (if (file-exists-p output-file-name)
-		(let ((coding-system-for-read 'raw-text-dos))
+		(let ((coding-system-for-read (if pgg-text-mode
+						  'raw-text
+						'binary)))
 		  (insert-file-contents output-file-name)))
 	    (set-buffer errors-buffer)
 	    (if (not (equal exit-status 0))
@@ -187,7 +189,8 @@
                             pgg-gpg-user-id))))
 	 (args
 	  (append
-	   (list "--batch" "--textmode" "--armor" "--always-trust" "--encrypt")
+	   (list "--batch" "--armor" "--always-trust" "--encrypt")
+	   (if pgg-text-mode (list "--textmode"))
 	   (if sign (list "--sign" "--local-user" pgg-gpg-user-id))
 	   (if recipients
 	       (apply #'nconc
@@ -196,8 +199,7 @@
 			      (append recipients
 				      (if pgg-encrypt-for-me
 					  (list pgg-gpg-user-id)))))))))
-    (pgg-as-lbt start end 'CRLF
-      (pgg-gpg-process-region start end passphrase pgg-gpg-program args))
+    (pgg-gpg-process-region start end passphrase pgg-gpg-program args)
     (when sign
       (with-current-buffer pgg-errors-buffer
 	;; Possibly cache passphrase under, e.g. "jas", for future sign.
@@ -215,9 +217,9 @@
                          (pgg-read-passphrase
                           "GnuPG passphrase for symmetric encryption: ")))
 	 (args
-	  (append (list "--batch" "--textmode" "--armor" "--symmetric" ))))
-    (pgg-as-lbt start end 'CRLF
-      (pgg-gpg-process-region start end passphrase pgg-gpg-program args))
+	  (append (list "--batch" "--armor" "--symmetric" )
+		  (if pgg-text-mode (list "--textmode")))))
+    (pgg-gpg-process-region start end passphrase pgg-gpg-program args)
     (pgg-process-when-success)))
 
 (defun pgg-gpg-decrypt-region (start end &optional passphrase)
@@ -279,13 +281,13 @@
                           (format "GnuPG passphrase for %s: " pgg-gpg-user-id)
                           pgg-gpg-user-id)))
 	 (args
-	  (list (if cleartext "--clearsign" "--detach-sign")
-		"--armor" "--batch" "--verbose"
-		"--local-user" pgg-gpg-user-id))
+	  (append (list (if cleartext "--clearsign" "--detach-sign")
+			"--armor" "--batch" "--verbose"
+			"--local-user" pgg-gpg-user-id)
+		  (if pgg-text-mode (list "--textmode"))))
 	 (inhibit-read-only t)
 	 buffer-read-only)
-    (pgg-as-lbt start end 'CRLF
-      (pgg-gpg-process-region start end passphrase pgg-gpg-program args))
+    (pgg-gpg-process-region start end passphrase pgg-gpg-program args)
     (with-current-buffer pgg-errors-buffer
       ;; Possibly cache passphrase under, e.g. "jas", for future sign.
       (pgg-gpg-possibly-cache-passphrase passphrase pgg-gpg-user-id)
--- a/lisp/progmodes/ada-mode.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/ada-mode.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; ada-mode.el --- major-mode for editing Ada sources
 
 ;; Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-;;               2005  Free Software Foundation, Inc.
+;;               2005, 2006  Free Software Foundation, Inc.
 
 ;; Author: Rolf Ebert      <ebert@inf.enst.fr>
 ;;      Markus Heritsch <Markus.Heritsch@studbox.uni-stuttgart.de>
--- a/lisp/progmodes/ada-prj.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/ada-prj.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; ada-prj.el --- easy editing of project files for the ada-mode
 
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 
 ;; Free Software Foundation, Inc.
 
 ;; Author: Emmanuel Briot <briot@gnat.com>
--- a/lisp/progmodes/ada-stmt.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/ada-stmt.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; ada-stmt.el --- an extension to Ada mode for inserting statement templates
 
 ;; Copyright(C) 1987, 1993, 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-;;              2003, 2004, 2005 Free Software Foundation, Inc.
+;;              2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
--- a/lisp/progmodes/ada-xref.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/ada-xref.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; ada-xref.el --- for lookup and completion in Ada mode
 
 ;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-;;               2004, 2005 Free Software Foundation, Inc.
+;;               2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Markus Heritsch <Markus.Heritsch@studbox.uni-stuttgart.de>
 ;;      Rolf Ebert <ebert@inf.enst.fr>
--- a/lisp/progmodes/antlr-mode.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/antlr-mode.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; antlr-mode.el --- major mode for ANTLR grammar files
 
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 ;;
 ;; Author: Christoph.Wedler@sap.com
--- a/lisp/progmodes/asm-mode.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/asm-mode.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; asm-mode.el --- mode for editing assembler code
 
-;; Copyright (C) 1991, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1991, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Eric S. Raymond <esr@snark.thyrsus.com>
--- a/lisp/progmodes/autoconf.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/autoconf.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; autoconf.el --- mode for editing Autoconf configure.in files
 
-;; Copyright (C) 2000, 2001, 2002 2003, 2004, 2005
+;; Copyright (C) 2000, 2001, 2002 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Dave Love <fx@gnu.org>
@@ -52,7 +52,7 @@
   "AC_\\(SUBST\\|DEFINE\\(_UNQUOTED\\)?\\)(\\(\\sw+\\)")
 
 (defvar autoconf-font-lock-keywords
-  `(("A[CHMS]_\\sw+" . font-lock-keyword-face)
+  `(("\\_<A[CHMS]_\\sw+" . font-lock-keyword-face)
     (,autoconf-definition-regexp
      3 font-lock-function-name-face)
     ;; Are any other M4 keywords really appropriate for configure.in,
--- a/lisp/progmodes/cc-align.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cc-align.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,7 @@
 ;;; cc-align.el --- custom indentation functions for CC Mode
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;             1992-1999 Barry A. Warsaw
--- a/lisp/progmodes/cc-awk.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cc-awk.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; cc-awk.el --- AWK specific code within cc-mode.
 
-;; Copyright (C) 1988,94,96,2000, 2001, 2002, 2003, 2004, 2005  Free
-;; Software Foundation, Inc.
+;; Copyright (C) 1988,94,96,2000, 2001, 2002, 2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Author: Alan Mackenzie <acm@muc.de> (originally based on awk-mode.el)
 ;; Maintainer: FSF
--- a/lisp/progmodes/cc-bytecomp.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cc-bytecomp.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; cc-bytecomp.el --- compile time setup for proper compilation
 
-;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation,
-;; Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Author:     Martin Stjernholm
 ;; Maintainer: bug-cc-mode@gnu.org
--- a/lisp/progmodes/cc-cmds.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cc-cmds.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; cc-cmds.el --- user level commands for CC Mode
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation,
-;; Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;             1992-1999 Barry A. Warsaw
--- a/lisp/progmodes/cc-compat.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cc-compat.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; cc-compat.el --- cc-mode compatibility with c-mode.el confusion
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation,
-;; Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;	       1994-1999 Barry A. Warsaw
--- a/lisp/progmodes/cc-defs.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cc-defs.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; cc-defs.el --- compile time definitions for CC Mode
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation,
-;; Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;             1992-1999 Barry A. Warsaw
--- a/lisp/progmodes/cc-engine.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cc-engine.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; cc-engine.el --- core syntax guessing engine for CC mode
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation,
-;; Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;             1992-1999 Barry A. Warsaw
--- a/lisp/progmodes/cc-fonts.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cc-fonts.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cc-fonts.el --- font lock support for CC Mode
 
-;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Authors:    2003- Alan Mackenzie
 ;;             2002- Martin Stjernholm
--- a/lisp/progmodes/cc-langs.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cc-langs.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; cc-langs.el --- language specific settings for CC Mode
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation,
-;; Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;             1992-1999 Barry A. Warsaw
@@ -258,9 +258,12 @@
 	     (c-fn-region-is-active-p)]))
       "----"
       ("Toggle..."
-       ["Syntactic indentation" c-toggle-syntactic-indentation t]
-       ["Auto newline"          c-toggle-auto-newline t]
-       ["Hungry delete"         c-toggle-hungry-state t])))
+       ["Syntactic indentation" c-toggle-syntactic-indentation
+	:style toggle :selected c-syntactic-indentation]
+       ["Auto newline" c-toggle-auto-newline
+	:style toggle :selected c-auto-newline]
+       ["Hungry delete" c-toggle-hungry-state
+	:style toggle :selected c-hungry-delete-key])))
 
 
 ;;; Syntax tables.
--- a/lisp/progmodes/cc-menus.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cc-menus.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; cc-menus.el --- imenu support for CC Mode
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation,
-;; Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;             1992-1999 Barry A. Warsaw
--- a/lisp/progmodes/cc-mode.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cc-mode.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; cc-mode.el --- major mode for editing C and similar languages
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation,
-;; Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Authors:    2003- Alan Mackenzie
 ;;             1998- Martin Stjernholm
--- a/lisp/progmodes/cc-styles.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cc-styles.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; cc-styles.el --- support for styles in CC Mode
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation,
-;; Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;             1992-1999 Barry A. Warsaw
--- a/lisp/progmodes/cc-subword.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cc-subword.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cc-subword.el --- Handling capitalized subwords in a nomenclature
 
-;; Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Masatake YAMATO
 
--- a/lisp/progmodes/cc-vars.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cc-vars.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; cc-vars.el --- user customization variables for CC Mode
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software
-;; Foundation, Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;             1992-1999 Barry A. Warsaw
--- a/lisp/progmodes/cfengine.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cfengine.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,7 @@
 ;;; cfengine.el --- mode for editing Cfengine files
 
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005  Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Author: Dave Love <fx@gnu.org>
 ;; Keywords: languages
--- a/lisp/progmodes/cmacexp.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cmacexp.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cmacexp.el --- expand C macros in a region
 
-;; Copyright (C) 1992, 1994, 1996, 2000, 2001, 2002, 2003, 2004
+;; Copyright (C) 1992, 1994, 1996, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Francesco Potorti` <pot@gnu.org>
--- a/lisp/progmodes/compile.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/compile.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; compile.el --- run compiler as inferior of Emacs, parse error messages
 
 ;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;;   2001, 2002, 2003, 2004, 2005  Free Software Foundation, Inc.
+;;   2001, 2002, 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 
 ;; Authors: Roland McGrath <roland@gnu.org>,
 ;;	    Daniel Pfeiffer <occitan@esperanto.org>
--- a/lisp/progmodes/cperl-mode.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cperl-mode.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; cperl-mode.el --- Perl code editing commands for Emacs
 
 ;; Copyright (C) 1985, 1986, 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-;; 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 ;;     Free Software Foundation, Inc.
 
 ;; Author: Ilya Zakharevich and Bob Olson
--- a/lisp/progmodes/cpp.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cpp.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cpp.el --- highlight or hide text according to cpp conditionals
 
-;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation
 
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
--- a/lisp/progmodes/cwarn.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/cwarn.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cwarn.el --- highlight suspicious C and C++ constructions
 
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Anders Lindgren <andersl@andersl.com>
--- a/lisp/progmodes/dcl-mode.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/dcl-mode.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; dcl-mode.el --- major mode for editing DCL command files
 
-;; Copyright (c) 1997, 2001, 2002, 2003, 2004, 2005
+;; Copyright (c) 1997, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Odd Gripenstam <gripenstamol@decus.se>
--- a/lisp/progmodes/delphi.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/delphi.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; delphi.el --- major mode for editing Delphi source (Object Pascal) in Emacs
 
-;; Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Ray Blaak <blaak@infomatch.com>
--- a/lisp/progmodes/ebnf-abn.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/ebnf-abn.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,7 @@
 ;;; ebnf-abn.el --- parser for ABNF (Augmented BNF)
 
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Sofware Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
+;; Free Sofware Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
 ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
--- a/lisp/progmodes/ebnf-bnf.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/ebnf-bnf.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; ebnf-bnf.el --- parser for EBNF
 
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Sofware Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
--- a/lisp/progmodes/ebnf-dtd.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/ebnf-dtd.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,7 @@
 ;;; ebnf-dtd.el --- parser for DTD (Data Type Description for XML)
 
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Sofware Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
+;; Free Sofware Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
 ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
--- a/lisp/progmodes/ebnf-ebx.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/ebnf-ebx.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,7 @@
 ;;; ebnf-ebx.el --- parser for EBNF used to specify XML (EBNFX)
 
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Sofware Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
+;; Free Sofware Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
 ;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
--- a/lisp/progmodes/ebnf-iso.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/ebnf-iso.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; ebnf-iso.el --- parser for ISO EBNF
 
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
--- a/lisp/progmodes/ebnf-otz.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/ebnf-otz.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; ebnf-otz.el --- syntactic chart OpTimiZer
 
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Sofware Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
--- a/lisp/progmodes/ebnf-yac.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/ebnf-yac.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; ebnf-yac.el --- parser for Yacc/Bison
 
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Sofware Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
--- a/lisp/progmodes/ebnf2ps.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/ebnf2ps.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; ebnf2ps.el --- translate an EBNF to a syntactic chart on PostScript
 
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
--- a/lisp/progmodes/ebrowse.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/ebrowse.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; ebrowse.el --- Emacs C++ class browser & tags facility
 
 ;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-;; 2002, 2003, 2004, 2005
+;; 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation Inc.
 
 ;; Author: Gerd Moellmann <gerd@gnu.org>
--- a/lisp/progmodes/etags.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/etags.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; etags.el --- etags facility for Emacs
 
 ;; Copyright (C) 1985, 1986, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1998,
-;;               2000, 2001, 2002, 2003, 2004, 2005
+;;               2000, 2001, 2002, 2003, 2004, 2005, 2006
 ;;	Free Software Foundation, Inc.
 
 ;; Author: Roland McGrath <roland@gnu.org>
--- a/lisp/progmodes/executable.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/executable.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; executable.el --- base functionality for executable interpreter scripts -*- byte-compile-dynamic: t -*-
 
-;; Copyright (C) 1994, 1995, 1996, 2000, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1994, 1995, 1996, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Daniel Pfeiffer <occitan@esperanto.org>
--- a/lisp/progmodes/f90.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/f90.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; f90.el --- Fortran-90 mode (free format)
 
-;; Copyright (C) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005,
+;;   2006  Free Software Foundation, Inc.
 
 ;; Author: Torbj\"orn Einarsson <Torbjorn.Einarsson@era.ericsson.se>
 ;; Maintainer: Glenn Morris <rgm@gnu.org>
--- a/lisp/progmodes/gdb-ui.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/gdb-ui.el	Sat Feb 11 00:11:19 2006 +0000
@@ -4,7 +4,8 @@
 ;; Maintainer: FSF
 ;; Keywords: unix, tools
 
-;; Copyright (C) 2002, 2003, 2004, 2005  Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005, 2006 
+;; Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
@@ -2968,6 +2969,35 @@
   (gdb-invalidate-assembler))
 
 
+;; For debugging Emacs only (assumes that usual stack buffer already exists).
+(defun gdb-xbacktrace ()
+  "Generate a full lisp level backtrace with arguments."
+  (interactive)
+  (setq my-frames nil)
+  (with-current-buffer (get-buffer-create "xbacktrace")
+    (erase-buffer))
+  (let (frame-number gdb-frame-number)
+    (with-current-buffer (gdb-get-buffer 'gdb-stack-buffer)
+      (save-excursion
+	(goto-char (point-min))
+	(while (search-forward "in Ffuncall " nil t)
+	  (goto-char (line-beginning-position))
+	  (looking-at "^#\\([0-9]+\\)")
+	  (push (match-string-no-properties 1) my-frames)
+	  (forward-line 1))))
+    (dolist (frame my-frames)
+      (gdb-enqueue-input (list (concat "server frame " frame "\n")
+			       'ignore))
+;    (gdb-enqueue-input (list "server ppargs\n" 'gdb-get-arguments))
+      (gud-basic-call "server ppargs")
+)
+    (gdb-enqueue-input (list (concat "server frame " frame-number "\n")
+			     'ignore))))
+    
+(defun gdb-get-arguments ()
+  (with-current-buffer "xbacktrace"
+    (insert-buffer-substring (gdb-get-buffer 'gdb-partial-output-buffer))))
+
 ;; Code specific to GDB 6.4
 (defconst gdb-source-file-regexp-1 "fullname=\"\\(.*?\\)\"")
 
--- a/lisp/progmodes/glasses.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/glasses.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; glasses.el --- make cantReadThis readable
 
-;; Copyright (C) 1999, 2000, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Milan Zamazal <pdm@zamazal.org>
 ;; Maintainer: Milan Zamazal <pdm@zamazal.org>
--- a/lisp/progmodes/grep.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/grep.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; grep.el --- run Grep as inferior of Emacs, parse match messages
 
 ;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;;   2001, 2002, 2003, 2004, 2005  Free Software Foundation, Inc.
+;;   2001, 2002, 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 
 ;; Author: Roland McGrath <roland@gnu.org>
 ;; Maintainer: FSF
--- a/lisp/progmodes/gud.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/gud.el	Sat Feb 11 00:11:19 2006 +0000
@@ -5,7 +5,7 @@
 ;; Keywords: unix, tools
 
 ;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001, 2002, 2003,
-;;  2004, 2005 Free Software Foundation, Inc.
+;;  2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
--- a/lisp/progmodes/hideif.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/hideif.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; hideif.el --- hides selected code within ifdef
 
-;; Copyright (C) 1988, 1994, 2001, 2002, 2003, 2004 2005
+;; Copyright (C) 1988, 1994, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Daniel LaLiberte <liberte@holonexus.org>
--- a/lisp/progmodes/hideshow.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/hideshow.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; hideshow.el --- minor mode cmds to selectively display code/comment blocks
 
 ;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-;;               2004, 2005  Free Software Foundation, Inc.
+;;               2004, 2005, 2006  Free Software Foundation, Inc.
 
 ;; Author: Thien-Thi Nguyen <ttn@gnu.org>
 ;;      Dan Nicolaescu <dann@ics.uci.edu>
--- a/lisp/progmodes/icon.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/icon.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; icon.el --- mode for editing Icon code
 
-;; Copyright (C) 1989, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1989, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Chris Smith <csmith@convex.com>
--- a/lisp/progmodes/idlw-complete-structtag.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/idlw-complete-structtag.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,5 +1,6 @@
 ;;; idlw-complete-structtag.el --- Completion of structure tags.
-;; Copyright (c) 2001, 2002, 2003, 2004, 2005 Free Software Foundation
+;; Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <dominik@science.uva.nl>
 ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu>
--- a/lisp/progmodes/idlw-help.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/idlw-help.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; idlw-help.el --- HTML Help code for IDLWAVE
 ;; Copyright (c) 2000 Carsten Dominik
 ;; Copyright (c) 2001, 2002 J.D. Smith
-;; Copyright (c) 2003, 2004, 2005, Free Software Foundation
+;; Copyright (c) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 ;;
 ;; Authors: J.D. Smith <jdsmith@as.arizona.edu>
 ;;          Carsten Dominik <dominik@science.uva.nl>
--- a/lisp/progmodes/idlw-rinfo.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/idlw-rinfo.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; idlw-rinfo.el --- Routine Information for IDLWAVE
 ;; Copyright (c) 1999 Carsten Dominik
-;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation
+;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Author: J.D. Smith <jdsmith@as.arizona.edu>
 ;; Version: 5.7_22
--- a/lisp/progmodes/idlw-shell.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/idlw-shell.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;; idlw-shell.el --- run IDL as an inferior process of Emacs.
-;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation
+;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Authors: J.D. Smith <jdsmith@as.arizona.edu>
 ;;          Carsten Dominik <dominik@astro.uva.nl>
--- a/lisp/progmodes/idlw-toolbar.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/idlw-toolbar.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; idlw-toolbar.el --- a debugging toolbar for IDLWAVE
-;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation
+;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <dominik@astro.uva.nl>
 ;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu>
--- a/lisp/progmodes/idlwave.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/idlwave.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;; idlwave.el --- IDL editing mode for GNU Emacs
-;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;;    Free Software Foundation
+;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+;;    Free Software Foundation, Inc.
 
 ;; Authors: J.D. Smith <jdsmith@as.arizona.edu>
 ;;          Carsten Dominik <dominik@science.uva.nl>
--- a/lisp/progmodes/inf-lisp.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/inf-lisp.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; inf-lisp.el --- an inferior-lisp mode
 
-;; Copyright (C) 1988, 1993, 1994, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1988, 1993, 1994, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Olin Shivers <shivers@cs.cmu.edu>
--- a/lisp/progmodes/ld-script.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/ld-script.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,7 @@
 ;;; ld-script.el --- GNU linker script editing mode for Emacs
 
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
+;; Free Software Foundation, Inc.
 
 ;; Author: Masatake YAMATO<jet@gyve.org>
 ;; Keywords: languages, faces
--- a/lisp/progmodes/m4-mode.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/m4-mode.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; m4-mode.el --- m4 code editing commands for Emacs
 
-;; Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Andrew Csillag <drew_csillag@geocities.com>
--- a/lisp/progmodes/make-mode.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/make-mode.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; make-mode.el --- makefile editing commands for Emacs
 
-;; Copyright (C) 1992, 1994, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1992, 1994, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Thomas Neumann <tom@smart.bo.open.de>
--- a/lisp/progmodes/mantemp.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/mantemp.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; mantemp.el --- create manual template instantiations from g++ 2.7.2 output
 
-;; Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Tom Houlder <thoulder@icor.fr>
--- a/lisp/progmodes/meta-mode.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/meta-mode.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; meta-mode.el --- major mode for editing Metafont or MetaPost sources
 
-;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Ulrik Vieth <vieth@thphy.uni-duesseldorf.de>
--- a/lisp/progmodes/mixal-mode.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/mixal-mode.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; mixal-mode.el --- Major mode for the mix asm language.
 
-;; Copyright (C) 2003, 2004, 2005 Free Software Foundation
+;; Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation
 
 ;; This program is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU General Public License as
--- a/lisp/progmodes/octave-hlp.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/octave-hlp.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; octave-hlp.el --- getting help on Octave symbols using info
 
-;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>
--- a/lisp/progmodes/octave-inf.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/octave-inf.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; octave-inf.el --- running Octave as an inferior Emacs process
 
-;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>
--- a/lisp/progmodes/octave-mod.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/octave-mod.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; octave-mod.el --- editing Octave source files under Emacs
 
-;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>
--- a/lisp/progmodes/pascal.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/pascal.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; pascal.el --- major mode for editing pascal source in Emacs
 
 ;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-;;               2003, 2004, 2005 Free Software Foundation, Inc.
+;;               2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 
 ;; Author: Espen Skoglund <esk@gnu.org>
 ;; Keywords: languages
--- a/lisp/progmodes/perl-mode.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/perl-mode.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; perl-mode.el --- Perl code editing commands for GNU Emacs
 
-;; Copyright (C) 1990, 1994, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1990, 1994, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: William F. Mann
--- a/lisp/progmodes/prolog.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/prolog.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; prolog.el --- major mode for editing and running Prolog under Emacs
 
-;; Copyright (C) 1986, 1987, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1986, 1987, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@mse.kyutech.ac.jp>
--- a/lisp/progmodes/ps-mode.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/ps-mode.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; ps-mode.el --- PostScript mode for GNU Emacs
 
-;; Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author:     Peter Kleiweg <p.c.j.kleiweg@rug.nl>
--- a/lisp/progmodes/python.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/python.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; python.el --- silly walks for Python
 
-;; Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 
 ;; Author: Dave Love <fx@gnu.org>
 ;; Maintainer: FSF
--- a/lisp/progmodes/scheme.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/scheme.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; scheme.el --- Scheme (and DSSSL) editing mode
 
-;; Copyright (C) 1986, 1987, 1988, 1997, 1998, 2001, 2002, 2003, 2004, 2005
-;;           Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1987, 1988, 1997, 1998, 2001, 2002, 2003, 2004, 2005,
+;;   2006  Free Software Foundation, Inc.
 
 ;; Author: Bill Rozas <jinx@martigny.ai.mit.edu>
 ;; Adapted-by: Dave Love <d.love@dl.ac.uk>
--- a/lisp/progmodes/sh-script.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/sh-script.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,7 @@
 ;;; sh-script.el --- shell-script editing commands for Emacs
 
-;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1999, 2001, 2003, 2004, 2005
-;;  Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1999, 2001, 2003, 2004, 2005,
+;;  2006  Free Software Foundation, Inc.
 
 ;; Author: Daniel Pfeiffer <occitan@esperanto.org>
 ;; Version: 2.0f
--- a/lisp/progmodes/simula.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/simula.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; simula.el --- SIMULA 87 code editing commands for Emacs
 
-;; Copyright (C) 1992, 1994, 1996 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1992, 1994, 1996 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Hans Henrik Eriksen <hhe@ifi.uio.no>
--- a/lisp/progmodes/sql.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/sql.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; sql.el --- specialized comint.el for SQL interpreters
 
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 ;; Free Software Foundation, Inc.
 
 ;; Author: Alex Schroeder <alex@gnu.org>
--- a/lisp/progmodes/vhdl-mode.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/vhdl-mode.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; vhdl-mode.el --- major mode for editing VHDL code
 
-;; Copyright (C) 1992-2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1992-2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 
 ;; Authors:     Reto Zimmermann <reto@gnu.org>
 ;;              Rodney J. Whitby <software.vhdl-mode@rwhitby.net>
--- a/lisp/progmodes/which-func.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/which-func.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; which-func.el --- print current function in mode line
 
-;; Copyright (C) 1994, 1997, 1998, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1994, 1997, 1998, 2001, 2002, 2003, 2004, 2005, 2006
 ;;           Free Software Foundation, Inc.
 
 ;; Author:   Alex Rezinsky <alexr@msil.sps.mot.com>
--- a/lisp/progmodes/xscheme.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/progmodes/xscheme.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1,6 +1,6 @@
 ;;; xscheme.el --- run MIT Scheme under Emacs
 
-;; Copyright (C) 1986, 1987, 1989, 1990, 2001, 2002, 2003, 2004, 2005
+;; Copyright (C) 1986, 1987, 1989, 1990, 2001, 2002, 2003, 2004, 2005, 2006
 ;;  Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
--- a/lisp/subr.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/subr.el	Sat Feb 11 00:11:19 2006 +0000
@@ -561,7 +561,7 @@
 Alternatively, if optional fourth argument OLDMAP is specified, we redefine
 in KEYMAP as NEWDEF those keys which are defined as OLDDEF in OLDMAP.
 
-For most uses, it is simpler and safer to use command remappping like this:
+For most uses, it is simpler and safer to use command remapping like this:
   \(define-key KEYMAP [remap OLDDEF] NEWDEF)"
   ;; Don't document PREFIX in the doc string because we don't want to
   ;; advertise it.  It's meant for recursive calls only.  Here's its
@@ -607,8 +607,7 @@
 	    (nconc (nreverse skipped) newdef)))
       ;; Look past a symbol that names a keymap.
       (setq inner-def
-	    (and defn
-		 (condition-case nil (indirect-function defn) (error defn))))
+	    (or (indirect-function defn t) defn))
       ;; For nested keymaps, we use `inner-def' rather than `defn' so as to
       ;; avoid autoloading a keymap.  This is mostly done to preserve the
       ;; original non-autoloading behavior of pre-map-keymap times.
--- a/lisp/term/mac-win.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/term/mac-win.el	Sat Feb 11 00:11:19 2006 +0000
@@ -1817,7 +1817,7 @@
 ;; more Latin characters) are displayed by a mac-roman font.
 (create-fontset-from-mac-roman-font
  "-*-Monaco-*-*-*-*-12-*-*-*-*-*-mac-roman" nil
- "-apple-Monaco-normal-r-*-*-12-*-*-*-*-*-fontset-mac")
+ "-apple-Monaco-normal-r-*-*-12-*-*-*-*-*-fontset-standard")
 
 ;; Create fontset specified in X resources "Fontset-N" (N is 0, 1, ...).
 (create-fontset-from-x-resource)
--- a/lisp/tumme.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/tumme.el	Sat Feb 11 00:11:19 2006 +0000
@@ -524,10 +524,16 @@
 ;; files.
 ;;
 ;; * From thumbs.el: Add an option for clean-up/max-size functionality
-;; for thumbnail directory.
+;;   for thumbnail directory.
 ;;
 ;; * From thumbs.el: Add setroot function.
 ;;
+;; * From thumbs.el: Add image resizing, if useful (tumme's automatic
+;;  "image fit" might be enough)
+;;
+;; * From thumbs.el: Add the "modify" commands (emboss, negate,
+;;   monochrome etc).
+;;
 ;; * Asynchronous creation of thumbnails.
 ;;
 ;; * Add `tumme-display-thumbs-ring' and functions to cycle that.  Find
@@ -841,7 +847,7 @@
 
 (defcustom tumme-show-all-from-dir-max-files 50
   "*Maximum number of files to show using`tumme-show-all-from-dir'.
- before warning the user."
+before warning the user."
   :type 'integer
   :group 'tumme)
 
@@ -1019,8 +1025,8 @@
  - Set `truncate-lines' to t
 
 After the command has finished, you would typically mark some
-image files in dired and call `tumme-display-thumbs' (by default
-bound to C-t d).
+image files in dired and type
+\\[tumme-display-thumbs] (`tumme-display-thumbs').
 
 If called with prefix argument ARG, skip splitting of windows.
 
@@ -1113,7 +1119,7 @@
             (and (> (length files) tumme-show-all-from-dir-max-files)
                  (y-or-n-p
                   (format
-                   "Directory contains more than %d image files. Proceed? "
+                   "Directory contains more than %d image files.  Proceed? "
                    tumme-show-all-from-dir-max-files))))
         (progn
           (tumme-display-thumbs)
@@ -1826,7 +1832,7 @@
 (defun tumme-create-thumbs (&optional arg)
   "Create thumbnail images for all marked files in dired.
 With prefix argument ARG, create thumbnails even if they already exist
-\(i.e. use this to refresh your thumbnails)."
+\(i.e.  use this to refresh your thumbnails)."
   (interactive "P")
   (let (curr-file thumb-name files count)
     (setq files (dired-get-marked-files))
@@ -2242,21 +2248,17 @@
 
 (defun tumme-copy-with-exif-file-name ()
   "Copy file with unique name to main image directory.
-Copy current or all marked files in dired to a new file in your main
-image directory, using a file name generated by
-`tumme-get-exif-file-name'.  This might or might not be useful for
-other people, but I use it each time I fetch images from my digital
-camera, for copying the images into my main image directory.
+Copy current or all marked files in dired to a new file in your
+main image directory, using a file name generated by
+`tumme-get-exif-file-name'.  A typical usage for this if when
+copying images from a digital camera into the image directory.
 
-Typically I open up the folder where I store my incoming digital
-images, with file names like dscn0319.jpg, dscn0320.jpg etc., mark the
-files I want to copy into my main image directory, and execute this
+ Typically, you would open up the folder with the incoming
+digital images, mark the files to be copied, and execute this
 function.  The result is a couple of new files in
-`tumme-main-image-directory' called 2005_05_08_12_52_00_dscn0319.jpg,
-2005_05_08_14_27_45_dscn0320.jpg etc.
-
-When the images are safely in my main image directory I start to
-browse and tag them using rest of the functionality in `tumme'."
+`tumme-main-image-directory' called
+2005_05_08_12_52_00_dscn0319.jpg,
+2005_05_08_14_27_45_dscn0320.jpg etc."
   (interactive)
   (let (new-name
         (files (dired-get-marked-files)))
@@ -2599,7 +2601,7 @@
     ;; Make sure gallery root exist
     (if (file-exists-p tumme-gallery-dir)
         (if (not (file-directory-p tumme-gallery-dir))
-            (error "tumme-gallery-dir is not a directory"))
+            (error "Variable tumme-gallery-dir is not a directory"))
       (make-directory tumme-gallery-dir))
     ;; Open index file
     (setq index-buf (find-file
--- a/lisp/vc-svn.el	Wed Feb 08 04:26:44 2006 +0000
+++ b/lisp/vc-svn.el	Sat Feb 11 00:11:19 2006 +0000
@@ -370,7 +370,11 @@
     (vc-svn-command
      buffer
      (if (and (vc-stay-local-p file) (fboundp 'start-process)) 'async 0)
-     file "log")))
+     file "log"
+     ;; By default Subversion only shows the log upto the working version,
+     ;; whereas we also want the log of the subsequent commits.  At least
+     ;; that's what the vc-cvs.el code does.
+     "-rHEAD:0")))
 
 (defun vc-svn-diff (file &optional oldvers newvers buffer)
   "Get a difference report using SVN between two versions of FILE."
--- a/lispref/ChangeLog	Wed Feb 08 04:26:44 2006 +0000
+++ b/lispref/ChangeLog	Sat Feb 11 00:11:19 2006 +0000
@@ -1,3 +1,12 @@
+2006-02-10  Kim F. Storm  <storm@cua.dk>
+
+	* eval.texi (Function Indirection): Add NOERROR to indirect-function.
+
+2006-02-08  Juanma Barranquero  <lekktu@gmail.com>
+
+	* modes.texi (%-Constructs): Remove obsolete info about
+	`global-mode-string'.
+
 2006-02-07  Richard M. Stallman  <rms@gnu.org>
 
 	* commands.texi (Prefix Command Arguments): Minor cleanup.
--- a/lispref/eval.texi	Wed Feb 08 04:26:44 2006 +0000
+++ b/lispref/eval.texi	Sat Feb 11 00:11:19 2006 +0000
@@ -314,16 +314,20 @@
 perform symbol function indirection explicitly.
 
 @c Emacs 19 feature
-@defun indirect-function function
+@defun indirect-function function &optional noerror
 @anchor{Definition of indirect-function}
 This function returns the meaning of @var{function} as a function.  If
 @var{function} is a symbol, then it finds @var{function}'s function
 definition and starts over with that value.  If @var{function} is not a
 symbol, then it returns @var{function} itself.
 
-This function signals a @code{void-function} error if the final
-symbol is unbound and a @code{cyclic-function-indirection} error if
-there is a loop in the chain of symbols.
+This function signals a @code{void-function} error if the final symbol
+is unbound and optional argument @var{noerror} is @code{nil} or
+omitted.  Otherwise, if @var{noerror} is non-@code{nil}, it returns
+@code{nil} if the final symbol is unbound.
+
+It signals a @code{cyclic-function-indirection} error if there is a
+loop in the chain of symbols.
 
 Here is how you could define @code{indirect-function} in Lisp:
 
--- a/lispref/modes.texi	Wed Feb 08 04:26:44 2006 +0000
+++ b/lispref/modes.texi	Sat Feb 11 00:11:19 2006 +0000
@@ -2012,8 +2012,7 @@
 The value of @code{mode-name}.
 
 @item %M
-The value of @code{global-mode-string}.  Currently, only
-@code{display-time} modifies the value of @code{global-mode-string}.
+The value of @code{global-mode-string}.
 @end table
 
 @node Properties in Mode
--- a/mac/ChangeLog	Wed Feb 08 04:26:44 2006 +0000
+++ b/mac/ChangeLog	Sat Feb 11 00:11:19 2006 +0000
@@ -1,3 +1,8 @@
+2006-02-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* makefile.MPW (shortlisp, SOME_MACHINE_LISP): Sync with
+	src/Makefile.in.
+
 2005-12-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
 	* makefile.MPW (macselect.c.x): Depend on keymap.h.
--- a/mac/makefile.MPW	Wed Feb 08 04:26:44 2006 +0000
+++ b/mac/makefile.MPW	Sat Feb 11 00:11:19 2006 +0000
@@ -1024,6 +1024,7 @@
 	{Lisp}help.elc ¶
 	{Lisp}indent.elc ¶
 	{Lisp}isearch.elc ¶
+	{Lisp}rfn-eshadow.elc ¶
 	{Lisp}loadup.el ¶
 	{Lisp}loaddefs.el ¶
 	{Lisp}bindings.elc ¶
@@ -1098,9 +1099,13 @@
   {Lisp}ls-lisp.elc {Lisp}dos-fns.elc ¶
   {Lisp}w32-fns.elc {Lisp}dos-w32.elc ¶
   {Lisp}disp-table.elc {Lisp}dos-vars.elc ¶
-  {Lisp}tooltip.elc ¶
+  {Lisp}tooltip.elc {Lisp}image.elc ¶
+  {Lisp}dnd.elc {Lisp}mwheel.elc ¶
+  {Lisp}tool-bar.elc ¶
+  {Lisp}x-dnd.elc ¶
   {Lisp}international:ccl.elc ¶
-  {Lisp}international:codepage.elc
+  {Lisp}international:codepage.elc ¶
+  {Lisp}international:fontset.elc
 
 Doc Ä {DocTarget}DOC
 
--- a/man/ChangeLog	Wed Feb 08 04:26:44 2006 +0000
+++ b/man/ChangeLog	Sat Feb 11 00:11:19 2006 +0000
@@ -1,3 +1,25 @@
+2006-02-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* macos.texi (Mac International): Rename "fontset-mac" to
+	"fontset-standard".
+
+2006-02-09  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus.texi (Gnus Versions): Add history beyond start of Oort.
+
+2006-02-09  Mathias Dahl  <mathias.dah@gmail.com>
+
+	* dired.texi (Tumme): Basic documentation for Tumme added.
+
+2006-02-08  Romain Francoise  <romain@orebokech.com>
+
+	* faq.texi (Top): Remove paragraph about the FAQ being a
+	transitional document, etc.
+	(Searching for/replacing newlines): New node.
+	(Yanking text in isearch): New node.
+	(Inserting text at the beginning of each line): Rename and make
+	more general, mention `M-;' in Message mode.
+
 2006-02-07  Luc Teirlinck  <teirllm@auburn.edu>
 
 	* mule.texi (International):
--- a/man/dired.texi	Wed Feb 08 04:26:44 2006 +0000
+++ b/man/dired.texi	Sat Feb 11 00:11:19 2006 +0000
@@ -40,6 +40,8 @@
 * Updating: Dired Updating.   Discarding lines for files of no interest.
 * Find: Dired and Find.	      Using `find' to choose the files for Dired.
 * Wdired::                    Operating on files by editing the Dired buffer.
+* Tumme::                     Image file and thumbnail viewing and 
+                              manipulation from the Dired buffer.
 * Misc: Misc Dired Features.  Various other features.
 @end menu
 
@@ -1140,6 +1142,52 @@
 world-writable.  These changes also take effect when you type @kbd{C-c
 C-c}.
 
+@node Tumme
+@section Thumbnail and image file viewing and manipulation
+
+@cindex tumme mode
+  Tumme provides for simple viewing of thumbnails if image files.  It
+also provides viewing of the original file, sized or in full size,
+inside Emacs or in an external viewer.  
+
+  Tumme aims to be both easy to use for a beginner but also powerful
+and useful for an experienced user.
+
+  To try out Tumme, mark some image files in Dired and type @kbd{C-t
+d} (@code{tumme-display-thumbs}).  With point in the thumbnail buffer,
+type @kbd{RET} (@code{tumme-display-thumbnail-original-image}) to
+display a sized version of it.  Use the keys to move around in the
+buffer.  For easy browing, type @kbd{SPC}
+(@code{tumme-display-next-thumbnail-original}) to advance and display
+the next image.  Typing @kbd{SPC}
+(@code{tumme-display-previous-thumbnail-original}) backs up to the
+previous thumbnail and displays the image.
+
+  If you want to see the image in its original size, either provide a
+prefix argument (@kbd{C-u}) before pressing @kbd{RET}, or type
+@kbd{C-return} (@code{tumme-thumbnail-display-external}) to display
+the image in an external viewer.
+
+  If you find in image that you want to delete, type @kbd{d}
+(@code{tumme-flag-thumb-original-file}) and the file will be flagged
+for deletion in the dired buffer.  If you just want to delete the
+thumbnail image from the thumbnail buffer, type @kbd{C-d}
+(@code{tumme-delete-char}).
+
+  More advanced features include commands for using ``tags'' (labels,
+or categories) to tag image files and to search for image files with a
+certain tag.
+
+  The tags put on image files are stored in a database file and can be
+used for marking image files.  For example, you can let Tumme mark all
+files in the current directory tagged with the tag `flowers'.  To tag
+image files, mark them in the dired buffer and type @kbd{C-t t}
+(@code{tumme-tag-files}).  To mark files having a certain tag, type
+@kbd{C-t f} (@code{tumme-mark-tagged-files}).
+
+  Tumme also provide simple image manipulation commands, like rotating
+thumbnails and original image files.
+
 @node Misc Dired Features
 @section Other Dired Features
 
--- a/man/faq.texi	Wed Feb 08 04:26:44 2006 +0000
+++ b/man/faq.texi	Sat Feb 11 00:11:19 2006 +0000
@@ -59,12 +59,9 @@
 
 This is the GNU Emacs FAQ, last updated on @today{}.
 
-The FAQ is maintained as a Texinfo document, allowing us to create HTML,
-Info, and TeX documents from a single source file, and is slowly but
-surely being improved.  Please bear with us as we improve on this
-format.  This FAQ is maintained as a part of GNU Emacs.  If you find
-any errors, or have any suggestions, please use @kbd{M-x report-emacs-bug}
-to report them.
+This FAQ is maintained as a part of GNU Emacs.  If you find any errors,
+or have any suggestions, please use @kbd{M-x report-emacs-bug} to report
+them.
 
 @menu
 * FAQ notation::
@@ -1177,6 +1174,8 @@
 * Highlighting a region::
 * Controlling case sensitivity::
 * Wrapping words automatically::
+* Searching for/replacing newlines::
+* Yanking text in isearch::
 * Spell-checkers::
 * Checking TeX and *roff documents::
 * Changing load-path::
@@ -1195,7 +1194,7 @@
 * Valid X resources::
 * Evaluating Emacs Lisp code::
 * Changing the length of a Tab::
-* Inserting > at the beginning of each line::
+* Inserting text at the beginning of each line::
 * Underlining paragraphs::
 * Repeating a command as many times as possible::
 * Forcing the cursor to remain in the same column::
@@ -1534,7 +1533,7 @@
 in your @file{.emacs} file.  (Also see @ref{Turning on syntax
 highlighting}.)
 
-@node Controlling case sensitivity, Wrapping words automatically, Highlighting a region, Common requests
+@node Controlling case sensitivity, Searching for/replacing newlines, Highlighting a region, Common requests
 @section How do I control Emacs's case-sensitivity when searching/replacing?
 @cindex @code{case-fold-search}
 @cindex Case sensitivity of searches
@@ -1566,7 +1565,23 @@
            (setq case-fold-search nil)))
 @end lisp
 
-@node Wrapping words automatically, Spell-checkers, Controlling case sensitivity, Common requests
+@node Searching for/replacing newlines, Yanking text in isearch, Controlling case sensitivity, Common requests
+@section How do I input a newline character in isearch or query-replace?
+@cindex Searching for newlines
+@cindex Replacing newlines
+
+Use @kbd{C-q C-j}.  For more information, see @inforef{Special Isearch,
+Special Input for Incremental Search, emacs}.
+
+
+@node Yanking text in isearch, Wrapping words automatically, Searching for/replacing newlines, Common requests
+@section How do I copy text from the kill ring into the search string?
+@cindex Yanking text into the search string
+@cindex isearch yanking
+
+Use @kbd{M-y}.  @inforef{Isearch Yank, Isearch Yanking, emacs}.
+
+@node Wrapping words automatically, Spell-checkers, Yanking text in isearch, Common requests
 @section How do I make Emacs wrap words for me?
 @cindex Wrapping word automatically
 @cindex Wrapping lines
@@ -2102,7 +2117,7 @@
 
 @end itemize
 
-@node Changing the length of a Tab, Inserting > at the beginning of each line, Evaluating Emacs Lisp code, Common requests
+@node Changing the length of a Tab, Inserting text at the beginning of each line, Evaluating Emacs Lisp code, Common requests
 @section How do I change Emacs's idea of the @key{TAB} character's length?
 @cindex Tab length
 @cindex Length of tab character
@@ -2121,8 +2136,9 @@
 @key{TAB} characters.  The latter controls what characters are inserted
 when you press the @key{TAB} character in certain modes.
 
-@node Inserting > at the beginning of each line, Underlining paragraphs, Changing the length of a Tab, Common requests
-@section How do I insert @samp{>} at the beginning of every line?
+@node Inserting text at the beginning of each line, Underlining paragraphs, Changing the length of a Tab, Common requests
+@section How do I insert <some text> at the beginning of every line?
+@cindex Prefixing a region with some text
 @cindex Prefix character, inserting in mail/news replies
 @cindex Replies to mail/news, inserting a prefix character
 @cindex @code{mail-yank-prefix}
@@ -2130,7 +2146,7 @@
 @cindex News replies, inserting a prefix character
 
 To do this to an entire buffer, type @kbd{M-< M-x replace-regexp
-@key{RET} ^ @key{RET} > @key{RET}}.
+@key{RET} ^ @key{RET} your text @key{RET}}.
 
 To do this to a region, use @code{string-insert-rectangle}.
 Set the mark (@kbd{C-@key{SPC}}) at the beginning of the first line you
@@ -2139,13 +2155,12 @@
 buffer, type @kbd{C-x h M-x string-insert-rectangle @key{RET}}.
 
 If you are trying to prefix a yanked mail message with @samp{>}, you
-might want to set the variable @code{mail-yank-prefix}.  Better yet, use
-the Supercite package (@pxref{Supercite}), which provides flexible
-citation for yanked mail and news messages; it is included in Emacs
-since version 19.20.  @xref{Changing the included text prefix}, for
-additional information.
-
-@node Underlining paragraphs, Repeating a command as many times as possible, Inserting > at the beginning of each line, Common requests
+might want to set the variable @code{mail-yank-prefix}.  In Message
+buffers, you can even use @kbd{M-;} to cite yanked messages (@kbd{M-;}
+runs the function @code{comment-region}, it is a general-purpose
+mechanism to comment regions).
+
+@node Underlining paragraphs, Repeating a command as many times as possible, Inserting text at the beginning of each line, Common requests
 @section How do I insert @samp{_^H} before each character in a region to get an underlined paragraph?
 @cindex Underlining a region of text
 @cindex @code{underline-region}
--- a/man/gnus.texi	Wed Feb 08 04:26:44 2006 +0000
+++ b/man/gnus.texi	Sat Feb 11 00:11:19 2006 +0000
@@ -24547,14 +24547,17 @@
 ``Gnus 5.8'' (after 99 releases and a CVS repository) on December 3rd
 1999.
 
-On the 26th of October 2000, Oort Gnus was begun.
+On the 26th of October 2000, Oort Gnus was begun and was released as
+Gnus 5.10 on May 1st 2003 (24 releases).
+
+On the January 4th 2004, No Gnus was begun.
 
 If you happen upon a version of Gnus that has a prefixed name --
 ``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'',
-``Pterodactyl Gnus'', ``Oort Gnus'' -- don't panic.  Don't let it know
-that you're frightened.  Back away.  Slowly.  Whatever you do, don't
-run.  Walk away, calmly, until you're out of its reach.  Find a proper
-released version of Gnus and snuggle up to that instead.
+``Pterodactyl Gnus'', ``Oort Gnus'', ``No Gnus'' -- don't panic.
+Don't let it know that you're frightened.  Back away.  Slowly.  Whatever
+you do, don't run.  Walk away, calmly, until you're out of its reach.
+Find a proper released version of Gnus and snuggle up to that instead.
 
 
 @node Other Gnus Versions
--- a/man/macos.texi	Wed Feb 08 04:26:44 2006 +0000
+++ b/man/macos.texi	Sat Feb 11 00:11:19 2006 +0000
@@ -104,12 +104,12 @@
 @code{mac-roman}, @code{mac-centraleurroman}, and @code{mac-cyrillic}
 are used to represent these Mac encodings.
 
-  The fontset @code{fontset-mac} is created automatically when Emacs
-is run on Mac, and used by default.  It displays as many kinds of
-characters as possible using 12-point Monaco as a base font.  If you
-see some character as a hollow box with this fontset, then it's almost
-impossible to display it only by customizing font settings (@pxref{Mac
-Font Specs}).
+  The fontset @code{fontset-standard} is created automatically when
+Emacs is run on Mac, and used by default.  It displays as many kinds
+of characters as possible using 12-point Monaco as a base font.  If
+you see some character as a hollow box with this fontset, then it's
+almost impossible to display it only by customizing font settings
+(@pxref{Mac Font Specs}).
 
   You can use input methods provided either by LEIM (@pxref{Input
 Methods}) or Mac OS to enter international characters.  To use the
--- a/src/ChangeLog	Wed Feb 08 04:26:44 2006 +0000
+++ b/src/ChangeLog	Sat Feb 11 00:11:19 2006 +0000
@@ -1,7 +1,58 @@
+2006-02-10  Thien-Thi Nguyen  <ttn@gnu.org>
+
+	* data.c (Findirect_function): Rewrite docstring.
+	Fix omission bug: Declare new arg NOERROR.
+
+2006-02-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* macfns.c (x_set_mouse_color): Don't call rif->define_frame_cursor
+	if window_desc is not set yet.
+	(Fx_create_frame): Remove variable x_frame_name.  Apply 2005-12-07
+	and 2006-01-26 changes for xfns.c.  Call x_iconify_frame if frame
+	parameter `visibility' is `icon'.
+	(Fx_create_frame, x_create_tip_frame): Use "fontset-standard"
+	instead of "fontset-mac".
+	(Fx_focus_frame): New defun.
+	(syms_of_macfns): Defsubr it.
+
+	* macterm.c (mac_define_frame_cursor): Don't change pointer shape
+	for unfocused frame.
+	(x_raise_frame): Call BringToFront instead of SelectWindow.
+	(x_lower_frame): Use NULL instead of nil.
+	(x_make_frame_visible): Don't call SelectWindow.
+	(XTread_socket): Increment handling_signal at the start, decrement
+	it at the end.
+	[USE_CG_TEXT_DRAWING] (init_cg_text_anti_aliasing_threshold): Use
+	CFPreferencesGetAppIntegerValue instead of Fmac_get_preference.
+
+2006-02-10  Kim F. Storm  <storm@cua.dk>
+
+	* data.c (Findirect_function): Add NOERROR arg.  All callers changed
+	to pass Qnil for NOERROR.
+
+	* keymap.c (current_minor_maps_error): Remove.
+	(current_minor_maps): Pass Qt for NOERROR to Findirect_function
+	instead of using internal_condition_case_1+current_minor_maps_error.
+
+2006-02-09  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* xterm.c (handle_one_xevent): Must note mouse movement even for nil
+	frames for GTK, in that case it is the tool bar.  This is so that
+	highlighted text get reset properly.
+
+2006-02-09  Juanma Barranquero  <lekktu@gmail.com>
+
+	* alloc.c (Fmake_bool_vector, Fpurecopy): Doc fixes.
+
+2006-02-08  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* window.c (adjust_window_trailing_edge): Check that shrinking
+	does not set a window to size zero or less.
+
 2006-02-08  Miles Bader  <miles@gnu.org>
 
 	* editfns.c (Fconstrain_to_field): Use Fget_char_property instead
-	of Fget_text_property (other field functions word with overlays as
+	of Fget_text_property (other field functions work with overlays as
 	well as text-properties).
 
 2006-02-07  Kenichi Handa  <handa@m17n.org>
--- a/src/alloc.c	Wed Feb 08 04:26:44 2006 +0000
+++ b/src/alloc.c	Sat Feb 11 00:11:19 2006 +0000
@@ -2299,7 +2299,7 @@
 
 
 DEFUN ("make-bool-vector", Fmake_bool_vector, Smake_bool_vector, 2, 2, 0,
-       doc: /* Return a new bool-vector of length LENGTH, using INIT for as each element.
+       doc: /* Return a new bool-vector of length LENGTH, using INIT for each element.
 LENGTH must be a number.  INIT matters only in whether it is t or nil.  */)
      (length, init)
      Lisp_Object length, init;
@@ -4768,7 +4768,7 @@
 
 
 DEFUN ("purecopy", Fpurecopy, Spurecopy, 1, 1, 0,
-       doc: /* Make a copy of OBJECT in pure storage.
+       doc: /* Make a copy of object OBJ in pure storage.
 Recursively copies contents of vectors and cons cells.
 Does not copy symbols.  Copies strings without text properties.  */)
      (obj)
--- a/src/data.c	Wed Feb 08 04:26:44 2006 +0000
+++ b/src/data.c	Sat Feb 11 00:11:19 2006 +0000
@@ -1927,23 +1927,26 @@
   return hare;
 }
 
-DEFUN ("indirect-function", Findirect_function, Sindirect_function, 1, 1, 0,
+DEFUN ("indirect-function", Findirect_function, Sindirect_function, 1, 2, 0,
        doc: /* Return the function at the end of OBJECT's function chain.
-If OBJECT is a symbol, follow all function indirections and return the final
-function binding.
-If OBJECT is not a symbol, just return it.
-Signal a void-function error if the final symbol is unbound.
+If OBJECT is not a symbol, just return it.  Otherwise, follow all
+function indirections to find the final function binding and return it.
+If the final symbol in the chain is unbound, signal a void-function error.
+Optional arg NOERROR non-nil means to return nil instead of signalling.
 Signal a cyclic-function-indirection error if there is a loop in the
 function chain of symbols.  */)
-     (object)
+     (object, noerror)
      register Lisp_Object object;
+     Lisp_Object noerror;
 {
   Lisp_Object result;
 
   result = indirect_function (object);
 
   if (EQ (result, Qunbound))
-    return Fsignal (Qvoid_function, Fcons (object, Qnil));
+    return (NILP (noerror)
+	    ? Fsignal (Qvoid_function, Fcons (object, Qnil))
+	    : Qnil);
   return result;
 }
 
--- a/src/doc.c	Wed Feb 08 04:26:44 2006 +0000
+++ b/src/doc.c	Sat Feb 11 00:11:19 2006 +0000
@@ -386,7 +386,7 @@
 	  !NILP (tem)))
     return Fdocumentation_property (function, Qfunction_documentation, raw);
 
-  fun = Findirect_function (function);
+  fun = Findirect_function (function, Qnil);
   if (SUBRP (fun))
     {
       if (XSUBR (fun)->doc == 0)
--- a/src/eval.c	Wed Feb 08 04:26:44 2006 +0000
+++ b/src/eval.c	Sat Feb 11 00:11:19 2006 +0000
@@ -618,7 +618,7 @@
 
   /* If this isn't a byte-compiled function, there may be a frame at
      the top for Finteractive_p.  If so, skip it.  */
-  fun = Findirect_function (*btp->function);
+  fun = Findirect_function (*btp->function, Qnil);
   if (SUBRP (fun) && (XSUBR (fun) == &Sinteractive_p
 		      || XSUBR (fun) == &Scalled_interactively_p))
     btp = btp->next;
@@ -639,7 +639,7 @@
      a special form, ignoring frames for Finteractive_p and/or
      Fbytecode at the top.  If this frame is for a built-in function
      (such as load or eval-region) return nil.  */
-  fun = Findirect_function (*btp->function);
+  fun = Findirect_function (*btp->function, Qnil);
   if (exclude_subrs_p && SUBRP (fun))
     return 0;
 
@@ -2079,7 +2079,7 @@
   Vautoload_queue = Qt;
   unbind_to (count, Qnil);
 
-  fun = Findirect_function (fun);
+  fun = Findirect_function (fun, Qnil);
 
   if (!NILP (Fequal (fun, fundef)))
     error ("Autoloading failed to define function %s",
@@ -2142,7 +2142,7 @@
   /* At this point, only original_fun and original_args
      have values that will be used below */
  retry:
-  fun = Findirect_function (original_fun);
+  fun = Findirect_function (original_fun, Qnil);
 
   if (SUBRP (fun))
     {
@@ -2841,7 +2841,7 @@
 
   fun = args[0];
 
-  fun = Findirect_function (fun);
+  fun = Findirect_function (fun, Qnil);
 
   if (SUBRP (fun))
     {
--- a/src/keyboard.c	Wed Feb 08 04:26:44 2006 +0000
+++ b/src/keyboard.c	Sat Feb 11 00:11:19 2006 +0000
@@ -9698,7 +9698,7 @@
 
   while (1)
     {
-      final = Findirect_function (cmd);
+      final = Findirect_function (cmd, Qnil);
 
       if (CONSP (final) && (tem = Fcar (final), EQ (tem, Qautoload)))
 	{
--- a/src/keymap.c	Wed Feb 08 04:26:44 2006 +0000
+++ b/src/keymap.c	Sat Feb 11 00:11:19 2006 +0000
@@ -69,7 +69,7 @@
 /* keymap used for minibuffers when doing completion in filenames */
 Lisp_Object Vminibuffer_local_filename_completion_map;
 
-/* keymap used for minibuffers when doing completion in filenames 
+/* keymap used for minibuffers when doing completion in filenames
    with require-match*/
 Lisp_Object Vminibuffer_local_must_match_filename_map;
 
@@ -1403,13 +1403,6 @@
 static Lisp_Object *cmm_modes = NULL, *cmm_maps = NULL;
 static int cmm_size = 0;
 
-/* Error handler used in current_minor_maps.  */
-static Lisp_Object
-current_minor_maps_error ()
-{
-  return Qnil;
-}
-
 /* Store a pointer to an array of the keymaps of the currently active
    minor modes in *buf, and return the number of maps it contains.
 
@@ -1511,9 +1504,7 @@
 	      }
 
 	    /* Get the keymap definition--or nil if it is not defined.  */
-	    temp = internal_condition_case_1 (Findirect_function,
-					      XCDR (assoc),
-					      Qerror, current_minor_maps_error);
+	    temp = Findirect_function (XCDR (assoc), Qt);
 	    if (!NILP (temp))
 	      {
 		cmm_modes[i] = var;
@@ -3753,11 +3744,11 @@
   Vminibuffer_local_completion_map = Fmake_sparse_keymap (Qnil);
   Fset_keymap_parent (Vminibuffer_local_completion_map, Vminibuffer_local_map);
 
-  DEFVAR_LISP ("minibuffer-local-filename-completion-map", 
+  DEFVAR_LISP ("minibuffer-local-filename-completion-map",
 	       &Vminibuffer_local_filename_completion_map,
 	       doc: /* Local keymap for minibuffer input with completion for filenames.  */);
   Vminibuffer_local_filename_completion_map = Fmake_sparse_keymap (Qnil);
-  Fset_keymap_parent (Vminibuffer_local_filename_completion_map, 
+  Fset_keymap_parent (Vminibuffer_local_filename_completion_map,
 		      Vminibuffer_local_completion_map);
 
 
@@ -3767,11 +3758,11 @@
   Fset_keymap_parent (Vminibuffer_local_must_match_map,
 		      Vminibuffer_local_completion_map);
 
-  DEFVAR_LISP ("minibuffer-local-must-match-filename-map", 
+  DEFVAR_LISP ("minibuffer-local-must-match-filename-map",
 	       &Vminibuffer_local_must_match_filename_map,
 	       doc: /* Local keymap for minibuffer input with completion for filenames with exact match.  */);
   Vminibuffer_local_must_match_filename_map = Fmake_sparse_keymap (Qnil);
-  Fset_keymap_parent (Vminibuffer_local_must_match_filename_map, 
+  Fset_keymap_parent (Vminibuffer_local_must_match_filename_map,
 		      Vminibuffer_local_must_match_map);
 
   DEFVAR_LISP ("minor-mode-map-alist", &Vminor_mode_map_alist,
--- a/src/lisp.h	Wed Feb 08 04:26:44 2006 +0000
+++ b/src/lisp.h	Sat Feb 11 00:11:19 2006 +0000
@@ -2189,7 +2189,7 @@
 EXFUN (Fsymbol_plist, 1);
 EXFUN (Fsymbol_name, 1);
 extern Lisp_Object indirect_function P_ ((Lisp_Object));
-EXFUN (Findirect_function, 1);
+EXFUN (Findirect_function, 2);
 EXFUN (Ffset, 2);
 EXFUN (Fsetplist, 2);
 EXFUN (Fsymbol_value, 1);
--- a/src/macfns.c	Wed Feb 08 04:26:44 2006 +0000
+++ b/src/macfns.c	Sat Feb 11 00:11:19 2006 +0000
@@ -1448,7 +1448,8 @@
 
   BLOCK_INPUT;
 
-  rif->define_frame_cursor (f, cursor);
+  if (FRAME_MAC_WINDOW (f) != 0)
+    rif->define_frame_cursor (f, cursor);
 
   f->output_data.mac->text_cursor = cursor;
   f->output_data.mac->nontext_cursor = nontext_cursor;
@@ -2398,11 +2399,12 @@
   struct mac_display_info *dpyinfo = NULL;
   Lisp_Object parent;
   struct kboard *kb;
-  char x_frame_name[10];
   static int x_frame_count = 2;  /* begins at 2 because terminal frame is F1 */
 
   check_mac ();
 
+  parms = Fcopy_alist (parms);
+
   /* Use this general default value to start with
      until we know if this frame has a specified name.  */
   Vx_resource_name = Vinvocation_name;
@@ -2452,18 +2454,6 @@
   else
     f = make_frame (1);
 
-  if (EQ (name, Qunbound) || NILP (name))
-    {
-      sprintf (x_frame_name, "F%d", x_frame_count++);
-      f->name = build_string (x_frame_name);
-      f->explicit_name = 0;
-    }
-  else
-    {
-      f->name = name;
-      f->explicit_name = 1;
-    }
-
   XSETFRAME (frame, f);
 
   /* Note that X Windows does support scroll bars.  */
@@ -2544,7 +2534,7 @@
       font = x_new_font (f, "-ETL-fixed-medium-r-*--*-160-*-*-*-*-iso8859-1");
     /* If those didn't work, look for something which will at least work.  */
     if (! STRINGP (font))
-      font = x_new_fontset (f, build_string ("fontset-mac"));
+      font = x_new_fontset (f, build_string ("fontset-standard"));
     if (! STRINGP (font))
       font = x_new_font (f, "-*-monaco-*-12-*-mac-roman");
     if (! STRINGP (font))
@@ -2679,17 +2669,28 @@
       if (EQ (visibility, Qunbound))
 	visibility = Qt;
 
-#if 0 /* MAC_TODO: really no iconify on Mac */
       if (EQ (visibility, Qicon))
 	x_iconify_frame (f);
-      else
-#endif
-      if (! NILP (visibility))
+      else if (! NILP (visibility))
 	x_make_frame_visible (f);
       else
 	/* Must have been Qnil.  */
 	;
     }
+
+  /* Initialize `default-minibuffer-frame' in case this is the first
+     frame on this display device.  */
+  if (FRAME_HAS_MINIBUF_P (f)
+      && (!FRAMEP (kb->Vdefault_minibuffer_frame)
+          || !FRAME_LIVE_P (XFRAME (kb->Vdefault_minibuffer_frame))))
+    kb->Vdefault_minibuffer_frame = frame;
+
+  /* All remaining specified parameters, which have not been "used"
+     by x_get_arg and friends, now go in the misc. alist of the frame.  */
+  for (tem = parms; !NILP (tem); tem = XCDR (tem))
+    if (CONSP (XCAR (tem)) && !NILP (XCAR (XCAR (tem))))
+      f->param_alist = Fcons (XCAR (tem), f->param_alist);
+
   UNGCPRO;
 
   /* Make sure windows on this frame appear in calls to next-window
@@ -2699,9 +2700,11 @@
   return unbind_to (count, frame);
 }
 
+
 /* FRAME is used only to get a handle on the X display.  We don't pass the
    display info directly because we're called from frame.c, which doesn't
    know about that structure.  */
+
 Lisp_Object
 x_get_focus_frame (frame)
      struct frame *frame;
@@ -2714,6 +2717,39 @@
   XSETFRAME (xfocus, dpyinfo->x_focus_frame);
   return xfocus;
 }
+
+
+DEFUN ("x-focus-frame", Fx_focus_frame, Sx_focus_frame, 1, 1, 0,
+       doc: /* Set the input focus to FRAME.
+FRAME nil means use the selected frame.  */)
+     (frame)
+     Lisp_Object frame;
+{
+  struct frame *f = check_x_frame (frame);
+  struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f);
+
+  if (dpyinfo->x_focus_frame != f)
+    {
+      BLOCK_INPUT;
+#ifdef MAC_OSX
+      ActivateWindow (ActiveNonFloatingWindow (), false);
+      ActivateWindow (FRAME_MAC_WINDOW (f), true);
+#else
+#if !TARGET_API_MAC_CARBON
+      /* SelectWindow (Non-Carbon) does not issue deactivate events if
+	 the possibly inactive window that is to be selected is
+	 already the frontmost one.  */
+      SendBehind (FRAME_MAC_WINDOW (f), NULL);
+#endif
+      /* This brings the window to the front.  */
+      SelectWindow (FRAME_MAC_WINDOW (f));
+#endif
+      UNBLOCK_INPUT;
+    }
+
+  return Qnil;
+}
+
 
 DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0,
        doc: /* Internal function called by `color-defined-p', which see.  */)
@@ -3664,7 +3700,7 @@
       font = x_new_font (f, "-ETL-fixed-medium-r-*--*-160-*-*-*-*-iso8859-1");
     /* If those didn't work, look for something which will at least work.  */
     if (! STRINGP (font))
-      font = x_new_fontset (f, build_string ("fontset-mac"));
+      font = x_new_fontset (f, build_string ("fontset-standard"));
     if (! STRINGP (font))
       font = x_new_font (f, "-*-monaco-*-12-*-mac-roman");
     if (! STRINGP (font))
@@ -4513,6 +4549,7 @@
   defsubr (&Sx_close_connection);
   defsubr (&Sx_display_list);
   defsubr (&Sx_synchronize);
+  defsubr (&Sx_focus_frame);
 
   /* Setting callback functions for fontset handler.  */
   get_font_info_func = x_get_font_info;
--- a/src/macterm.c	Wed Feb 08 04:26:44 2006 +0000
+++ b/src/macterm.c	Sat Feb 11 00:11:19 2006 +0000
@@ -1028,12 +1028,15 @@
 static void
 init_cg_text_anti_aliasing_threshold ()
 {
-  Lisp_Object val =
-    Fmac_get_preference (build_string ("AppleAntiAliasingThreshold"),
-			 Qnil, Qnil, Qnil);
-
-  if (INTEGERP (val))
-    cg_text_anti_aliasing_threshold = XINT (val);
+  int threshold;
+  Boolean valid_p;
+
+  threshold =
+    CFPreferencesGetAppIntegerValue (CFSTR ("AppleAntiAliasingThreshold"),
+				     kCFPreferencesCurrentApplication,
+				     &valid_p);
+  if (valid_p)
+    cg_text_anti_aliasing_threshold = threshold;
 }
 
 static int
@@ -5301,7 +5304,10 @@
      struct frame *f;
      Cursor cursor;
 {
-  SetThemeCursor (cursor);
+  struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f);
+
+  if (dpyinfo->x_focus_frame == f)
+    SetThemeCursor (cursor);
 }
 
 
@@ -5856,7 +5862,7 @@
   if (f->async_visible)
     {
       BLOCK_INPUT;
-      SelectWindow (FRAME_MAC_WINDOW (f));
+      BringToFront (FRAME_MAC_WINDOW (f));
       UNBLOCK_INPUT;
     }
 }
@@ -5870,7 +5876,7 @@
   if (f->async_visible)
     {
       BLOCK_INPUT;
-      SendBehind (FRAME_MAC_WINDOW (f), nil);
+      SendBehind (FRAME_MAC_WINDOW (f), NULL);
       UNBLOCK_INPUT;
     }
 }
@@ -5983,7 +5989,6 @@
 
       f->output_data.mac->asked_for_visible = 1;
 
-      SelectWindow (FRAME_MAC_WINDOW (f));
       CollapseWindow (FRAME_MAC_WINDOW (f), false);
       ShowWindow (FRAME_MAC_WINDOW (f));
     }
@@ -9602,6 +9607,8 @@
   /* So people can tell when we have read the available input.  */
   input_signal_count++;
 
+  ++handling_signal;
+
 #if USE_CARBON_EVENTS
   toolbox_dispatcher = GetEventDispatcherTarget ();
 
@@ -10242,6 +10249,7 @@
   }
 #endif
 
+  --handling_signal;
   UNBLOCK_INPUT;
   return count;
 }
--- a/src/window.c	Wed Feb 08 04:26:44 2006 +0000
+++ b/src/window.c	Sat Feb 11 00:11:19 2006 +0000
@@ -4284,6 +4284,14 @@
 	{
 	  if (!NILP (XWINDOW (window)->next))
 	    {
+              /* This may happen for the minibuffer.  In that case
+                 the window_deletion_count check below does not work.  */
+              if (XINT (CURSIZE (p->next)) - delta <= 0) 
+                {
+                  Fset_window_configuration (old_config);
+                  error ("Cannot adjust window size as specified");
+                }
+
 	      XSETINT (CURBEG (p->next),
 		       XINT (CURBEG (p->next)) + delta);
 	      size_window (p->next, XINT (CURSIZE (p->next)) - delta,
--- a/src/xterm.c	Wed Feb 08 04:26:44 2006 +0000
+++ b/src/xterm.c	Sat Feb 11 00:11:19 2006 +0000
@@ -6475,6 +6475,12 @@
 	 so update things that depend on mouse position.  */
       if (f && !f->output_data.x->hourglass_p)
 	note_mouse_movement (f, &event.xmotion);
+#ifdef USE_GTK
+      /* We may get an EnterNotify on the buttons in the toolbar.  In that
+         case we moved out of any highlighted area and need to note this.  */
+      if (!f && last_mouse_glyph_frame)
+        note_mouse_movement (last_mouse_glyph_frame, &event);
+#endif
       goto OTHER;
 
     case FocusIn:
@@ -6502,6 +6508,11 @@
           if (any_help_event_p)
 	    do_help = -1;
         }
+#ifdef USE_GTK
+      /* See comment in EnterNotify above */
+      else if (last_mouse_glyph_frame)
+        note_mouse_movement (last_mouse_glyph_frame, &event);
+#endif
       goto OTHER;
 
     case FocusOut: