aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS6
-rw-r--r--admin/FOR-RELEASE4
-rw-r--r--etc/ChangeLog8
-rw-r--r--etc/NEWS6
-rw-r--r--etc/PROBLEMS7
-rw-r--r--lisp/ChangeLog108
-rw-r--r--lisp/Makefile.in4
-rw-r--r--lisp/calendar/appt.el4
-rw-r--r--lisp/calendar/cal-bahai.el3
-rw-r--r--lisp/calendar/cal-china.el2
-rw-r--r--lisp/calendar/cal-coptic.el2
-rw-r--r--lisp/calendar/cal-dst.el4
-rw-r--r--lisp/calendar/cal-french.el2
-rw-r--r--lisp/calendar/cal-hebrew.el2
-rw-r--r--lisp/calendar/cal-islam.el2
-rw-r--r--lisp/calendar/cal-iso.el2
-rw-r--r--lisp/calendar/cal-julian.el2
-rw-r--r--lisp/calendar/cal-mayan.el4
-rw-r--r--lisp/calendar/cal-move.el2
-rw-r--r--lisp/calendar/cal-persia.el2
-rw-r--r--lisp/calendar/cal-tex.el2
-rw-r--r--lisp/calendar/cal-x.el2
-rw-r--r--lisp/calendar/diary-lib.el2
-rw-r--r--lisp/calendar/holidays.el2
-rw-r--r--lisp/calendar/icalendar.el2
-rw-r--r--lisp/calendar/lunar.el4
-rw-r--r--lisp/calendar/parse-time.el2
-rw-r--r--lisp/calendar/solar.el4
-rw-r--r--lisp/calendar/time-date.el2
-rw-r--r--lisp/calendar/timeclock.el2
-rw-r--r--lisp/calendar/todo-mode.el2
-rw-r--r--lisp/desktop.el13
-rw-r--r--lisp/dired-x.el4
-rw-r--r--lisp/frame.el2
-rw-r--r--lisp/gnus/ChangeLog136
-rw-r--r--lisp/gnus/gnus.el3
-rw-r--r--lisp/gnus/mm-view.el3
-rw-r--r--lisp/gnus/mml1991.el6
-rw-r--r--lisp/gnus/mml2015.el2
-rw-r--r--lisp/gnus/nnfolder.el2
-rw-r--r--lisp/gnus/rfc2231.el98
-rw-r--r--lisp/hilit-chg.el20
-rw-r--r--lisp/image-mode.el3
-rw-r--r--lisp/mh-e/ChangeLog19
-rw-r--r--lisp/mh-e/mh-compat.el2
-rw-r--r--lisp/mh-e/mh-e.el3
-rw-r--r--lisp/mh-e/mh-search.el184
-rw-r--r--lisp/mh-e/mh-utils.el12
-rw-r--r--lisp/mouse.el4
-rw-r--r--lisp/net/rcirc.el522
-rw-r--r--lisp/net/tramp.el3
-rw-r--r--lisp/pgg-def.el3
-rw-r--r--lisp/pgg-gpg.el26
-rw-r--r--lisp/progmodes/ada-mode.el2
-rw-r--r--lisp/progmodes/ada-prj.el2
-rw-r--r--lisp/progmodes/ada-stmt.el2
-rw-r--r--lisp/progmodes/ada-xref.el2
-rw-r--r--lisp/progmodes/antlr-mode.el2
-rw-r--r--lisp/progmodes/asm-mode.el2
-rw-r--r--lisp/progmodes/autoconf.el4
-rw-r--r--lisp/progmodes/cc-align.el3
-rw-r--r--lisp/progmodes/cc-awk.el4
-rw-r--r--lisp/progmodes/cc-bytecomp.el4
-rw-r--r--lisp/progmodes/cc-cmds.el4
-rw-r--r--lisp/progmodes/cc-compat.el4
-rw-r--r--lisp/progmodes/cc-defs.el4
-rw-r--r--lisp/progmodes/cc-engine.el4
-rw-r--r--lisp/progmodes/cc-fonts.el2
-rw-r--r--lisp/progmodes/cc-langs.el13
-rw-r--r--lisp/progmodes/cc-menus.el4
-rw-r--r--lisp/progmodes/cc-mode.el4
-rw-r--r--lisp/progmodes/cc-styles.el4
-rw-r--r--lisp/progmodes/cc-subword.el2
-rw-r--r--lisp/progmodes/cc-vars.el4
-rw-r--r--lisp/progmodes/cfengine.el3
-rw-r--r--lisp/progmodes/cmacexp.el2
-rw-r--r--lisp/progmodes/compile.el2
-rw-r--r--lisp/progmodes/cperl-mode.el2
-rw-r--r--lisp/progmodes/cpp.el2
-rw-r--r--lisp/progmodes/cwarn.el2
-rw-r--r--lisp/progmodes/dcl-mode.el2
-rw-r--r--lisp/progmodes/delphi.el2
-rw-r--r--lisp/progmodes/ebnf-abn.el3
-rw-r--r--lisp/progmodes/ebnf-bnf.el2
-rw-r--r--lisp/progmodes/ebnf-dtd.el3
-rw-r--r--lisp/progmodes/ebnf-ebx.el3
-rw-r--r--lisp/progmodes/ebnf-iso.el2
-rw-r--r--lisp/progmodes/ebnf-otz.el2
-rw-r--r--lisp/progmodes/ebnf-yac.el2
-rw-r--r--lisp/progmodes/ebnf2ps.el2
-rw-r--r--lisp/progmodes/ebrowse.el2
-rw-r--r--lisp/progmodes/etags.el2
-rw-r--r--lisp/progmodes/executable.el2
-rw-r--r--lisp/progmodes/f90.el4
-rw-r--r--lisp/progmodes/gdb-ui.el32
-rw-r--r--lisp/progmodes/glasses.el2
-rw-r--r--lisp/progmodes/grep.el2
-rw-r--r--lisp/progmodes/gud.el2
-rw-r--r--lisp/progmodes/hideif.el2
-rw-r--r--lisp/progmodes/hideshow.el2
-rw-r--r--lisp/progmodes/icon.el2
-rw-r--r--lisp/progmodes/idlw-complete-structtag.el3
-rw-r--r--lisp/progmodes/idlw-help.el2
-rw-r--r--lisp/progmodes/idlw-rinfo.el4
-rw-r--r--lisp/progmodes/idlw-shell.el4
-rw-r--r--lisp/progmodes/idlw-toolbar.el4
-rw-r--r--lisp/progmodes/idlwave.el4
-rw-r--r--lisp/progmodes/inf-lisp.el2
-rw-r--r--lisp/progmodes/ld-script.el3
-rw-r--r--lisp/progmodes/m4-mode.el2
-rw-r--r--lisp/progmodes/make-mode.el2
-rw-r--r--lisp/progmodes/mantemp.el2
-rw-r--r--lisp/progmodes/meta-mode.el2
-rw-r--r--lisp/progmodes/mixal-mode.el2
-rw-r--r--lisp/progmodes/octave-hlp.el2
-rw-r--r--lisp/progmodes/octave-inf.el2
-rw-r--r--lisp/progmodes/octave-mod.el2
-rw-r--r--lisp/progmodes/pascal.el2
-rw-r--r--lisp/progmodes/perl-mode.el2
-rw-r--r--lisp/progmodes/prolog.el2
-rw-r--r--lisp/progmodes/ps-mode.el2
-rw-r--r--lisp/progmodes/python.el2
-rw-r--r--lisp/progmodes/scheme.el4
-rw-r--r--lisp/progmodes/sh-script.el4
-rw-r--r--lisp/progmodes/simula.el2
-rw-r--r--lisp/progmodes/sql.el2
-rw-r--r--lisp/progmodes/vhdl-mode.el2
-rw-r--r--lisp/progmodes/which-func.el2
-rw-r--r--lisp/progmodes/xscheme.el2
-rw-r--r--lisp/subr.el5
-rw-r--r--lisp/term/mac-win.el2
-rw-r--r--lisp/tumme.el44
-rw-r--r--lisp/vc-svn.el6
-rw-r--r--lispref/ChangeLog9
-rw-r--r--lispref/eval.texi12
-rw-r--r--lispref/modes.texi3
-rw-r--r--mac/ChangeLog5
-rw-r--r--mac/makefile.MPW9
-rw-r--r--man/ChangeLog22
-rw-r--r--man/dired.texi48
-rw-r--r--man/faq.texi53
-rw-r--r--man/gnus.texi13
-rw-r--r--man/macos.texi12
-rw-r--r--src/ChangeLog53
-rw-r--r--src/alloc.c4
-rw-r--r--src/data.c17
-rw-r--r--src/doc.c2
-rw-r--r--src/eval.c10
-rw-r--r--src/keyboard.c2
-rw-r--r--src/keymap.c21
-rw-r--r--src/lisp.h2
-rw-r--r--src/macfns.c77
-rw-r--r--src/macterm.c26
-rw-r--r--src/window.c8
-rw-r--r--src/xterm.c11
155 files changed, 1290 insertions, 694 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index d2fda5ed700..92c2ff70b47 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -65,6 +65,12 @@ Miles Bader
65 lisp/minibuf-eldef.el 65 lisp/minibuf-eldef.el
66 lisp/rfn-eshadow.el 66 lisp/rfn-eshadow.el
67 67
68Jay Belanger
69 Calc
70 lisp/calc/*
71 etc/calccard.tex
72 man/calc.texi
73
68============================================================================== 74==============================================================================
692. 752.
70============================================================================== 76==============================================================================
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index e8411b3c7c5..ab17c84eab9 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -69,7 +69,7 @@ leim working Kenichi Handa
69lib-src done ttn 69lib-src done ttn
70lisp done ttn 70lisp done ttn
71lisp/calc done Jay Belanger 71lisp/calc done Jay Belanger
72lisp/calendar working Glenn Morris 72lisp/calendar done Glenn Morris
73lisp/emacs-lisp done ttn 73lisp/emacs-lisp done ttn
74lisp/emulation done ttn 74lisp/emulation done ttn
75lisp/eshell done ttn 75lisp/eshell done ttn
@@ -81,7 +81,7 @@ lisp/mh-e done Bill Wohler
81lisp/net done ttn 81lisp/net done ttn
82lisp/obsolete done ttn 82lisp/obsolete done ttn
83lisp/play done Romain Francoise 83lisp/play done Romain Francoise
84lisp/progmodes working Nick Roberts 84lisp/progmodes done Nick Roberts
85lisp/term done ttn 85lisp/term done ttn
86lisp/textmodes done ttn 86lisp/textmodes done ttn
87lisp/url done ttn 87lisp/url done ttn
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 3d64ba12cc3..382a97ab50a 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,11 @@
12006-02-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * PROBLEMS (Mac OS X): Add QuickTime 7.0.4 / Mac OS X 10.3.9 breakage.
4
52006-02-09 Mathias Dahl <mathias.dahl@gmail.com>
6
7 * NEWS: New key bindings for Tumme in Dired.
8
12006-02-05 Jay Belanger <belanger@truman.edu> 92006-02-05 Jay Belanger <belanger@truman.edu>
2 10
3 * calccard.tex: Update copyright year. 11 * calccard.tex: Update copyright year.
diff --git a/etc/NEWS b/etc/NEWS
index e63c2d3bc76..7723adc8f8c 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1908,6 +1908,12 @@ boundaries during scrolling.
1908 1908
1909* Changes in Specialized Modes and Packages in Emacs 22.1: 1909* Changes in Specialized Modes and Packages in Emacs 22.1:
1910 1910
1911** Changes in Dired
1912*** Bindings for Tumme added
1913Several new keybindings, all starting with the C-t prefix, have been
1914added to Dired. They are all bound to commands in Tumme. As a starting
1915point, mark some image files in a dired buffer and do C-t d to display
1916thumbnails of them in a separate buffer.
1911** Changes in Hi Lock: 1917** Changes in Hi Lock:
1912 1918
1913+++ 1919+++
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 93561daa534..d86135cb075 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -1778,6 +1778,13 @@ There appears to be a problem with the implementation of pty's on the
1778Mac OS X that causes process output to be truncated. To avoid this, 1778Mac OS X that causes process output to be truncated. To avoid this,
1779leave process-connection-type set to its default value of nil. 1779leave process-connection-type set to its default value of nil.
1780 1780
1781*** Mac OS X 10.3.9 (Carbon): QuickTime 7.0.4 updater breaks build.
1782
1783On the above environment, build fails at the link stage with the
1784message like "Undefined symbols: _HICopyAccessibilityActionDescription
1785referenced from QuickTime expected to be defined in Carbon". A
1786workaround is to use QuickTime 7.0.1 reinstaller.
1787
1781** FreeBSD 1788** FreeBSD
1782 1789
1783*** FreeBSD 2.1.5: useless symbolic links remain in /tmp or other 1790*** FreeBSD 2.1.5: useless symbolic links remain in /tmp or other
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 75802219b4e..be2fdb32c6e 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,109 @@
12006-02-10 Juanma Barranquero <lekktu@gmail.com>
2
3 * desktop.el (desktop-outvar): Fix typo.
4 (desktop-save-buffer-p): Doc fix.
5
6 * subr.el (substitute-key-definition): Fix typo.
7
82006-02-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9
10 * frame.el (select-frame-set-input-focus): Call x-focus-frame also
11 when window-system is mac.
12
13 * term/mac-win.el (fontset-standard): Rename from "fontset-mac".
14
152006-02-10 Kim F. Storm <storm@cua.dk>
16
17 * subr.el (substitute-key-definition-key): Pass t for NOERROR to
18 indirect-function instead of using condition-case.
19
202006-02-10 Mathias Dahl <mathias.dahl@gmail.com>
21
22 * tumme.el (tumme-copy-with-exif-file-name): Tried to make
23 docstring less `colloquial'...
24
252006-02-09 Mathias Dahl <mathias.dahl@gmail.com>
26
27 * tumme.el: Added a couple of todo items.
28
292006-02-09 Lars Hansen <larsh@soem.dk>
30
31 * hilit-chg.el: Add highlight-changes-mode to desktop-locals-to-save.
32 (highlight-changes-mode): Don't change desktop-locals-to-save.
33
342006-02-09 Chong Yidong <cyd@stupidchicken.com>
35
36 * image-mode.el (image-toggle-display): Clear image cache if using
37 filename.
38
392006-02-09 Masatake YAMATO <jet@gyve.org>
40
41 * dired-x.el (dired-guess-shell-alist-default): Add .man as
42 a `dired-man' target.
43
44 * progmodes/autoconf.el (autoconf-font-lock-keywords): Check start
45 boundary of symbols.
46
472006-02-08 Peter Doornbosch <peter.doornbosch@luminis.nl> (tiny change)
48
49 * vc-svn.el (vc-svn-print-log): Show recent commits as well.
50
512006-02-09 Juanma Barranquero <lekktu@gmail.com>
52
53 * hilit-chg.el (hilit-chg-update-all-buffers): Use `mapc' instead of
54 `mapcar'; return nil.
55
562006-02-08 Chong Yidong <cyd@stupidchicken.com>
57
58 * mouse.el (mouse-drag-track): Don't change window if we rebind to
59 some other event.
60
612006-02-08 Ryan Yeske <rcyeske@gmail.com>
62
63 * net/rcirc.el (rcirc-startup-channels-alist):
64 Add irc.freenode.net and #emacs as defaults.
65 (rcirc-ignore-all-activity-flag): Remove variable.
66 (rcirc-authinfo): New variable.
67 (rcirc-authinfo-filename): Remove variable.
68 (rcirc-always-use-server-buffer-flag): New flag.
69 (rcirc): M-x rcirc will automatically connect without prompting.
70 C-u M-x rcirc will prompt. Use rcirc-connect to create a
71 connection in lisp.
72 (rcirc-process-server-response-1): Remove everything but the nick
73 portion of the sender so it doesn't need to be done everywhere
74 else. Update related code.
75 (global-map): Remove global keybindings.
76 (rcirc-get-buffer-create): Make sure rcirc-topic is set.
77 (rcirc-send-input): Split into several functions.
78 (rcirc-process-input-line, rcirc-process-message)
79 (rcirc-process-command): New functions.
80 (rcirc-target-buffer): New function to determine where to route
81 messages.
82 (rcirc-user-nick): Save match data.
83 (rcirc-toggle-ignore-buffer-activity)
84 (rcirc-update-activity-string): Remove global ignore functionality,
85 which can be done now by toggling rcirc-track-minor-mode.
86 (rcirc-track-minor-mode-map): New keymap.
87 (rcirc-track-minor-mode): New minor-mode.
88 (ignore): Make the ignore output nicer. Always print it when
89 adding or removing nicks.
90 (rcirc-url-regexp): Improve.
91 (rcirc-mangle-text): Remove properties before using text in the
92 modeline.
93 (rcirc-authenticate): Authentication data comes from
94 rcirc-authinfo, not the file pointed to by rcirc-authinfo-file.
95 (rcirc-server-prefix): Inherit from rcirc-server.
96
972006-02-08 Mathias Megyei <Mathias.Megyei@micronas.com> (tiny change)
98
99 * Makefile.in (compile): Append "|| true" to the end of the `find'
100 command, like compile-always does.
101
1022006-02-08 Sam Steingold <sds@gnu.org>
103
104 * net/tramp.el (tramp-maybe-open-connection): Do not wait for
105 output from a dead connection.
106
12006-02-07 Mathias Dahl <brakjoller@hotmail.com> 1072006-02-07 Mathias Dahl <brakjoller@hotmail.com>
2 108
3 * dired.el (dired-mode-map): Add more bindings for tumme. 109 * dired.el (dired-mode-map): Add more bindings for tumme.
@@ -351,7 +457,7 @@
351 * international/latexenc.el: Add a suitable `coding:' tag. 457 * international/latexenc.el: Add a suitable `coding:' tag.
352 (latexenc-find-file-coding-system): Undo last change. 458 (latexenc-find-file-coding-system): Undo last change.
353 459
3542006-01-27 Arne J,bx(Brgensen <arne@arnested.dk> 4602006-01-27 Arne J,Ax(Brgensen <arne@arnested.dk>
355 461
356 * international/latexenc.el (latexenc-find-file-coding-system): 462 * international/latexenc.el (latexenc-find-file-coding-system):
357 Make sure latexenc-main-file is a regular file and is readable. 463 Make sure latexenc-main-file is a regular file and is readable.
diff --git a/lisp/Makefile.in b/lisp/Makefile.in
index 4f92816e4eb..196a4b5c0a2 100644
--- a/lisp/Makefile.in
+++ b/lisp/Makefile.in
@@ -155,8 +155,10 @@ TAGS-LISP: $(lisptagsfiles1) $(lisptagsfiles2)
155# subdirectories, to make sure require's and load's in the files being 155# subdirectories, to make sure require's and load's in the files being
156# compiled find the right files. 156# compiled find the right files.
157 157
158# `|| true' below prevents old Bash versions from getting confused
159# by an error.
158compile: $(lisp)/subdirs.el mh-autoloads doit 160compile: $(lisp)/subdirs.el mh-autoloads doit
159 find $(lisp) -name "*.elc" -print | xargs chmod +w >/dev/null 2>&1; \ 161 find $(lisp) -name "*.elc" -print | xargs chmod +w >/dev/null 2>&1 || true; \
160 wd=$(lisp); $(setwins); \ 162 wd=$(lisp); $(setwins); \
161 els=`echo $$wins | tr ' \011' '\012\012' | \ 163 els=`echo $$wins | tr ' \011' '\012\012' | \
162 sed -e 's|\(.\)$$|\1/|' -e 's|^\./||' -e 's|$$|*.el|'`; \ 164 sed -e 's|\(.\)$$|\1/|' -e 's|^\./||' -e 's|$$|*.el|'`; \
diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el
index 40c6bfc2c86..571b4ec132a 100644
--- a/lisp/calendar/appt.el
+++ b/lisp/calendar/appt.el
@@ -1,7 +1,7 @@
1;;; appt.el --- appointment notification functions 1;;; appt.el --- appointment notification functions
2 2
3;; Copyright (C) 1989, 1990, 1994, 1998, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1989, 1990, 1994, 1998, 2001, 2002, 2003, 2004, 2005,
4;; Free Software Foundation, Inc. 4;; 2006 Free Software Foundation, Inc.
5 5
6;; Author: Neil Mager <neilm@juliet.ll.mit.edu> 6;; Author: Neil Mager <neilm@juliet.ll.mit.edu>
7;; Maintainer: Glenn Morris <rgm@gnu.org> 7;; Maintainer: Glenn Morris <rgm@gnu.org>
diff --git a/lisp/calendar/cal-bahai.el b/lisp/calendar/cal-bahai.el
index 91d4d3636df..f6419cf9a82 100644
--- a/lisp/calendar/cal-bahai.el
+++ b/lisp/calendar/cal-bahai.el
@@ -1,6 +1,7 @@
1;;; cal-bahai.el --- calendar functions for the Baha'i calendar. 1;;; cal-bahai.el --- calendar functions for the Baha'i calendar.
2 2
3;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc.
4 5
5;; Author: John Wiegley <johnw@gnu.org> 6;; Author: John Wiegley <johnw@gnu.org>
6;; Keywords: calendar 7;; Keywords: calendar
diff --git a/lisp/calendar/cal-china.el b/lisp/calendar/cal-china.el
index a4b83b87b15..5cdaa5092aa 100644
--- a/lisp/calendar/cal-china.el
+++ b/lisp/calendar/cal-china.el
@@ -1,6 +1,6 @@
1;;; cal-china.el --- calendar functions for the Chinese calendar 1;;; cal-china.el --- calendar functions for the Chinese calendar
2 2
3;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> 6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
diff --git a/lisp/calendar/cal-coptic.el b/lisp/calendar/cal-coptic.el
index 4673053246f..c37ab17567f 100644
--- a/lisp/calendar/cal-coptic.el
+++ b/lisp/calendar/cal-coptic.el
@@ -1,6 +1,6 @@
1;;; cal-coptic.el --- calendar functions for the Coptic/Ethiopic calendars 1;;; cal-coptic.el --- calendar functions for the Coptic/Ethiopic calendars
2 2
3;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> 6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
diff --git a/lisp/calendar/cal-dst.el b/lisp/calendar/cal-dst.el
index 1f3859d8bf1..62327a99c65 100644
--- a/lisp/calendar/cal-dst.el
+++ b/lisp/calendar/cal-dst.el
@@ -1,7 +1,7 @@
1;;; cal-dst.el --- calendar functions for daylight savings rules 1;;; cal-dst.el --- calendar functions for daylight savings rules
2 2
3;; Copyright (C) 1993, 1994, 1995, 1996, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1993, 1994, 1995, 1996, 2001, 2002, 2003, 2004, 2005,
4;; Free Software Foundation, Inc. 4;; 2006 Free Software Foundation, Inc.
5 5
6;; Author: Paul Eggert <eggert@twinsun.com> 6;; Author: Paul Eggert <eggert@twinsun.com>
7;; Edward M. Reingold <reingold@cs.uiuc.edu> 7;; Edward M. Reingold <reingold@cs.uiuc.edu>
diff --git a/lisp/calendar/cal-french.el b/lisp/calendar/cal-french.el
index ed974d312bb..0d88f161a03 100644
--- a/lisp/calendar/cal-french.el
+++ b/lisp/calendar/cal-french.el
@@ -1,7 +1,7 @@
1;;; cal-french.el --- calendar functions for the French Revolutionary calendar 1;;; cal-french.el --- calendar functions for the French Revolutionary calendar
2 2
3;; Copyright (C) 1988, 1989, 1992, 1994, 1995, 1997, 2001, 2002, 2003, 3;; Copyright (C) 1988, 1989, 1992, 1994, 1995, 1997, 2001, 2002, 2003,
4;; 2004, 2005 Free Software Foundation, Inc. 4;; 2004, 2005, 2006 Free Software Foundation, Inc.
5 5
6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> 6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
7;; Maintainer: Glenn Morris <rgm@gnu.org> 7;; Maintainer: Glenn Morris <rgm@gnu.org>
diff --git a/lisp/calendar/cal-hebrew.el b/lisp/calendar/cal-hebrew.el
index 99823db8215..1272e9966d4 100644
--- a/lisp/calendar/cal-hebrew.el
+++ b/lisp/calendar/cal-hebrew.el
@@ -1,6 +1,6 @@
1;;; cal-hebrew.el --- calendar functions for the Hebrew calendar 1;;; cal-hebrew.el --- calendar functions for the Hebrew calendar
2 2
3;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Nachum Dershowitz <nachum@cs.uiuc.edu> 6;; Author: Nachum Dershowitz <nachum@cs.uiuc.edu>
diff --git a/lisp/calendar/cal-islam.el b/lisp/calendar/cal-islam.el
index 52801600157..105bb288eb0 100644
--- a/lisp/calendar/cal-islam.el
+++ b/lisp/calendar/cal-islam.el
@@ -1,6 +1,6 @@
1;;; cal-islam.el --- calendar functions for the Islamic calendar 1;;; cal-islam.el --- calendar functions for the Islamic calendar
2 2
3;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> 6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
diff --git a/lisp/calendar/cal-iso.el b/lisp/calendar/cal-iso.el
index 41a3713d3ea..c11968e8421 100644
--- a/lisp/calendar/cal-iso.el
+++ b/lisp/calendar/cal-iso.el
@@ -1,6 +1,6 @@
1;;; cal-iso.el --- calendar functions for the ISO calendar 1;;; cal-iso.el --- calendar functions for the ISO calendar
2 2
3;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> 6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
diff --git a/lisp/calendar/cal-julian.el b/lisp/calendar/cal-julian.el
index 068e705410a..8f7af039d94 100644
--- a/lisp/calendar/cal-julian.el
+++ b/lisp/calendar/cal-julian.el
@@ -1,6 +1,6 @@
1;;; cal-julian.el --- calendar functions for the Julian calendar 1;;; cal-julian.el --- calendar functions for the Julian calendar
2 2
3;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> 6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
diff --git a/lisp/calendar/cal-mayan.el b/lisp/calendar/cal-mayan.el
index ce4f42e3328..b2d111a4b18 100644
--- a/lisp/calendar/cal-mayan.el
+++ b/lisp/calendar/cal-mayan.el
@@ -1,7 +1,7 @@
1;;; cal-mayan.el --- calendar functions for the Mayan calendars 1;;; cal-mayan.el --- calendar functions for the Mayan calendars
2 2
3;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005,
4;; Free Software Foundation, Inc. 4;; 2006 Free Software Foundation, Inc.
5 5
6;; Author: Stewart M. Clamen <clamen@cs.cmu.edu> 6;; Author: Stewart M. Clamen <clamen@cs.cmu.edu>
7;; Edward M. Reingold <reingold@cs.uiuc.edu> 7;; Edward M. Reingold <reingold@cs.uiuc.edu>
diff --git a/lisp/calendar/cal-move.el b/lisp/calendar/cal-move.el
index 70275017bfd..f7c8b284f1b 100644
--- a/lisp/calendar/cal-move.el
+++ b/lisp/calendar/cal-move.el
@@ -1,6 +1,6 @@
1;;; cal-move.el --- calendar functions for movement in the calendar 1;;; cal-move.el --- calendar functions for movement in the calendar
2 2
3;; Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> 6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
diff --git a/lisp/calendar/cal-persia.el b/lisp/calendar/cal-persia.el
index e9583a3f00d..33c296a7730 100644
--- a/lisp/calendar/cal-persia.el
+++ b/lisp/calendar/cal-persia.el
@@ -1,6 +1,6 @@
1;;; cal-persia.el --- calendar functions for the Persian calendar 1;;; cal-persia.el --- calendar functions for the Persian calendar
2 2
3;; Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> 6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
diff --git a/lisp/calendar/cal-tex.el b/lisp/calendar/cal-tex.el
index 7b029bc93c5..a67d90c832e 100644
--- a/lisp/calendar/cal-tex.el
+++ b/lisp/calendar/cal-tex.el
@@ -1,6 +1,6 @@
1;;; cal-tex.el --- calendar functions for printing calendars with LaTeX 1;;; cal-tex.el --- calendar functions for printing calendars with LaTeX
2 2
3;; Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Steve Fisk <fisk@bowdoin.edu> 6;; Author: Steve Fisk <fisk@bowdoin.edu>
diff --git a/lisp/calendar/cal-x.el b/lisp/calendar/cal-x.el
index a512c7c1e20..2e465e1093b 100644
--- a/lisp/calendar/cal-x.el
+++ b/lisp/calendar/cal-x.el
@@ -1,6 +1,6 @@
1;;; cal-x.el --- calendar windows in dedicated frames in X 1;;; cal-x.el --- calendar windows in dedicated frames in X
2 2
3;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Michael Kifer <kifer@cs.sunysb.edu> 6;; Author: Michael Kifer <kifer@cs.sunysb.edu>
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
index 91c396f7bf5..a8eeebae8fc 100644
--- a/lisp/calendar/diary-lib.el
+++ b/lisp/calendar/diary-lib.el
@@ -1,7 +1,7 @@
1;;; diary-lib.el --- diary functions 1;;; diary-lib.el --- diary functions
2 2
3;; Copyright (C) 1989, 1990, 1992, 1993, 1994, 1995, 2001, 2002, 2003, 3;; Copyright (C) 1989, 1990, 1992, 1993, 1994, 1995, 2001, 2002, 2003,
4;; 2004, 2005 Free Software Foundation, Inc. 4;; 2004, 2005, 2006 Free Software Foundation, Inc.
5 5
6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> 6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
7;; Maintainer: Glenn Morris <rgm@gnu.org> 7;; Maintainer: Glenn Morris <rgm@gnu.org>
diff --git a/lisp/calendar/holidays.el b/lisp/calendar/holidays.el
index b18844c18d9..c9a1a0f17e5 100644
--- a/lisp/calendar/holidays.el
+++ b/lisp/calendar/holidays.el
@@ -1,7 +1,7 @@
1;;; holidays.el --- holiday functions for the calendar package 1;;; holidays.el --- holiday functions for the calendar package
2 2
3;; Copyright (C) 1989, 1990, 1992, 1993, 1994, 1997, 2001, 2002, 2003, 3;; Copyright (C) 1989, 1990, 1992, 1993, 1994, 1997, 2001, 2002, 2003,
4;; 2004, 2005 Free Software Foundation, Inc. 4;; 2004, 2005, 2006 Free Software Foundation, Inc.
5 5
6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> 6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
7;; Maintainer: Glenn Morris <rgm@gnu.org> 7;; Maintainer: Glenn Morris <rgm@gnu.org>
diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el
index 33f89474504..e1d513ce680 100644
--- a/lisp/calendar/icalendar.el
+++ b/lisp/calendar/icalendar.el
@@ -1,6 +1,6 @@
1;;; icalendar.el --- iCalendar implementation -*-coding: utf-8 -*- 1;;; icalendar.el --- iCalendar implementation -*-coding: utf-8 -*-
2 2
3;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
4 4
5;; Author: Ulf Jasper <ulf.jasper@web.de> 5;; Author: Ulf Jasper <ulf.jasper@web.de>
6;; Created: August 2002 6;; Created: August 2002
diff --git a/lisp/calendar/lunar.el b/lisp/calendar/lunar.el
index ed54bc88394..dd2f546fc37 100644
--- a/lisp/calendar/lunar.el
+++ b/lisp/calendar/lunar.el
@@ -1,7 +1,7 @@
1;;; lunar.el --- calendar functions for phases of the moon 1;;; lunar.el --- calendar functions for phases of the moon
2 2
3;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005,
4;; Free Software Foundation, Inc. 4;; 2006 Free Software Foundation, Inc.
5 5
6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> 6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
7;; Maintainer: Glenn Morris <rgm@gnu.org> 7;; Maintainer: Glenn Morris <rgm@gnu.org>
diff --git a/lisp/calendar/parse-time.el b/lisp/calendar/parse-time.el
index 3e09e7b1fb6..9587eb57a9f 100644
--- a/lisp/calendar/parse-time.el
+++ b/lisp/calendar/parse-time.el
@@ -1,6 +1,6 @@
1;;; parse-time.el --- parsing time strings 1;;; parse-time.el --- parsing time strings
2 2
3;; Copyright (C) 1996, 2000, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1996, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Erik Naggum <erik@naggum.no> 6;; Author: Erik Naggum <erik@naggum.no>
diff --git a/lisp/calendar/solar.el b/lisp/calendar/solar.el
index 5b58b739dba..660abb14f88 100644
--- a/lisp/calendar/solar.el
+++ b/lisp/calendar/solar.el
@@ -1,7 +1,7 @@
1;;; solar.el --- calendar functions for solar events 1;;; solar.el --- calendar functions for solar events
2 2
3;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004, 2005,
4;; Free Software Foundation, Inc. 4;; 2006 Free Software Foundation, Inc.
5 5
6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu> 6;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
7;; Denis B. Roegel <Denis.Roegel@loria.fr> 7;; Denis B. Roegel <Denis.Roegel@loria.fr>
diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el
index fd74e5a6251..0de9806d2bb 100644
--- a/lisp/calendar/time-date.el
+++ b/lisp/calendar/time-date.el
@@ -1,6 +1,6 @@
1;;; time-date.el --- Date and time handling functions 1;;; time-date.el --- Date and time handling functions
2 2
3;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> 6;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
diff --git a/lisp/calendar/timeclock.el b/lisp/calendar/timeclock.el
index f46ec4eba23..3f2697509f3 100644
--- a/lisp/calendar/timeclock.el
+++ b/lisp/calendar/timeclock.el
@@ -1,6 +1,6 @@
1;;; timeclock.el --- mode for keeping track of how much you work 1;;; timeclock.el --- mode for keeping track of how much you work
2 2
3;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: John Wiegley <johnw@gnu.org> 6;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el
index b6871a38ab9..6f96ec1cdb2 100644
--- a/lisp/calendar/todo-mode.el
+++ b/lisp/calendar/todo-mode.el
@@ -1,6 +1,6 @@
1;;; todo-mode.el --- major mode for editing TODO list files 1;;; todo-mode.el --- major mode for editing TODO list files
2 2
3;; Copyright (C) 1997, 1999, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1997, 1999, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Oliver Seidel <os10000@seidel-space.de> 6;; Author: Oliver Seidel <os10000@seidel-space.de>
diff --git a/lisp/desktop.el b/lisp/desktop.el
index 355f8d9394c..cfde6237cd9 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -57,17 +57,17 @@
57;; are supplied to handle special major and minor modes respectively. 57;; are supplied to handle special major and minor modes respectively.
58;; `desktop-buffer-mode-handlers' is an alist of major mode specific functions 58;; `desktop-buffer-mode-handlers' is an alist of major mode specific functions
59;; to restore a desktop buffer. Elements must have the form 59;; to restore a desktop buffer. Elements must have the form
60;; 60;;
61;; (MAJOR-MODE . RESTORE-BUFFER-FUNCTION). 61;; (MAJOR-MODE . RESTORE-BUFFER-FUNCTION).
62;; 62;;
63;; Functions listed are called by `desktop-create-buffer' when `desktop-read' 63;; Functions listed are called by `desktop-create-buffer' when `desktop-read'
64;; evaluates the desktop file. Buffers with a major mode not specified here, 64;; evaluates the desktop file. Buffers with a major mode not specified here,
65;; are restored by the default handler `desktop-restore-file-buffer'. 65;; are restored by the default handler `desktop-restore-file-buffer'.
66;; `desktop-minor-mode-handlers' is an alist of functions to restore 66;; `desktop-minor-mode-handlers' is an alist of functions to restore
67;; non-standard minor modes. Elements must have the form 67;; non-standard minor modes. Elements must have the form
68;; 68;;
69;; (MINOR-MODE . RESTORE-FUNCTION). 69;; (MINOR-MODE . RESTORE-FUNCTION).
70;; 70;;
71;; Functions are called by `desktop-create-buffer' to restore minor modes. 71;; Functions are called by `desktop-create-buffer' to restore minor modes.
72;; Minor modes not specified here, are restored by the standard minor mode 72;; Minor modes not specified here, are restored by the standard minor mode
73;; function. If you write a module that defines a major or minor mode that 73;; function. If you write a module that defines a major or minor mode that
@@ -661,7 +661,7 @@ Not all types of values are supported."
661(defun desktop-outvar (varspec) 661(defun desktop-outvar (varspec)
662 "Output a setq statement for variable VAR to the desktop file. 662 "Output a setq statement for variable VAR to the desktop file.
663The argument VARSPEC may be the variable name VAR (a symbol), 663The argument VARSPEC may be the variable name VAR (a symbol),
664or a cons cell of the form (VAR . MAX-SIZE), 664or a cons cell of the form (VAR . MAX-SIZE),
665which means to truncate VAR's value to at most MAX-SIZE elements 665which means to truncate VAR's value to at most MAX-SIZE elements
666\(if the value is a list) before saving the value." 666\(if the value is a list) before saving the value."
667 (let (var size) 667 (let (var size)
@@ -684,7 +684,8 @@ which means to truncate VAR's value to at most MAX-SIZE elements
684(defun desktop-save-buffer-p (filename bufname mode &rest dummy) 684(defun desktop-save-buffer-p (filename bufname mode &rest dummy)
685 "Return t if buffer should have its state saved in the desktop file. 685 "Return t if buffer should have its state saved in the desktop file.
686FILENAME is the visited file name, BUFNAME is the buffer name, and 686FILENAME is the visited file name, BUFNAME is the buffer name, and
687MODE is the major mode." 687MODE is the major mode.
688\n\(fn FILENAME BUFNAME MODE)"
688 (let ((case-fold-search nil)) 689 (let ((case-fold-search nil))
689 (and (not (string-match desktop-buffers-not-to-save bufname)) 690 (and (not (string-match desktop-buffers-not-to-save bufname))
690 (not (memq mode desktop-modes-not-to-save)) 691 (not (memq mode desktop-modes-not-to-save))
diff --git a/lisp/dired-x.el b/lisp/dired-x.el
index da9fc284801..e207c60502d 100644
--- a/lisp/dired-x.el
+++ b/lisp/dired-x.el
@@ -1027,11 +1027,11 @@ dired."
1027 " " dired-guess-shell-znew-switches)) 1027 " " dired-guess-shell-znew-switches))
1028 1028
1029 ;; The following four extensions are useful with dired-man ("N" key) 1029 ;; The following four extensions are useful with dired-man ("N" key)
1030 (list "\\.[0-9]$" '(progn (require 'man) 1030 (list "\\.\\(?:[0-9]\\|man\\)$" '(progn (require 'man)
1031 (if (Man-support-local-filenames) 1031 (if (Man-support-local-filenames)
1032 "man -l" 1032 "man -l"
1033 "cat * | tbl | nroff -man -h"))) 1033 "cat * | tbl | nroff -man -h")))
1034 (list "\\.[0-9]\\.g?z$" '(progn (require 'man) 1034 (list "\\.\\(?:[0-9]\\|man\\)\\.g?z$" '(progn (require 'man)
1035 (if (Man-support-local-filenames) 1035 (if (Man-support-local-filenames)
1036 "man -l" 1036 "man -l"
1037 "gunzip -qc * | tbl | nroff -man -h")) 1037 "gunzip -qc * | tbl | nroff -man -h"))
diff --git a/lisp/frame.el b/lisp/frame.el
index 5e6451dccac..8437475dfd6 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -695,7 +695,7 @@ automatically."
695 (select-frame frame) 695 (select-frame frame)
696 (raise-frame frame) 696 (raise-frame frame)
697 ;; Ensure, if possible, that frame gets input focus. 697 ;; Ensure, if possible, that frame gets input focus.
698 (cond ((eq window-system 'x) 698 (cond ((memq window-system '(x mac))
699 (x-focus-frame frame)) 699 (x-focus-frame frame))
700 ((eq window-system 'w32) 700 ((eq window-system 'w32)
701 (w32-focus-frame frame))) 701 (w32-focus-frame frame)))
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 168280e8e24..be9436d350c 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,41 @@
12006-02-10 Reiner Steib <Reiner.Steib@gmx.de>
2
3 * gnus.el: Remove bogus comment.
4
52006-02-09 Daiki Ueno <ueno@unixuser.org>
6
7 * pgg-gpg.el (pgg-gpg-encrypt-region): Don't convert line-endings
8 in elisp.
9 (pgg-gpg-encrypt-symmetric-region): Ditto.
10 (pgg-gpg-sign-region): Ditto.
11
12 * pgg-def.el (pgg-text-mode): New variable.
13
14 * mml2015.el (mml2015-pgg-sign): Enable pgg-text-mode.
15 (mml2015-pgg-encrypt): Ditto.
16
17 * mml1991.el (mml1991-pgg-sign): Enable pgg-text-mode.
18 (mml1991-pgg-encrypt): Ditto.
19
202006-02-08 Katsumi Yamaoka <yamaoka@jpl.org>
21
22 * nnfolder.el (nnfolder-insert-newsgroup-line): Use
23 message-make-date instead of current-time-string.
24
25 * mm-view.el (mm-inline-message): Don't set gnus-newsgroup-charset
26 to gnus-decoded which mm-uu might set.
27
282006-02-08 Katsumi Yamaoka <yamaoka@jpl.org>
29
30 * rfc2231.el (rfc2231-parse-string): Sort segmented parameters;
31 don't decode quoted parameters; remove misimported Emacs code.
32 Suggested by ARISAWA Akihiro <ari@mbf.ocn.ne.jp>.
33 (rfc2231-decode-encoded-string): Don't use split-string which
34 behaves differently according to Emacs version; use
35 mm-decode-coding-region to convert charset to coding-system.
36 Suggested by ARISAWA Akihiro <ari@mbf.ocn.ne.jp>.
37 (rfc2231-encode-string): Remove misimported Emacs code.
38
12006-02-07 Katsumi Yamaoka <yamaoka@jpl.org> 392006-02-07 Katsumi Yamaoka <yamaoka@jpl.org>
2 40
3 * gnus-art.el (article-decode-charset): Don't use ignore-errors 41 * gnus-art.el (article-decode-charset): Don't use ignore-errors
@@ -50,7 +88,7 @@
50 88
51 * gnus-util.el (gnus-error): Describe `args'. 89 * gnus-util.el (gnus-error): Describe `args'.
52 90
532006-02-03 Andreas Seltenreich <uwi7@stud.uni-karlsruhe.de> 912006-02-03 Andreas Seltenreich <uwi7@stud.uni-karlsruhe.de>
54 92
55 * nnweb.el (nnweb-request-group): Avoid growing overview files. 93 * nnweb.el (nnweb-request-group): Avoid growing overview files.
56 94
@@ -67,7 +105,7 @@
67 * mml.el (mml-generate-mime-1): Correct the order of inline signed 105 * mml.el (mml-generate-mime-1): Correct the order of inline signed
68 parts. 106 parts.
69 107
702006-01-31 Andreas Seltenreich <uwi7@stud.uni-karlsruhe.de> 1082006-01-31 Andreas Seltenreich <uwi7@stud.uni-karlsruhe.de>
71 109
72 * nnweb.el (nnweb-group-alist): Use defvar instead of defvoo, 110 * nnweb.el (nnweb-group-alist): Use defvar instead of defvoo,
73 there's only one active file for all servers. 111 there's only one active file for all servers.
@@ -108,7 +146,7 @@
108 146
109 * nnweb.el (nnweb-google-parse-1): Clarify some comments. 147 * nnweb.el (nnweb-google-parse-1): Clarify some comments.
110 148
1112006-01-30 Andreas Seltenreich <uwi7@stud.uni-karlsruhe.de> 1492006-01-30 Andreas Seltenreich <uwi7@stud.uni-karlsruhe.de>
112 150
113 * nnweb.el (nnweb-type-definition, nnweb-google-parse-1) 151 * nnweb.el (nnweb-type-definition, nnweb-google-parse-1)
114 (nnweb-google-create-mapping, nnweb-google-search): Adapt to 152 (nnweb-google-create-mapping, nnweb-google-search): Adapt to
@@ -466,6 +504,98 @@
466 as a buffer-local variable. This avoids creating truncated 504 as a buffer-local variable. This avoids creating truncated
467 dribble files as a result of a hang up, eg. 505 dribble files as a result of a hang up, eg.
468 506
5072005-11-04 Ken Manheimer <ken.manheimer@gmail.com>
508
509 * pgg-pgp.el (pgg-pgp-encrypt-region, pgg-pgp-decrypt-region)
510 (pgg-pgp-encrypt-symmetric-region, pgg-pgp-encrypt-symmetric)
511 (pgg-pgp-encrypt, pgg-pgp-decrypt-region, pgg-pgp-decrypt)
512 (pgg-pgp-sign-region, pgg-pgp-sign): Add optional 'passphrase'
513 argument to all these routines, so the passphrase can be managed
514 externally and passed in to the system.
515 (pgg-pgp-decrypt-region, pgg-pgp-sign-region): Use new name for
516 pgg-add-passphrase-to-cache function.
517
518 * pgg-pgp5.el (pgg-pgp5-encrypt-region, pgg-pgp5-decrypt-region)
519 (pgg-pgp5-encrypt-symmetric-region, pgg-pgp5-encrypt-symmetric)
520 (pgg-pgp5-encrypt, pgg-pgp5-decrypt-region, pgg-pgp5-decrypt)
521 (pgg-pgp5-sign-region, pgg-pgp5-sign): Add optional 'passphrase'
522 argument to all these routines, so the passphrase can be managed
523 externally and passed in to the system.
524 (pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache
525 function.
526
5272005-10-29 Ken Manheimer <ken.manheimer@gmail.com>
528
529 * pgg-gpg.el (pgg-gpg-select-matching-key): Fix: look at the right
530 part of the decoded armor to find the key-identifier.
531 (pgg-gpg-lookup-key-owner): New function to return the
532 human-readable identifier of a key owner.
533 (pgg-gpg-lookup-id-from-key-owner): Make it easy to identify the
534 key itself.
535 (pgg-gpg-decrypt-region): Prompt with the key owner (rather than
536 the key value) if we have a key and can match it against a secret
537 key. Also, added a note pointing out fact that the prompt only
538 indicates the first matching key.
539
540 * pgg.el (pgg-decrypt): Passing along 'passphrase' in call to
541 pgg-decrypt-region.
542 (pgg-pending-timers): A new hash for tracking the passphrase cache
543 timers, so that new ones supercede old ones.
544 (pgg-add-passphrase-to-cache): Rename from
545 `pgg-add-passphrase-cache' to reduce confusion (all callers
546 changed). Modified to cancel old timers when new ones are added.
547 (pgg-remove-passphrase-from-cache): Rename from
548 `pgg-remove-passphrase-cache' to reduce confusion (all callers
549 changed). Modified to cancel old timers when their keys are
550 removed from the cache.
551 (pgg-cancel-timer): In Emacs, an alias for cancel-timer; in
552 XEmacs, an indirection to delete-itimer.
553 (pgg-read-passphrase-from-cache, pgg-read-passphrase):
554 Extract pgg-read-passphrase-from-cache from pgg-read-passphrase so
555 users can only check cache without risk of prompting. Correct bug in
556 notruncate behavior.
557 (pgg-read-passphrase-from-cache, pgg-read-passphrase)
558 (pgg-add-passphrase-cache, pgg-remove-passphrase-cache):
559 Add informative docstrings.
560 (pgg-decrypt): Convey provided passphrase in subordinate call to
561 pgg-decrypt-region.
562
5632005-10-20 Ken Manheimer <ken.manheimer+emacs@gmail.com>
564
565 * pgg.el (pgg-encrypt-region, pgg-encrypt-symmetric-region)
566 (pgg-encrypt-symmetric, pgg-encrypt, pgg-decrypt-region)
567 (pgg-decrypt, pgg-sign-region, pgg-sign): Add optional
568 'passphrase' argument, so the passphrase can be managed externally
569 and then passed in to the system.
570
571 * pgg.el (pgg-read-passphrase, pgg-add-passphrase-cache)
572 (pgg-remove-passphrase-cache): Add optional 'notruncate' argument,
573 so the passphrase cache can be used reliably with identifiers
574 besides a pgp packet's key id.
575
576 * pgg-gpg.el (pgg-pgp-encrypt-region)
577 (pgg-pgp-encrypt-symmetric-region, pgg-pgp-encrypt-symmetric)
578 (pgg-pgp-encrypt, pgg-pgp-decrypt-region, pgg-pgp-decrypt)
579 (pgg-pgp-sign-region, pgg-pgp-sign): Add optional 'passphrase'
580 argument to all these routines, so the passphrase can be managed
581 externally and passed in to the system.
582
583 * pgg-gpg.el (pgg-gpg-possibly-cache-passphrase): Add optional
584 'notruncate' argument, so the passphrase cache can be used
585 reliably with identifiers besides a pgp packet's key id.
586
5872005-10-29 Sascha Wilde <swilde@sha-bang.de>
588
589 * pgg-gpg.el (pgg-gpg-encrypt-symmetric-region): New function for
590 symmetric encryption.
591 (pgg-gpg-symmetric-key-p): New function to check for an symmetric
592 encrypted session key.
593 (pgg-gpg-decrypt-region): When decrypting a symmetric encrypted
594 message ask for the passphrase in a proper way.
595
596 * pgg.el (pgg-encrypt-symmetric, pgg-encrypt-symmetric-region):
597 New user commands for symmetric encryption.
598
4692005-11-30 Stefan Monnier <monnier@iro.umontreal.ca> 5992005-11-30 Stefan Monnier <monnier@iro.umontreal.ca>
470 600
471 * gnus-delay.el (gnus-delay-group): Don't autoload. 601 * gnus-delay.el (gnus-delay-group): Don't autoload.
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index 359e48cb701..2caccc0b70e 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -4257,9 +4257,6 @@ current display is used."
4257 (delete-frame gnus-other-frame-object)) 4257 (delete-frame gnus-other-frame-object))
4258 (setq gnus-other-frame-object nil))))))) 4258 (setq gnus-other-frame-object nil)))))))
4259 4259
4260;;(setq thing ? ; this is a comment
4261;; more 'yes)
4262
4263;;;###autoload 4260;;;###autoload
4264(defun gnus (&optional arg dont-connect slave) 4261(defun gnus (&optional arg dont-connect slave)
4265 "Read network news. 4262 "Read network news.
diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el
index 73cab0a5676..43d6bddf194 100644
--- a/lisp/gnus/mm-view.el
+++ b/lisp/gnus/mm-view.el
@@ -486,7 +486,8 @@
486 ;; disable prepare hook 486 ;; disable prepare hook
487 gnus-article-prepare-hook 487 gnus-article-prepare-hook
488 (gnus-newsgroup-charset 488 (gnus-newsgroup-charset
489 (or charset gnus-newsgroup-charset))) 489 (unless (eq charset 'gnus-decoded) ;; mm-uu might set it.
490 (or charset gnus-newsgroup-charset))))
490 (let ((gnus-original-article-buffer (mm-handle-buffer handle))) 491 (let ((gnus-original-article-buffer (mm-handle-buffer handle)))
491 (run-hooks 'gnus-article-decode-hook)) 492 (run-hooks 'gnus-article-decode-hook))
492 (gnus-article-prepare-display) 493 (gnus-article-prepare-display)
diff --git a/lisp/gnus/mml1991.el b/lisp/gnus/mml1991.el
index 761ce4f0af4..0c6bb675388 100644
--- a/lisp/gnus/mml1991.el
+++ b/lisp/gnus/mml1991.el
@@ -229,7 +229,8 @@
229 (defvar pgg-output-buffer)) 229 (defvar pgg-output-buffer))
230 230
231(defun mml1991-pgg-sign (cont) 231(defun mml1991-pgg-sign (cont)
232 (let (headers cte) 232 (let ((pgg-text-mode t)
233 headers cte)
233 ;; Don't sign headers. 234 ;; Don't sign headers.
234 (goto-char (point-min)) 235 (goto-char (point-min))
235 (while (not (looking-at "^$")) 236 (while (not (looking-at "^$"))
@@ -261,7 +262,8 @@
261 t)) 262 t))
262 263
263(defun mml1991-pgg-encrypt (cont &optional sign) 264(defun mml1991-pgg-encrypt (cont &optional sign)
264 (let (cte) 265 (let ((pgg-text-mode t)
266 cte)
265 ;; Strip MIME Content[^ ]: headers since it will be ASCII ARMOURED 267 ;; Strip MIME Content[^ ]: headers since it will be ASCII ARMOURED
266 (goto-char (point-min)) 268 (goto-char (point-min))
267 (while (looking-at "^Content[^ ]+:") 269 (while (looking-at "^Content[^ ]+:")
diff --git a/lisp/gnus/mml2015.el b/lisp/gnus/mml2015.el
index cb9e77983d3..80dd5b26597 100644
--- a/lisp/gnus/mml2015.el
+++ b/lisp/gnus/mml2015.el
@@ -814,6 +814,7 @@
814 (boundary (mml-compute-boundary cont)) 814 (boundary (mml-compute-boundary cont))
815 (pgg-default-user-id (or (message-options-get 'mml-sender) 815 (pgg-default-user-id (or (message-options-get 'mml-sender)
816 pgg-default-user-id)) 816 pgg-default-user-id))
817 (pgg-text-mode t)
817 entry) 818 entry)
818 (unless (pgg-sign-region (point-min) (point-max)) 819 (unless (pgg-sign-region (point-min) (point-max))
819 (pop-to-buffer mml2015-result-buffer) 820 (pop-to-buffer mml2015-result-buffer)
@@ -841,6 +842,7 @@
841 842
842(defun mml2015-pgg-encrypt (cont &optional sign) 843(defun mml2015-pgg-encrypt (cont &optional sign)
843 (let ((pgg-errors-buffer mml2015-result-buffer) 844 (let ((pgg-errors-buffer mml2015-result-buffer)
845 (pgg-text-mode t)
844 (boundary (mml-compute-boundary cont))) 846 (boundary (mml-compute-boundary cont)))
845 (unless (pgg-encrypt-region (point-min) (point-max) 847 (unless (pgg-encrypt-region (point-min) (point-max)
846 (split-string 848 (split-string
diff --git a/lisp/gnus/nnfolder.el b/lisp/gnus/nnfolder.el
index c7043011fa2..bd9957283f4 100644
--- a/lisp/gnus/nnfolder.el
+++ b/lisp/gnus/nnfolder.el
@@ -826,7 +826,7 @@ deleted. Point is left where the deleted region was."
826 (insert "\n")) 826 (insert "\n"))
827 (forward-char -1) 827 (forward-char -1)
828 (insert (format (concat nnfolder-article-marker "%d %s\n") 828 (insert (format (concat nnfolder-article-marker "%d %s\n")
829 (cdr group-art) (current-time-string))))) 829 (cdr group-art) (message-make-date)))))
830 830
831(defun nnfolder-active-number (group) 831(defun nnfolder-active-number (group)
832 ;; Find the next article number in GROUP. 832 ;; Find the next article number in GROUP.
diff --git a/lisp/gnus/rfc2231.el b/lisp/gnus/rfc2231.el
index 31c9f1ade94..7b4cf2447f4 100644
--- a/lisp/gnus/rfc2231.el
+++ b/lisp/gnus/rfc2231.el
@@ -52,14 +52,8 @@ function fails in parsing of parameters."
52 (let ((ttoken (ietf-drums-token-to-list ietf-drums-text-token)) 52 (let ((ttoken (ietf-drums-token-to-list ietf-drums-text-token))
53 (stoken (ietf-drums-token-to-list ietf-drums-tspecials)) 53 (stoken (ietf-drums-token-to-list ietf-drums-tspecials))
54 (ntoken (ietf-drums-token-to-list "0-9")) 54 (ntoken (ietf-drums-token-to-list "0-9"))
55 (prev-value "") 55 c type attribute encoded number prev-attribute vals
56 display-name mailbox c display-string parameters 56 prev-encoded parameters value)
57 attribute value type subtype number encoded
58 prev-attribute prev-encoded)
59 ;; Some mailer (e.g. Thunderbird 1.5) doesn't terminate each
60 ;; line with semicolon when folding a long parameter value.
61 (while (string-match "\\([^\t\n\r ;]\\)[\t ]*\r?\n[\t ]+" string)
62 (setq string (replace-match "\\1;\n " nil nil string)))
63 (ietf-drums-init (mail-header-remove-whitespace 57 (ietf-drums-init (mail-header-remove-whitespace
64 (mail-header-remove-comments string))) 58 (mail-header-remove-comments string)))
65 (let ((table (copy-syntax-table ietf-drums-syntax-table))) 59 (let ((table (copy-syntax-table ietf-drums-syntax-table)))
@@ -97,31 +91,36 @@ function fails in parsing of parameters."
97 (point) (progn (forward-sexp 1) (point)))))) 91 (point) (progn (forward-sexp 1) (point))))))
98 (error "Invalid header: %s" string)) 92 (error "Invalid header: %s" string))
99 (setq c (char-after)) 93 (setq c (char-after))
100 (when (eq c ?*) 94 (if (eq c ?*)
101 (forward-char 1) 95 (progn
102 (setq c (char-after))
103 (if (not (memq c ntoken))
104 (setq encoded t
105 number nil)
106 (setq number
107 (string-to-number
108 (buffer-substring
109 (point) (progn (forward-sexp 1) (point)))))
110 (setq c (char-after))
111 (when (eq c ?*)
112 (setq encoded t)
113 (forward-char 1) 96 (forward-char 1)
114 (setq c (char-after))))) 97 (setq c (char-after))
98 (if (not (memq c ntoken))
99 (setq encoded t
100 number nil)
101 (setq number
102 (string-to-number
103 (buffer-substring
104 (point) (progn (forward-sexp 1) (point)))))
105 (setq c (char-after))
106 (when (eq c ?*)
107 (setq encoded t)
108 (forward-char 1)
109 (setq c (char-after)))))
110 (setq number nil
111 encoded nil))
115 ;; See if we have any previous continuations. 112 ;; See if we have any previous continuations.
116 (when (and prev-attribute 113 (when (and prev-attribute
117 (not (eq prev-attribute attribute))) 114 (not (eq prev-attribute attribute)))
115 (setq vals
116 (mapconcat 'cdr (sort vals 'car-less-than-car) ""))
118 (push (cons prev-attribute 117 (push (cons prev-attribute
119 (if prev-encoded 118 (if prev-encoded
120 (rfc2231-decode-encoded-string prev-value) 119 (rfc2231-decode-encoded-string vals)
121 prev-value)) 120 vals))
122 parameters) 121 parameters)
123 (setq prev-attribute nil 122 (setq prev-attribute nil
124 prev-value "" 123 vals nil
125 prev-encoded nil)) 124 prev-encoded nil))
126 (unless (eq c ?=) 125 (unless (eq c ?=)
127 (error "Invalid header: %s" string)) 126 (error "Invalid header: %s" string))
@@ -132,7 +131,10 @@ function fails in parsing of parameters."
132 (setq value (buffer-substring (1+ (point)) 131 (setq value (buffer-substring (1+ (point))
133 (progn 132 (progn
134 (forward-sexp 1) 133 (forward-sexp 1)
135 (1- (point)))))) 134 (1- (point)))))
135 (when encoded
136 (setq value (mapconcat (lambda (c) (format "%%%02x" c))
137 value ""))))
136 ((and (or (memq c ttoken) 138 ((and (or (memq c ttoken)
137 ;; EXTENSION: Support non-ascii chars. 139 ;; EXTENSION: Support non-ascii chars.
138 (> c ?\177)) 140 (> c ?\177))
@@ -153,9 +155,10 @@ function fails in parsing of parameters."
153 (t 155 (t
154 (error "Invalid header: %s" string))) 156 (error "Invalid header: %s" string)))
155 (if number 157 (if number
156 (setq prev-attribute attribute 158 (progn
157 prev-value (concat prev-value value) 159 (push (cons number value) vals)
158 prev-encoded encoded) 160 (setq prev-attribute attribute
161 prev-encoded encoded))
159 (push (cons attribute 162 (push (cons attribute
160 (if encoded 163 (if encoded
161 (rfc2231-decode-encoded-string value) 164 (rfc2231-decode-encoded-string value)
@@ -164,10 +167,11 @@ function fails in parsing of parameters."
164 167
165 ;; Take care of any final continuations. 168 ;; Take care of any final continuations.
166 (when prev-attribute 169 (when prev-attribute
170 (setq vals (mapconcat 'cdr (sort vals 'car-less-than-car) ""))
167 (push (cons prev-attribute 171 (push (cons prev-attribute
168 (if prev-encoded 172 (if prev-encoded
169 (rfc2231-decode-encoded-string prev-value) 173 (rfc2231-decode-encoded-string vals)
170 prev-value)) 174 vals))
171 parameters))) 175 parameters)))
172 (error 176 (error
173 (setq parameters nil) 177 (setq parameters nil)
@@ -181,25 +185,27 @@ function fails in parsing of parameters."
181 185
182(defun rfc2231-decode-encoded-string (string) 186(defun rfc2231-decode-encoded-string (string)
183 "Decode an RFC2231-encoded string. 187 "Decode an RFC2231-encoded string.
184These look like \"us-ascii'en-us'This%20is%20%2A%2A%2Afun%2A%2A%2A\"." 188These look like:
185 (with-temp-buffer 189 \"us-ascii'en-us'This%20is%20%2A%2A%2Afun%2A%2A%2A\",
186 (let ((elems (split-string string "'"))) 190 \"us-ascii''This%20is%20%2A%2A%2Afun%2A%2A%2A\",
187 ;; The encoded string may contain zero to two single-quote 191 \"'en-us'This%20is%20%2A%2A%2Afun%2A%2A%2A\",
188 ;; marks. This should give us the encoded word stripped 192 \"''This%20is%20%2A%2A%2Afun%2A%2A%2A\", or
189 ;; of any preceding values. 193 \"This is ***fun***\"."
190 (insert (car (last elems))) 194 (string-match "\\`\\(\\([^']+\\)?'\\([^']+\\)?'\\)?\\(.+\\)" string)
195 (let ((coding-system (mm-charset-to-coding-system (match-string 2 string)))
196 ;;(language (match-string 3 string))
197 (value (match-string 4 string)))
198 (mm-with-multibyte-buffer
199 (insert value)
191 (goto-char (point-min)) 200 (goto-char (point-min))
192 (while (search-forward "%" nil t) 201 (while (search-forward "%" nil t)
193 (insert 202 (insert
194 (prog1 203 (prog1
195 (string-to-number (buffer-substring (point) (+ (point) 2)) 16) 204 (string-to-number (buffer-substring (point) (+ (point) 2)) 16)
196 (delete-region (1- (point)) (+ (point) 2))))) 205 (delete-region (1- (point)) (+ (point) 2)))))
197 ;; Encode using the charset, if any. 206 ;; Decode using the charset, if any.
198 (when (and (mm-multibyte-p) 207 (unless (memq coding-system '(nil ascii))
199 (> (length elems) 1) 208 (mm-decode-coding-region (point-min) (point-max) coding-system))
200 (not (equal (intern (downcase (car elems))) 'us-ascii)))
201 (mm-decode-coding-region (point-min) (point-max)
202 (intern (downcase (car elems)))))
203 (buffer-string)))) 209 (buffer-string))))
204 210
205(defun rfc2231-encode-string (param value) 211(defun rfc2231-encode-string (param value)
@@ -263,12 +269,12 @@ the result of this function."
263 (forward-line 1)))) 269 (forward-line 1))))
264 (spacep 270 (spacep
265 (goto-char (point-min)) 271 (goto-char (point-min))
266 (insert "\n " param "=\"") 272 (insert param "=\"")
267 (goto-char (point-max)) 273 (goto-char (point-max))
268 (insert "\"")) 274 (insert "\""))
269 (t 275 (t
270 (goto-char (point-min)) 276 (goto-char (point-min))
271 (insert "\n " param "="))) 277 (insert param "=")))
272 (buffer-string)))) 278 (buffer-string))))
273 279
274(provide 'rfc2231) 280(provide 'rfc2231)
diff --git a/lisp/hilit-chg.el b/lisp/hilit-chg.el
index a68e20cf6de..d6408412c0b 100644
--- a/lisp/hilit-chg.el
+++ b/lisp/hilit-chg.el
@@ -521,7 +521,7 @@ the text properties of type `hilit-chg'."
521This allows you to manually remove highlighting from uninteresting changes." 521This allows you to manually remove highlighting from uninteresting changes."
522 (interactive "r") 522 (interactive "r")
523 (let ((after-change-functions nil)) 523 (let ((after-change-functions nil))
524 (remove-text-properties beg end '(hilit-chg nil)) 524 (remove-text-properties beg end '(hilit-chg nil))
525 (hilit-chg-fixup beg end))) 525 (hilit-chg-fixup beg end)))
526 526
527(defun hilit-chg-set-face-on-change (beg end leng-before 527(defun hilit-chg-set-face-on-change (beg end leng-before
@@ -662,7 +662,7 @@ Hook variables:
662 ;; an argument is given 662 ;; an argument is given
663 ((eq arg 'active) 663 ((eq arg 'active)
664 'active) 664 'active)
665 ((eq arg 'passive) 665 ((eq arg 'passive)
666 'passive) 666 'passive)
667 ((> (prefix-numeric-value arg) 0) 667 ((> (prefix-numeric-value arg) 0)
668 'active) 668 'active)
@@ -673,7 +673,6 @@ Hook variables:
673 (if new-highlight-changes-mode 673 (if new-highlight-changes-mode
674 ;; mode is turned on -- but may be passive 674 ;; mode is turned on -- but may be passive
675 (progn 675 (progn
676 (add-to-list 'desktop-locals-to-save 'highlight-changes-mode)
677 (hilit-chg-set new-highlight-changes-mode) 676 (hilit-chg-set new-highlight-changes-mode)
678 (or was-on 677 (or was-on
679 ;; run highlight-changes-enable-hook once 678 ;; run highlight-changes-enable-hook once
@@ -960,9 +959,9 @@ changes are made, so \\[highlight-changes-next-change] and
960 ;; which calls this function as a hook 959 ;; which calls this function as a hook
961 (defvar x) ;; placate the byte-compiler 960 (defvar x) ;; placate the byte-compiler
962 (defvar y) 961 (defvar y)
963 (setq e (current-buffer)) 962 (setq e (current-buffer))
964 (let ((n 0) extent p va vb a b) 963 (let ((n 0) extent p va vb a b)
965 (setq x nil y nil) ;; x and y are bound by hilit-chg-get-diff-info 964 (setq x nil y nil) ;; x and y are bound by hilit-chg-get-diff-info
966 (while (< n ediff-number-of-differences) 965 (while (< n ediff-number-of-differences)
967 (ediff-make-fine-diffs n) 966 (ediff-make-fine-diffs n)
968 (setq va (ediff-get-fine-diff-vector n 'A)) 967 (setq va (ediff-get-fine-diff-vector n 'A))
@@ -1085,7 +1084,7 @@ variable `highlight-changes-global-changes-existing-buffers' is non-nil).
1085 (progn 1084 (progn
1086 (if (eq arg 'active) 1085 (if (eq arg 'active)
1087 (setq highlight-changes-global-initial-state 'active) 1086 (setq highlight-changes-global-initial-state 'active)
1088 (if (eq arg 'passive) 1087 (if (eq arg 'passive)
1089 (setq highlight-changes-global-initial-state 'passive))) 1088 (setq highlight-changes-global-initial-state 'passive)))
1090 (setq global-highlight-changes t) 1089 (setq global-highlight-changes t)
1091 (message "Turning ON Global Highlight Changes mode in %s state" 1090 (message "Turning ON Global Highlight Changes mode in %s state"
@@ -1131,7 +1130,7 @@ from `global-highlight-changes' when turning on global Highlight Changes mode."
1131 (memq major-mode highlight-changes-global-modes))) 1130 (memq major-mode highlight-changes-global-modes)))
1132 (t 1131 (t
1133 (and 1132 (and
1134 (not (string-match "^[ *]" (buffer-name))) 1133 (not (string-match "^[ *]" (buffer-name)))
1135 (buffer-file-name)))) 1134 (buffer-file-name))))
1136 (progn 1135 (progn
1137 (hilit-chg-set value) 1136 (hilit-chg-set value)
@@ -1146,14 +1145,15 @@ from `global-highlight-changes' when turning on global Highlight Changes mode."
1146 1145
1147 1146
1148(defun hilit-chg-update-all-buffers (value) 1147(defun hilit-chg-update-all-buffers (value)
1149 (mapcar 1148 (mapc
1150 (function (lambda (buffer) 1149 (function (lambda (buffer)
1151 (with-current-buffer buffer 1150 (with-current-buffer buffer
1152 (if value 1151 (if value
1153 (hilit-chg-turn-on-maybe value) 1152 (hilit-chg-turn-on-maybe value)
1154 (hilit-chg-turn-off-maybe)) 1153 (hilit-chg-turn-off-maybe))
1155 ))) 1154 )))
1156 (buffer-list))) 1155 (buffer-list))
1156 nil)
1157 1157
1158;;;; Desktop support. 1158;;;; Desktop support.
1159 1159
@@ -1165,6 +1165,8 @@ from `global-highlight-changes' when turning on global Highlight Changes mode."
1165(add-to-list 'desktop-minor-mode-handlers 1165(add-to-list 'desktop-minor-mode-handlers
1166 '(highlight-changes-mode . hilit-chg-desktop-restore)) 1166 '(highlight-changes-mode . hilit-chg-desktop-restore))
1167 1167
1168(add-to-list 'desktop-locals-to-save 'highlight-changes-mode)
1169
1168;; ===================== debug ================== 1170;; ===================== debug ==================
1169;; For debug & test use: 1171;; For debug & test use:
1170;; 1172;;
diff --git a/lisp/image-mode.el b/lisp/image-mode.el
index e49ca27db72..258f852a4d6 100644
--- a/lisp/image-mode.el
+++ b/lisp/image-mode.el
@@ -140,7 +140,8 @@ and showing the image as an image."
140 (let* ((image 140 (let* ((image
141 (if (and (buffer-file-name) 141 (if (and (buffer-file-name)
142 (not (buffer-modified-p))) 142 (not (buffer-modified-p)))
143 (create-image (buffer-file-name)) 143 (progn (clear-image-cache)
144 (create-image (buffer-file-name)))
144 (create-image 145 (create-image
145 (string-make-unibyte 146 (string-make-unibyte
146 (buffer-substring-no-properties (point-min) (point-max))) 147 (buffer-substring-no-properties (point-min) (point-max)))
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog
index 47c7808f192..349bae9f072 100644
--- a/lisp/mh-e/ChangeLog
+++ b/lisp/mh-e/ChangeLog
@@ -1,3 +1,22 @@
12006-02-10 Bill Wohler <wohler@newt.com>
2
3 * mh-search.el (mh-search): Wrap code in (block mh-search ...)
4 rather than use defun*. XEmacs cannot create a proper autoload for
5 a defun*.
6
72006-02-09 Bill Wohler <wohler@newt.com>
8
9 * mh-utils.el (mh-folder-list): Don't replace "/*$" with "/" since
10 that causes an infinite loop on XEmacs.
11
12 * mh-compat.el(mh-replace-regexp-in-string): Add missing regexp
13 argument.
14
152006-02-08 Peter S Galbraith <psg@debian.org>
16
17 * mh-e.el (mh-invisible-header-fields-internal): Added entries
18 "X-BrightmailFiltered:", "X-Brightmail-Tracker:" and "X-Hashcash"
19
12006-02-04 Bill Wohler <wohler@newt.com> 202006-02-04 Bill Wohler <wohler@newt.com>
2 21
3 * mh-e.el (mh-inc-spool-list): Update example for Emacs 22 which 22 * mh-e.el (mh-inc-spool-list): Update example for Emacs 22 which
diff --git a/lisp/mh-e/mh-compat.el b/lisp/mh-e/mh-compat.el
index 1d7f1c90e79..090ee51c5fc 100644
--- a/lisp/mh-e/mh-compat.el
+++ b/lisp/mh-e/mh-compat.el
@@ -144,7 +144,7 @@ The argument STRING is ignored."
144 (match-beginning num) (match-end num))) 144 (match-beginning num) (match-end num)))
145 145
146(mh-defun-compat mh-replace-regexp-in-string replace-regexp-in-string 146(mh-defun-compat mh-replace-regexp-in-string replace-regexp-in-string
147 (rep string &optional fixedcase literal subexp start) 147 (regexp rep string &optional fixedcase literal subexp start)
148 "Replace REGEXP with REP everywhere in STRING and return result. 148 "Replace REGEXP with REP everywhere in STRING and return result.
149This function is used by XEmacs that lacks `replace-regexp-in-string'. 149This function is used by XEmacs that lacks `replace-regexp-in-string'.
150The function `replace-in-string' is used instead. 150The function `replace-in-string' is used instead.
diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el
index 8012eab5c8a..ab0143c0c85 100644
--- a/lisp/mh-e/mh-e.el
+++ b/lisp/mh-e/mh-e.el
@@ -2306,6 +2306,8 @@ of citations entirely, choose \"None\"."
2306 "X-Authentication-Warning:" ; sendmail 2306 "X-Authentication-Warning:" ; sendmail
2307 "X-Beenthere:" ; Mailman mailing list manager 2307 "X-Beenthere:" ; Mailman mailing list manager
2308 "X-Bogosity:" ; bogofilter 2308 "X-Bogosity:" ; bogofilter
2309 "X-BrightmailFiltered:" ; Brightmail
2310 "X-Brightmail-Tracker:" ; Brightmail
2309 "X-Bugzilla-*" ; Bugzilla 2311 "X-Bugzilla-*" ; Bugzilla
2310 "X-Complaints-To:" 2312 "X-Complaints-To:"
2311 "X-ContentStamp:" ; NetZero 2313 "X-ContentStamp:" ; NetZero
@@ -2333,6 +2335,7 @@ of citations entirely, choose \"None\"."
2333 "X-Habeas-SWE-7:" ; Spam 2335 "X-Habeas-SWE-7:" ; Spam
2334 "X-Habeas-SWE-8:" ; Spam 2336 "X-Habeas-SWE-8:" ; Spam
2335 "X-Habeas-SWE-9:" ; Spam 2337 "X-Habeas-SWE-9:" ; Spam
2338 "X-Hashcash:" ; hashcash
2336 "X-Info:" ; NTMail 2339 "X-Info:" ; NTMail
2337 "X-Juno-" ; Juno 2340 "X-Juno-" ; Juno
2338 "X-List-Host:" ; Unknown mailing list managers 2341 "X-List-Host:" ; Unknown mailing list managers
diff --git a/lisp/mh-e/mh-search.el b/lisp/mh-e/mh-search.el
index f1292dd8e1e..9980b6a9b68 100644
--- a/lisp/mh-e/mh-search.el
+++ b/lisp/mh-e/mh-search.el
@@ -81,8 +81,8 @@ message number, and optionally the match.")
81;;; MH-Folder Commands 81;;; MH-Folder Commands
82 82
83;;;###mh-autoload 83;;;###mh-autoload
84(defun* mh-search (folder search-regexp 84(defun mh-search (folder search-regexp
85 &optional redo-search-flag window-config) 85 &optional redo-search-flag window-config)
86 "Search your MH mail. 86 "Search your MH mail.
87 87
88This command helps you find messages in your entire corpus of 88This command helps you find messages in your entire corpus of
@@ -230,96 +230,98 @@ folder containing the index search results."
230 mh-search-regexp-builder) 230 mh-search-regexp-builder)
231 (current-window-configuration) 231 (current-window-configuration)
232 nil))) 232 nil)))
233 ;; Redoing a sequence search? 233 (block mh-search
234 (when (and redo-search-flag mh-index-data mh-index-sequence-search-flag 234 ;; Redoing a sequence search?
235 (not mh-flists-called-flag)) 235 (when (and redo-search-flag mh-index-data mh-index-sequence-search-flag
236 (let ((mh-flists-called-flag t)) 236 (not mh-flists-called-flag))
237 (apply #'mh-index-sequenced-messages mh-index-previous-search)) 237 (let ((mh-flists-called-flag t))
238 (return-from mh-search)) 238 (apply #'mh-index-sequenced-messages mh-index-previous-search))
239 ;; We have fancy query parsing. 239 (return-from mh-search))
240 (when (symbolp search-regexp) 240 ;; We have fancy query parsing.
241 (mh-search-folder folder window-config) 241 (when (symbolp search-regexp)
242 (return-from mh-search)) 242 (mh-search-folder folder window-config)
243 ;; Begin search proper. 243 (return-from mh-search))
244 (mh-checksum-choose) 244 ;; Begin search proper.
245 (let ((result-count 0) 245 (mh-checksum-choose)
246 (old-window-config (or window-config mh-previous-window-config)) 246 (let ((result-count 0)
247 (previous-search mh-index-previous-search) 247 (old-window-config (or window-config mh-previous-window-config))
248 (index-folder (format "%s/%s" mh-index-folder 248 (previous-search mh-index-previous-search)
249 (mh-index-generate-pretty-name search-regexp)))) 249 (index-folder (format "%s/%s" mh-index-folder
250 ;; Create a new folder for the search results or recreate the old one... 250 (mh-index-generate-pretty-name search-regexp))))
251 (if (and redo-search-flag mh-index-previous-search) 251 ;; Create a new folder for the search results or recreate the old one...
252 (let ((buffer-name (buffer-name (current-buffer)))) 252 (if (and redo-search-flag mh-index-previous-search)
253 (mh-process-or-undo-commands buffer-name) 253 (let ((buffer-name (buffer-name (current-buffer))))
254 (save-excursion (mh-exec-cmd-quiet nil "rmf" buffer-name)) 254 (mh-process-or-undo-commands buffer-name)
255 (mh-exec-cmd-quiet nil "folder" "-create" "-fast" buffer-name) 255 (save-excursion (mh-exec-cmd-quiet nil "rmf" buffer-name))
256 (setq index-folder buffer-name)) 256 (mh-exec-cmd-quiet nil "folder" "-create" "-fast" buffer-name)
257 (setq index-folder (mh-index-new-folder index-folder search-regexp))) 257 (setq index-folder buffer-name))
258 258 (setq index-folder (mh-index-new-folder index-folder search-regexp)))
259 (let ((folder-path (format "%s%s" mh-user-path (substring folder 1))) 259
260 (folder-results-map (make-hash-table :test #'equal)) 260 (let ((folder-path (format "%s%s" mh-user-path (substring folder 1)))
261 (origin-map (make-hash-table :test #'equal))) 261 (folder-results-map (make-hash-table :test #'equal))
262 ;; Run search program... 262 (origin-map (make-hash-table :test #'equal)))
263 (message "Executing %s... " mh-searcher) 263 ;; Run search program...
264 (funcall mh-search-function folder-path search-regexp) 264 (message "Executing %s... " mh-searcher)
265 265 (funcall mh-search-function folder-path search-regexp)
266 ;; Parse searcher output. 266
267 (message "Processing %s output... " mh-searcher) 267 ;; Parse searcher output.
268 (goto-char (point-min)) 268 (message "Processing %s output... " mh-searcher)
269 (loop for next-result = (funcall mh-search-next-result-function) 269 (goto-char (point-min))
270 while next-result 270 (loop for next-result = (funcall mh-search-next-result-function)
271 do (unless (eq next-result 'error) 271 while next-result
272 (unless (gethash (car next-result) folder-results-map) 272 do (unless (eq next-result 'error)
273 (setf (gethash (car next-result) folder-results-map) 273 (unless (gethash (car next-result) folder-results-map)
274 (make-hash-table :test #'equal))) 274 (setf (gethash (car next-result) folder-results-map)
275 (setf (gethash (cadr next-result) 275 (make-hash-table :test #'equal)))
276 (gethash (car next-result) folder-results-map)) 276 (setf (gethash (cadr next-result)
277 t))) 277 (gethash (car next-result) folder-results-map))
278 278 t)))
279 ;; Copy the search results over. 279
280 (maphash #'(lambda (folder msgs) 280 ;; Copy the search results over.
281 (let ((cur (car (mh-translate-range folder "cur"))) 281 (maphash #'(lambda (folder msgs)
282 (msgs (sort (loop for msg being the hash-keys of msgs 282 (let ((cur (car (mh-translate-range folder "cur")))
283 collect msg) 283 (msgs (sort (loop for msg being the hash-keys of msgs
284 #'<))) 284 collect msg)
285 (mh-exec-cmd "refile" msgs "-src" folder 285 #'<)))
286 "-link" index-folder) 286 (mh-exec-cmd "refile" msgs "-src" folder
287 ;; Restore cur to old value, that refile changed 287 "-link" index-folder)
288 (when cur 288 ;; Restore cur to old value, that refile changed
289 (mh-exec-cmd-quiet nil "mark" folder "-add" "-zero" 289 (when cur
290 "-sequence" "cur" (format "%s" cur))) 290 (mh-exec-cmd-quiet nil "mark" folder "-add" "-zero"
291 (loop for msg in msgs 291 "-sequence"
292 do (incf result-count) 292 "cur" (format "%s" cur)))
293 (setf (gethash result-count origin-map) 293 (loop for msg in msgs
294 (cons folder msg))))) 294 do (incf result-count)
295 folder-results-map) 295 (setf (gethash result-count origin-map)
296 296 (cons folder msg)))))
297 ;; Vist the results folder. 297 folder-results-map)
298 (mh-visit-folder index-folder () (list folder-results-map origin-map)) 298
299 ;; Vist the results folder.
300 (mh-visit-folder index-folder () (list folder-results-map origin-map))
299 301
300 (goto-char (point-min)) 302 (goto-char (point-min))
301 (forward-line) 303 (forward-line)
302 (mh-update-sequences) 304 (mh-update-sequences)
303 (mh-recenter nil) 305 (mh-recenter nil)
304 306
305 ;; Update the speedbar, if needed. 307 ;; Update the speedbar, if needed.
306 (when (mh-speed-flists-active-p) 308 (when (mh-speed-flists-active-p)
307 (mh-speed-flists t mh-current-folder)) 309 (mh-speed-flists t mh-current-folder))
308 310
309 ;; Maintain history. 311 ;; Maintain history.
310 (when (or (and redo-search-flag previous-search) window-config) 312 (when (or (and redo-search-flag previous-search) window-config)
311 (setq mh-previous-window-config old-window-config)) 313 (setq mh-previous-window-config old-window-config))
312 (setq mh-index-previous-search (list folder mh-searcher search-regexp)) 314 (setq mh-index-previous-search (list folder mh-searcher search-regexp))
313 315
314 ;; Write out data to disk. 316 ;; Write out data to disk.
315 (unless mh-flists-called-flag (mh-index-write-data)) 317 (unless mh-flists-called-flag (mh-index-write-data))
316 318
317 (message "%s found %s matches in %s folders" 319 (message "%s found %s matches in %s folders"
318 (upcase-initials (symbol-name mh-searcher)) 320 (upcase-initials (symbol-name mh-searcher))
319 (loop for msg-hash being hash-values of mh-index-data 321 (loop for msg-hash being hash-values of mh-index-data
320 sum (hash-table-count msg-hash)) 322 sum (hash-table-count msg-hash))
321 (loop for msg-hash being hash-values of mh-index-data 323 (loop for msg-hash being hash-values of mh-index-data
322 count (> (hash-table-count msg-hash) 0)))))) 324 count (> (hash-table-count msg-hash) 0)))))))
323 325
324;; Shush compiler. 326;; Shush compiler.
325(eval-when-compile (mh-do-in-xemacs (defvar pick-folder))) 327(eval-when-compile (mh-do-in-xemacs (defvar pick-folder)))
diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el
index 42f11376262..dc86d19ae77 100644
--- a/lisp/mh-e/mh-utils.el
+++ b/lisp/mh-e/mh-utils.el
@@ -516,13 +516,15 @@ value of `mh-recursive-folders-flag'. If this flag is nil, and
516the sub-folders have not been explicitly viewed, then they will 516the sub-folders have not been explicitly viewed, then they will
517not be returned." 517not be returned."
518 (let ((folder-list)) 518 (let ((folder-list))
519 ;; Normalize folder. Strip leading +. Add trailing slash. If no 519 ;; Normalize folder. Strip leading +. Add trailing slash (done in
520 ;; folder is specified, ensure it is nil to ensure we get the 520 ;; two steps to avoid infinite loops when replacing "/*$" with "/"
521 ;; top-level folders; otherwise mh-sub-folders returns all the 521 ;; in XEmacs). If no folder is specified, ensure it is nil to
522 ;; files in / if given an empty string or +. 522 ;; ensure we get the top-level folders; otherwise mh-sub-folders
523 ;; returns all the files in / if given an empty string or +.
523 (when folder 524 (when folder
524 (setq folder (mh-replace-regexp-in-string "^\+" "" folder)) 525 (setq folder (mh-replace-regexp-in-string "^\+" "" folder))
525 (setq folder (mh-replace-regexp-in-string "/*$" "/" folder)) 526 (setq folder (mh-replace-regexp-in-string "/+$" "" folder))
527 (setq folder (concat folder "/"))
526 (if (equal folder "") 528 (if (equal folder "")
527 (setq folder nil))) 529 (setq folder nil)))
528 (loop for f in (mh-sub-folders folder) do 530 (loop for f in (mh-sub-folders folder) do
diff --git a/lisp/mouse.el b/lisp/mouse.el
index 4b3b098543c..9922b0f9aed 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -1036,13 +1036,13 @@ should only be used by mouse-drag-region."
1036 (if (> mouse-1-click-follows-link 0) 1036 (if (> mouse-1-click-follows-link 0)
1037 (<= (- t1 t0) mouse-1-click-follows-link) 1037 (<= (- t1 t0) mouse-1-click-follows-link)
1038 (< (- t0 t1) mouse-1-click-follows-link)))))))) 1038 (< (- t0 t1) mouse-1-click-follows-link))))))))
1039 ;; Reselect previous selected window, 1039 ;; If we rebind to mouse-2, reselect previous selected window,
1040 ;; so that the mouse-2 event runs in the same 1040 ;; so that the mouse-2 event runs in the same
1041 ;; situation as if user had clicked it directly. 1041 ;; situation as if user had clicked it directly.
1042 ;; Fixes the bug reported by juri@jurta.org on 2005-12-27. 1042 ;; Fixes the bug reported by juri@jurta.org on 2005-12-27.
1043 (select-window original-window)
1044 (if (or (vectorp on-link) (stringp on-link)) 1043 (if (or (vectorp on-link) (stringp on-link))
1045 (setq event (aref on-link 0)) 1044 (setq event (aref on-link 0))
1045 (select-window original-window)
1046 (setcar event 'mouse-2) 1046 (setcar event 'mouse-2)
1047 ;; If this mouse click has never been done by 1047 ;; If this mouse click has never been done by
1048 ;; the user, it doesn't have the necessary 1048 ;; the user, it doesn't have the necessary
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
index fc7399ee631..29beea21a89 100644
--- a/lisp/net/rcirc.el
+++ b/lisp/net/rcirc.el
@@ -79,7 +79,7 @@
79 :type 'string 79 :type 'string
80 :group 'rcirc) 80 :group 'rcirc)
81 81
82(defcustom rcirc-startup-channels-alist nil 82(defcustom rcirc-startup-channels-alist '(("^irc.freenode.net$" "#emacs"))
83 "Alist of channels to join at startup. 83 "Alist of channels to join at startup.
84Each element looks like (SERVER-REGEXP . CHANNEL-LIST)." 84Each element looks like (SERVER-REGEXP . CHANNEL-LIST)."
85 :type '(alist :key-type string :value-type (repeat string)) 85 :type '(alist :key-type string :value-type (repeat string))
@@ -111,11 +111,6 @@ underneath each nick."
111 "If non-nil, ignore activity in this buffer.") 111 "If non-nil, ignore activity in this buffer.")
112(make-variable-buffer-local 'rcirc-ignore-buffer-activity-flag) 112(make-variable-buffer-local 'rcirc-ignore-buffer-activity-flag)
113 113
114(defcustom rcirc-ignore-all-activity-flag nil
115 "*Non-nil means do not indicate any activity in the modeline."
116 :type 'boolean
117 :group 'rcirc)
118
119(defcustom rcirc-time-format "%H:%M " 114(defcustom rcirc-time-format "%H:%M "
120 "*Describes how timestamps are printed. 115 "*Describes how timestamps are printed.
121Used as the first arg to `format-time-string'." 116Used as the first arg to `format-time-string'."
@@ -140,29 +135,42 @@ number. If zero or nil, no truncating is done."
140 (integer :tag "Number of lines")) 135 (integer :tag "Number of lines"))
141 :group 'rcirc) 136 :group 'rcirc)
142 137
143(defcustom rcirc-authinfo-file-name 138(defcustom rcirc-authinfo nil
144 "~/.rcirc-authinfo" 139 "List of authentication passwords.
145 "File containing rcirc authentication passwords. 140Each element of the list is a list with a SERVER-REGEXP string
146The file consists of a single list, with each element itself a 141and a method symbol followed by method specific arguments.
147list with a SERVER-REGEXP string, a NICK-REGEXP string, a METHOD 142
148and the remaining method specific ARGUMENTS. The valid METHOD 143The valid METHOD symbols are `nickserv', `chanserv' and
149symbols are `nickserv', `chanserv' and `bitlbee'. 144`bitlbee'.
150 145
151The required ARGUMENTS for each METHOD symbol are: 146The required ARGUMENTS for each METHOD symbol are:
152 `nickserv': PASSWORD 147 `nickserv': NICK PASSWORD
153 `chanserv': CHANNEL PASSWORD 148 `chanserv': NICK CHANNEL PASSWORD
154 `bitlbee': PASSWORD 149 `bitlbee': NICK PASSWORD
155 150
156Example: 151Example:
157 ((\"freenode\" \"bob\" nickserv \"p455w0rd\") 152 ((\"freenode\" nickserv \"bob\" \"p455w0rd\")
158 (\"freenode\" \"bob\" chanserv \"#bobland\" \"passwd99\") 153 (\"freenode\" chanserv \"bob\" \"#bobland\" \"passwd99\")
159 (\"bitlbee\" \"robert\" bitlbee \"sekrit\"))" 154 (\"bitlbee\" bitlbee \"robert\" \"sekrit\"))"
160 :type 'string 155 :type '(alist :key-type (string :tag "Server")
156 :value-type (choice (list :tag "NickServ"
157 (const nickserv)
158 (string :tag "Nick")
159 (string :tag "Password"))
160 (list :tag "ChanServ"
161 (const chanserv)
162 (string :tag "Nick")
163 (string :tag "Channel")
164 (string :tag "Password"))
165 (list :tag "BitlBee"
166 (const bitlbee)
167 (string :tag "Nick")
168 (string :tag "Password"))))
161 :group 'rcirc) 169 :group 'rcirc)
162 170
163(defcustom rcirc-auto-authenticate-flag (file-readable-p rcirc-authinfo-file-name) 171(defcustom rcirc-auto-authenticate-flag t
164 "*Non-nil means automatically send authentication string to server. 172 "*Non-nil means automatically send authentication string to server.
165See also `rcirc-authinfo-file-name'." 173See also `rcirc-authinfo'."
166 :type 'boolean 174 :type 'boolean
167 :group 'rcirc) 175 :group 'rcirc)
168 176
@@ -199,6 +207,11 @@ Called with 5 arguments, PROCESS, SENDER, RESPONSE, TARGET and TEXT."
199 :type 'hook 207 :type 'hook
200 :group 'rcirc) 208 :group 'rcirc)
201 209
210(defcustom rcirc-always-use-server-buffer-flag nil
211 "Non-nil means messages without a channel target will go to the server buffer."
212 :type 'boolean
213 :group 'rcirc)
214
202(defvar rcirc-prompt-start-marker nil) 215(defvar rcirc-prompt-start-marker nil)
203(defvar rcirc-prompt-end-marker nil) 216(defvar rcirc-prompt-end-marker nil)
204 217
@@ -238,37 +251,35 @@ Called with 5 arguments, PROCESS, SENDER, RESPONSE, TARGET and TEXT."
238 251
239(defvar rcirc-startup-channels nil) 252(defvar rcirc-startup-channels nil)
240;;;###autoload 253;;;###autoload
241(defun rcirc (&optional server port nick channels) 254(defun rcirc (arg)
242 "Connect to IRC. 255 "Connect to IRC.
243 256If ARG is non-nil, prompt for a server to connect to."
244If any of the the optional SERVER, PORT, NICK or CHANNELS are not 257 (interactive "P")
245supplied, they are taken from the variables `rcirc-server', 258 (if arg
246`rcirc-port', `rcirc-nick', and `rcirc-startup-channels-alist', 259 (let* ((server (read-string "IRC Server: " rcirc-server))
247respectively." 260 (port (read-string "IRC Port: " (number-to-string rcirc-port)))
248 (interactive (list (read-string "IRC Server: " rcirc-server) 261 (nick (read-string "IRC Nick: " rcirc-nick))
249 (read-string "IRC Port: " (number-to-string rcirc-port)) 262 (channels (split-string
250 (read-string "IRC Nick: " rcirc-nick))) 263 (read-string "IRC Channels: "
251 (or server (setq server rcirc-server)) 264 (mapconcat 'identity
252 (or port (setq port rcirc-port)) 265 (rcirc-startup-channels server)
253 (or nick (setq nick rcirc-nick)) 266 " "))
254 (or channels 267 "[, ]+" t)))
255 (setq channels 268 (rcirc-connect server port nick rcirc-user-name rcirc-user-full-name
256 (if (interactive-p) 269 channels))
257 (split-string 270 ;; make new connection using defaults unless already connected to
258 (read-string "Channels: " 271 ;; the default rcirc-server
259 (mapconcat 'identity 272 (let ((default-server (default-value 'rcirc-server))
260 (rcirc-startup-channels server) 273 connected)
261 " ")) 274 (dolist (p (rcirc-process-list))
262 "[, ]+" t) 275 (when (string= default-server (process-name p))
263 (rcirc-startup-channels server)))) 276 (setq connected p)))
264 (or global-mode-string (setq global-mode-string '(""))) 277 (if (not connected)
265 (and (not (memq 'rcirc-activity-string global-mode-string)) 278 (rcirc-connect rcirc-server rcirc-port rcirc-nick
266 (setq global-mode-string 279 rcirc-user-name rcirc-user-full-name
267 (append global-mode-string '(rcirc-activity-string)))) 280 (rcirc-startup-channels rcirc-server))
268 (add-hook 'window-configuration-change-hook 281 (switch-to-buffer (process-buffer connected))
269 'rcirc-window-configuration-change) 282 (message "Connected to %s" rcirc-server)))))
270 (rcirc-connect server port nick rcirc-user-name rcirc-user-full-name
271 channels))
272 283
273;;;###autoload 284;;;###autoload
274(defalias 'irc 'rcirc) 285(defalias 'irc 'rcirc)
@@ -279,11 +290,9 @@ respectively."
279(defvar rcirc-keepalive-timer nil) 290(defvar rcirc-keepalive-timer nil)
280(defvar rcirc-last-server-message-time nil) 291(defvar rcirc-last-server-message-time nil)
281(defun rcirc-connect (server port nick user-name full-name startup-channels) 292(defun rcirc-connect (server port nick user-name full-name startup-channels)
282 "Return a connection to SERVER on PORT. 293 (add-hook 'window-configuration-change-hook
294 'rcirc-window-configuration-change)
283 295
284User will identify using the values of NICK, USER-NAME and
285FULL-NAME. The variable list of channel names in
286STARTUP-CHANNELS will automatically be joined on startup."
287 (save-excursion 296 (save-excursion
288 (message "Connecting to %s..." server) 297 (message "Connecting to %s..." server)
289 (let* ((inhibit-eol-conversion) 298 (let* ((inhibit-eol-conversion)
@@ -377,13 +386,13 @@ Functions are called with PROCESS and SENTINEL arguments.")
377 (rcirc-debug process (format "SENTINEL: %S %S\n" process sentinel)) 386 (rcirc-debug process (format "SENTINEL: %S %S\n" process sentinel))
378 (with-rcirc-process-buffer process 387 (with-rcirc-process-buffer process
379 (dolist (buffer (cons nil (mapcar 'cdr rcirc-buffer-alist))) 388 (dolist (buffer (cons nil (mapcar 'cdr rcirc-buffer-alist)))
380 (rcirc-print process "rcirc.el" "ERROR" buffer
381 (format "%s: %s (%S)"
382 (process-name process)
383 sentinel
384 (process-status process)) t)
385 ;; remove the prompt from buffers
386 (with-current-buffer (or buffer (current-buffer)) 389 (with-current-buffer (or buffer (current-buffer))
390 (rcirc-print process "rcirc.el" "ERROR" rcirc-target
391 (format "%s: %s (%S)"
392 (process-name process)
393 sentinel
394 (process-status process)) t)
395 ;; remove the prompt from buffers
387 (let ((inhibit-read-only t)) 396 (let ((inhibit-read-only t))
388 (delete-region rcirc-prompt-start-marker 397 (delete-region rcirc-prompt-start-marker
389 rcirc-prompt-end-marker))))) 398 rcirc-prompt-end-marker)))))
@@ -428,7 +437,8 @@ Function is called with PROCESS, COMMAND, SENDER, ARGS and LINE.")
428 437
429(defun rcirc-process-server-response-1 (process text) 438(defun rcirc-process-server-response-1 (process text)
430 (if (string-match "^\\(:\\([^ ]+\\) \\)?\\([^ ]+\\) \\(.+\\)$" text) 439 (if (string-match "^\\(:\\([^ ]+\\) \\)?\\([^ ]+\\) \\(.+\\)$" text)
431 (let* ((sender (match-string 2 text)) 440 (let* ((user (match-string 2 text))
441 (sender (rcirc-user-nick user))
432 (cmd (match-string 3 text)) 442 (cmd (match-string 3 text))
433 (args (match-string 4 text)) 443 (args (match-string 4 text))
434 (handler (intern-soft (concat "rcirc-handler-" cmd)))) 444 (handler (intern-soft (concat "rcirc-handler-" cmd))))
@@ -487,12 +497,10 @@ If NOTICEP is non-nil, send a notice instead of privmsg."
487 text)) 497 text))
488 (more (if oversize 498 (more (if oversize
489 (substring message rcirc-max-message-length)))) 499 (substring message rcirc-max-message-length))))
490 (rcirc-print process (rcirc-nick process) response 500 (rcirc-get-buffer-create process target)
491 (rcirc-get-buffer-create process target) 501 (rcirc-print process (rcirc-nick process) response target text)
492 text)
493 (rcirc-send-string process (concat response " " target " :" text)) 502 (rcirc-send-string process (concat response " " target " :" text))
494 (if more 503 (when more (rcirc-send-message process target more noticep))))
495 (rcirc-send-message process target more noticep))))
496 504
497(defvar rcirc-input-ring nil) 505(defvar rcirc-input-ring nil)
498(defvar rcirc-input-ring-index 0) 506(defvar rcirc-input-ring-index 0)
@@ -582,10 +590,6 @@ If buffer is nil, return the target of the current buffer."
582(define-key rcirc-mode-map (kbd "C-c C-s") 'rcirc-switch-to-server-buffer) 590(define-key rcirc-mode-map (kbd "C-c C-s") 'rcirc-switch-to-server-buffer)
583(define-key rcirc-mode-map (kbd "C-c C-a") 'rcirc-jump-to-first-unread-line) 591(define-key rcirc-mode-map (kbd "C-c C-a") 'rcirc-jump-to-first-unread-line)
584 592
585(define-key global-map (kbd "C-c `") 'rcirc-next-active-buffer)
586(define-key global-map (kbd "C-c C-@") 'rcirc-next-active-buffer)
587(define-key global-map (kbd "C-c C-SPC") 'rcirc-next-active-buffer)
588
589(defvar rcirc-browse-url-map (make-sparse-keymap) 593(defvar rcirc-browse-url-map (make-sparse-keymap)
590 "Keymap used for browsing URLs in `rcirc-mode'.") 594 "Keymap used for browsing URLs in `rcirc-mode'.")
591 595
@@ -730,8 +734,6 @@ This is used for the initial name given to IRC buffers."
730(defun rcirc-get-buffer (process target &optional server) 734(defun rcirc-get-buffer (process target &optional server)
731 "Return the buffer associated with the PROCESS and TARGET. 735 "Return the buffer associated with the PROCESS and TARGET.
732 736
733If TARGET is nil, return the server buffer.
734
735If optional argument SERVER is non-nil, return the server buffer 737If optional argument SERVER is non-nil, return the server buffer
736if there is no existing buffer for TARGET, otherwise return nil." 738if there is no existing buffer for TARGET, otherwise return nil."
737 (with-rcirc-process-buffer process 739 (with-rcirc-process-buffer process
@@ -744,7 +746,11 @@ if there is no existing buffer for TARGET, otherwise return nil."
744 "Return the buffer associated with the PROCESS and TARGET. 746 "Return the buffer associated with the PROCESS and TARGET.
745Create the buffer if it doesn't exist." 747Create the buffer if it doesn't exist."
746 (let ((buffer (rcirc-get-buffer process target))) 748 (let ((buffer (rcirc-get-buffer process target)))
747 (or buffer 749 (if buffer
750 (progn
751 (when (not rcirc-target)
752 (setq rcirc-target target))
753 buffer)
748 ;; create the buffer 754 ;; create the buffer
749 (with-rcirc-process-buffer process 755 (with-rcirc-process-buffer process
750 (let ((new-buffer (get-buffer-create 756 (let ((new-buffer (get-buffer-create
@@ -781,36 +787,45 @@ Create the buffer if it doesn't exist."
781 (delete-backward-char 1)) 787 (delete-backward-char 1))
782 (let ((input (buffer-substring-no-properties 788 (let ((input (buffer-substring-no-properties
783 rcirc-prompt-end-marker (point)))) 789 rcirc-prompt-end-marker (point))))
784 ;; process a /cmd 790 (dolist (line (split-string input "\n"))
785 (if (string-match "^/\\([^ ]+\\) ?\\(.*\\)$" input) 791 (rcirc-process-input-line rcirc-process target line))
786 (let* ((command (match-string 1 input))
787 (fun (intern-soft (concat "rcirc-cmd-" command)))
788 (args (match-string 2 input)))
789 (newline)
790 (with-current-buffer (current-buffer)
791 (delete-region rcirc-prompt-end-marker (point))
792 (if (string= command "me")
793 (rcirc-print rcirc-process (rcirc-nick rcirc-process)
794 "ACTION" (current-buffer) args)
795 (rcirc-print rcirc-process (rcirc-nick rcirc-process)
796 "COMMAND" (current-buffer) input))
797 (set-marker rcirc-prompt-end-marker (point))
798 (if (fboundp fun)
799 (funcall fun args rcirc-process target)
800 (rcirc-send-string rcirc-process
801 (concat command " " args)))))
802 ;; send message to server
803 (if (not rcirc-target)
804 (message "Not joined")
805 (delete-region rcirc-prompt-end-marker (point))
806 (mapc (lambda (message)
807 (rcirc-send-message rcirc-process target message))
808 (split-string input "\n"))))
809 ;; add to input-ring 792 ;; add to input-ring
810 (save-excursion 793 (save-excursion
811 (ring-insert rcirc-input-ring input) 794 (ring-insert rcirc-input-ring input)
812 (setq rcirc-input-ring-index 0))))))) 795 (setq rcirc-input-ring-index 0)))))))
813 796
797(defun rcirc-process-input-line (process target line)
798 (if (string-match "^/\\([^ ]+\\) ?\\(.*\\)$" line)
799 (rcirc-process-command (match-string 1 line)
800 (match-string 2 line)
801 line)
802 (rcirc-process-message line)))
803
804(defun rcirc-process-message (line)
805 (if (not rcirc-target)
806 (message "Not joined")
807 (delete-region rcirc-prompt-end-marker (point))
808 (rcirc-send-message rcirc-process rcirc-target line)))
809
810(defun rcirc-process-command (command args line)
811 (if (eq (aref command 0) ?/)
812 ;; "//text" will send "/text" as a message
813 (rcirc-process-message (substring line 1))
814 (let* ((fun (intern-soft (concat "rcirc-cmd-" command))))
815 (newline)
816 (with-current-buffer (current-buffer)
817 (delete-region rcirc-prompt-end-marker (point))
818 (if (string= command "me")
819 (rcirc-print rcirc-process (rcirc-nick rcirc-process)
820 "ACTION" rcirc-target args)
821 (rcirc-print rcirc-process (rcirc-nick rcirc-process)
822 "COMMAND" rcirc-target line))
823 (set-marker rcirc-prompt-end-marker (point))
824 (if (fboundp fun)
825 (funcall fun args rcirc-process rcirc-target)
826 (rcirc-send-string rcirc-process
827 (concat command " " args)))))))
828
814(defvar rcirc-parent-buffer nil) 829(defvar rcirc-parent-buffer nil)
815(defvar rcirc-window-configuration nil) 830(defvar rcirc-window-configuration nil)
816(defun rcirc-edit-multiline () 831(defun rcirc-edit-multiline ()
@@ -828,7 +843,8 @@ Create the buffer if it doesn't exist."
828 (setq rcirc-parent-buffer parent) 843 (setq rcirc-parent-buffer parent)
829 (setq rcirc-process process) 844 (setq rcirc-process process)
830 (insert text) 845 (insert text)
831 (and (> pos 0) (goto-char pos))))) 846 (and (> pos 0) (goto-char pos))
847 (message "Type C-c C-c to return text to %s, or C-c C-k to cancel" parent))))
832 848
833(define-derived-mode rcirc-multiline-edit-mode 849(define-derived-mode rcirc-multiline-edit-mode
834 text-mode "rcirc multi" 850 text-mode "rcirc multi"
@@ -894,13 +910,15 @@ Create the buffer if it doesn't exist."
894 (t 910 (t
895 (setq first "[" middle " " end "]"))) 911 (setq first "[" middle " " end "]")))
896 (concat first 912 (concat first
897 (rcirc-facify (rcirc-user-nick sender) 913 (rcirc-facify (concat
914 sender
915 (when target (concat "," target)))
898 (if (string= sender 916 (if (string= sender
899 (rcirc-nick process)) 917 (rcirc-nick process))
900 'rcirc-my-nick 918 'rcirc-my-nick
901 'rcirc-other-nick)) 919 'rcirc-other-nick))
902 middle 920 middle
903 (rcirc-mangle-text process text) 921 (rcirc-mangle-text process text)
904 end))) 922 end)))
905 ((string= response "COMMAND") 923 ((string= response "COMMAND")
906 text) 924 text)
@@ -914,31 +932,41 @@ Create the buffer if it doesn't exist."
914 (rcirc-facify 932 (rcirc-facify
915 (concat 933 (concat
916 (when (not (string= sender (rcirc-server process))) 934 (when (not (string= sender (rcirc-server process)))
917 (concat (rcirc-user-nick sender) " ")) 935 (concat sender " "))
918 (when (zerop (string-to-number response)) 936 (when (zerop (string-to-number response))
919 (concat response " ")) 937 (concat response " "))
920 text) 938 text)
921 'rcirc-server))))))) 939 'rcirc-server)))))))
922 940
941(defun rcirc-target-buffer (process sender response target text)
942 "Return a buffer to print the server response."
943 (assert (not (bufferp target)))
944 (with-rcirc-process-buffer process
945 (cond ((not target)
946 (if rcirc-always-use-server-buffer-flag
947 (process-buffer process)
948 (rcirc-get-any-buffer process)))
949 ((not (rcirc-channel-p target))
950 ;; message from another user
951 (if (string= response "PRIVMSG")
952 (rcirc-get-buffer-create process (if (string= sender rcirc-nick)
953 target
954 sender))
955 (rcirc-get-buffer process target t)))
956 ((or (rcirc-get-buffer process target)
957 (rcirc-get-any-buffer process))))))
958
923(defvar rcirc-activity-type nil) 959(defvar rcirc-activity-type nil)
924(make-variable-buffer-local 'rcirc-activity-type) 960(make-variable-buffer-local 'rcirc-activity-type)
925(defun rcirc-print (process sender response target text &optional activity) 961(defun rcirc-print (process sender response target text &optional activity)
926 "Print TEXT in the buffer associated with TARGET. 962 "Print TEXT in the buffer associated with TARGET.
927Format based on SENDER and RESPONSE. If ACTIVITY is non-nil, 963Format based on SENDER and RESPONSE. If ACTIVITY is non-nil,
928record activity." 964record activity."
929 (unless (or (member (rcirc-user-nick sender) rcirc-ignore-list) 965 (unless (or (member sender rcirc-ignore-list)
930 (member (with-syntax-table rcirc-nick-syntax-table 966 (member (with-syntax-table rcirc-nick-syntax-table
931 (when (string-match "^\\([^/]\\w*\\)[:,]" text) 967 (when (string-match "^\\([^/]\\w*\\)[:,]" text)
932 (match-string 1 text))) rcirc-ignore-list)) 968 (match-string 1 text))) rcirc-ignore-list))
933 (let* ((buffer (cond ((bufferp target) 969 (let* ((buffer (rcirc-target-buffer process sender response target text))
934 target)
935 ((not target)
936 (rcirc-get-any-buffer process))
937 ((not (rcirc-channel-p target))
938 (rcirc-get-buffer-create process
939 (rcirc-user-nick sender)))
940 ((or (rcirc-get-buffer process target)
941 (rcirc-get-any-buffer process)))))
942 (inhibit-read-only t)) 970 (inhibit-read-only t))
943 (with-current-buffer buffer 971 (with-current-buffer buffer
944 (let ((moving (= (point) rcirc-prompt-end-marker)) 972 (let ((moving (= (point) rcirc-prompt-end-marker))
@@ -961,7 +989,7 @@ record activity."
961 (set-marker-insertion-type rcirc-prompt-start-marker t) 989 (set-marker-insertion-type rcirc-prompt-start-marker t)
962 (set-marker-insertion-type rcirc-prompt-end-marker t) 990 (set-marker-insertion-type rcirc-prompt-end-marker t)
963 (insert 991 (insert
964 (rcirc-format-response-string process sender response target text) 992 (rcirc-format-response-string process sender response nil text)
965 (propertize "\n" 'hard t)) 993 (propertize "\n" 'hard t))
966 (set-marker-insertion-type rcirc-prompt-start-marker nil) 994 (set-marker-insertion-type rcirc-prompt-start-marker nil)
967 (set-marker-insertion-type rcirc-prompt-end-marker nil) 995 (set-marker-insertion-type rcirc-prompt-end-marker nil)
@@ -978,10 +1006,10 @@ record activity."
978 0) 1006 0)
979 (cond ((or (string= response "PRIVMSG") 1007 (cond ((or (string= response "PRIVMSG")
980 (string= response "NOTICE")) 1008 (string= response "NOTICE"))
981 (+ (length (rcirc-user-nick sender)) 1009 (+ (length sender)
982 2)) ; <> 1010 2)) ; <>
983 ((string= response "ACTION") 1011 ((string= response "ACTION")
984 (+ (length (rcirc-user-nick sender)) 1012 (+ (length sender)
985 1)) ; [ 1013 1)) ; [
986 (t 3)) ; *** 1014 (t 3)) ; ***
987 1) 1015 1)
@@ -1056,17 +1084,17 @@ record activity."
1056(defun rcirc-join-channels (process channels) 1084(defun rcirc-join-channels (process channels)
1057 "Join CHANNELS." 1085 "Join CHANNELS."
1058 (save-window-excursion 1086 (save-window-excursion
1059 (mapc (lambda (channel) 1087 (dolist (channel channels)
1060 (with-rcirc-process-buffer process 1088 (with-rcirc-process-buffer process
1061 (rcirc-cmd-join channel process))) 1089 (rcirc-cmd-join channel process)))))
1062 channels)))
1063 1090
1064;;; nick management 1091;;; nick management
1065(defun rcirc-user-nick (user) 1092(defun rcirc-user-nick (user)
1066 "Return the nick from USER. Remove any non-nick junk." 1093 "Return the nick from USER. Remove any non-nick junk."
1067 (if (string-match "^[@%+]?\\([^! ]+\\)!?" (or user "")) 1094 (save-match-data
1068 (match-string 1 user) 1095 (if (string-match "^[@%+]?\\([^! ]+\\)!?" (or user ""))
1069 user)) 1096 (match-string 1 user)
1097 user)))
1070 1098
1071(defun rcirc-user-non-nick (user) 1099(defun rcirc-user-non-nick (user)
1072 "Return the non-nick portion of USER." 1100 "Return the non-nick portion of USER."
@@ -1076,17 +1104,15 @@ record activity."
1076 1104
1077(defun rcirc-nick-channels (process nick) 1105(defun rcirc-nick-channels (process nick)
1078 "Return list of channels for NICK." 1106 "Return list of channels for NICK."
1079 (let ((nick (rcirc-user-nick nick))) 1107 (with-rcirc-process-buffer process
1080 (with-rcirc-process-buffer process 1108 (mapcar (lambda (x) (car x))
1081 (mapcar (lambda (x) (car x)) 1109 (gethash nick rcirc-nick-table))))
1082 (gethash nick rcirc-nick-table)))))
1083 1110
1084(defun rcirc-put-nick-channel (process nick channel) 1111(defun rcirc-put-nick-channel (process nick channel)
1085 "Add CHANNEL to list associated with NICK." 1112 "Add CHANNEL to list associated with NICK."
1086 (with-rcirc-process-buffer process 1113 (with-rcirc-process-buffer process
1087 (let* ((nick (rcirc-user-nick nick)) 1114 (let* ((chans (gethash nick rcirc-nick-table))
1088 (chans (gethash nick rcirc-nick-table)) 1115 (record (assoc-string channel chans t)))
1089 (record (assoc-string channel chans t)))
1090 (if record 1116 (if record
1091 (setcdr record (current-time)) 1117 (setcdr record (current-time))
1092 (puthash nick (cons (cons channel (current-time)) 1118 (puthash nick (cons (cons channel (current-time))
@@ -1101,8 +1127,7 @@ record activity."
1101(defun rcirc-remove-nick-channel (process nick channel) 1127(defun rcirc-remove-nick-channel (process nick channel)
1102 "Remove the CHANNEL from list associated with NICK." 1128 "Remove the CHANNEL from list associated with NICK."
1103 (with-rcirc-process-buffer process 1129 (with-rcirc-process-buffer process
1104 (let* ((nick (rcirc-user-nick nick)) 1130 (let* ((chans (gethash nick rcirc-nick-table))
1105 (chans (gethash nick rcirc-nick-table))
1106 (newchans 1131 (newchans
1107 ;; instead of assoc-string-delete-all: 1132 ;; instead of assoc-string-delete-all:
1108 (let ((record (assoc-string channel chans t))) 1133 (let ((record (assoc-string channel chans t)))
@@ -1136,28 +1161,44 @@ if NICK is also on `rcirc-ignore-list-automatic'."
1136 (delete nick rcirc-ignore-list)))) 1161 (delete nick rcirc-ignore-list))))
1137 1162
1138;;; activity tracking 1163;;; activity tracking
1164(defvar rcirc-track-minor-mode-map (make-sparse-keymap)
1165 "Keymap for rcirc track minor mode.")
1166
1167(define-key rcirc-track-minor-mode-map (kbd "C-c `") 'rcirc-next-active-buffer)
1168(define-key rcirc-track-minor-mode-map (kbd "C-c C-@") 'rcirc-next-active-buffer)
1169(define-key rcirc-track-minor-mode-map (kbd "C-c C-SPC") 'rcirc-next-active-buffer)
1170
1171;;; FIXME: the code to insert `rcirc-activity-string' into
1172;;; `global-mode-string' isn't called when the mode is activated by
1173;;; customize. I don't know how to set that up.
1174(define-minor-mode rcirc-track-minor-mode
1175 "Global minor mode for tracking activity in rcirc buffers."
1176 :init-value nil
1177 :lighter ""
1178 :keymap rcirc-track-minor-mode-map
1179 :global t
1180 :group 'rcirc
1181 (or global-mode-string (setq global-mode-string '("")))
1182 ;; toggle the mode-line channel indicator
1183 (if rcirc-track-minor-mode
1184 (and (not (memq 'rcirc-activity-string global-mode-string))
1185 (setq global-mode-string
1186 (append global-mode-string '(rcirc-activity-string))))
1187 (setq global-mode-string
1188 (delete 'rcirc-activity-string global-mode-string))))
1189
1139(or (assq 'rcirc-ignore-buffer-activity-flag minor-mode-alist) 1190(or (assq 'rcirc-ignore-buffer-activity-flag minor-mode-alist)
1140 (setq minor-mode-alist 1191 (setq minor-mode-alist
1141 (cons '(rcirc-ignore-buffer-activity-flag " Ignore") minor-mode-alist))) 1192 (cons '(rcirc-ignore-buffer-activity-flag " Ignore") minor-mode-alist)))
1142 1193
1143(defun rcirc-toggle-ignore-buffer-activity (&optional all) 1194(defun rcirc-toggle-ignore-buffer-activity ()
1144 "Toggle the value of `rcirc-ignore-buffer-activity-flag'. 1195 "Toggle the value of `rcirc-ignore-buffer-activity-flag'."
1145If ALL is non-nil, instead toggle the value of 1196 (interactive)
1146`rcirc-ignore-all-activity-flag'." 1197 (setq rcirc-ignore-buffer-activity-flag
1147 (interactive "P") 1198 (not rcirc-ignore-buffer-activity-flag))
1148 (if all 1199 (message (if rcirc-ignore-buffer-activity-flag
1149 (progn 1200 "Ignore activity in this buffer"
1150 (setq rcirc-ignore-all-activity-flag 1201 "Notice activity in this buffer"))
1151 (not rcirc-ignore-all-activity-flag))
1152 (message (if rcirc-ignore-all-activity-flag
1153 "Hide all buffer activity"
1154 "Display buffer activity"))
1155 (rcirc-update-activity-string))
1156 (setq rcirc-ignore-buffer-activity-flag
1157 (not rcirc-ignore-buffer-activity-flag))
1158 (message (if rcirc-ignore-buffer-activity-flag
1159 "Ignore activity in this buffer"
1160 "Notice activity in this buffer")))
1161 (force-mode-line-update)) 1202 (force-mode-line-update))
1162 1203
1163(defvar rcirc-switch-to-buffer-function 'switch-to-buffer 1204(defvar rcirc-switch-to-buffer-function 'switch-to-buffer
@@ -1229,21 +1270,18 @@ activity. Only run if the buffer is not visible and
1229(defun rcirc-update-activity-string () 1270(defun rcirc-update-activity-string ()
1230 "Update mode-line string." 1271 "Update mode-line string."
1231 (setq rcirc-activity-string 1272 (setq rcirc-activity-string
1232 (cond (rcirc-ignore-all-activity-flag 1273 (if (not rcirc-activity)
1233 " DND") 1274 ""
1234 ((not rcirc-activity) 1275 (concat " ["
1235 "") 1276 (mapconcat
1236 (t 1277 (lambda (b)
1237 (concat " [" 1278 (let ((s (rcirc-short-buffer-name b)))
1238 (mapconcat 1279 (with-current-buffer b
1239 (lambda (b) 1280 (if (not (eq rcirc-activity-type 'nick))
1240 (let ((s (rcirc-short-buffer-name b))) 1281 s
1241 (with-current-buffer b 1282 (rcirc-facify s 'rcirc-mode-line-nick)))))
1242 (if (not (eq rcirc-activity-type 'nick)) 1283 rcirc-activity ",")
1243 s 1284 "]"))))
1244 (rcirc-facify s 'rcirc-mode-line-nick)))))
1245 rcirc-activity ",")
1246 "]")))))
1247 1285
1248(defun rcirc-short-buffer-name (buffer) 1286(defun rcirc-short-buffer-name (buffer)
1249 "Return a short name for BUFFER to use in the modeline indicator." 1287 "Return a short name for BUFFER to use in the modeline indicator."
@@ -1488,23 +1526,22 @@ Ignore NICK, unignore NICK if already ignored, or list ignored
1488nicks when no NICK is given. When listing ignored nicks, the 1526nicks when no NICK is given. When listing ignored nicks, the
1489ones added to the list automatically are marked with an asterisk." 1527ones added to the list automatically are marked with an asterisk."
1490 (interactive "sToggle ignoring of nick: ") 1528 (interactive "sToggle ignoring of nick: ")
1491 (if (string= "" nick) 1529 (when (not (string= "" nick))
1492 (rcirc-print process (rcirc-nick process) "NOTICE" target
1493 (mapconcat
1494 (lambda (nick)
1495 (concat nick
1496 (if (member nick rcirc-ignore-list-automatic)
1497 "*" "")))
1498 rcirc-ignore-list " "))
1499 (if (member nick rcirc-ignore-list) 1530 (if (member nick rcirc-ignore-list)
1500 (setq rcirc-ignore-list (delete nick rcirc-ignore-list)) 1531 (setq rcirc-ignore-list (delete nick rcirc-ignore-list))
1501 (setq rcirc-ignore-list (cons nick rcirc-ignore-list))))) 1532 (setq rcirc-ignore-list (cons nick rcirc-ignore-list))))
1502 1533 (rcirc-print process (rcirc-nick process) "IGNORE" target
1534 (mapconcat
1535 (lambda (nick)
1536 (concat nick
1537 (if (member nick rcirc-ignore-list-automatic)
1538 "*" "")))
1539 rcirc-ignore-list " ")))
1503 1540
1504 1541
1505(defun rcirc-message-leader (sender face) 1542(defun rcirc-message-leader (sender face)
1506 "Return a string with SENDER propertized with FACE." 1543 "Return a string with SENDER propertized with FACE."
1507 (rcirc-facify (concat "<" (rcirc-user-nick sender) "> ") face)) 1544 (rcirc-facify (concat "<" sender "> ") face))
1508 1545
1509(defun rcirc-facify (string face) 1546(defun rcirc-facify (string face)
1510 "Return a copy of STRING with FACE property added." 1547 "Return a copy of STRING with FACE property added."
@@ -1518,8 +1555,8 @@ ones added to the list automatically are marked with an asterisk."
1518 "://" 1555 "://"
1519 (1+ (char "a-zA-Z0-9_.")) 1556 (1+ (char "a-zA-Z0-9_."))
1520 (optional ":" (1+ (char "0-9"))))) 1557 (optional ":" (1+ (char "0-9")))))
1521 (1+ (char "-a-zA-Z0-9_=!?#$\@~`%&*+|\\/:;.,")) 1558 (1+ (char "-a-zA-Z0-9_=!?#$\@~`%&*+|\\/:;.,{}[]"))
1522 (char "-a-zA-Z0-9_=!?#$\@~`%&*+|\\/:;")) 1559 (char "-a-zA-Z0-9_=#$\@~`%&*+|\\/:;{}[]"))
1523 "Regexp matching URLs. Set to nil to disable URL features in rcirc.") 1560 "Regexp matching URLs. Set to nil to disable URL features in rcirc.")
1524 1561
1525(defun rcirc-browse-url (&optional arg) 1562(defun rcirc-browse-url (&optional arg)
@@ -1603,7 +1640,7 @@ FUNCTION takes 3 arguments, MATCH-START, MATCH-END, and STRING."
1603 'mouse-face 'highlight 1640 'mouse-face 'highlight
1604 'keymap rcirc-browse-url-map) 1641 'keymap rcirc-browse-url-map)
1605 string)) 1642 string))
1606 (push (substring string start end) rcirc-urls)) 1643 (push (substring-no-properties string start end) rcirc-urls))
1607 rcirc-url-regexp 1644 rcirc-url-regexp
1608 text)) 1645 text))
1609 text) 1646 text)
@@ -1627,7 +1664,7 @@ FUNCTION takes 3 arguments, MATCH-START, MATCH-END, and STRING."
1627(defun rcirc-handler-PRIVMSG (process sender args text) 1664(defun rcirc-handler-PRIVMSG (process sender args text)
1628 (let ((target (if (rcirc-channel-p (car args)) 1665 (let ((target (if (rcirc-channel-p (car args))
1629 (car args) 1666 (car args)
1630 (rcirc-user-nick sender))) 1667 sender))
1631 (message (or (cadr args) ""))) 1668 (message (or (cadr args) "")))
1632 (if (string-match "^\C-a\\(.*\\)\C-a$" message) 1669 (if (string-match "^\C-a\\(.*\\)\C-a$" message)
1633 (rcirc-handler-CTCP process target sender (match-string 1 message)) 1670 (rcirc-handler-CTCP process target sender (match-string 1 message))
@@ -1650,25 +1687,21 @@ FUNCTION takes 3 arguments, MATCH-START, MATCH-END, and STRING."
1650 (match-string 1 message)) 1687 (match-string 1 message))
1651 (sender 1688 (sender
1652 (if (string= sender (rcirc-server process)) 1689 (if (string= sender (rcirc-server process))
1653 (process-buffer process) 1690 nil ; server notice
1654 (rcirc-user-nick sender)))) 1691 sender)))
1655 message t)))) 1692 message t))))
1656 ;; do we need this:
1657 ;;(and sender (rcirc-put-nick-channel process sender target))))
1658 1693
1659(defun rcirc-handler-WALLOPS (process sender args text) 1694(defun rcirc-handler-WALLOPS (process sender args text)
1660 (let ((target (rcirc-user-nick sender))) 1695 (rcirc-print process sender "WALLOPS" sender (car args) t))
1661 (rcirc-print process sender "WALLOPS" target (car args) t)))
1662 1696
1663(defun rcirc-handler-JOIN (process sender args text) 1697(defun rcirc-handler-JOIN (process sender args text)
1664 (let ((channel (car args)) 1698 (let ((channel (car args)))
1665 (nick (rcirc-user-nick sender)))
1666 (rcirc-get-buffer-create process channel) 1699 (rcirc-get-buffer-create process channel)
1667 (rcirc-print process sender "JOIN" channel "") 1700 (rcirc-print process sender "JOIN" channel "")
1668 1701
1669 ;; print in private chat buffer if it exists 1702 ;; print in private chat buffer if it exists
1670 (when (rcirc-get-buffer rcirc-process nick) 1703 (when (rcirc-get-buffer rcirc-process sender)
1671 (rcirc-print process sender "JOIN" nick channel)) 1704 (rcirc-print process sender "JOIN" sender channel))
1672 1705
1673 (rcirc-put-nick-channel process sender channel))) 1706 (rcirc-put-nick-channel process sender channel)))
1674 1707
@@ -1695,9 +1728,9 @@ FUNCTION takes 3 arguments, MATCH-START, MATCH-END, and STRING."
1695 (setq rcirc-target nil)))))) 1728 (setq rcirc-target nil))))))
1696 1729
1697(defun rcirc-handler-PART (process sender args text) 1730(defun rcirc-handler-PART (process sender args text)
1698 (rcirc-ignore-update-automatic (rcirc-user-nick sender)) 1731 (rcirc-ignore-update-automatic sender)
1699 (rcirc-handler-PART-or-KICK process "PART" 1732 (rcirc-handler-PART-or-KICK process "PART"
1700 (car args) sender (rcirc-user-nick sender) 1733 (car args) sender sender
1701 (cadr args))) 1734 (cadr args)))
1702 1735
1703(defun rcirc-handler-KICK (process sender args text) 1736(defun rcirc-handler-KICK (process sender args text)
@@ -1705,21 +1738,19 @@ FUNCTION takes 3 arguments, MATCH-START, MATCH-END, and STRING."
1705 (caddr args))) 1738 (caddr args)))
1706 1739
1707(defun rcirc-handler-QUIT (process sender args text) 1740(defun rcirc-handler-QUIT (process sender args text)
1708 (rcirc-ignore-update-automatic (rcirc-user-nick sender)) 1741 (rcirc-ignore-update-automatic sender)
1709 (let ((nick (rcirc-user-nick sender))) 1742 (mapc (lambda (channel)
1710 (mapc (lambda (channel) 1743 (rcirc-print process sender "QUIT" channel (apply 'concat args)))
1711 (rcirc-print process sender "QUIT" channel (apply 'concat args))) 1744 (rcirc-nick-channels process sender))
1712 (rcirc-nick-channels process nick))
1713 1745
1714 ;; print in private chat buffer if it exists 1746 ;; print in private chat buffer if it exists
1715 (let ((buffer (rcirc-get-buffer rcirc-process nick))) 1747 (when (rcirc-get-buffer rcirc-process sender)
1716 (when buffer 1748 (rcirc-print process sender "QUIT" sender (apply 'concat args)))
1717 (rcirc-print process sender "QUIT" buffer (apply 'concat args))))
1718 1749
1719 (rcirc-nick-remove process nick))) 1750 (rcirc-nick-remove process sender))
1720 1751
1721(defun rcirc-handler-NICK (process sender args text) 1752(defun rcirc-handler-NICK (process sender args text)
1722 (let* ((old-nick (rcirc-user-nick sender)) 1753 (let* ((old-nick sender)
1723 (new-nick (car args)) 1754 (new-nick (car args))
1724 (channels (rcirc-nick-channels process old-nick))) 1755 (channels (rcirc-nick-channels process old-nick)))
1725 ;; update list of ignored nicks 1756 ;; update list of ignored nicks
@@ -1796,9 +1827,8 @@ FUNCTION takes 3 arguments, MATCH-START, MATCH-END, and STRING."
1796 1827
1797 ;; print in private chat buffers if they exist 1828 ;; print in private chat buffers if they exist
1798 (mapc (lambda (nick) 1829 (mapc (lambda (nick)
1799 (let ((existing-buffer (rcirc-get-buffer process nick))) 1830 (when (rcirc-get-buffer process nick)
1800 (when existing-buffer 1831 (rcirc-print process sender "MODE" nick msg)))
1801 (rcirc-print process sender "MODE" existing-buffer msg))))
1802 (cddr args)))) 1832 (cddr args))))
1803 1833
1804(defun rcirc-get-temp-buffer-create (process channel) 1834(defun rcirc-get-temp-buffer-create (process channel)
@@ -1834,40 +1864,35 @@ FUNCTION takes 3 arguments, MATCH-START, MATCH-END, and STRING."
1834 1864
1835(defun rcirc-authenticate () 1865(defun rcirc-authenticate ()
1836 "Send authentication to process associated with current buffer. 1866 "Send authentication to process associated with current buffer.
1837Passwords are read from `rcirc-authinfo-file-name' (which see)." 1867Passwords are stored in `rcirc-authinfo' (which see)."
1838 (interactive) 1868 (interactive)
1839 (let ((password-alist 1869 (with-rcirc-process-buffer rcirc-process
1840 (with-temp-buffer 1870 (dolist (i rcirc-authinfo)
1841 (insert-file-contents-literally rcirc-authinfo-file-name) 1871 (let ((server (car i))
1842 (goto-char (point-min)) 1872 (nick (caddr i))
1843 (read (current-buffer))))) 1873 (method (cadr i))
1844 (with-rcirc-process-buffer rcirc-process 1874 (args (cdddr i)))
1845 (dolist (i password-alist) 1875 (when (and (string-match server rcirc-server)
1846 (let ((server (car i)) 1876 (string-match nick rcirc-nick))
1847 (nick (cadr i)) 1877 (cond ((equal method 'nickserv)
1848 (method (caddr i)) 1878 (rcirc-send-string
1849 (args (cdddr i))) 1879 rcirc-process
1850 (when (and (string-match server rcirc-server) 1880 (concat
1851 (string-match nick rcirc-nick)) 1881 "PRIVMSG nickserv :identify "
1852 (cond ((equal method 'nickserv) 1882 (car args))))
1853 (rcirc-send-string 1883 ((equal method 'chanserv)
1854 rcirc-process 1884 (rcirc-send-string
1855 (concat 1885 rcirc-process
1856 "PRIVMSG nickserv :identify " 1886 (concat
1857 (car args)))) 1887 "PRIVMSG chanserv :identify "
1858 ((equal method 'chanserv) 1888 (cadr args) " " (car args))))
1859 (rcirc-send-string 1889 ((equal method 'bitlbee)
1860 rcirc-process 1890 (rcirc-send-string
1861 (concat 1891 rcirc-process
1862 "PRIVMSG chanserv :identify " 1892 (concat "PRIVMSG &bitlbee :identify " (car args))))
1863 (car args) " " (cadr args)))) 1893 (t
1864 ((equal method 'bitlbee) 1894 (message "No %S authentication method defined"
1865 (rcirc-send-string 1895 method))))))))
1866 rcirc-process
1867 (concat "PRIVMSG #bitlbee :identify " (car args))))
1868 (t
1869 (message "No %S authentication method defined"
1870 method)))))))))
1871 1896
1872(defun rcirc-handler-INVITE (process sender args text) 1897(defun rcirc-handler-INVITE (process sender args text)
1873 (rcirc-print process sender "INVITE" nil (mapconcat 'identity args " ") t)) 1898 (rcirc-print process sender "INVITE" nil (mapconcat 'identity args " ") t))
@@ -1879,22 +1904,19 @@ Passwords are read from `rcirc-authinfo-file-name' (which see)."
1879 (if (string-match "^\\([^ ]+\\) *\\(.*\\)$" text) 1904 (if (string-match "^\\([^ ]+\\) *\\(.*\\)$" text)
1880 (let* ((request (upcase (match-string 1 text))) 1905 (let* ((request (upcase (match-string 1 text)))
1881 (args (match-string 2 text)) 1906 (args (match-string 2 text))
1882 (nick (rcirc-user-nick sender))
1883 (handler (intern-soft (concat "rcirc-handler-ctcp-" request)))) 1907 (handler (intern-soft (concat "rcirc-handler-ctcp-" request))))
1884 (if (not (fboundp handler)) 1908 (if (not (fboundp handler))
1885 (rcirc-print process sender "ERROR" 1909 (rcirc-print process sender "ERROR" target
1886 (rcirc-get-buffer process target) 1910 (format "%s sent unsupported ctcp: %s" sender text)
1887 (format "%s sent unsupported ctcp: %s" nick text)
1888 t) 1911 t)
1889 (funcall handler process target sender args) 1912 (funcall handler process target sender args)
1890 (if (not (string= request "ACTION")) 1913 (if (not (string= request "ACTION"))
1891 (rcirc-print process sender "CTCP" 1914 (rcirc-print process sender "CTCP" target
1892 (rcirc-get-buffer process target)
1893 (format "%s" text) t)))))) 1915 (format "%s" text) t))))))
1894 1916
1895(defun rcirc-handler-ctcp-VERSION (process target sender args) 1917(defun rcirc-handler-ctcp-VERSION (process target sender args)
1896 (rcirc-send-string process 1918 (rcirc-send-string process
1897 (concat "NOTICE " (rcirc-user-nick sender) 1919 (concat "NOTICE " sender
1898 " :\C-aVERSION " rcirc-id-string 1920 " :\C-aVERSION " rcirc-id-string
1899 "\C-a"))) 1921 "\C-a")))
1900 1922
@@ -1903,7 +1925,7 @@ Passwords are read from `rcirc-authinfo-file-name' (which see)."
1903 1925
1904(defun rcirc-handler-ctcp-TIME (process target sender args) 1926(defun rcirc-handler-ctcp-TIME (process target sender args)
1905 (rcirc-send-string process 1927 (rcirc-send-string process
1906 (concat "NOTICE " (rcirc-user-nick sender) 1928 (concat "NOTICE " sender
1907 " :\C-aTIME " (current-time-string) "\C-a"))) 1929 " :\C-aTIME " (current-time-string) "\C-a")))
1908 1930
1909(defun rcirc-handler-CTCP-response (process target sender message) 1931(defun rcirc-handler-CTCP-response (process target sender message)
@@ -1960,7 +1982,7 @@ Passwords are read from `rcirc-authinfo-file-name' (which see)."
1960 :group 'rcirc-faces) 1982 :group 'rcirc-faces)
1961 1983
1962(defface rcirc-server-prefix ; font-lock-comment-delimiter-face 1984(defface rcirc-server-prefix ; font-lock-comment-delimiter-face
1963 '((default :inherit font-lock-comment-face) 1985 '((default :inherit rcirc-server)
1964 (((class grayscale))) 1986 (((class grayscale)))
1965 (((class color) (min-colors 16))) 1987 (((class color) (min-colors 16)))
1966 (((class color) (min-colors 8) (background light)) 1988 (((class color) (min-colors 8) (background light))
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 2fdf63ce351..afe5308a918 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -6482,7 +6482,8 @@ connection if a previous connection has died for some reason."
6482 p (processp p) (memq (process-status p) '(run open))) 6482 p (processp p) (memq (process-status p) '(run open)))
6483 (tramp-send-command 6483 (tramp-send-command
6484 multi-method method user host "echo are you awake" nil t) 6484 multi-method method user host "echo are you awake" nil t)
6485 (unless (tramp-wait-for-output 10) 6485 (unless (and (memq (process-status p) '(run open))
6486 (tramp-wait-for-output 10))
6486 (delete-process p) 6487 (delete-process p)
6487 (setq p nil)) 6488 (setq p nil))
6488 (erase-buffer))) 6489 (erase-buffer)))
diff --git a/lisp/pgg-def.el b/lisp/pgg-def.el
index 0b356461d6c..058dca4fa8f 100644
--- a/lisp/pgg-def.el
+++ b/lisp/pgg-def.el
@@ -83,6 +83,9 @@ Whether the passphrase is cached at all is controlled by
83(defvar pgg-scheme nil 83(defvar pgg-scheme nil
84 "Current scheme of PGP implementation.") 84 "Current scheme of PGP implementation.")
85 85
86(defvar pgg-text-mode nil
87 "If t, inform the recipient that the input is text.")
88
86(defmacro pgg-truncate-key-identifier (key) 89(defmacro pgg-truncate-key-identifier (key)
87 `(if (> (length ,key) 8) (substring ,key 8) ,key)) 90 `(if (> (length ,key) 8) (substring ,key 8) ,key))
88 91
diff --git a/lisp/pgg-gpg.el b/lisp/pgg-gpg.el
index be9b8bf9e77..0c9f45ab5b9 100644
--- a/lisp/pgg-gpg.el
+++ b/lisp/pgg-gpg.el
@@ -87,7 +87,9 @@
87 (buffer-disable-undo) 87 (buffer-disable-undo)
88 (erase-buffer) 88 (erase-buffer)
89 (if (file-exists-p output-file-name) 89 (if (file-exists-p output-file-name)
90 (let ((coding-system-for-read 'raw-text-dos)) 90 (let ((coding-system-for-read (if pgg-text-mode
91 'raw-text
92 'binary)))
91 (insert-file-contents output-file-name))) 93 (insert-file-contents output-file-name)))
92 (set-buffer errors-buffer) 94 (set-buffer errors-buffer)
93 (if (not (equal exit-status 0)) 95 (if (not (equal exit-status 0))
@@ -187,7 +189,8 @@ passphrase cache or user."
187 pgg-gpg-user-id)))) 189 pgg-gpg-user-id))))
188 (args 190 (args
189 (append 191 (append
190 (list "--batch" "--textmode" "--armor" "--always-trust" "--encrypt") 192 (list "--batch" "--armor" "--always-trust" "--encrypt")
193 (if pgg-text-mode (list "--textmode"))
191 (if sign (list "--sign" "--local-user" pgg-gpg-user-id)) 194 (if sign (list "--sign" "--local-user" pgg-gpg-user-id))
192 (if recipients 195 (if recipients
193 (apply #'nconc 196 (apply #'nconc
@@ -196,8 +199,7 @@ passphrase cache or user."
196 (append recipients 199 (append recipients
197 (if pgg-encrypt-for-me 200 (if pgg-encrypt-for-me
198 (list pgg-gpg-user-id))))))))) 201 (list pgg-gpg-user-id)))))))))
199 (pgg-as-lbt start end 'CRLF 202 (pgg-gpg-process-region start end passphrase pgg-gpg-program args)
200 (pgg-gpg-process-region start end passphrase pgg-gpg-program args))
201 (when sign 203 (when sign
202 (with-current-buffer pgg-errors-buffer 204 (with-current-buffer pgg-errors-buffer
203 ;; Possibly cache passphrase under, e.g. "jas", for future sign. 205 ;; Possibly cache passphrase under, e.g. "jas", for future sign.
@@ -215,9 +217,9 @@ passphrase cache or user."
215 (pgg-read-passphrase 217 (pgg-read-passphrase
216 "GnuPG passphrase for symmetric encryption: "))) 218 "GnuPG passphrase for symmetric encryption: ")))
217 (args 219 (args
218 (append (list "--batch" "--textmode" "--armor" "--symmetric" )))) 220 (append (list "--batch" "--armor" "--symmetric" )
219 (pgg-as-lbt start end 'CRLF 221 (if pgg-text-mode (list "--textmode")))))
220 (pgg-gpg-process-region start end passphrase pgg-gpg-program args)) 222 (pgg-gpg-process-region start end passphrase pgg-gpg-program args)
221 (pgg-process-when-success))) 223 (pgg-process-when-success)))
222 224
223(defun pgg-gpg-decrypt-region (start end &optional passphrase) 225(defun pgg-gpg-decrypt-region (start end &optional passphrase)
@@ -279,13 +281,13 @@ passphrase cache or user."
279 (format "GnuPG passphrase for %s: " pgg-gpg-user-id) 281 (format "GnuPG passphrase for %s: " pgg-gpg-user-id)
280 pgg-gpg-user-id))) 282 pgg-gpg-user-id)))
281 (args 283 (args
282 (list (if cleartext "--clearsign" "--detach-sign") 284 (append (list (if cleartext "--clearsign" "--detach-sign")
283 "--armor" "--batch" "--verbose" 285 "--armor" "--batch" "--verbose"
284 "--local-user" pgg-gpg-user-id)) 286 "--local-user" pgg-gpg-user-id)
287 (if pgg-text-mode (list "--textmode"))))
285 (inhibit-read-only t) 288 (inhibit-read-only t)
286 buffer-read-only) 289 buffer-read-only)
287 (pgg-as-lbt start end 'CRLF 290 (pgg-gpg-process-region start end passphrase pgg-gpg-program args)
288 (pgg-gpg-process-region start end passphrase pgg-gpg-program args))
289 (with-current-buffer pgg-errors-buffer 291 (with-current-buffer pgg-errors-buffer
290 ;; Possibly cache passphrase under, e.g. "jas", for future sign. 292 ;; Possibly cache passphrase under, e.g. "jas", for future sign.
291 (pgg-gpg-possibly-cache-passphrase passphrase pgg-gpg-user-id) 293 (pgg-gpg-possibly-cache-passphrase passphrase pgg-gpg-user-id)
diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el
index 6442463796c..d7e1ecb67e1 100644
--- a/lisp/progmodes/ada-mode.el
+++ b/lisp/progmodes/ada-mode.el
@@ -1,7 +1,7 @@
1;;; ada-mode.el --- major-mode for editing Ada sources 1;;; ada-mode.el --- major-mode for editing Ada sources
2 2
3;; Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 3;; Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
4;; 2005 Free Software Foundation, Inc. 4;; 2005, 2006 Free Software Foundation, Inc.
5 5
6;; Author: Rolf Ebert <ebert@inf.enst.fr> 6;; Author: Rolf Ebert <ebert@inf.enst.fr>
7;; Markus Heritsch <Markus.Heritsch@studbox.uni-stuttgart.de> 7;; Markus Heritsch <Markus.Heritsch@studbox.uni-stuttgart.de>
diff --git a/lisp/progmodes/ada-prj.el b/lisp/progmodes/ada-prj.el
index 91adf1ed187..1d42a391066 100644
--- a/lisp/progmodes/ada-prj.el
+++ b/lisp/progmodes/ada-prj.el
@@ -1,6 +1,6 @@
1;;; ada-prj.el --- easy editing of project files for the ada-mode 1;;; ada-prj.el --- easy editing of project files for the ada-mode
2 2
3;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Emmanuel Briot <briot@gnat.com> 6;; Author: Emmanuel Briot <briot@gnat.com>
diff --git a/lisp/progmodes/ada-stmt.el b/lisp/progmodes/ada-stmt.el
index 87825b1d624..525b53c2146 100644
--- a/lisp/progmodes/ada-stmt.el
+++ b/lisp/progmodes/ada-stmt.el
@@ -1,7 +1,7 @@
1;;; ada-stmt.el --- an extension to Ada mode for inserting statement templates 1;;; ada-stmt.el --- an extension to Ada mode for inserting statement templates
2 2
3;; Copyright(C) 1987, 1993, 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 3;; Copyright(C) 1987, 1993, 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
4;; 2003, 2004, 2005 Free Software Foundation, Inc. 4;; 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
5 5
6;; This file is part of GNU Emacs. 6;; This file is part of GNU Emacs.
7 7
diff --git a/lisp/progmodes/ada-xref.el b/lisp/progmodes/ada-xref.el
index 241296d8f67..9e3f8e14332 100644
--- a/lisp/progmodes/ada-xref.el
+++ b/lisp/progmodes/ada-xref.el
@@ -1,7 +1,7 @@
1;;; ada-xref.el --- for lookup and completion in Ada mode 1;;; ada-xref.el --- for lookup and completion in Ada mode
2 2
3;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 3;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
4;; 2004, 2005 Free Software Foundation, Inc. 4;; 2004, 2005, 2006 Free Software Foundation, Inc.
5 5
6;; Author: Markus Heritsch <Markus.Heritsch@studbox.uni-stuttgart.de> 6;; Author: Markus Heritsch <Markus.Heritsch@studbox.uni-stuttgart.de>
7;; Rolf Ebert <ebert@inf.enst.fr> 7;; Rolf Ebert <ebert@inf.enst.fr>
diff --git a/lisp/progmodes/antlr-mode.el b/lisp/progmodes/antlr-mode.el
index 229bec56dd5..7ddd9212f6c 100644
--- a/lisp/progmodes/antlr-mode.el
+++ b/lisp/progmodes/antlr-mode.el
@@ -1,6 +1,6 @@
1;;; antlr-mode.el --- major mode for ANTLR grammar files 1;;; antlr-mode.el --- major mode for ANTLR grammar files
2 2
3;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5;; 5;;
6;; Author: Christoph.Wedler@sap.com 6;; Author: Christoph.Wedler@sap.com
diff --git a/lisp/progmodes/asm-mode.el b/lisp/progmodes/asm-mode.el
index 44605b1fa9a..b79237adba7 100644
--- a/lisp/progmodes/asm-mode.el
+++ b/lisp/progmodes/asm-mode.el
@@ -1,6 +1,6 @@
1;;; asm-mode.el --- mode for editing assembler code 1;;; asm-mode.el --- mode for editing assembler code
2 2
3;; Copyright (C) 1991, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1991, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Eric S. Raymond <esr@snark.thyrsus.com> 6;; Author: Eric S. Raymond <esr@snark.thyrsus.com>
diff --git a/lisp/progmodes/autoconf.el b/lisp/progmodes/autoconf.el
index 2949b2da92f..fe021d04cea 100644
--- a/lisp/progmodes/autoconf.el
+++ b/lisp/progmodes/autoconf.el
@@ -1,6 +1,6 @@
1;;; autoconf.el --- mode for editing Autoconf configure.in files 1;;; autoconf.el --- mode for editing Autoconf configure.in files
2 2
3;; Copyright (C) 2000, 2001, 2002 2003, 2004, 2005 3;; Copyright (C) 2000, 2001, 2002 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Dave Love <fx@gnu.org> 6;; Author: Dave Love <fx@gnu.org>
@@ -52,7 +52,7 @@
52 "AC_\\(SUBST\\|DEFINE\\(_UNQUOTED\\)?\\)(\\(\\sw+\\)") 52 "AC_\\(SUBST\\|DEFINE\\(_UNQUOTED\\)?\\)(\\(\\sw+\\)")
53 53
54(defvar autoconf-font-lock-keywords 54(defvar autoconf-font-lock-keywords
55 `(("A[CHMS]_\\sw+" . font-lock-keyword-face) 55 `(("\\_<A[CHMS]_\\sw+" . font-lock-keyword-face)
56 (,autoconf-definition-regexp 56 (,autoconf-definition-regexp
57 3 font-lock-function-name-face) 57 3 font-lock-function-name-face)
58 ;; Are any other M4 keywords really appropriate for configure.in, 58 ;; Are any other M4 keywords really appropriate for configure.in,
diff --git a/lisp/progmodes/cc-align.el b/lisp/progmodes/cc-align.el
index 83b4d8387d4..8420ec99636 100644
--- a/lisp/progmodes/cc-align.el
+++ b/lisp/progmodes/cc-align.el
@@ -1,6 +1,7 @@
1;;; cc-align.el --- custom indentation functions for CC Mode 1;;; cc-align.el --- custom indentation functions for CC Mode
2 2
3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc.
4 5
5;; Authors: 1998- Martin Stjernholm 6;; Authors: 1998- Martin Stjernholm
6;; 1992-1999 Barry A. Warsaw 7;; 1992-1999 Barry A. Warsaw
diff --git a/lisp/progmodes/cc-awk.el b/lisp/progmodes/cc-awk.el
index b16d571d277..9f86638696c 100644
--- a/lisp/progmodes/cc-awk.el
+++ b/lisp/progmodes/cc-awk.el
@@ -1,7 +1,7 @@
1;;; cc-awk.el --- AWK specific code within cc-mode. 1;;; cc-awk.el --- AWK specific code within cc-mode.
2 2
3;; Copyright (C) 1988,94,96,2000, 2001, 2002, 2003, 2004, 2005 Free 3;; Copyright (C) 1988,94,96,2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Alan Mackenzie <acm@muc.de> (originally based on awk-mode.el) 6;; Author: Alan Mackenzie <acm@muc.de> (originally based on awk-mode.el)
7;; Maintainer: FSF 7;; Maintainer: FSF
diff --git a/lisp/progmodes/cc-bytecomp.el b/lisp/progmodes/cc-bytecomp.el
index 6358f230e7c..f001fa60b25 100644
--- a/lisp/progmodes/cc-bytecomp.el
+++ b/lisp/progmodes/cc-bytecomp.el
@@ -1,7 +1,7 @@
1;;; cc-bytecomp.el --- compile time setup for proper compilation 1;;; cc-bytecomp.el --- compile time setup for proper compilation
2 2
3;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, 3;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Martin Stjernholm 6;; Author: Martin Stjernholm
7;; Maintainer: bug-cc-mode@gnu.org 7;; Maintainer: bug-cc-mode@gnu.org
diff --git a/lisp/progmodes/cc-cmds.el b/lisp/progmodes/cc-cmds.el
index e17656e54dd..4c8aa1518b7 100644
--- a/lisp/progmodes/cc-cmds.el
+++ b/lisp/progmodes/cc-cmds.el
@@ -1,7 +1,7 @@
1;;; cc-cmds.el --- user level commands for CC Mode 1;;; cc-cmds.el --- user level commands for CC Mode
2 2
3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, 3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
4;; Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Authors: 1998- Martin Stjernholm 6;; Authors: 1998- Martin Stjernholm
7;; 1992-1999 Barry A. Warsaw 7;; 1992-1999 Barry A. Warsaw
diff --git a/lisp/progmodes/cc-compat.el b/lisp/progmodes/cc-compat.el
index 66bf9a55d79..0cd7973857c 100644
--- a/lisp/progmodes/cc-compat.el
+++ b/lisp/progmodes/cc-compat.el
@@ -1,7 +1,7 @@
1;;; cc-compat.el --- cc-mode compatibility with c-mode.el confusion 1;;; cc-compat.el --- cc-mode compatibility with c-mode.el confusion
2 2
3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, 3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
4;; Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Authors: 1998- Martin Stjernholm 6;; Authors: 1998- Martin Stjernholm
7;; 1994-1999 Barry A. Warsaw 7;; 1994-1999 Barry A. Warsaw
diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el
index 9de0a24f09e..0053cfcf443 100644
--- a/lisp/progmodes/cc-defs.el
+++ b/lisp/progmodes/cc-defs.el
@@ -1,7 +1,7 @@
1;;; cc-defs.el --- compile time definitions for CC Mode 1;;; cc-defs.el --- compile time definitions for CC Mode
2 2
3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, 3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
4;; Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Authors: 1998- Martin Stjernholm 6;; Authors: 1998- Martin Stjernholm
7;; 1992-1999 Barry A. Warsaw 7;; 1992-1999 Barry A. Warsaw
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 7f829bd26d5..548fc74d961 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -1,7 +1,7 @@
1;;; cc-engine.el --- core syntax guessing engine for CC mode 1;;; cc-engine.el --- core syntax guessing engine for CC mode
2 2
3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, 3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
4;; Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Authors: 1998- Martin Stjernholm 6;; Authors: 1998- Martin Stjernholm
7;; 1992-1999 Barry A. Warsaw 7;; 1992-1999 Barry A. Warsaw
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el
index e5dcecf459f..75d631ac399 100644
--- a/lisp/progmodes/cc-fonts.el
+++ b/lisp/progmodes/cc-fonts.el
@@ -1,6 +1,6 @@
1;;; cc-fonts.el --- font lock support for CC Mode 1;;; cc-fonts.el --- font lock support for CC Mode
2 2
3;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
4 4
5;; Authors: 2003- Alan Mackenzie 5;; Authors: 2003- Alan Mackenzie
6;; 2002- Martin Stjernholm 6;; 2002- Martin Stjernholm
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
index 3c1df93e0f9..bea3b4f7e8c 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -1,7 +1,7 @@
1;;; cc-langs.el --- language specific settings for CC Mode 1;;; cc-langs.el --- language specific settings for CC Mode
2 2
3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, 3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
4;; Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Authors: 1998- Martin Stjernholm 6;; Authors: 1998- Martin Stjernholm
7;; 1992-1999 Barry A. Warsaw 7;; 1992-1999 Barry A. Warsaw
@@ -258,9 +258,12 @@ the evaluated constant value at compile time."
258 (c-fn-region-is-active-p)])) 258 (c-fn-region-is-active-p)]))
259 "----" 259 "----"
260 ("Toggle..." 260 ("Toggle..."
261 ["Syntactic indentation" c-toggle-syntactic-indentation t] 261 ["Syntactic indentation" c-toggle-syntactic-indentation
262 ["Auto newline" c-toggle-auto-newline t] 262 :style toggle :selected c-syntactic-indentation]
263 ["Hungry delete" c-toggle-hungry-state t]))) 263 ["Auto newline" c-toggle-auto-newline
264 :style toggle :selected c-auto-newline]
265 ["Hungry delete" c-toggle-hungry-state
266 :style toggle :selected c-hungry-delete-key])))
264 267
265 268
266;;; Syntax tables. 269;;; Syntax tables.
diff --git a/lisp/progmodes/cc-menus.el b/lisp/progmodes/cc-menus.el
index e11f50c581b..418823b71fa 100644
--- a/lisp/progmodes/cc-menus.el
+++ b/lisp/progmodes/cc-menus.el
@@ -1,7 +1,7 @@
1;;; cc-menus.el --- imenu support for CC Mode 1;;; cc-menus.el --- imenu support for CC Mode
2 2
3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, 3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
4;; Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Authors: 1998- Martin Stjernholm 6;; Authors: 1998- Martin Stjernholm
7;; 1992-1999 Barry A. Warsaw 7;; 1992-1999 Barry A. Warsaw
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el
index 247a4021abf..3994fe5cf09 100644
--- a/lisp/progmodes/cc-mode.el
+++ b/lisp/progmodes/cc-mode.el
@@ -1,7 +1,7 @@
1;;; cc-mode.el --- major mode for editing C and similar languages 1;;; cc-mode.el --- major mode for editing C and similar languages
2 2
3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, 3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
4;; Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Authors: 2003- Alan Mackenzie 6;; Authors: 2003- Alan Mackenzie
7;; 1998- Martin Stjernholm 7;; 1998- Martin Stjernholm
diff --git a/lisp/progmodes/cc-styles.el b/lisp/progmodes/cc-styles.el
index 2377b4ce8bd..758720a3fd6 100644
--- a/lisp/progmodes/cc-styles.el
+++ b/lisp/progmodes/cc-styles.el
@@ -1,7 +1,7 @@
1;;; cc-styles.el --- support for styles in CC Mode 1;;; cc-styles.el --- support for styles in CC Mode
2 2
3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, 3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
4;; Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Authors: 1998- Martin Stjernholm 6;; Authors: 1998- Martin Stjernholm
7;; 1992-1999 Barry A. Warsaw 7;; 1992-1999 Barry A. Warsaw
diff --git a/lisp/progmodes/cc-subword.el b/lisp/progmodes/cc-subword.el
index fd4ca891298..6ba76708ebf 100644
--- a/lisp/progmodes/cc-subword.el
+++ b/lisp/progmodes/cc-subword.el
@@ -1,6 +1,6 @@
1;;; cc-subword.el --- Handling capitalized subwords in a nomenclature 1;;; cc-subword.el --- Handling capitalized subwords in a nomenclature
2 2
3;; Copyright (C) 2004, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
4 4
5;; Author: Masatake YAMATO 5;; Author: Masatake YAMATO
6 6
diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el
index 4c5d03c6f4c..9bde0c5dbaf 100644
--- a/lisp/progmodes/cc-vars.el
+++ b/lisp/progmodes/cc-vars.el
@@ -1,7 +1,7 @@
1;;; cc-vars.el --- user customization variables for CC Mode 1;;; cc-vars.el --- user customization variables for CC Mode
2 2
3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software 3;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006
4;; Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Authors: 1998- Martin Stjernholm 6;; Authors: 1998- Martin Stjernholm
7;; 1992-1999 Barry A. Warsaw 7;; 1992-1999 Barry A. Warsaw
diff --git a/lisp/progmodes/cfengine.el b/lisp/progmodes/cfengine.el
index a4b0389ab86..1b62774a72d 100644
--- a/lisp/progmodes/cfengine.el
+++ b/lisp/progmodes/cfengine.el
@@ -1,6 +1,7 @@
1;;; cfengine.el --- mode for editing Cfengine files 1;;; cfengine.el --- mode for editing Cfengine files
2 2
3;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc.
4 5
5;; Author: Dave Love <fx@gnu.org> 6;; Author: Dave Love <fx@gnu.org>
6;; Keywords: languages 7;; Keywords: languages
diff --git a/lisp/progmodes/cmacexp.el b/lisp/progmodes/cmacexp.el
index b3051f37b9d..8531a2f3133 100644
--- a/lisp/progmodes/cmacexp.el
+++ b/lisp/progmodes/cmacexp.el
@@ -1,6 +1,6 @@
1;;; cmacexp.el --- expand C macros in a region 1;;; cmacexp.el --- expand C macros in a region
2 2
3;; Copyright (C) 1992, 1994, 1996, 2000, 2001, 2002, 2003, 2004 3;; Copyright (C) 1992, 1994, 1996, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Francesco Potorti` <pot@gnu.org> 6;; Author: Francesco Potorti` <pot@gnu.org>
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index da2a3ee9d65..b1f02ed2ebf 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -1,7 +1,7 @@
1;;; compile.el --- run compiler as inferior of Emacs, parse error messages 1;;; compile.el --- run compiler as inferior of Emacs, parse error messages
2 2
3;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 3;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 4;; 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
5 5
6;; Authors: Roland McGrath <roland@gnu.org>, 6;; Authors: Roland McGrath <roland@gnu.org>,
7;; Daniel Pfeiffer <occitan@esperanto.org> 7;; Daniel Pfeiffer <occitan@esperanto.org>
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el
index dd1dcad3cc4..36f75b757b5 100644
--- a/lisp/progmodes/cperl-mode.el
+++ b/lisp/progmodes/cperl-mode.el
@@ -1,7 +1,7 @@
1;;; cperl-mode.el --- Perl code editing commands for Emacs 1;;; cperl-mode.el --- Perl code editing commands for Emacs
2 2
3;; Copyright (C) 1985, 1986, 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 3;; Copyright (C) 1985, 1986, 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
4;; 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 4;; 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
5;; Free Software Foundation, Inc. 5;; Free Software Foundation, Inc.
6 6
7;; Author: Ilya Zakharevich and Bob Olson 7;; Author: Ilya Zakharevich and Bob Olson
diff --git a/lisp/progmodes/cpp.el b/lisp/progmodes/cpp.el
index 06a141016e5..62f74b41a70 100644
--- a/lisp/progmodes/cpp.el
+++ b/lisp/progmodes/cpp.el
@@ -1,6 +1,6 @@
1;;; cpp.el --- highlight or hide text according to cpp conditionals 1;;; cpp.el --- highlight or hide text according to cpp conditionals
2 2
3;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation 4;; Free Software Foundation
5 5
6;; Author: Per Abrahamsen <abraham@dina.kvl.dk> 6;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
diff --git a/lisp/progmodes/cwarn.el b/lisp/progmodes/cwarn.el
index 979913f10c0..f0933bba8cd 100644
--- a/lisp/progmodes/cwarn.el
+++ b/lisp/progmodes/cwarn.el
@@ -1,6 +1,6 @@
1;;; cwarn.el --- highlight suspicious C and C++ constructions 1;;; cwarn.el --- highlight suspicious C and C++ constructions
2 2
3;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Anders Lindgren <andersl@andersl.com> 6;; Author: Anders Lindgren <andersl@andersl.com>
diff --git a/lisp/progmodes/dcl-mode.el b/lisp/progmodes/dcl-mode.el
index 16d1d7ba415..c3bc75c0d79 100644
--- a/lisp/progmodes/dcl-mode.el
+++ b/lisp/progmodes/dcl-mode.el
@@ -1,6 +1,6 @@
1;;; dcl-mode.el --- major mode for editing DCL command files 1;;; dcl-mode.el --- major mode for editing DCL command files
2 2
3;; Copyright (c) 1997, 2001, 2002, 2003, 2004, 2005 3;; Copyright (c) 1997, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Odd Gripenstam <gripenstamol@decus.se> 6;; Author: Odd Gripenstam <gripenstamol@decus.se>
diff --git a/lisp/progmodes/delphi.el b/lisp/progmodes/delphi.el
index 4c271113b72..03ab24adf47 100644
--- a/lisp/progmodes/delphi.el
+++ b/lisp/progmodes/delphi.el
@@ -1,6 +1,6 @@
1;;; delphi.el --- major mode for editing Delphi source (Object Pascal) in Emacs 1;;; delphi.el --- major mode for editing Delphi source (Object Pascal) in Emacs
2 2
3;; Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Ray Blaak <blaak@infomatch.com> 6;; Author: Ray Blaak <blaak@infomatch.com>
diff --git a/lisp/progmodes/ebnf-abn.el b/lisp/progmodes/ebnf-abn.el
index a1b3658c0b4..f393f78203b 100644
--- a/lisp/progmodes/ebnf-abn.el
+++ b/lisp/progmodes/ebnf-abn.el
@@ -1,6 +1,7 @@
1;;; ebnf-abn.el --- parser for ABNF (Augmented BNF) 1;;; ebnf-abn.el --- parser for ABNF (Augmented BNF)
2 2
3;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Sofware Foundation, Inc. 3;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Sofware Foundation, Inc.
4 5
5;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> 6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
6;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> 7;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
diff --git a/lisp/progmodes/ebnf-bnf.el b/lisp/progmodes/ebnf-bnf.el
index f0811d0ad80..fd58ec096b3 100644
--- a/lisp/progmodes/ebnf-bnf.el
+++ b/lisp/progmodes/ebnf-bnf.el
@@ -1,6 +1,6 @@
1;;; ebnf-bnf.el --- parser for EBNF 1;;; ebnf-bnf.el --- parser for EBNF
2 2
3;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Sofware Foundation, Inc. 4;; Free Sofware Foundation, Inc.
5 5
6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> 6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
diff --git a/lisp/progmodes/ebnf-dtd.el b/lisp/progmodes/ebnf-dtd.el
index 4a596154c43..a52469966fc 100644
--- a/lisp/progmodes/ebnf-dtd.el
+++ b/lisp/progmodes/ebnf-dtd.el
@@ -1,6 +1,7 @@
1;;; ebnf-dtd.el --- parser for DTD (Data Type Description for XML) 1;;; ebnf-dtd.el --- parser for DTD (Data Type Description for XML)
2 2
3;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Sofware Foundation, Inc. 3;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Sofware Foundation, Inc.
4 5
5;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> 6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
6;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> 7;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
diff --git a/lisp/progmodes/ebnf-ebx.el b/lisp/progmodes/ebnf-ebx.el
index ada523c6c34..7e65611cedf 100644
--- a/lisp/progmodes/ebnf-ebx.el
+++ b/lisp/progmodes/ebnf-ebx.el
@@ -1,6 +1,7 @@
1;;; ebnf-ebx.el --- parser for EBNF used to specify XML (EBNFX) 1;;; ebnf-ebx.el --- parser for EBNF used to specify XML (EBNFX)
2 2
3;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Sofware Foundation, Inc. 3;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Sofware Foundation, Inc.
4 5
5;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> 6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
6;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> 7;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
diff --git a/lisp/progmodes/ebnf-iso.el b/lisp/progmodes/ebnf-iso.el
index 96ae2842863..7596d366a12 100644
--- a/lisp/progmodes/ebnf-iso.el
+++ b/lisp/progmodes/ebnf-iso.el
@@ -1,6 +1,6 @@
1;;; ebnf-iso.el --- parser for ISO EBNF 1;;; ebnf-iso.el --- parser for ISO EBNF
2 2
3;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> 6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
diff --git a/lisp/progmodes/ebnf-otz.el b/lisp/progmodes/ebnf-otz.el
index 4beeaa8ad8f..df18beb690a 100644
--- a/lisp/progmodes/ebnf-otz.el
+++ b/lisp/progmodes/ebnf-otz.el
@@ -1,6 +1,6 @@
1;;; ebnf-otz.el --- syntactic chart OpTimiZer 1;;; ebnf-otz.el --- syntactic chart OpTimiZer
2 2
3;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Sofware Foundation, Inc. 4;; Free Sofware Foundation, Inc.
5 5
6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> 6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
diff --git a/lisp/progmodes/ebnf-yac.el b/lisp/progmodes/ebnf-yac.el
index 49f69f857ac..6e5465f0f01 100644
--- a/lisp/progmodes/ebnf-yac.el
+++ b/lisp/progmodes/ebnf-yac.el
@@ -1,6 +1,6 @@
1;;; ebnf-yac.el --- parser for Yacc/Bison 1;;; ebnf-yac.el --- parser for Yacc/Bison
2 2
3;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Sofware Foundation, Inc. 4;; Free Sofware Foundation, Inc.
5 5
6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> 6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
diff --git a/lisp/progmodes/ebnf2ps.el b/lisp/progmodes/ebnf2ps.el
index 18d88c92699..bce4381c614 100644
--- a/lisp/progmodes/ebnf2ps.el
+++ b/lisp/progmodes/ebnf2ps.el
@@ -1,6 +1,6 @@
1;;; ebnf2ps.el --- translate an EBNF to a syntactic chart on PostScript 1;;; ebnf2ps.el --- translate an EBNF to a syntactic chart on PostScript
2 2
3;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> 6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el
index 47e9a12f235..d9060a318e5 100644
--- a/lisp/progmodes/ebrowse.el
+++ b/lisp/progmodes/ebrowse.el
@@ -1,7 +1,7 @@
1;;; ebrowse.el --- Emacs C++ class browser & tags facility 1;;; ebrowse.el --- Emacs C++ class browser & tags facility
2 2
3;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 3;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
4;; 2002, 2003, 2004, 2005 4;; 2002, 2003, 2004, 2005, 2006
5;; Free Software Foundation Inc. 5;; Free Software Foundation Inc.
6 6
7;; Author: Gerd Moellmann <gerd@gnu.org> 7;; Author: Gerd Moellmann <gerd@gnu.org>
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index d9f4698ecf7..6fe9fec3094 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -1,7 +1,7 @@
1;;; etags.el --- etags facility for Emacs 1;;; etags.el --- etags facility for Emacs
2 2
3;; Copyright (C) 1985, 1986, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1998, 3;; Copyright (C) 1985, 1986, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1998,
4;; 2000, 2001, 2002, 2003, 2004, 2005 4;; 2000, 2001, 2002, 2003, 2004, 2005, 2006
5;; Free Software Foundation, Inc. 5;; Free Software Foundation, Inc.
6 6
7;; Author: Roland McGrath <roland@gnu.org> 7;; Author: Roland McGrath <roland@gnu.org>
diff --git a/lisp/progmodes/executable.el b/lisp/progmodes/executable.el
index 615e9d0ae93..e74208431a3 100644
--- a/lisp/progmodes/executable.el
+++ b/lisp/progmodes/executable.el
@@ -1,6 +1,6 @@
1;;; executable.el --- base functionality for executable interpreter scripts -*- byte-compile-dynamic: t -*- 1;;; executable.el --- base functionality for executable interpreter scripts -*- byte-compile-dynamic: t -*-
2 2
3;; Copyright (C) 1994, 1995, 1996, 2000, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1994, 1995, 1996, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Daniel Pfeiffer <occitan@esperanto.org> 6;; Author: Daniel Pfeiffer <occitan@esperanto.org>
diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el
index 3816fc3fb43..e661552c331 100644
--- a/lisp/progmodes/f90.el
+++ b/lisp/progmodes/f90.el
@@ -1,7 +1,7 @@
1;;; f90.el --- Fortran-90 mode (free format) 1;;; f90.el --- Fortran-90 mode (free format)
2 2
3;; Copyright (C) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005,
4;; Free Software Foundation, Inc. 4;; 2006 Free Software Foundation, Inc.
5 5
6;; Author: Torbj\"orn Einarsson <Torbjorn.Einarsson@era.ericsson.se> 6;; Author: Torbj\"orn Einarsson <Torbjorn.Einarsson@era.ericsson.se>
7;; Maintainer: Glenn Morris <rgm@gnu.org> 7;; Maintainer: Glenn Morris <rgm@gnu.org>
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index 5f58a3c2ec0..755e83646fc 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -4,7 +4,8 @@
4;; Maintainer: FSF 4;; Maintainer: FSF
5;; Keywords: unix, tools 5;; Keywords: unix, tools
6 6
7;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 7;; Copyright (C) 2002, 2003, 2004, 2005, 2006
8;; Free Software Foundation, Inc.
8 9
9;; This file is part of GNU Emacs. 10;; This file is part of GNU Emacs.
10 11
@@ -2968,6 +2969,35 @@ BUFFER nil or omitted means use the current buffer."
2968 (gdb-invalidate-assembler)) 2969 (gdb-invalidate-assembler))
2969 2970
2970 2971
2972;; For debugging Emacs only (assumes that usual stack buffer already exists).
2973(defun gdb-xbacktrace ()
2974 "Generate a full lisp level backtrace with arguments."
2975 (interactive)
2976 (setq my-frames nil)
2977 (with-current-buffer (get-buffer-create "xbacktrace")
2978 (erase-buffer))
2979 (let (frame-number gdb-frame-number)
2980 (with-current-buffer (gdb-get-buffer 'gdb-stack-buffer)
2981 (save-excursion
2982 (goto-char (point-min))
2983 (while (search-forward "in Ffuncall " nil t)
2984 (goto-char (line-beginning-position))
2985 (looking-at "^#\\([0-9]+\\)")
2986 (push (match-string-no-properties 1) my-frames)
2987 (forward-line 1))))
2988 (dolist (frame my-frames)
2989 (gdb-enqueue-input (list (concat "server frame " frame "\n")
2990 'ignore))
2991; (gdb-enqueue-input (list "server ppargs\n" 'gdb-get-arguments))
2992 (gud-basic-call "server ppargs")
2993)
2994 (gdb-enqueue-input (list (concat "server frame " frame-number "\n")
2995 'ignore))))
2996
2997(defun gdb-get-arguments ()
2998 (with-current-buffer "xbacktrace"
2999 (insert-buffer-substring (gdb-get-buffer 'gdb-partial-output-buffer))))
3000
2971;; Code specific to GDB 6.4 3001;; Code specific to GDB 6.4
2972(defconst gdb-source-file-regexp-1 "fullname=\"\\(.*?\\)\"") 3002(defconst gdb-source-file-regexp-1 "fullname=\"\\(.*?\\)\"")
2973 3003
diff --git a/lisp/progmodes/glasses.el b/lisp/progmodes/glasses.el
index d19f636ff93..6009fe7d961 100644
--- a/lisp/progmodes/glasses.el
+++ b/lisp/progmodes/glasses.el
@@ -1,6 +1,6 @@
1;;; glasses.el --- make cantReadThis readable 1;;; glasses.el --- make cantReadThis readable
2 2
3;; Copyright (C) 1999, 2000, 2001, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 1999, 2000, 2001, 2005, 2006 Free Software Foundation, Inc.
4 4
5;; Author: Milan Zamazal <pdm@zamazal.org> 5;; Author: Milan Zamazal <pdm@zamazal.org>
6;; Maintainer: Milan Zamazal <pdm@zamazal.org> 6;; Maintainer: Milan Zamazal <pdm@zamazal.org>
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el
index 48d1c09d138..0e151ce9be2 100644
--- a/lisp/progmodes/grep.el
+++ b/lisp/progmodes/grep.el
@@ -1,7 +1,7 @@
1;;; grep.el --- run Grep as inferior of Emacs, parse match messages 1;;; grep.el --- run Grep as inferior of Emacs, parse match messages
2 2
3;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 3;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 4;; 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
5 5
6;; Author: Roland McGrath <roland@gnu.org> 6;; Author: Roland McGrath <roland@gnu.org>
7;; Maintainer: FSF 7;; Maintainer: FSF
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 7a8745f0e9c..b927c765476 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -5,7 +5,7 @@
5;; Keywords: unix, tools 5;; Keywords: unix, tools
6 6
7;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001, 2002, 2003, 7;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001, 2002, 2003,
8;; 2004, 2005 Free Software Foundation, Inc. 8;; 2004, 2005, 2006 Free Software Foundation, Inc.
9 9
10;; This file is part of GNU Emacs. 10;; This file is part of GNU Emacs.
11 11
diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el
index 1f843dea03c..04e44e2dac1 100644
--- a/lisp/progmodes/hideif.el
+++ b/lisp/progmodes/hideif.el
@@ -1,6 +1,6 @@
1;;; hideif.el --- hides selected code within ifdef 1;;; hideif.el --- hides selected code within ifdef
2 2
3;; Copyright (C) 1988, 1994, 2001, 2002, 2003, 2004 2005 3;; Copyright (C) 1988, 1994, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Daniel LaLiberte <liberte@holonexus.org> 6;; Author: Daniel LaLiberte <liberte@holonexus.org>
diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el
index ddc0e277200..e7ed67ce61c 100644
--- a/lisp/progmodes/hideshow.el
+++ b/lisp/progmodes/hideshow.el
@@ -1,7 +1,7 @@
1;;; hideshow.el --- minor mode cmds to selectively display code/comment blocks 1;;; hideshow.el --- minor mode cmds to selectively display code/comment blocks
2 2
3;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 3;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
4;; 2004, 2005 Free Software Foundation, Inc. 4;; 2004, 2005, 2006 Free Software Foundation, Inc.
5 5
6;; Author: Thien-Thi Nguyen <ttn@gnu.org> 6;; Author: Thien-Thi Nguyen <ttn@gnu.org>
7;; Dan Nicolaescu <dann@ics.uci.edu> 7;; Dan Nicolaescu <dann@ics.uci.edu>
diff --git a/lisp/progmodes/icon.el b/lisp/progmodes/icon.el
index dc2cfd01683..393ba6dfb08 100644
--- a/lisp/progmodes/icon.el
+++ b/lisp/progmodes/icon.el
@@ -1,6 +1,6 @@
1;;; icon.el --- mode for editing Icon code 1;;; icon.el --- mode for editing Icon code
2 2
3;; Copyright (C) 1989, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1989, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Chris Smith <csmith@convex.com> 6;; Author: Chris Smith <csmith@convex.com>
diff --git a/lisp/progmodes/idlw-complete-structtag.el b/lisp/progmodes/idlw-complete-structtag.el
index bc659666a08..cec25fcc25e 100644
--- a/lisp/progmodes/idlw-complete-structtag.el
+++ b/lisp/progmodes/idlw-complete-structtag.el
@@ -1,5 +1,6 @@
1;;; idlw-complete-structtag.el --- Completion of structure tags. 1;;; idlw-complete-structtag.el --- Completion of structure tags.
2;; Copyright (c) 2001, 2002, 2003, 2004, 2005 Free Software Foundation 2;; Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006
3;; Free Software Foundation, Inc.
3 4
4;; Author: Carsten Dominik <dominik@science.uva.nl> 5;; Author: Carsten Dominik <dominik@science.uva.nl>
5;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu> 6;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu>
diff --git a/lisp/progmodes/idlw-help.el b/lisp/progmodes/idlw-help.el
index 0a848128032..17961fa7d9a 100644
--- a/lisp/progmodes/idlw-help.el
+++ b/lisp/progmodes/idlw-help.el
@@ -1,7 +1,7 @@
1;;; idlw-help.el --- HTML Help code for IDLWAVE 1;;; idlw-help.el --- HTML Help code for IDLWAVE
2;; Copyright (c) 2000 Carsten Dominik 2;; Copyright (c) 2000 Carsten Dominik
3;; Copyright (c) 2001, 2002 J.D. Smith 3;; Copyright (c) 2001, 2002 J.D. Smith
4;; Copyright (c) 2003, 2004, 2005, Free Software Foundation 4;; Copyright (c) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
5;; 5;;
6;; Authors: J.D. Smith <jdsmith@as.arizona.edu> 6;; Authors: J.D. Smith <jdsmith@as.arizona.edu>
7;; Carsten Dominik <dominik@science.uva.nl> 7;; Carsten Dominik <dominik@science.uva.nl>
diff --git a/lisp/progmodes/idlw-rinfo.el b/lisp/progmodes/idlw-rinfo.el
index 367de774bcf..dfb08b289a5 100644
--- a/lisp/progmodes/idlw-rinfo.el
+++ b/lisp/progmodes/idlw-rinfo.el
@@ -1,7 +1,7 @@
1;;; idlw-rinfo.el --- Routine Information for IDLWAVE 1;;; idlw-rinfo.el --- Routine Information for IDLWAVE
2;; Copyright (c) 1999 Carsten Dominik 2;; Copyright (c) 1999 Carsten Dominik
3;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005 3;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation 4;; Free Software Foundation, Inc.
5 5
6;; Author: J.D. Smith <jdsmith@as.arizona.edu> 6;; Author: J.D. Smith <jdsmith@as.arizona.edu>
7;; Version: 5.7_22 7;; Version: 5.7_22
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el
index 27360a54969..ff1bb7b689f 100644
--- a/lisp/progmodes/idlw-shell.el
+++ b/lisp/progmodes/idlw-shell.el
@@ -1,6 +1,6 @@
1;; idlw-shell.el --- run IDL as an inferior process of Emacs. 1;; idlw-shell.el --- run IDL as an inferior process of Emacs.
2;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005 2;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
3;; Free Software Foundation 3;; Free Software Foundation, Inc.
4 4
5;; Authors: J.D. Smith <jdsmith@as.arizona.edu> 5;; Authors: J.D. Smith <jdsmith@as.arizona.edu>
6;; Carsten Dominik <dominik@astro.uva.nl> 6;; Carsten Dominik <dominik@astro.uva.nl>
diff --git a/lisp/progmodes/idlw-toolbar.el b/lisp/progmodes/idlw-toolbar.el
index 08dd08335bb..af94d02ec91 100644
--- a/lisp/progmodes/idlw-toolbar.el
+++ b/lisp/progmodes/idlw-toolbar.el
@@ -1,6 +1,6 @@
1;;; idlw-toolbar.el --- a debugging toolbar for IDLWAVE 1;;; idlw-toolbar.el --- a debugging toolbar for IDLWAVE
2;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005 2;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
3;; Free Software Foundation 3;; Free Software Foundation, Inc.
4 4
5;; Author: Carsten Dominik <dominik@astro.uva.nl> 5;; Author: Carsten Dominik <dominik@astro.uva.nl>
6;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu> 6;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu>
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el
index 3ee01d07b0a..03d181da250 100644
--- a/lisp/progmodes/idlwave.el
+++ b/lisp/progmodes/idlwave.el
@@ -1,6 +1,6 @@
1;; idlwave.el --- IDL editing mode for GNU Emacs 1;; idlwave.el --- IDL editing mode for GNU Emacs
2;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005 2;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
3;; Free Software Foundation 3;; Free Software Foundation, Inc.
4 4
5;; Authors: J.D. Smith <jdsmith@as.arizona.edu> 5;; Authors: J.D. Smith <jdsmith@as.arizona.edu>
6;; Carsten Dominik <dominik@science.uva.nl> 6;; Carsten Dominik <dominik@science.uva.nl>
diff --git a/lisp/progmodes/inf-lisp.el b/lisp/progmodes/inf-lisp.el
index 64845e38aea..092c7736c27 100644
--- a/lisp/progmodes/inf-lisp.el
+++ b/lisp/progmodes/inf-lisp.el
@@ -1,6 +1,6 @@
1;;; inf-lisp.el --- an inferior-lisp mode 1;;; inf-lisp.el --- an inferior-lisp mode
2 2
3;; Copyright (C) 1988, 1993, 1994, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1988, 1993, 1994, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Olin Shivers <shivers@cs.cmu.edu> 6;; Author: Olin Shivers <shivers@cs.cmu.edu>
diff --git a/lisp/progmodes/ld-script.el b/lisp/progmodes/ld-script.el
index bdb386dc5e9..ec12468e5d9 100644
--- a/lisp/progmodes/ld-script.el
+++ b/lisp/progmodes/ld-script.el
@@ -1,6 +1,7 @@
1;;; ld-script.el --- GNU linker script editing mode for Emacs 1;;; ld-script.el --- GNU linker script editing mode for Emacs
2 2
3;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. 3;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc.
4 5
5;; Author: Masatake YAMATO<jet@gyve.org> 6;; Author: Masatake YAMATO<jet@gyve.org>
6;; Keywords: languages, faces 7;; Keywords: languages, faces
diff --git a/lisp/progmodes/m4-mode.el b/lisp/progmodes/m4-mode.el
index 84174e2ca5d..af719a2854b 100644
--- a/lisp/progmodes/m4-mode.el
+++ b/lisp/progmodes/m4-mode.el
@@ -1,6 +1,6 @@
1;;; m4-mode.el --- m4 code editing commands for Emacs 1;;; m4-mode.el --- m4 code editing commands for Emacs
2 2
3;; Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Andrew Csillag <drew_csillag@geocities.com> 6;; Author: Andrew Csillag <drew_csillag@geocities.com>
diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el
index 42a021ec692..3bbfeaac683 100644
--- a/lisp/progmodes/make-mode.el
+++ b/lisp/progmodes/make-mode.el
@@ -1,6 +1,6 @@
1;;; make-mode.el --- makefile editing commands for Emacs 1;;; make-mode.el --- makefile editing commands for Emacs
2 2
3;; Copyright (C) 1992, 1994, 1999, 2000, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1992, 1994, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Thomas Neumann <tom@smart.bo.open.de> 6;; Author: Thomas Neumann <tom@smart.bo.open.de>
diff --git a/lisp/progmodes/mantemp.el b/lisp/progmodes/mantemp.el
index 71791ef965b..d883254fdb7 100644
--- a/lisp/progmodes/mantemp.el
+++ b/lisp/progmodes/mantemp.el
@@ -1,6 +1,6 @@
1;;; mantemp.el --- create manual template instantiations from g++ 2.7.2 output 1;;; mantemp.el --- create manual template instantiations from g++ 2.7.2 output
2 2
3;; Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Tom Houlder <thoulder@icor.fr> 6;; Author: Tom Houlder <thoulder@icor.fr>
diff --git a/lisp/progmodes/meta-mode.el b/lisp/progmodes/meta-mode.el
index d113f94280f..3c4fdc2330e 100644
--- a/lisp/progmodes/meta-mode.el
+++ b/lisp/progmodes/meta-mode.el
@@ -1,6 +1,6 @@
1;;; meta-mode.el --- major mode for editing Metafont or MetaPost sources 1;;; meta-mode.el --- major mode for editing Metafont or MetaPost sources
2 2
3;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Ulrik Vieth <vieth@thphy.uni-duesseldorf.de> 6;; Author: Ulrik Vieth <vieth@thphy.uni-duesseldorf.de>
diff --git a/lisp/progmodes/mixal-mode.el b/lisp/progmodes/mixal-mode.el
index 741ae8097a0..8b7084675d4 100644
--- a/lisp/progmodes/mixal-mode.el
+++ b/lisp/progmodes/mixal-mode.el
@@ -1,6 +1,6 @@
1;;; mixal-mode.el --- Major mode for the mix asm language. 1;;; mixal-mode.el --- Major mode for the mix asm language.
2 2
3;; Copyright (C) 2003, 2004, 2005 Free Software Foundation 3;; Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation
4 4
5;; This program is free software; you can redistribute it and/or 5;; This program is free software; you can redistribute it and/or
6;; modify it under the terms of the GNU General Public License as 6;; modify it under the terms of the GNU General Public License as
diff --git a/lisp/progmodes/octave-hlp.el b/lisp/progmodes/octave-hlp.el
index f9654ef71cb..18ea9c1f699 100644
--- a/lisp/progmodes/octave-hlp.el
+++ b/lisp/progmodes/octave-hlp.el
@@ -1,6 +1,6 @@
1;;; octave-hlp.el --- getting help on Octave symbols using info 1;;; octave-hlp.el --- getting help on Octave symbols using info
2 2
3;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> 6;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>
diff --git a/lisp/progmodes/octave-inf.el b/lisp/progmodes/octave-inf.el
index 67b5b108fa5..b6e6e4fc456 100644
--- a/lisp/progmodes/octave-inf.el
+++ b/lisp/progmodes/octave-inf.el
@@ -1,6 +1,6 @@
1;;; octave-inf.el --- running Octave as an inferior Emacs process 1;;; octave-inf.el --- running Octave as an inferior Emacs process
2 2
3;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> 6;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>
diff --git a/lisp/progmodes/octave-mod.el b/lisp/progmodes/octave-mod.el
index 56dac972472..5f52e6f4d3c 100644
--- a/lisp/progmodes/octave-mod.el
+++ b/lisp/progmodes/octave-mod.el
@@ -1,6 +1,6 @@
1;;; octave-mod.el --- editing Octave source files under Emacs 1;;; octave-mod.el --- editing Octave source files under Emacs
2 2
3;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> 6;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>
diff --git a/lisp/progmodes/pascal.el b/lisp/progmodes/pascal.el
index d462557f291..02d5c509c62 100644
--- a/lisp/progmodes/pascal.el
+++ b/lisp/progmodes/pascal.el
@@ -1,7 +1,7 @@
1;;; pascal.el --- major mode for editing pascal source in Emacs 1;;; pascal.el --- major mode for editing pascal source in Emacs
2 2
3;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 3;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
4;; 2003, 2004, 2005 Free Software Foundation, Inc. 4;; 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
5 5
6;; Author: Espen Skoglund <esk@gnu.org> 6;; Author: Espen Skoglund <esk@gnu.org>
7;; Keywords: languages 7;; Keywords: languages
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el
index 910322804a2..d448aec47b8 100644
--- a/lisp/progmodes/perl-mode.el
+++ b/lisp/progmodes/perl-mode.el
@@ -1,6 +1,6 @@
1;;; perl-mode.el --- Perl code editing commands for GNU Emacs 1;;; perl-mode.el --- Perl code editing commands for GNU Emacs
2 2
3;; Copyright (C) 1990, 1994, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1990, 1994, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: William F. Mann 6;; Author: William F. Mann
diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el
index 9191d5f95ee..14b47475eb1 100644
--- a/lisp/progmodes/prolog.el
+++ b/lisp/progmodes/prolog.el
@@ -1,6 +1,6 @@
1;;; prolog.el --- major mode for editing and running Prolog under Emacs 1;;; prolog.el --- major mode for editing and running Prolog under Emacs
2 2
3;; Copyright (C) 1986, 1987, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1986, 1987, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Masanobu UMEDA <umerin@mse.kyutech.ac.jp> 6;; Author: Masanobu UMEDA <umerin@mse.kyutech.ac.jp>
diff --git a/lisp/progmodes/ps-mode.el b/lisp/progmodes/ps-mode.el
index 299093b29bc..61b075b3bce 100644
--- a/lisp/progmodes/ps-mode.el
+++ b/lisp/progmodes/ps-mode.el
@@ -1,6 +1,6 @@
1;;; ps-mode.el --- PostScript mode for GNU Emacs 1;;; ps-mode.el --- PostScript mode for GNU Emacs
2 2
3;; Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Peter Kleiweg <p.c.j.kleiweg@rug.nl> 6;; Author: Peter Kleiweg <p.c.j.kleiweg@rug.nl>
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 0ed58fd558e..f110828d602 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -1,6 +1,6 @@
1;;; python.el --- silly walks for Python 1;;; python.el --- silly walks for Python
2 2
3;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
4 4
5;; Author: Dave Love <fx@gnu.org> 5;; Author: Dave Love <fx@gnu.org>
6;; Maintainer: FSF 6;; Maintainer: FSF
diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el
index 26d6e05fc2c..ce420015326 100644
--- a/lisp/progmodes/scheme.el
+++ b/lisp/progmodes/scheme.el
@@ -1,7 +1,7 @@
1;;; scheme.el --- Scheme (and DSSSL) editing mode 1;;; scheme.el --- Scheme (and DSSSL) editing mode
2 2
3;; Copyright (C) 1986, 1987, 1988, 1997, 1998, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1986, 1987, 1988, 1997, 1998, 2001, 2002, 2003, 2004, 2005,
4;; Free Software Foundation, Inc. 4;; 2006 Free Software Foundation, Inc.
5 5
6;; Author: Bill Rozas <jinx@martigny.ai.mit.edu> 6;; Author: Bill Rozas <jinx@martigny.ai.mit.edu>
7;; Adapted-by: Dave Love <d.love@dl.ac.uk> 7;; Adapted-by: Dave Love <d.love@dl.ac.uk>
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index 514a5dc57a8..a70941d9d3e 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -1,7 +1,7 @@
1;;; sh-script.el --- shell-script editing commands for Emacs 1;;; sh-script.el --- shell-script editing commands for Emacs
2 2
3;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1999, 2001, 2003, 2004, 2005 3;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1999, 2001, 2003, 2004, 2005,
4;; Free Software Foundation, Inc. 4;; 2006 Free Software Foundation, Inc.
5 5
6;; Author: Daniel Pfeiffer <occitan@esperanto.org> 6;; Author: Daniel Pfeiffer <occitan@esperanto.org>
7;; Version: 2.0f 7;; Version: 2.0f
diff --git a/lisp/progmodes/simula.el b/lisp/progmodes/simula.el
index eba9a03b2ae..891549ac2aa 100644
--- a/lisp/progmodes/simula.el
+++ b/lisp/progmodes/simula.el
@@ -1,6 +1,6 @@
1;;; simula.el --- SIMULA 87 code editing commands for Emacs 1;;; simula.el --- SIMULA 87 code editing commands for Emacs
2 2
3;; Copyright (C) 1992, 1994, 1996 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1992, 1994, 1996 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Hans Henrik Eriksen <hhe@ifi.uio.no> 6;; Author: Hans Henrik Eriksen <hhe@ifi.uio.no>
diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el
index 6d73abb1432..ff5493de364 100644
--- a/lisp/progmodes/sql.el
+++ b/lisp/progmodes/sql.el
@@ -1,6 +1,6 @@
1;;; sql.el --- specialized comint.el for SQL interpreters 1;;; sql.el --- specialized comint.el for SQL interpreters
2 2
3;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Alex Schroeder <alex@gnu.org> 6;; Author: Alex Schroeder <alex@gnu.org>
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
index ed64de4c89c..d81a5fcf47b 100644
--- a/lisp/progmodes/vhdl-mode.el
+++ b/lisp/progmodes/vhdl-mode.el
@@ -1,6 +1,6 @@
1;;; vhdl-mode.el --- major mode for editing VHDL code 1;;; vhdl-mode.el --- major mode for editing VHDL code
2 2
3;; Copyright (C) 1992-2003, 2004, 2005 Free Software Foundation, Inc. 3;; Copyright (C) 1992-2003, 2004, 2005, 2006 Free Software Foundation, Inc.
4 4
5;; Authors: Reto Zimmermann <reto@gnu.org> 5;; Authors: Reto Zimmermann <reto@gnu.org>
6;; Rodney J. Whitby <software.vhdl-mode@rwhitby.net> 6;; Rodney J. Whitby <software.vhdl-mode@rwhitby.net>
diff --git a/lisp/progmodes/which-func.el b/lisp/progmodes/which-func.el
index 66d91dce3da..8ca7eb188ec 100644
--- a/lisp/progmodes/which-func.el
+++ b/lisp/progmodes/which-func.el
@@ -1,6 +1,6 @@
1;;; which-func.el --- print current function in mode line 1;;; which-func.el --- print current function in mode line
2 2
3;; Copyright (C) 1994, 1997, 1998, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1994, 1997, 1998, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Alex Rezinsky <alexr@msil.sps.mot.com> 6;; Author: Alex Rezinsky <alexr@msil.sps.mot.com>
diff --git a/lisp/progmodes/xscheme.el b/lisp/progmodes/xscheme.el
index d568bca5b75..4f1cd37a9f7 100644
--- a/lisp/progmodes/xscheme.el
+++ b/lisp/progmodes/xscheme.el
@@ -1,6 +1,6 @@
1;;; xscheme.el --- run MIT Scheme under Emacs 1;;; xscheme.el --- run MIT Scheme under Emacs
2 2
3;; Copyright (C) 1986, 1987, 1989, 1990, 2001, 2002, 2003, 2004, 2005 3;; Copyright (C) 1986, 1987, 1989, 1990, 2001, 2002, 2003, 2004, 2005, 2006
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Maintainer: FSF 6;; Maintainer: FSF
diff --git a/lisp/subr.el b/lisp/subr.el
index 2c7b3ab9af0..04b5a69b839 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -561,7 +561,7 @@ In other words, OLDDEF is replaced with NEWDEF where ever it appears.
561Alternatively, if optional fourth argument OLDMAP is specified, we redefine 561Alternatively, if optional fourth argument OLDMAP is specified, we redefine
562in KEYMAP as NEWDEF those keys which are defined as OLDDEF in OLDMAP. 562in KEYMAP as NEWDEF those keys which are defined as OLDDEF in OLDMAP.
563 563
564For most uses, it is simpler and safer to use command remappping like this: 564For most uses, it is simpler and safer to use command remapping like this:
565 \(define-key KEYMAP [remap OLDDEF] NEWDEF)" 565 \(define-key KEYMAP [remap OLDDEF] NEWDEF)"
566 ;; Don't document PREFIX in the doc string because we don't want to 566 ;; Don't document PREFIX in the doc string because we don't want to
567 ;; advertise it. It's meant for recursive calls only. Here's its 567 ;; advertise it. It's meant for recursive calls only. Here's its
@@ -607,8 +607,7 @@ For most uses, it is simpler and safer to use command remappping like this:
607 (nconc (nreverse skipped) newdef))) 607 (nconc (nreverse skipped) newdef)))
608 ;; Look past a symbol that names a keymap. 608 ;; Look past a symbol that names a keymap.
609 (setq inner-def 609 (setq inner-def
610 (and defn 610 (or (indirect-function defn t) defn))
611 (condition-case nil (indirect-function defn) (error defn))))
612 ;; For nested keymaps, we use `inner-def' rather than `defn' so as to 611 ;; For nested keymaps, we use `inner-def' rather than `defn' so as to
613 ;; avoid autoloading a keymap. This is mostly done to preserve the 612 ;; avoid autoloading a keymap. This is mostly done to preserve the
614 ;; original non-autoloading behavior of pre-map-keymap times. 613 ;; original non-autoloading behavior of pre-map-keymap times.
diff --git a/lisp/term/mac-win.el b/lisp/term/mac-win.el
index 1917af59942..b08284731a4 100644
--- a/lisp/term/mac-win.el
+++ b/lisp/term/mac-win.el
@@ -1817,7 +1817,7 @@ It returns a name of the created fontset."
1817;; more Latin characters) are displayed by a mac-roman font. 1817;; more Latin characters) are displayed by a mac-roman font.
1818(create-fontset-from-mac-roman-font 1818(create-fontset-from-mac-roman-font
1819 "-*-Monaco-*-*-*-*-12-*-*-*-*-*-mac-roman" nil 1819 "-*-Monaco-*-*-*-*-12-*-*-*-*-*-mac-roman" nil
1820 "-apple-Monaco-normal-r-*-*-12-*-*-*-*-*-fontset-mac") 1820 "-apple-Monaco-normal-r-*-*-12-*-*-*-*-*-fontset-standard")
1821 1821
1822;; Create fontset specified in X resources "Fontset-N" (N is 0, 1, ...). 1822;; Create fontset specified in X resources "Fontset-N" (N is 0, 1, ...).
1823(create-fontset-from-x-resource) 1823(create-fontset-from-x-resource)
diff --git a/lisp/tumme.el b/lisp/tumme.el
index 005258790c2..0436a0cb55e 100644
--- a/lisp/tumme.el
+++ b/lisp/tumme.el
@@ -524,10 +524,16 @@
524;; files. 524;; files.
525;; 525;;
526;; * From thumbs.el: Add an option for clean-up/max-size functionality 526;; * From thumbs.el: Add an option for clean-up/max-size functionality
527;; for thumbnail directory. 527;; for thumbnail directory.
528;; 528;;
529;; * From thumbs.el: Add setroot function. 529;; * From thumbs.el: Add setroot function.
530;; 530;;
531;; * From thumbs.el: Add image resizing, if useful (tumme's automatic
532;; "image fit" might be enough)
533;;
534;; * From thumbs.el: Add the "modify" commands (emboss, negate,
535;; monochrome etc).
536;;
531;; * Asynchronous creation of thumbnails. 537;; * Asynchronous creation of thumbnails.
532;; 538;;
533;; * Add `tumme-display-thumbs-ring' and functions to cycle that. Find 539;; * Add `tumme-display-thumbs-ring' and functions to cycle that. Find
@@ -841,7 +847,7 @@ Used by `tumme-copy-with-exif-file-name'."
841 847
842(defcustom tumme-show-all-from-dir-max-files 50 848(defcustom tumme-show-all-from-dir-max-files 50
843 "*Maximum number of files to show using`tumme-show-all-from-dir'. 849 "*Maximum number of files to show using`tumme-show-all-from-dir'.
844 before warning the user." 850before warning the user."
845 :type 'integer 851 :type 'integer
846 :group 'tumme) 852 :group 'tumme)
847 853
@@ -1019,8 +1025,8 @@ Convenience command that:
1019 - Set `truncate-lines' to t 1025 - Set `truncate-lines' to t
1020 1026
1021After the command has finished, you would typically mark some 1027After the command has finished, you would typically mark some
1022image files in dired and call `tumme-display-thumbs' (by default 1028image files in dired and type
1023bound to C-t d). 1029\\[tumme-display-thumbs] (`tumme-display-thumbs').
1024 1030
1025If called with prefix argument ARG, skip splitting of windows. 1031If called with prefix argument ARG, skip splitting of windows.
1026 1032
@@ -1113,7 +1119,7 @@ displayed."
1113 (and (> (length files) tumme-show-all-from-dir-max-files) 1119 (and (> (length files) tumme-show-all-from-dir-max-files)
1114 (y-or-n-p 1120 (y-or-n-p
1115 (format 1121 (format
1116 "Directory contains more than %d image files. Proceed? " 1122 "Directory contains more than %d image files. Proceed? "
1117 tumme-show-all-from-dir-max-files)))) 1123 tumme-show-all-from-dir-max-files))))
1118 (progn 1124 (progn
1119 (tumme-display-thumbs) 1125 (tumme-display-thumbs)
@@ -1826,7 +1832,7 @@ Note that n, p and <down> and <up> will be hijacked and bound to
1826(defun tumme-create-thumbs (&optional arg) 1832(defun tumme-create-thumbs (&optional arg)
1827 "Create thumbnail images for all marked files in dired. 1833 "Create thumbnail images for all marked files in dired.
1828With prefix argument ARG, create thumbnails even if they already exist 1834With prefix argument ARG, create thumbnails even if they already exist
1829\(i.e. use this to refresh your thumbnails)." 1835\(i.e. use this to refresh your thumbnails)."
1830 (interactive "P") 1836 (interactive "P")
1831 (let (curr-file thumb-name files count) 1837 (let (curr-file thumb-name files count)
1832 (setq files (dired-get-marked-files)) 1838 (setq files (dired-get-marked-files))
@@ -2242,21 +2248,17 @@ default value at the prompt."
2242 2248
2243(defun tumme-copy-with-exif-file-name () 2249(defun tumme-copy-with-exif-file-name ()
2244 "Copy file with unique name to main image directory. 2250 "Copy file with unique name to main image directory.
2245Copy current or all marked files in dired to a new file in your main 2251Copy current or all marked files in dired to a new file in your
2246image directory, using a file name generated by 2252main image directory, using a file name generated by
2247`tumme-get-exif-file-name'. This might or might not be useful for 2253`tumme-get-exif-file-name'. A typical usage for this if when
2248other people, but I use it each time I fetch images from my digital 2254copying images from a digital camera into the image directory.
2249camera, for copying the images into my main image directory.
2250
2251Typically I open up the folder where I store my incoming digital
2252images, with file names like dscn0319.jpg, dscn0320.jpg etc., mark the
2253files I want to copy into my main image directory, and execute this
2254function. The result is a couple of new files in
2255`tumme-main-image-directory' called 2005_05_08_12_52_00_dscn0319.jpg,
22562005_05_08_14_27_45_dscn0320.jpg etc.
2257 2255
2258When the images are safely in my main image directory I start to 2256 Typically, you would open up the folder with the incoming
2259browse and tag them using rest of the functionality in `tumme'." 2257digital images, mark the files to be copied, and execute this
2258function. The result is a couple of new files in
2259`tumme-main-image-directory' called
22602005_05_08_12_52_00_dscn0319.jpg,
22612005_05_08_14_27_45_dscn0320.jpg etc."
2260 (interactive) 2262 (interactive)
2261 (let (new-name 2263 (let (new-name
2262 (files (dired-get-marked-files))) 2264 (files (dired-get-marked-files)))
@@ -2599,7 +2601,7 @@ when using per-directory thumbnail file storage"))
2599 ;; Make sure gallery root exist 2601 ;; Make sure gallery root exist
2600 (if (file-exists-p tumme-gallery-dir) 2602 (if (file-exists-p tumme-gallery-dir)
2601 (if (not (file-directory-p tumme-gallery-dir)) 2603 (if (not (file-directory-p tumme-gallery-dir))
2602 (error "tumme-gallery-dir is not a directory")) 2604 (error "Variable tumme-gallery-dir is not a directory"))
2603 (make-directory tumme-gallery-dir)) 2605 (make-directory tumme-gallery-dir))
2604 ;; Open index file 2606 ;; Open index file
2605 (setq index-buf (find-file 2607 (setq index-buf (find-file
diff --git a/lisp/vc-svn.el b/lisp/vc-svn.el
index 82942f78358..6d27c5c6a7e 100644
--- a/lisp/vc-svn.el
+++ b/lisp/vc-svn.el
@@ -370,7 +370,11 @@ The changes are between FIRST-VERSION and SECOND-VERSION."
370 (vc-svn-command 370 (vc-svn-command
371 buffer 371 buffer
372 (if (and (vc-stay-local-p file) (fboundp 'start-process)) 'async 0) 372 (if (and (vc-stay-local-p file) (fboundp 'start-process)) 'async 0)
373 file "log"))) 373 file "log"
374 ;; By default Subversion only shows the log upto the working version,
375 ;; whereas we also want the log of the subsequent commits. At least
376 ;; that's what the vc-cvs.el code does.
377 "-rHEAD:0")))
374 378
375(defun vc-svn-diff (file &optional oldvers newvers buffer) 379(defun vc-svn-diff (file &optional oldvers newvers buffer)
376 "Get a difference report using SVN between two versions of FILE." 380 "Get a difference report using SVN between two versions of FILE."
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index c1cc71f0d8b..b396e8b3ee7 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,12 @@
12006-02-10 Kim F. Storm <storm@cua.dk>
2
3 * eval.texi (Function Indirection): Add NOERROR to indirect-function.
4
52006-02-08 Juanma Barranquero <lekktu@gmail.com>
6
7 * modes.texi (%-Constructs): Remove obsolete info about
8 `global-mode-string'.
9
12006-02-07 Richard M. Stallman <rms@gnu.org> 102006-02-07 Richard M. Stallman <rms@gnu.org>
2 11
3 * commands.texi (Prefix Command Arguments): Minor cleanup. 12 * commands.texi (Prefix Command Arguments): Minor cleanup.
diff --git a/lispref/eval.texi b/lispref/eval.texi
index d898e08850b..803f3d4a70d 100644
--- a/lispref/eval.texi
+++ b/lispref/eval.texi
@@ -314,16 +314,20 @@ symbol function indirection when calling @code{erste}.
314perform symbol function indirection explicitly. 314perform symbol function indirection explicitly.
315 315
316@c Emacs 19 feature 316@c Emacs 19 feature
317@defun indirect-function function 317@defun indirect-function function &optional noerror
318@anchor{Definition of indirect-function} 318@anchor{Definition of indirect-function}
319This function returns the meaning of @var{function} as a function. If 319This function returns the meaning of @var{function} as a function. If
320@var{function} is a symbol, then it finds @var{function}'s function 320@var{function} is a symbol, then it finds @var{function}'s function
321definition and starts over with that value. If @var{function} is not a 321definition and starts over with that value. If @var{function} is not a
322symbol, then it returns @var{function} itself. 322symbol, then it returns @var{function} itself.
323 323
324This function signals a @code{void-function} error if the final 324This function signals a @code{void-function} error if the final symbol
325symbol is unbound and a @code{cyclic-function-indirection} error if 325is unbound and optional argument @var{noerror} is @code{nil} or
326there is a loop in the chain of symbols. 326omitted. Otherwise, if @var{noerror} is non-@code{nil}, it returns
327@code{nil} if the final symbol is unbound.
328
329It signals a @code{cyclic-function-indirection} error if there is a
330loop in the chain of symbols.
327 331
328Here is how you could define @code{indirect-function} in Lisp: 332Here is how you could define @code{indirect-function} in Lisp:
329 333
diff --git a/lispref/modes.texi b/lispref/modes.texi
index 0c7d249fb87..b9eb33dcb88 100644
--- a/lispref/modes.texi
+++ b/lispref/modes.texi
@@ -2012,8 +2012,7 @@ obsolete, since you can get the same results with the variables
2012The value of @code{mode-name}. 2012The value of @code{mode-name}.
2013 2013
2014@item %M 2014@item %M
2015The value of @code{global-mode-string}. Currently, only 2015The value of @code{global-mode-string}.
2016@code{display-time} modifies the value of @code{global-mode-string}.
2017@end table 2016@end table
2018 2017
2019@node Properties in Mode 2018@node Properties in Mode
diff --git a/mac/ChangeLog b/mac/ChangeLog
index eb58386a167..5da9f7aca76 100644
--- a/mac/ChangeLog
+++ b/mac/ChangeLog
@@ -1,3 +1,8 @@
12006-02-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * makefile.MPW (shortlisp, SOME_MACHINE_LISP): Sync with
4 src/Makefile.in.
5
12005-12-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 62005-12-19 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2 7
3 * makefile.MPW (macselect.c.x): Depend on keymap.h. 8 * makefile.MPW (macselect.c.x): Depend on keymap.h.
diff --git a/mac/makefile.MPW b/mac/makefile.MPW
index 35818f5e91b..4d0986ea60f 100644
--- a/mac/makefile.MPW
+++ b/mac/makefile.MPW
@@ -1024,6 +1024,7 @@ shortlisp = ¶
1024 {Lisp}help.elc ¶ 1024 {Lisp}help.elc ¶
1025 {Lisp}indent.elc ¶ 1025 {Lisp}indent.elc ¶
1026 {Lisp}isearch.elc ¶ 1026 {Lisp}isearch.elc ¶
1027 {Lisp}rfn-eshadow.elc ¶
1027 {Lisp}loadup.el ¶ 1028 {Lisp}loadup.el ¶
1028 {Lisp}loaddefs.el ¶ 1029 {Lisp}loaddefs.el ¶
1029 {Lisp}bindings.elc ¶ 1030 {Lisp}bindings.elc ¶
@@ -1098,9 +1099,13 @@ SOME_MACHINE_LISP = {Lisp}mouse.elc ¶
1098 {Lisp}ls-lisp.elc {Lisp}dos-fns.elc ¶ 1099 {Lisp}ls-lisp.elc {Lisp}dos-fns.elc ¶
1099 {Lisp}w32-fns.elc {Lisp}dos-w32.elc ¶ 1100 {Lisp}w32-fns.elc {Lisp}dos-w32.elc ¶
1100 {Lisp}disp-table.elc {Lisp}dos-vars.elc ¶ 1101 {Lisp}disp-table.elc {Lisp}dos-vars.elc ¶
1101 {Lisp}tooltip.elc ¶ 1102 {Lisp}tooltip.elc {Lisp}image.elc ¶
1103 {Lisp}dnd.elc {Lisp}mwheel.elc ¶
1104 {Lisp}tool-bar.elc ¶
1105 {Lisp}x-dnd.elc ¶
1102 {Lisp}international:ccl.elc ¶ 1106 {Lisp}international:ccl.elc ¶
1103 {Lisp}international:codepage.elc 1107 {Lisp}international:codepage.elc ¶
1108 {Lisp}international:fontset.elc
1104 1109
1105Doc Ä {DocTarget}DOC 1110Doc Ä {DocTarget}DOC
1106 1111
diff --git a/man/ChangeLog b/man/ChangeLog
index edd9592722c..e48374ce6d4 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,25 @@
12006-02-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * macos.texi (Mac International): Rename "fontset-mac" to
4 "fontset-standard".
5
62006-02-09 Reiner Steib <Reiner.Steib@gmx.de>
7
8 * gnus.texi (Gnus Versions): Add history beyond start of Oort.
9
102006-02-09 Mathias Dahl <mathias.dah@gmail.com>
11
12 * dired.texi (Tumme): Basic documentation for Tumme added.
13
142006-02-08 Romain Francoise <romain@orebokech.com>
15
16 * faq.texi (Top): Remove paragraph about the FAQ being a
17 transitional document, etc.
18 (Searching for/replacing newlines): New node.
19 (Yanking text in isearch): New node.
20 (Inserting text at the beginning of each line): Rename and make
21 more general, mention `M-;' in Message mode.
22
12006-02-07 Luc Teirlinck <teirllm@auburn.edu> 232006-02-07 Luc Teirlinck <teirllm@auburn.edu>
2 24
3 * mule.texi (International): 25 * mule.texi (International):
diff --git a/man/dired.texi b/man/dired.texi
index a432d681918..be733f9924d 100644
--- a/man/dired.texi
+++ b/man/dired.texi
@@ -40,6 +40,8 @@ files.
40* Updating: Dired Updating. Discarding lines for files of no interest. 40* Updating: Dired Updating. Discarding lines for files of no interest.
41* Find: Dired and Find. Using `find' to choose the files for Dired. 41* Find: Dired and Find. Using `find' to choose the files for Dired.
42* Wdired:: Operating on files by editing the Dired buffer. 42* Wdired:: Operating on files by editing the Dired buffer.
43* Tumme:: Image file and thumbnail viewing and
44 manipulation from the Dired buffer.
43* Misc: Misc Dired Features. Various other features. 45* Misc: Misc Dired Features. Various other features.
44@end menu 46@end menu
45 47
@@ -1140,6 +1142,52 @@ you can change @samp{-rw-r--r--} to @samp{-rw-rw-rw-} to make a file
1140world-writable. These changes also take effect when you type @kbd{C-c 1142world-writable. These changes also take effect when you type @kbd{C-c
1141C-c}. 1143C-c}.
1142 1144
1145@node Tumme
1146@section Thumbnail and image file viewing and manipulation
1147
1148@cindex tumme mode
1149 Tumme provides for simple viewing of thumbnails if image files. It
1150also provides viewing of the original file, sized or in full size,
1151inside Emacs or in an external viewer.
1152
1153 Tumme aims to be both easy to use for a beginner but also powerful
1154and useful for an experienced user.
1155
1156 To try out Tumme, mark some image files in Dired and type @kbd{C-t
1157d} (@code{tumme-display-thumbs}). With point in the thumbnail buffer,
1158type @kbd{RET} (@code{tumme-display-thumbnail-original-image}) to
1159display a sized version of it. Use the keys to move around in the
1160buffer. For easy browing, type @kbd{SPC}
1161(@code{tumme-display-next-thumbnail-original}) to advance and display
1162the next image. Typing @kbd{SPC}
1163(@code{tumme-display-previous-thumbnail-original}) backs up to the
1164previous thumbnail and displays the image.
1165
1166 If you want to see the image in its original size, either provide a
1167prefix argument (@kbd{C-u}) before pressing @kbd{RET}, or type
1168@kbd{C-return} (@code{tumme-thumbnail-display-external}) to display
1169the image in an external viewer.
1170
1171 If you find in image that you want to delete, type @kbd{d}
1172(@code{tumme-flag-thumb-original-file}) and the file will be flagged
1173for deletion in the dired buffer. If you just want to delete the
1174thumbnail image from the thumbnail buffer, type @kbd{C-d}
1175(@code{tumme-delete-char}).
1176
1177 More advanced features include commands for using ``tags'' (labels,
1178or categories) to tag image files and to search for image files with a
1179certain tag.
1180
1181 The tags put on image files are stored in a database file and can be
1182used for marking image files. For example, you can let Tumme mark all
1183files in the current directory tagged with the tag `flowers'. To tag
1184image files, mark them in the dired buffer and type @kbd{C-t t}
1185(@code{tumme-tag-files}). To mark files having a certain tag, type
1186@kbd{C-t f} (@code{tumme-mark-tagged-files}).
1187
1188 Tumme also provide simple image manipulation commands, like rotating
1189thumbnails and original image files.
1190
1143@node Misc Dired Features 1191@node Misc Dired Features
1144@section Other Dired Features 1192@section Other Dired Features
1145 1193
diff --git a/man/faq.texi b/man/faq.texi
index 77955d9c1ce..734212758d5 100644
--- a/man/faq.texi
+++ b/man/faq.texi
@@ -59,12 +59,9 @@ distribution.]
59 59
60This is the GNU Emacs FAQ, last updated on @today{}. 60This is the GNU Emacs FAQ, last updated on @today{}.
61 61
62The FAQ is maintained as a Texinfo document, allowing us to create HTML, 62This FAQ is maintained as a part of GNU Emacs. If you find any errors,
63Info, and TeX documents from a single source file, and is slowly but 63or have any suggestions, please use @kbd{M-x report-emacs-bug} to report
64surely being improved. Please bear with us as we improve on this 64them.
65format. This FAQ is maintained as a part of GNU Emacs. If you find
66any errors, or have any suggestions, please use @kbd{M-x report-emacs-bug}
67to report them.
68 65
69@menu 66@menu
70* FAQ notation:: 67* FAQ notation::
@@ -1177,6 +1174,8 @@ In addition, Emacs 22 now includes the Emacs Lisp Reference Manual
1177* Highlighting a region:: 1174* Highlighting a region::
1178* Controlling case sensitivity:: 1175* Controlling case sensitivity::
1179* Wrapping words automatically:: 1176* Wrapping words automatically::
1177* Searching for/replacing newlines::
1178* Yanking text in isearch::
1180* Spell-checkers:: 1179* Spell-checkers::
1181* Checking TeX and *roff documents:: 1180* Checking TeX and *roff documents::
1182* Changing load-path:: 1181* Changing load-path::
@@ -1195,7 +1194,7 @@ In addition, Emacs 22 now includes the Emacs Lisp Reference Manual
1195* Valid X resources:: 1194* Valid X resources::
1196* Evaluating Emacs Lisp code:: 1195* Evaluating Emacs Lisp code::
1197* Changing the length of a Tab:: 1196* Changing the length of a Tab::
1198* Inserting > at the beginning of each line:: 1197* Inserting text at the beginning of each line::
1199* Underlining paragraphs:: 1198* Underlining paragraphs::
1200* Repeating a command as many times as possible:: 1199* Repeating a command as many times as possible::
1201* Forcing the cursor to remain in the same column:: 1200* Forcing the cursor to remain in the same column::
@@ -1534,7 +1533,7 @@ including
1534in your @file{.emacs} file. (Also see @ref{Turning on syntax 1533in your @file{.emacs} file. (Also see @ref{Turning on syntax
1535highlighting}.) 1534highlighting}.)
1536 1535
1537@node Controlling case sensitivity, Wrapping words automatically, Highlighting a region, Common requests 1536@node Controlling case sensitivity, Searching for/replacing newlines, Highlighting a region, Common requests
1538@section How do I control Emacs's case-sensitivity when searching/replacing? 1537@section How do I control Emacs's case-sensitivity when searching/replacing?
1539@cindex @code{case-fold-search} 1538@cindex @code{case-fold-search}
1540@cindex Case sensitivity of searches 1539@cindex Case sensitivity of searches
@@ -1566,7 +1565,23 @@ mode's hook. For example:
1566 (setq case-fold-search nil))) 1565 (setq case-fold-search nil)))
1567@end lisp 1566@end lisp
1568 1567
1569@node Wrapping words automatically, Spell-checkers, Controlling case sensitivity, Common requests 1568@node Searching for/replacing newlines, Yanking text in isearch, Controlling case sensitivity, Common requests
1569@section How do I input a newline character in isearch or query-replace?
1570@cindex Searching for newlines
1571@cindex Replacing newlines
1572
1573Use @kbd{C-q C-j}. For more information, see @inforef{Special Isearch,
1574Special Input for Incremental Search, emacs}.
1575
1576
1577@node Yanking text in isearch, Wrapping words automatically, Searching for/replacing newlines, Common requests
1578@section How do I copy text from the kill ring into the search string?
1579@cindex Yanking text into the search string
1580@cindex isearch yanking
1581
1582Use @kbd{M-y}. @inforef{Isearch Yank, Isearch Yanking, emacs}.
1583
1584@node Wrapping words automatically, Spell-checkers, Yanking text in isearch, Common requests
1570@section How do I make Emacs wrap words for me? 1585@section How do I make Emacs wrap words for me?
1571@cindex Wrapping word automatically 1586@cindex Wrapping word automatically
1572@cindex Wrapping lines 1587@cindex Wrapping lines
@@ -2102,7 +2117,7 @@ about them.
2102 2117
2103@end itemize 2118@end itemize
2104 2119
2105@node Changing the length of a Tab, Inserting > at the beginning of each line, Evaluating Emacs Lisp code, Common requests 2120@node Changing the length of a Tab, Inserting text at the beginning of each line, Evaluating Emacs Lisp code, Common requests
2106@section How do I change Emacs's idea of the @key{TAB} character's length? 2121@section How do I change Emacs's idea of the @key{TAB} character's length?
2107@cindex Tab length 2122@cindex Tab length
2108@cindex Length of tab character 2123@cindex Length of tab character
@@ -2121,8 +2136,9 @@ Do not confuse variable @code{tab-width} with variable
2121@key{TAB} characters. The latter controls what characters are inserted 2136@key{TAB} characters. The latter controls what characters are inserted
2122when you press the @key{TAB} character in certain modes. 2137when you press the @key{TAB} character in certain modes.
2123 2138
2124@node Inserting > at the beginning of each line, Underlining paragraphs, Changing the length of a Tab, Common requests 2139@node Inserting text at the beginning of each line, Underlining paragraphs, Changing the length of a Tab, Common requests
2125@section How do I insert @samp{>} at the beginning of every line? 2140@section How do I insert <some text> at the beginning of every line?
2141@cindex Prefixing a region with some text
2126@cindex Prefix character, inserting in mail/news replies 2142@cindex Prefix character, inserting in mail/news replies
2127@cindex Replies to mail/news, inserting a prefix character 2143@cindex Replies to mail/news, inserting a prefix character
2128@cindex @code{mail-yank-prefix} 2144@cindex @code{mail-yank-prefix}
@@ -2130,7 +2146,7 @@ when you press the @key{TAB} character in certain modes.
2130@cindex News replies, inserting a prefix character 2146@cindex News replies, inserting a prefix character
2131 2147
2132To do this to an entire buffer, type @kbd{M-< M-x replace-regexp 2148To do this to an entire buffer, type @kbd{M-< M-x replace-regexp
2133@key{RET} ^ @key{RET} > @key{RET}}. 2149@key{RET} ^ @key{RET} your text @key{RET}}.
2134 2150
2135To do this to a region, use @code{string-insert-rectangle}. 2151To do this to a region, use @code{string-insert-rectangle}.
2136Set the mark (@kbd{C-@key{SPC}}) at the beginning of the first line you 2152Set the mark (@kbd{C-@key{SPC}}) at the beginning of the first line you
@@ -2139,13 +2155,12 @@ want to prefix, move the cursor to last line to be prefixed, and type
2139buffer, type @kbd{C-x h M-x string-insert-rectangle @key{RET}}. 2155buffer, type @kbd{C-x h M-x string-insert-rectangle @key{RET}}.
2140 2156
2141If you are trying to prefix a yanked mail message with @samp{>}, you 2157If you are trying to prefix a yanked mail message with @samp{>}, you
2142might want to set the variable @code{mail-yank-prefix}. Better yet, use 2158might want to set the variable @code{mail-yank-prefix}. In Message
2143the Supercite package (@pxref{Supercite}), which provides flexible 2159buffers, you can even use @kbd{M-;} to cite yanked messages (@kbd{M-;}
2144citation for yanked mail and news messages; it is included in Emacs 2160runs the function @code{comment-region}, it is a general-purpose
2145since version 19.20. @xref{Changing the included text prefix}, for 2161mechanism to comment regions).
2146additional information.
2147 2162
2148@node Underlining paragraphs, Repeating a command as many times as possible, Inserting > at the beginning of each line, Common requests 2163@node Underlining paragraphs, Repeating a command as many times as possible, Inserting text at the beginning of each line, Common requests
2149@section How do I insert @samp{_^H} before each character in a region to get an underlined paragraph? 2164@section How do I insert @samp{_^H} before each character in a region to get an underlined paragraph?
2150@cindex Underlining a region of text 2165@cindex Underlining a region of text
2151@cindex @code{underline-region} 2166@cindex @code{underline-region}
diff --git a/man/gnus.texi b/man/gnus.texi
index 8fe7355a4c8..bdfe5ab2194 100644
--- a/man/gnus.texi
+++ b/man/gnus.texi
@@ -24547,14 +24547,17 @@ Gnus 5.6 begat Pterodactyl Gnus on August 29th 1998 and was released as
24547``Gnus 5.8'' (after 99 releases and a CVS repository) on December 3rd 24547``Gnus 5.8'' (after 99 releases and a CVS repository) on December 3rd
245481999. 245481999.
24549 24549
24550On the 26th of October 2000, Oort Gnus was begun. 24550On the 26th of October 2000, Oort Gnus was begun and was released as
24551Gnus 5.10 on May 1st 2003 (24 releases).
24552
24553On the January 4th 2004, No Gnus was begun.
24551 24554
24552If you happen upon a version of Gnus that has a prefixed name -- 24555If you happen upon a version of Gnus that has a prefixed name --
24553``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'', 24556``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'',
24554``Pterodactyl Gnus'', ``Oort Gnus'' -- don't panic. Don't let it know 24557``Pterodactyl Gnus'', ``Oort Gnus'', ``No Gnus'' -- don't panic.
24555that you're frightened. Back away. Slowly. Whatever you do, don't 24558Don't let it know that you're frightened. Back away. Slowly. Whatever
24556run. Walk away, calmly, until you're out of its reach. Find a proper 24559you do, don't run. Walk away, calmly, until you're out of its reach.
24557released version of Gnus and snuggle up to that instead. 24560Find a proper released version of Gnus and snuggle up to that instead.
24558 24561
24559 24562
24560@node Other Gnus Versions 24563@node Other Gnus Versions
diff --git a/man/macos.texi b/man/macos.texi
index 76a11ea92e7..ba0f9e995ca 100644
--- a/man/macos.texi
+++ b/man/macos.texi
@@ -104,12 +104,12 @@ character codes in the range 128-159. The coding systems
104@code{mac-roman}, @code{mac-centraleurroman}, and @code{mac-cyrillic} 104@code{mac-roman}, @code{mac-centraleurroman}, and @code{mac-cyrillic}
105are used to represent these Mac encodings. 105are used to represent these Mac encodings.
106 106
107 The fontset @code{fontset-mac} is created automatically when Emacs 107 The fontset @code{fontset-standard} is created automatically when
108is run on Mac, and used by default. It displays as many kinds of 108Emacs is run on Mac, and used by default. It displays as many kinds
109characters as possible using 12-point Monaco as a base font. If you 109of characters as possible using 12-point Monaco as a base font. If
110see some character as a hollow box with this fontset, then it's almost 110you see some character as a hollow box with this fontset, then it's
111impossible to display it only by customizing font settings (@pxref{Mac 111almost impossible to display it only by customizing font settings
112Font Specs}). 112(@pxref{Mac Font Specs}).
113 113
114 You can use input methods provided either by LEIM (@pxref{Input 114 You can use input methods provided either by LEIM (@pxref{Input
115Methods}) or Mac OS to enter international characters. To use the 115Methods}) or Mac OS to enter international characters. To use the
diff --git a/src/ChangeLog b/src/ChangeLog
index 73436b217a1..0f1dded77c7 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,7 +1,58 @@
12006-02-10 Thien-Thi Nguyen <ttn@gnu.org>
2
3 * data.c (Findirect_function): Rewrite docstring.
4 Fix omission bug: Declare new arg NOERROR.
5
62006-02-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7
8 * macfns.c (x_set_mouse_color): Don't call rif->define_frame_cursor
9 if window_desc is not set yet.
10 (Fx_create_frame): Remove variable x_frame_name. Apply 2005-12-07
11 and 2006-01-26 changes for xfns.c. Call x_iconify_frame if frame
12 parameter `visibility' is `icon'.
13 (Fx_create_frame, x_create_tip_frame): Use "fontset-standard"
14 instead of "fontset-mac".
15 (Fx_focus_frame): New defun.
16 (syms_of_macfns): Defsubr it.
17
18 * macterm.c (mac_define_frame_cursor): Don't change pointer shape
19 for unfocused frame.
20 (x_raise_frame): Call BringToFront instead of SelectWindow.
21 (x_lower_frame): Use NULL instead of nil.
22 (x_make_frame_visible): Don't call SelectWindow.
23 (XTread_socket): Increment handling_signal at the start, decrement
24 it at the end.
25 [USE_CG_TEXT_DRAWING] (init_cg_text_anti_aliasing_threshold): Use
26 CFPreferencesGetAppIntegerValue instead of Fmac_get_preference.
27
282006-02-10 Kim F. Storm <storm@cua.dk>
29
30 * data.c (Findirect_function): Add NOERROR arg. All callers changed
31 to pass Qnil for NOERROR.
32
33 * keymap.c (current_minor_maps_error): Remove.
34 (current_minor_maps): Pass Qt for NOERROR to Findirect_function
35 instead of using internal_condition_case_1+current_minor_maps_error.
36
372006-02-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
38
39 * xterm.c (handle_one_xevent): Must note mouse movement even for nil
40 frames for GTK, in that case it is the tool bar. This is so that
41 highlighted text get reset properly.
42
432006-02-09 Juanma Barranquero <lekktu@gmail.com>
44
45 * alloc.c (Fmake_bool_vector, Fpurecopy): Doc fixes.
46
472006-02-08 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
48
49 * window.c (adjust_window_trailing_edge): Check that shrinking
50 does not set a window to size zero or less.
51
12006-02-08 Miles Bader <miles@gnu.org> 522006-02-08 Miles Bader <miles@gnu.org>
2 53
3 * editfns.c (Fconstrain_to_field): Use Fget_char_property instead 54 * editfns.c (Fconstrain_to_field): Use Fget_char_property instead
4 of Fget_text_property (other field functions word with overlays as 55 of Fget_text_property (other field functions work with overlays as
5 well as text-properties). 56 well as text-properties).
6 57
72006-02-07 Kenichi Handa <handa@m17n.org> 582006-02-07 Kenichi Handa <handa@m17n.org>
diff --git a/src/alloc.c b/src/alloc.c
index 3d87710c772..04efb708665 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -2299,7 +2299,7 @@ INIT must be an integer that represents a character. */)
2299 2299
2300 2300
2301DEFUN ("make-bool-vector", Fmake_bool_vector, Smake_bool_vector, 2, 2, 0, 2301DEFUN ("make-bool-vector", Fmake_bool_vector, Smake_bool_vector, 2, 2, 0,
2302 doc: /* Return a new bool-vector of length LENGTH, using INIT for as each element. 2302 doc: /* Return a new bool-vector of length LENGTH, using INIT for each element.
2303LENGTH must be a number. INIT matters only in whether it is t or nil. */) 2303LENGTH must be a number. INIT matters only in whether it is t or nil. */)
2304 (length, init) 2304 (length, init)
2305 Lisp_Object length, init; 2305 Lisp_Object length, init;
@@ -4768,7 +4768,7 @@ make_pure_vector (len)
4768 4768
4769 4769
4770DEFUN ("purecopy", Fpurecopy, Spurecopy, 1, 1, 0, 4770DEFUN ("purecopy", Fpurecopy, Spurecopy, 1, 1, 0,
4771 doc: /* Make a copy of OBJECT in pure storage. 4771 doc: /* Make a copy of object OBJ in pure storage.
4772Recursively copies contents of vectors and cons cells. 4772Recursively copies contents of vectors and cons cells.
4773Does not copy symbols. Copies strings without text properties. */) 4773Does not copy symbols. Copies strings without text properties. */)
4774 (obj) 4774 (obj)
diff --git a/src/data.c b/src/data.c
index fbfbb141d48..a4d865f681e 100644
--- a/src/data.c
+++ b/src/data.c
@@ -1927,23 +1927,26 @@ indirect_function (object)
1927 return hare; 1927 return hare;
1928} 1928}
1929 1929
1930DEFUN ("indirect-function", Findirect_function, Sindirect_function, 1, 1, 0, 1930DEFUN ("indirect-function", Findirect_function, Sindirect_function, 1, 2, 0,
1931 doc: /* Return the function at the end of OBJECT's function chain. 1931 doc: /* Return the function at the end of OBJECT's function chain.
1932If OBJECT is a symbol, follow all function indirections and return the final 1932If OBJECT is not a symbol, just return it. Otherwise, follow all
1933function binding. 1933function indirections to find the final function binding and return it.
1934If OBJECT is not a symbol, just return it. 1934If the final symbol in the chain is unbound, signal a void-function error.
1935Signal a void-function error if the final symbol is unbound. 1935Optional arg NOERROR non-nil means to return nil instead of signalling.
1936Signal a cyclic-function-indirection error if there is a loop in the 1936Signal a cyclic-function-indirection error if there is a loop in the
1937function chain of symbols. */) 1937function chain of symbols. */)
1938 (object) 1938 (object, noerror)
1939 register Lisp_Object object; 1939 register Lisp_Object object;
1940 Lisp_Object noerror;
1940{ 1941{
1941 Lisp_Object result; 1942 Lisp_Object result;
1942 1943
1943 result = indirect_function (object); 1944 result = indirect_function (object);
1944 1945
1945 if (EQ (result, Qunbound)) 1946 if (EQ (result, Qunbound))
1946 return Fsignal (Qvoid_function, Fcons (object, Qnil)); 1947 return (NILP (noerror)
1948 ? Fsignal (Qvoid_function, Fcons (object, Qnil))
1949 : Qnil);
1947 return result; 1950 return result;
1948} 1951}
1949 1952
diff --git a/src/doc.c b/src/doc.c
index 32c74b71eeb..19c03a7a71d 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -386,7 +386,7 @@ string is passed through `substitute-command-keys'. */)
386 !NILP (tem))) 386 !NILP (tem)))
387 return Fdocumentation_property (function, Qfunction_documentation, raw); 387 return Fdocumentation_property (function, Qfunction_documentation, raw);
388 388
389 fun = Findirect_function (function); 389 fun = Findirect_function (function, Qnil);
390 if (SUBRP (fun)) 390 if (SUBRP (fun))
391 { 391 {
392 if (XSUBR (fun)->doc == 0) 392 if (XSUBR (fun)->doc == 0)
diff --git a/src/eval.c b/src/eval.c
index 2f89e515f8d..eff284820f0 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -618,7 +618,7 @@ interactive_p (exclude_subrs_p)
618 618
619 /* If this isn't a byte-compiled function, there may be a frame at 619 /* If this isn't a byte-compiled function, there may be a frame at
620 the top for Finteractive_p. If so, skip it. */ 620 the top for Finteractive_p. If so, skip it. */
621 fun = Findirect_function (*btp->function); 621 fun = Findirect_function (*btp->function, Qnil);
622 if (SUBRP (fun) && (XSUBR (fun) == &Sinteractive_p 622 if (SUBRP (fun) && (XSUBR (fun) == &Sinteractive_p
623 || XSUBR (fun) == &Scalled_interactively_p)) 623 || XSUBR (fun) == &Scalled_interactively_p))
624 btp = btp->next; 624 btp = btp->next;
@@ -639,7 +639,7 @@ interactive_p (exclude_subrs_p)
639 a special form, ignoring frames for Finteractive_p and/or 639 a special form, ignoring frames for Finteractive_p and/or
640 Fbytecode at the top. If this frame is for a built-in function 640 Fbytecode at the top. If this frame is for a built-in function
641 (such as load or eval-region) return nil. */ 641 (such as load or eval-region) return nil. */
642 fun = Findirect_function (*btp->function); 642 fun = Findirect_function (*btp->function, Qnil);
643 if (exclude_subrs_p && SUBRP (fun)) 643 if (exclude_subrs_p && SUBRP (fun))
644 return 0; 644 return 0;
645 645
@@ -2079,7 +2079,7 @@ do_autoload (fundef, funname)
2079 Vautoload_queue = Qt; 2079 Vautoload_queue = Qt;
2080 unbind_to (count, Qnil); 2080 unbind_to (count, Qnil);
2081 2081
2082 fun = Findirect_function (fun); 2082 fun = Findirect_function (fun, Qnil);
2083 2083
2084 if (!NILP (Fequal (fun, fundef))) 2084 if (!NILP (Fequal (fun, fundef)))
2085 error ("Autoloading failed to define function %s", 2085 error ("Autoloading failed to define function %s",
@@ -2142,7 +2142,7 @@ DEFUN ("eval", Feval, Seval, 1, 1, 0,
2142 /* At this point, only original_fun and original_args 2142 /* At this point, only original_fun and original_args
2143 have values that will be used below */ 2143 have values that will be used below */
2144 retry: 2144 retry:
2145 fun = Findirect_function (original_fun); 2145 fun = Findirect_function (original_fun, Qnil);
2146 2146
2147 if (SUBRP (fun)) 2147 if (SUBRP (fun))
2148 { 2148 {
@@ -2841,7 +2841,7 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */)
2841 2841
2842 fun = args[0]; 2842 fun = args[0];
2843 2843
2844 fun = Findirect_function (fun); 2844 fun = Findirect_function (fun, Qnil);
2845 2845
2846 if (SUBRP (fun)) 2846 if (SUBRP (fun))
2847 { 2847 {
diff --git a/src/keyboard.c b/src/keyboard.c
index f50b456feb4..2081db6ae9d 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -9698,7 +9698,7 @@ a special event, so ignore the prefix argument and don't clear it. */)
9698 9698
9699 while (1) 9699 while (1)
9700 { 9700 {
9701 final = Findirect_function (cmd); 9701 final = Findirect_function (cmd, Qnil);
9702 9702
9703 if (CONSP (final) && (tem = Fcar (final), EQ (tem, Qautoload))) 9703 if (CONSP (final) && (tem = Fcar (final), EQ (tem, Qautoload)))
9704 { 9704 {
diff --git a/src/keymap.c b/src/keymap.c
index 01c637132eb..22b495033ef 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -69,7 +69,7 @@ Lisp_Object Vminibuffer_local_completion_map;
69/* keymap used for minibuffers when doing completion in filenames */ 69/* keymap used for minibuffers when doing completion in filenames */
70Lisp_Object Vminibuffer_local_filename_completion_map; 70Lisp_Object Vminibuffer_local_filename_completion_map;
71 71
72/* keymap used for minibuffers when doing completion in filenames 72/* keymap used for minibuffers when doing completion in filenames
73 with require-match*/ 73 with require-match*/
74Lisp_Object Vminibuffer_local_must_match_filename_map; 74Lisp_Object Vminibuffer_local_must_match_filename_map;
75 75
@@ -1403,13 +1403,6 @@ silly_event_symbol_error (c)
1403static Lisp_Object *cmm_modes = NULL, *cmm_maps = NULL; 1403static Lisp_Object *cmm_modes = NULL, *cmm_maps = NULL;
1404static int cmm_size = 0; 1404static int cmm_size = 0;
1405 1405
1406/* Error handler used in current_minor_maps. */
1407static Lisp_Object
1408current_minor_maps_error ()
1409{
1410 return Qnil;
1411}
1412
1413/* Store a pointer to an array of the keymaps of the currently active 1406/* Store a pointer to an array of the keymaps of the currently active
1414 minor modes in *buf, and return the number of maps it contains. 1407 minor modes in *buf, and return the number of maps it contains.
1415 1408
@@ -1511,9 +1504,7 @@ current_minor_maps (modeptr, mapptr)
1511 } 1504 }
1512 1505
1513 /* Get the keymap definition--or nil if it is not defined. */ 1506 /* Get the keymap definition--or nil if it is not defined. */
1514 temp = internal_condition_case_1 (Findirect_function, 1507 temp = Findirect_function (XCDR (assoc), Qt);
1515 XCDR (assoc),
1516 Qerror, current_minor_maps_error);
1517 if (!NILP (temp)) 1508 if (!NILP (temp))
1518 { 1509 {
1519 cmm_modes[i] = var; 1510 cmm_modes[i] = var;
@@ -3753,11 +3744,11 @@ don't alter it yourself. */);
3753 Vminibuffer_local_completion_map = Fmake_sparse_keymap (Qnil); 3744 Vminibuffer_local_completion_map = Fmake_sparse_keymap (Qnil);
3754 Fset_keymap_parent (Vminibuffer_local_completion_map, Vminibuffer_local_map); 3745 Fset_keymap_parent (Vminibuffer_local_completion_map, Vminibuffer_local_map);
3755 3746
3756 DEFVAR_LISP ("minibuffer-local-filename-completion-map", 3747 DEFVAR_LISP ("minibuffer-local-filename-completion-map",
3757 &Vminibuffer_local_filename_completion_map, 3748 &Vminibuffer_local_filename_completion_map,
3758 doc: /* Local keymap for minibuffer input with completion for filenames. */); 3749 doc: /* Local keymap for minibuffer input with completion for filenames. */);
3759 Vminibuffer_local_filename_completion_map = Fmake_sparse_keymap (Qnil); 3750 Vminibuffer_local_filename_completion_map = Fmake_sparse_keymap (Qnil);
3760 Fset_keymap_parent (Vminibuffer_local_filename_completion_map, 3751 Fset_keymap_parent (Vminibuffer_local_filename_completion_map,
3761 Vminibuffer_local_completion_map); 3752 Vminibuffer_local_completion_map);
3762 3753
3763 3754
@@ -3767,11 +3758,11 @@ don't alter it yourself. */);
3767 Fset_keymap_parent (Vminibuffer_local_must_match_map, 3758 Fset_keymap_parent (Vminibuffer_local_must_match_map,
3768 Vminibuffer_local_completion_map); 3759 Vminibuffer_local_completion_map);
3769 3760
3770 DEFVAR_LISP ("minibuffer-local-must-match-filename-map", 3761 DEFVAR_LISP ("minibuffer-local-must-match-filename-map",
3771 &Vminibuffer_local_must_match_filename_map, 3762 &Vminibuffer_local_must_match_filename_map,
3772 doc: /* Local keymap for minibuffer input with completion for filenames with exact match. */); 3763 doc: /* Local keymap for minibuffer input with completion for filenames with exact match. */);
3773 Vminibuffer_local_must_match_filename_map = Fmake_sparse_keymap (Qnil); 3764 Vminibuffer_local_must_match_filename_map = Fmake_sparse_keymap (Qnil);
3774 Fset_keymap_parent (Vminibuffer_local_must_match_filename_map, 3765 Fset_keymap_parent (Vminibuffer_local_must_match_filename_map,
3775 Vminibuffer_local_must_match_map); 3766 Vminibuffer_local_must_match_map);
3776 3767
3777 DEFVAR_LISP ("minor-mode-map-alist", &Vminor_mode_map_alist, 3768 DEFVAR_LISP ("minor-mode-map-alist", &Vminor_mode_map_alist,
diff --git a/src/lisp.h b/src/lisp.h
index 60bf01ab5a1..9cec643a078 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2189,7 +2189,7 @@ EXFUN (Fsymbol_function, 1);
2189EXFUN (Fsymbol_plist, 1); 2189EXFUN (Fsymbol_plist, 1);
2190EXFUN (Fsymbol_name, 1); 2190EXFUN (Fsymbol_name, 1);
2191extern Lisp_Object indirect_function P_ ((Lisp_Object)); 2191extern Lisp_Object indirect_function P_ ((Lisp_Object));
2192EXFUN (Findirect_function, 1); 2192EXFUN (Findirect_function, 2);
2193EXFUN (Ffset, 2); 2193EXFUN (Ffset, 2);
2194EXFUN (Fsetplist, 2); 2194EXFUN (Fsetplist, 2);
2195EXFUN (Fsymbol_value, 1); 2195EXFUN (Fsymbol_value, 1);
diff --git a/src/macfns.c b/src/macfns.c
index ae7f1d87be4..3f59a459010 100644
--- a/src/macfns.c
+++ b/src/macfns.c
@@ -1448,7 +1448,8 @@ x_set_mouse_color (f, arg, oldval)
1448 1448
1449 BLOCK_INPUT; 1449 BLOCK_INPUT;
1450 1450
1451 rif->define_frame_cursor (f, cursor); 1451 if (FRAME_MAC_WINDOW (f) != 0)
1452 rif->define_frame_cursor (f, cursor);
1452 1453
1453 f->output_data.mac->text_cursor = cursor; 1454 f->output_data.mac->text_cursor = cursor;
1454 f->output_data.mac->nontext_cursor = nontext_cursor; 1455 f->output_data.mac->nontext_cursor = nontext_cursor;
@@ -2398,11 +2399,12 @@ This function is an internal primitive--use `make-frame' instead. */)
2398 struct mac_display_info *dpyinfo = NULL; 2399 struct mac_display_info *dpyinfo = NULL;
2399 Lisp_Object parent; 2400 Lisp_Object parent;
2400 struct kboard *kb; 2401 struct kboard *kb;
2401 char x_frame_name[10];
2402 static int x_frame_count = 2; /* begins at 2 because terminal frame is F1 */ 2402 static int x_frame_count = 2; /* begins at 2 because terminal frame is F1 */
2403 2403
2404 check_mac (); 2404 check_mac ();
2405 2405
2406 parms = Fcopy_alist (parms);
2407
2406 /* Use this general default value to start with 2408 /* Use this general default value to start with
2407 until we know if this frame has a specified name. */ 2409 until we know if this frame has a specified name. */
2408 Vx_resource_name = Vinvocation_name; 2410 Vx_resource_name = Vinvocation_name;
@@ -2452,18 +2454,6 @@ This function is an internal primitive--use `make-frame' instead. */)
2452 else 2454 else
2453 f = make_frame (1); 2455 f = make_frame (1);
2454 2456
2455 if (EQ (name, Qunbound) || NILP (name))
2456 {
2457 sprintf (x_frame_name, "F%d", x_frame_count++);
2458 f->name = build_string (x_frame_name);
2459 f->explicit_name = 0;
2460 }
2461 else
2462 {
2463 f->name = name;
2464 f->explicit_name = 1;
2465 }
2466
2467 XSETFRAME (frame, f); 2457 XSETFRAME (frame, f);
2468 2458
2469 /* Note that X Windows does support scroll bars. */ 2459 /* Note that X Windows does support scroll bars. */
@@ -2544,7 +2534,7 @@ This function is an internal primitive--use `make-frame' instead. */)
2544 font = x_new_font (f, "-ETL-fixed-medium-r-*--*-160-*-*-*-*-iso8859-1"); 2534 font = x_new_font (f, "-ETL-fixed-medium-r-*--*-160-*-*-*-*-iso8859-1");
2545 /* If those didn't work, look for something which will at least work. */ 2535 /* If those didn't work, look for something which will at least work. */
2546 if (! STRINGP (font)) 2536 if (! STRINGP (font))
2547 font = x_new_fontset (f, build_string ("fontset-mac")); 2537 font = x_new_fontset (f, build_string ("fontset-standard"));
2548 if (! STRINGP (font)) 2538 if (! STRINGP (font))
2549 font = x_new_font (f, "-*-monaco-*-12-*-mac-roman"); 2539 font = x_new_font (f, "-*-monaco-*-12-*-mac-roman");
2550 if (! STRINGP (font)) 2540 if (! STRINGP (font))
@@ -2679,17 +2669,28 @@ This function is an internal primitive--use `make-frame' instead. */)
2679 if (EQ (visibility, Qunbound)) 2669 if (EQ (visibility, Qunbound))
2680 visibility = Qt; 2670 visibility = Qt;
2681 2671
2682#if 0 /* MAC_TODO: really no iconify on Mac */
2683 if (EQ (visibility, Qicon)) 2672 if (EQ (visibility, Qicon))
2684 x_iconify_frame (f); 2673 x_iconify_frame (f);
2685 else 2674 else if (! NILP (visibility))
2686#endif
2687 if (! NILP (visibility))
2688 x_make_frame_visible (f); 2675 x_make_frame_visible (f);
2689 else 2676 else
2690 /* Must have been Qnil. */ 2677 /* Must have been Qnil. */
2691 ; 2678 ;
2692 } 2679 }
2680
2681 /* Initialize `default-minibuffer-frame' in case this is the first
2682 frame on this display device. */
2683 if (FRAME_HAS_MINIBUF_P (f)
2684 && (!FRAMEP (kb->Vdefault_minibuffer_frame)
2685 || !FRAME_LIVE_P (XFRAME (kb->Vdefault_minibuffer_frame))))
2686 kb->Vdefault_minibuffer_frame = frame;
2687
2688 /* All remaining specified parameters, which have not been "used"
2689 by x_get_arg and friends, now go in the misc. alist of the frame. */
2690 for (tem = parms; !NILP (tem); tem = XCDR (tem))
2691 if (CONSP (XCAR (tem)) && !NILP (XCAR (XCAR (tem))))
2692 f->param_alist = Fcons (XCAR (tem), f->param_alist);
2693
2693 UNGCPRO; 2694 UNGCPRO;
2694 2695
2695 /* Make sure windows on this frame appear in calls to next-window 2696 /* Make sure windows on this frame appear in calls to next-window
@@ -2699,9 +2700,11 @@ This function is an internal primitive--use `make-frame' instead. */)
2699 return unbind_to (count, frame); 2700 return unbind_to (count, frame);
2700} 2701}
2701 2702
2703
2702/* FRAME is used only to get a handle on the X display. We don't pass the 2704/* FRAME is used only to get a handle on the X display. We don't pass the
2703 display info directly because we're called from frame.c, which doesn't 2705 display info directly because we're called from frame.c, which doesn't
2704 know about that structure. */ 2706 know about that structure. */
2707
2705Lisp_Object 2708Lisp_Object
2706x_get_focus_frame (frame) 2709x_get_focus_frame (frame)
2707 struct frame *frame; 2710 struct frame *frame;
@@ -2714,6 +2717,39 @@ x_get_focus_frame (frame)
2714 XSETFRAME (xfocus, dpyinfo->x_focus_frame); 2717 XSETFRAME (xfocus, dpyinfo->x_focus_frame);
2715 return xfocus; 2718 return xfocus;
2716} 2719}
2720
2721
2722DEFUN ("x-focus-frame", Fx_focus_frame, Sx_focus_frame, 1, 1, 0,
2723 doc: /* Set the input focus to FRAME.
2724FRAME nil means use the selected frame. */)
2725 (frame)
2726 Lisp_Object frame;
2727{
2728 struct frame *f = check_x_frame (frame);
2729 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f);
2730
2731 if (dpyinfo->x_focus_frame != f)
2732 {
2733 BLOCK_INPUT;
2734#ifdef MAC_OSX
2735 ActivateWindow (ActiveNonFloatingWindow (), false);
2736 ActivateWindow (FRAME_MAC_WINDOW (f), true);
2737#else
2738#if !TARGET_API_MAC_CARBON
2739 /* SelectWindow (Non-Carbon) does not issue deactivate events if
2740 the possibly inactive window that is to be selected is
2741 already the frontmost one. */
2742 SendBehind (FRAME_MAC_WINDOW (f), NULL);
2743#endif
2744 /* This brings the window to the front. */
2745 SelectWindow (FRAME_MAC_WINDOW (f));
2746#endif
2747 UNBLOCK_INPUT;
2748 }
2749
2750 return Qnil;
2751}
2752
2717 2753
2718DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0, 2754DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0,
2719 doc: /* Internal function called by `color-defined-p', which see. */) 2755 doc: /* Internal function called by `color-defined-p', which see. */)
@@ -3664,7 +3700,7 @@ x_create_tip_frame (dpyinfo, parms, text)
3664 font = x_new_font (f, "-ETL-fixed-medium-r-*--*-160-*-*-*-*-iso8859-1"); 3700 font = x_new_font (f, "-ETL-fixed-medium-r-*--*-160-*-*-*-*-iso8859-1");
3665 /* If those didn't work, look for something which will at least work. */ 3701 /* If those didn't work, look for something which will at least work. */
3666 if (! STRINGP (font)) 3702 if (! STRINGP (font))
3667 font = x_new_fontset (f, build_string ("fontset-mac")); 3703 font = x_new_fontset (f, build_string ("fontset-standard"));
3668 if (! STRINGP (font)) 3704 if (! STRINGP (font))
3669 font = x_new_font (f, "-*-monaco-*-12-*-mac-roman"); 3705 font = x_new_font (f, "-*-monaco-*-12-*-mac-roman");
3670 if (! STRINGP (font)) 3706 if (! STRINGP (font))
@@ -4513,6 +4549,7 @@ Chinese, Japanese, and Korean. */);
4513 defsubr (&Sx_close_connection); 4549 defsubr (&Sx_close_connection);
4514 defsubr (&Sx_display_list); 4550 defsubr (&Sx_display_list);
4515 defsubr (&Sx_synchronize); 4551 defsubr (&Sx_synchronize);
4552 defsubr (&Sx_focus_frame);
4516 4553
4517 /* Setting callback functions for fontset handler. */ 4554 /* Setting callback functions for fontset handler. */
4518 get_font_info_func = x_get_font_info; 4555 get_font_info_func = x_get_font_info;
diff --git a/src/macterm.c b/src/macterm.c
index 8e736f73124..8439a79d65c 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -1028,12 +1028,15 @@ static int cg_text_anti_aliasing_threshold = 8;
1028static void 1028static void
1029init_cg_text_anti_aliasing_threshold () 1029init_cg_text_anti_aliasing_threshold ()
1030{ 1030{
1031 Lisp_Object val = 1031 int threshold;
1032 Fmac_get_preference (build_string ("AppleAntiAliasingThreshold"), 1032 Boolean valid_p;
1033 Qnil, Qnil, Qnil);
1034 1033
1035 if (INTEGERP (val)) 1034 threshold =
1036 cg_text_anti_aliasing_threshold = XINT (val); 1035 CFPreferencesGetAppIntegerValue (CFSTR ("AppleAntiAliasingThreshold"),
1036 kCFPreferencesCurrentApplication,
1037 &valid_p);
1038 if (valid_p)
1039 cg_text_anti_aliasing_threshold = threshold;
1037} 1040}
1038 1041
1039static int 1042static int
@@ -5301,7 +5304,10 @@ mac_define_frame_cursor (f, cursor)
5301 struct frame *f; 5304 struct frame *f;
5302 Cursor cursor; 5305 Cursor cursor;
5303{ 5306{
5304 SetThemeCursor (cursor); 5307 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f);
5308
5309 if (dpyinfo->x_focus_frame == f)
5310 SetThemeCursor (cursor);
5305} 5311}
5306 5312
5307 5313
@@ -5856,7 +5862,7 @@ x_raise_frame (f)
5856 if (f->async_visible) 5862 if (f->async_visible)
5857 { 5863 {
5858 BLOCK_INPUT; 5864 BLOCK_INPUT;
5859 SelectWindow (FRAME_MAC_WINDOW (f)); 5865 BringToFront (FRAME_MAC_WINDOW (f));
5860 UNBLOCK_INPUT; 5866 UNBLOCK_INPUT;
5861 } 5867 }
5862} 5868}
@@ -5870,7 +5876,7 @@ x_lower_frame (f)
5870 if (f->async_visible) 5876 if (f->async_visible)
5871 { 5877 {
5872 BLOCK_INPUT; 5878 BLOCK_INPUT;
5873 SendBehind (FRAME_MAC_WINDOW (f), nil); 5879 SendBehind (FRAME_MAC_WINDOW (f), NULL);
5874 UNBLOCK_INPUT; 5880 UNBLOCK_INPUT;
5875 } 5881 }
5876} 5882}
@@ -5983,7 +5989,6 @@ x_make_frame_visible (f)
5983 5989
5984 f->output_data.mac->asked_for_visible = 1; 5990 f->output_data.mac->asked_for_visible = 1;
5985 5991
5986 SelectWindow (FRAME_MAC_WINDOW (f));
5987 CollapseWindow (FRAME_MAC_WINDOW (f), false); 5992 CollapseWindow (FRAME_MAC_WINDOW (f), false);
5988 ShowWindow (FRAME_MAC_WINDOW (f)); 5993 ShowWindow (FRAME_MAC_WINDOW (f));
5989 } 5994 }
@@ -9602,6 +9607,8 @@ XTread_socket (sd, expected, hold_quit)
9602 /* So people can tell when we have read the available input. */ 9607 /* So people can tell when we have read the available input. */
9603 input_signal_count++; 9608 input_signal_count++;
9604 9609
9610 ++handling_signal;
9611
9605#if USE_CARBON_EVENTS 9612#if USE_CARBON_EVENTS
9606 toolbox_dispatcher = GetEventDispatcherTarget (); 9613 toolbox_dispatcher = GetEventDispatcherTarget ();
9607 9614
@@ -10242,6 +10249,7 @@ XTread_socket (sd, expected, hold_quit)
10242 } 10249 }
10243#endif 10250#endif
10244 10251
10252 --handling_signal;
10245 UNBLOCK_INPUT; 10253 UNBLOCK_INPUT;
10246 return count; 10254 return count;
10247} 10255}
diff --git a/src/window.c b/src/window.c
index f71d26f6d50..c21e95cbef0 100644
--- a/src/window.c
+++ b/src/window.c
@@ -4284,6 +4284,14 @@ adjust_window_trailing_edge (window, delta, horiz_flag)
4284 { 4284 {
4285 if (!NILP (XWINDOW (window)->next)) 4285 if (!NILP (XWINDOW (window)->next))
4286 { 4286 {
4287 /* This may happen for the minibuffer. In that case
4288 the window_deletion_count check below does not work. */
4289 if (XINT (CURSIZE (p->next)) - delta <= 0)
4290 {
4291 Fset_window_configuration (old_config);
4292 error ("Cannot adjust window size as specified");
4293 }
4294
4287 XSETINT (CURBEG (p->next), 4295 XSETINT (CURBEG (p->next),
4288 XINT (CURBEG (p->next)) + delta); 4296 XINT (CURBEG (p->next)) + delta);
4289 size_window (p->next, XINT (CURSIZE (p->next)) - delta, 4297 size_window (p->next, XINT (CURSIZE (p->next)) - delta,
diff --git a/src/xterm.c b/src/xterm.c
index 0d1ea7636f2..2eb92e8a532 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -6475,6 +6475,12 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
6475 so update things that depend on mouse position. */ 6475 so update things that depend on mouse position. */
6476 if (f && !f->output_data.x->hourglass_p) 6476 if (f && !f->output_data.x->hourglass_p)
6477 note_mouse_movement (f, &event.xmotion); 6477 note_mouse_movement (f, &event.xmotion);
6478#ifdef USE_GTK
6479 /* We may get an EnterNotify on the buttons in the toolbar. In that
6480 case we moved out of any highlighted area and need to note this. */
6481 if (!f && last_mouse_glyph_frame)
6482 note_mouse_movement (last_mouse_glyph_frame, &event);
6483#endif
6478 goto OTHER; 6484 goto OTHER;
6479 6485
6480 case FocusIn: 6486 case FocusIn:
@@ -6502,6 +6508,11 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
6502 if (any_help_event_p) 6508 if (any_help_event_p)
6503 do_help = -1; 6509 do_help = -1;
6504 } 6510 }
6511#ifdef USE_GTK
6512 /* See comment in EnterNotify above */
6513 else if (last_mouse_glyph_frame)
6514 note_mouse_movement (last_mouse_glyph_frame, &event);
6515#endif
6505 goto OTHER; 6516 goto OTHER;
6506 6517
6507 case FocusOut: 6518 case FocusOut: