aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaroly Lorentey2005-10-19 14:06:17 +0000
committerKaroly Lorentey2005-10-19 14:06:17 +0000
commit1072671b5b0f1fda9f91ea99da4bf0bd275ce6eb (patch)
treef1b05485825e65d7c0ca06cb273be4fe16a44a3f
parent6d8cf83040cdb54a0b1d72bd6a021f9815bd4af2 (diff)
parent8b1b64617b37243f75c4052653761d2e2a3943f3 (diff)
downloademacs-1072671b5b0f1fda9f91ea99da4bf0bd275ce6eb.tar.gz
emacs-1072671b5b0f1fda9f91ea99da4bf0bd275ce6eb.zip
Merged from miles@gnu.org--gnu-2005 (patch 133-141, 596-609)
Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-596 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-597 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-598 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-599 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-600 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-601 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-602 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-603 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-604 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-605 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-606 Remove lisp/toolbar directory * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-607 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-608 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-609 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-133 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-134 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-135 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-136 Merge from emacs--cvs-trunk--0 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-137 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-138 Update from CVS: texi/gnus.texi (RSS): Fix key description. * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-139 Merge from emacs--cvs-trunk--0 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-140 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-141 Update from CVS: texi/gnus.texi (Document Server Internals): Addition. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-426
-rw-r--r--ChangeLog8
-rw-r--r--admin/ChangeLog5
-rw-r--r--admin/FOR-RELEASE3
-rw-r--r--etc/ChangeLog95
-rw-r--r--etc/MH-E-NEWS45
-rw-r--r--etc/NEWS11
-rw-r--r--etc/images/README16
-rw-r--r--etc/images/attach.pbm (renamed from lisp/toolbar/attach.pbm)bin634 -> 634 bytes
-rw-r--r--etc/images/back-arrow.pbm (renamed from lisp/toolbar/back_arrow.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/back-arrow.xpm (renamed from lisp/toolbar/back_arrow.xpm)0
-rw-r--r--etc/images/cancel.pbm (renamed from lisp/toolbar/cancel.pbm)bin634 -> 634 bytes
-rw-r--r--etc/images/cancel.xpm (renamed from lisp/toolbar/cancel.xpm)0
-rw-r--r--etc/images/close.pbm (renamed from lisp/toolbar/close.pbm)bin199 -> 199 bytes
-rw-r--r--etc/images/close.xpm (renamed from lisp/toolbar/close.xpm)0
-rw-r--r--etc/images/copy.pbm (renamed from lisp/toolbar/copy.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/copy.xpm (renamed from lisp/toolbar/copy.xpm)0
-rw-r--r--etc/images/cut.pbm (renamed from lisp/toolbar/cut.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/cut.xpm (renamed from lisp/toolbar/cut.xpm)0
-rw-r--r--etc/images/diropen.pbm (renamed from lisp/toolbar/diropen.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/diropen.xpm (renamed from lisp/toolbar/diropen.xpm)0
-rw-r--r--etc/images/exit.pbm (renamed from lisp/toolbar/exit.pbm)bin634 -> 634 bytes
-rw-r--r--etc/images/exit.xpm (renamed from lisp/toolbar/exit.xpm)0
-rw-r--r--etc/images/fld-open.pbm (renamed from lisp/toolbar/fld_open.pbm)bin634 -> 634 bytes
-rw-r--r--etc/images/fld-open.xpm (renamed from lisp/toolbar/fld_open.xpm)0
-rw-r--r--etc/images/fwd-arrow.pbm (renamed from lisp/toolbar/fwd_arrow.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/fwd-arrow.xpm (renamed from lisp/toolbar/fwd_arrow.xpm)0
-rw-r--r--etc/images/gud/break.pbm (renamed from lisp/toolbar/gud-break.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/gud/break.xpm (renamed from lisp/toolbar/gud-break.xpm)0
-rw-r--r--etc/images/gud/cont.pbm (renamed from lisp/toolbar/gud-cont.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/gud/cont.xpm (renamed from lisp/toolbar/gud-cont.xpm)0
-rw-r--r--etc/images/gud/down.pbm (renamed from lisp/toolbar/gud-down.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/gud/down.xpm (renamed from lisp/toolbar/gud-down.xpm)0
-rw-r--r--etc/images/gud/finish.pbm (renamed from lisp/toolbar/gud-finish.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/gud/finish.xpm (renamed from lisp/toolbar/gud-finish.xpm)0
-rw-r--r--etc/images/gud/next.pbm (renamed from lisp/toolbar/gud-n.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/gud/next.xpm (renamed from lisp/toolbar/gud-n.xpm)0
-rw-r--r--etc/images/gud/nexti.pbm (renamed from lisp/toolbar/gud-ni.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/gud/nexti.xpm (renamed from lisp/toolbar/gud-ni.xpm)0
-rw-r--r--etc/images/gud/print.pbm (renamed from lisp/toolbar/gud-print.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/gud/print.xpm (renamed from lisp/toolbar/gud-print.xpm)0
-rw-r--r--etc/images/gud/pstar.pbm (renamed from lisp/toolbar/gud-pstar.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/gud/pstar.xpm (renamed from lisp/toolbar/gud-pstar.xpm)0
-rw-r--r--etc/images/gud/remove.pbm (renamed from lisp/toolbar/gud-remove.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/gud/remove.xpm (renamed from lisp/toolbar/gud-remove.xpm)0
-rw-r--r--etc/images/gud/run.pbm (renamed from lisp/toolbar/gud-run.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/gud/run.xpm (renamed from lisp/toolbar/gud-run.xpm)0
-rw-r--r--etc/images/gud/step.pbm (renamed from lisp/toolbar/gud-s.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/gud/step.xpm (renamed from lisp/toolbar/gud-s.xpm)0
-rw-r--r--etc/images/gud/stepi.pbm (renamed from lisp/toolbar/gud-si.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/gud/stepi.xpm (renamed from lisp/toolbar/gud-si.xpm)0
-rw-r--r--etc/images/gud/until.pbm (renamed from lisp/toolbar/gud-until.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/gud/until.xpm (renamed from lisp/toolbar/gud-until.xpm)0
-rw-r--r--etc/images/gud/up.pbm (renamed from lisp/toolbar/gud-up.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/gud/up.xpm (renamed from lisp/toolbar/gud-up.xpm)0
-rw-r--r--etc/images/gud/watch.pbm (renamed from lisp/toolbar/gud-watch.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/gud/watch.xpm (renamed from lisp/toolbar/gud-watch.xpm)0
-rw-r--r--etc/images/help.pbm (renamed from lisp/toolbar/help.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/help.xpm (renamed from lisp/toolbar/help.xpm)0
-rw-r--r--etc/images/home.pbm (renamed from lisp/toolbar/home.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/home.xpm (renamed from lisp/toolbar/home.xpm)0
-rw-r--r--etc/images/index.pbm (renamed from lisp/toolbar/index.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/index.xpm (renamed from lisp/toolbar/index.xpm)0
-rw-r--r--etc/images/info.pbm (renamed from lisp/toolbar/info.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/info.xpm (renamed from lisp/toolbar/info.xpm)0
-rw-r--r--etc/images/jump-to.pbm (renamed from lisp/toolbar/jump_to.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/jump-to.xpm (renamed from lisp/toolbar/jump_to.xpm)0
-rw-r--r--etc/images/left-arrow.pbm (renamed from lisp/toolbar/left_arrow.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/left-arrow.xpm (renamed from lisp/toolbar/left_arrow.xpm)0
-rw-r--r--etc/images/low-color/back-arrow.xpm (renamed from lisp/toolbar/lc-back_arrow.xpm)0
-rw-r--r--etc/images/low-color/copy.xpm (renamed from lisp/toolbar/lc-copy.xpm)0
-rw-r--r--etc/images/low-color/cut.xpm (renamed from lisp/toolbar/lc-cut.xpm)0
-rw-r--r--etc/images/low-color/fwd-arrow.xpm (renamed from lisp/toolbar/lc-fwd_arrow.xpm)0
-rw-r--r--etc/images/low-color/help.xpm (renamed from lisp/toolbar/lc-help.xpm)0
-rw-r--r--etc/images/low-color/home.xpm (renamed from lisp/toolbar/lc-home.xpm)0
-rw-r--r--etc/images/low-color/index.xpm (renamed from lisp/toolbar/lc-index.xpm)0
-rw-r--r--etc/images/low-color/jump-to.xpm (renamed from lisp/toolbar/lc-jump_to.xpm)0
-rw-r--r--etc/images/low-color/left-arrow.xpm (renamed from lisp/toolbar/lc-left_arrow.xpm)0
-rw-r--r--etc/images/low-color/new.xpm (renamed from lisp/toolbar/lc-new.xpm)0
-rw-r--r--etc/images/low-color/open.xpm (renamed from lisp/toolbar/lc-open.xpm)0
-rw-r--r--etc/images/low-color/paste.xpm (renamed from lisp/toolbar/lc-paste.xpm)0
-rw-r--r--etc/images/low-color/preferences.xpm (renamed from lisp/toolbar/lc-preferences.xpm)0
-rw-r--r--etc/images/low-color/print.xpm (renamed from lisp/toolbar/lc-print.xpm)0
-rw-r--r--etc/images/low-color/right-arrow.xpm (renamed from lisp/toolbar/lc-right_arrow.xpm)0
-rw-r--r--etc/images/low-color/save.xpm (renamed from lisp/toolbar/lc-save.xpm)0
-rw-r--r--etc/images/low-color/saveas.xpm (renamed from lisp/toolbar/lc-saveas.xpm)0
-rw-r--r--etc/images/low-color/search.xpm (renamed from lisp/toolbar/lc-search.xpm)0
-rw-r--r--etc/images/low-color/spell.xpm (renamed from lisp/toolbar/lc-spell.xpm)0
-rw-r--r--etc/images/low-color/undo.xpm (renamed from lisp/toolbar/lc-undo.xpm)0
-rw-r--r--etc/images/low-color/up-arrow.xpm (renamed from lisp/toolbar/lc-up_arrow.xpm)0
-rw-r--r--etc/images/mail.pbm (renamed from lisp/toolbar/mail.pbm)bin634 -> 634 bytes
-rw-r--r--etc/images/mail.xpm (renamed from lisp/toolbar/mail.xpm)0
-rw-r--r--etc/images/mail/compose.pbm (renamed from lisp/toolbar/mail_compose.pbm)bin634 -> 634 bytes
-rw-r--r--etc/images/mail/compose.xpm (renamed from lisp/toolbar/mail_compose.xpm)0
-rw-r--r--etc/images/mail/send.pbm (renamed from lisp/toolbar/mail_send.pbm)bin634 -> 634 bytes
-rw-r--r--etc/images/mail/send.xpm (renamed from lisp/toolbar/mail_send.xpm)0
-rw-r--r--etc/images/new.pbm (renamed from lisp/toolbar/new.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/new.xpm (renamed from lisp/toolbar/new.xpm)0
-rw-r--r--etc/images/open.pbm (renamed from lisp/toolbar/open.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/open.xpm (renamed from lisp/toolbar/open.xpm)0
-rw-r--r--etc/images/paste.pbm (renamed from lisp/toolbar/paste.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/paste.xpm (renamed from lisp/toolbar/paste.xpm)0
-rw-r--r--etc/images/preferences.pbm (renamed from lisp/toolbar/preferences.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/preferences.xpm (renamed from lisp/toolbar/preferences.xpm)0
-rw-r--r--etc/images/print.pbm (renamed from lisp/toolbar/print.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/print.xpm (renamed from lisp/toolbar/print.xpm)0
-rw-r--r--etc/images/right-arrow.pbm (renamed from lisp/toolbar/right_arrow.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/right-arrow.xpm (renamed from lisp/toolbar/right_arrow.xpm)0
-rw-r--r--etc/images/save.pbm (renamed from lisp/toolbar/save.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/save.xpm (renamed from lisp/toolbar/save.xpm)0
-rw-r--r--etc/images/saveas.pbm (renamed from lisp/toolbar/saveas.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/saveas.xpm (renamed from lisp/toolbar/saveas.xpm)0
-rw-r--r--etc/images/search-replace.pbm (renamed from lisp/toolbar/search-replace.pbm)bin634 -> 634 bytes
-rw-r--r--etc/images/search-replace.xpm (renamed from lisp/toolbar/search-replace.xpm)0
-rw-r--r--etc/images/search.pbm (renamed from lisp/toolbar/search.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/search.xpm (renamed from lisp/toolbar/search.xpm)0
-rw-r--r--etc/images/spell.pbm (renamed from lisp/toolbar/spell.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/spell.xpm (renamed from lisp/toolbar/spell.xpm)0
-rw-r--r--etc/images/undo.pbm (renamed from lisp/toolbar/undo.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/undo.xpm (renamed from lisp/toolbar/undo.xpm)0
-rw-r--r--etc/images/up-arrow.pbm (renamed from lisp/toolbar/up_arrow.pbm)bin185 -> 185 bytes
-rw-r--r--etc/images/up-arrow.xpm (renamed from lisp/toolbar/up_arrow.xpm)0
-rw-r--r--lisp/ChangeLog337
-rw-r--r--lisp/arc-mode.el3
-rw-r--r--lisp/bookmark.el42
-rw-r--r--lisp/calc/calc-store.el2
-rw-r--r--lisp/cus-edit.el12
-rw-r--r--lisp/dabbrev.el3
-rw-r--r--lisp/diff-mode.el2
-rw-r--r--lisp/emacs-lisp/lisp.el2
-rw-r--r--lisp/eshell/em-hist.el2
-rw-r--r--lisp/ffap.el4
-rw-r--r--lisp/filecache.el4
-rw-r--r--lisp/gnus/ChangeLog21
-rw-r--r--lisp/gnus/gnus-cus.el16
-rw-r--r--lisp/gnus/message.el4
-rw-r--r--lisp/gnus/nnrss.el13
-rw-r--r--lisp/info.el83
-rw-r--r--lisp/jit-lock.el14
-rw-r--r--lisp/longlines.el24
-rw-r--r--lisp/mail/mailabbrev.el3
-rw-r--r--lisp/mail/sendmail.el5
-rw-r--r--lisp/makefile.w32-in66
-rw-r--r--lisp/man.el23
-rw-r--r--lisp/menu-bar.el2
-rw-r--r--lisp/mh-e/ChangeLog78
-rw-r--r--lisp/mh-e/mh-comp.el20
-rw-r--r--lisp/mh-e/mh-customize.el11
-rw-r--r--lisp/mh-e/mh-e.el9
-rw-r--r--lisp/mh-e/mh-funcs.el2
-rw-r--r--lisp/mh-e/mh-identity.el2
-rw-r--r--lisp/mh-e/mh-init.el54
-rw-r--r--lisp/mh-e/mh-mime.el2
-rw-r--r--lisp/mh-e/mh-pick.el2
-rw-r--r--lisp/mh-e/mh-seq.el5
-rw-r--r--lisp/mh-e/mh-utils.el6
-rw-r--r--lisp/mouse.el24
-rw-r--r--lisp/net/tramp.el130
-rw-r--r--lisp/pcvs.el29
-rw-r--r--lisp/progmodes/compile.el64
-rw-r--r--lisp/progmodes/etags.el3
-rw-r--r--lisp/progmodes/gdb-ui.el7
-rw-r--r--lisp/progmodes/gud.el39
-rw-r--r--lisp/progmodes/make-mode.el2
-rw-r--r--lisp/progmodes/meta-mode.el2
-rw-r--r--lisp/progmodes/octave-mod.el2
-rw-r--r--lisp/progmodes/pascal.el4
-rw-r--r--lisp/progmodes/python.el2
-rw-r--r--lisp/recentf.el106
-rw-r--r--lisp/savehist.el270
-rw-r--r--lisp/simple.el26
-rw-r--r--lisp/speedbar.el38
-rw-r--r--lisp/tempo.el6
-rw-r--r--lisp/term/mac-win.el53
-rw-r--r--lisp/textmodes/bibtex.el4
-rw-r--r--lisp/textmodes/conf-mode.el78
-rw-r--r--lisp/textmodes/org.el2
-rw-r--r--lisp/textmodes/tex-mode.el2
-rw-r--r--lisp/tool-bar.el (renamed from lisp/toolbar/tool-bar.el)24
-rw-r--r--lisp/toolbar/README12
-rw-r--r--lisp/tree-widget.el13
-rw-r--r--lisp/url/ChangeLog4
-rw-r--r--lisp/url/url.el14
-rw-r--r--lisp/wid-edit.el16
-rw-r--r--lisp/woman.el7
-rw-r--r--lispref/ChangeLog27
-rw-r--r--lispref/buffers.texi6
-rw-r--r--lispref/commands.texi21
-rw-r--r--lispref/compile.texi6
-rw-r--r--lispref/customize.texi2
-rw-r--r--lispref/display.texi4
-rw-r--r--lispref/files.texi2
-rw-r--r--lispref/modes.texi6
-rw-r--r--lispref/positions.texi8
-rw-r--r--lispref/processes.texi21
-rw-r--r--lispref/streams.texi2
-rw-r--r--lispref/syntax.texi2
-rw-r--r--lispref/text.texi2
-rwxr-xr-xmake-dist11
-rw-r--r--man/ChangeLog58
-rw-r--r--man/building.texi41
-rw-r--r--man/files.texi2
-rw-r--r--man/gnus.texi107
-rw-r--r--man/info.texi61
-rw-r--r--man/misc.texi3
-rw-r--r--man/viper.texi4
-rw-r--r--src/ChangeLog68
-rw-r--r--src/casefiddle.c8
-rw-r--r--src/mac.c40
-rw-r--r--src/macfns.c21
-rw-r--r--src/macterm.c683
-rw-r--r--src/macterm.h2
-rw-r--r--src/minibuf.c32
-rw-r--r--src/search.c40
-rw-r--r--src/w32term.c18
214 files changed, 2169 insertions, 1183 deletions
diff --git a/ChangeLog b/ChangeLog
index 444a2975854..69096da32de 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
12005-10-17 Bill Wohler <wohler@newt.com>
2
3 * make-dist: Create and populate etc/images/low-color.
4
52005-10-15 Bill Wohler <wohler@newt.com>
6
7 * make-dist: Create and populate etc/images/gud.
8
12005-10-08 Richard M. Stallman <rms@gnu.org> 92005-10-08 Richard M. Stallman <rms@gnu.org>
2 10
3 * make-dist (tempparent): Don't check for 14-char file name limit. 11 * make-dist (tempparent): Don't check for 14-char file name limit.
diff --git a/admin/ChangeLog b/admin/ChangeLog
index 3ed09ce60c9..68194266dd6 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,8 @@
12005-10-17 Bill Wohler <wohler@newt.com>
2
3 * FOR-RELEASE (DOCUMENTATION): Removed lisp/toolbar from list
4 since it's gone. Also marked mh-e as done.
5
12005-10-11 Juanma Barranquero <lekktu@gmail.com> 62005-10-11 Juanma Barranquero <lekktu@gmail.com>
2 7
3 * FOR-RELEASE (FATAL ERRORS): Remove item about JPEG 8 * FOR-RELEASE (FATAL ERRORS): Remove item about JPEG
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index 73309bbb7e5..ba744a621c6 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -89,14 +89,13 @@ lisp/gnus done ttn
89lisp/international done Kenichi Handa 89lisp/international done Kenichi Handa
90lisp/language done Kenichi Handa 90lisp/language done Kenichi Handa
91lisp/mail done ttn 91lisp/mail done ttn
92lisp/mh-e working Bill Wohler 92lisp/mh-e done Bill Wohler
93lisp/net done ttn 93lisp/net done ttn
94lisp/obsolete done ttn 94lisp/obsolete done ttn
95lisp/play done ttn 95lisp/play done ttn
96lisp/progmodes done Nick Roberts 96lisp/progmodes done Nick Roberts
97lisp/term done ttn 97lisp/term done ttn
98lisp/textmodes done ttn 98lisp/textmodes done ttn
99lisp/toolbar done ttn
100lisp/url done ttn 99lisp/url done ttn
101lispintro done ttn 100lispintro done ttn
102lispref done ttn 101lispref done ttn
diff --git a/etc/ChangeLog b/etc/ChangeLog
index d5bc0f4abb0..afc7b6b8249 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,96 @@
12005-10-17 Bill Wohler <wohler@newt.com>
2
3 Moved all remaining images from lisp/toolbar to etc/images. The
4 low resolution images were placed in their own directory (low-color).
5
6 * images/attach.*, images/cancel.*, images/close.*:
7 * images/copy.*, images/cut.*, images/diropen.*:
8 * images/exit.*, images/help.*, images/home.*:
9 * images/index.*, images/info.*, images/mail.*:
10 * images/new.*, images/open.*, images/paste.*:
11 * images/preferences.*, images/print.*, images/save.*:
12 * images/saveas.*, images/search.*:
13 * images/search-replace.*, images/spell.*:
14 * images/undo.*: Moved here from lisp/toolbar.
15
16 * images/low-color/copy.*: Moved here from lisp/toolbar/lc-copy.*.
17 * images/low-color/cut.*: Moved here from lisp/toolbar/lc-cut.*.
18 * images/low-color/help.*: Moved here from lisp/toolbar/lc-help.*.
19 * images/low-color/home.*: Moved here from lisp/toolbar/lc-home.*.
20 * images/low-color/index.*: Moved here from lisp/toolbar/lc-index.*.
21 * images/low-color/new.*: Moved here from lisp/toolbar/lc-new.*.
22 * images/low-color/open.*: Moved here from lisp/toolbar/lc-open.*.
23 * images/low-color/paste.*: Moved here from lisp/toolbar/lc-paste.*.
24 * images/low-color/preferences.*: Moved here from
25 lisp/toolbar/lc-preferences.*.
26 * images/low-color/print.*: Moved here from lisp/toolbar/lc-print.*.
27 * images/low-color/save.*: Moved here from lisp/toolbar/lc-save.*.
28 * images/low-color/saveas.*: Moved here from lisp/toolbar/lc-saveas.*.
29 * images/low-color/search.*: Moved here from lisp/toolbar/lc-search.*.
30 * images/low-color/spell.*: Moved here from lisp/toolbar/lc-spell.*.
31 * images/low-color/undo.*: Moved here from lisp/toolbar/lc-undo.*.
32
33 To conform with convention, the underscore (_) in the following
34 image names were replaced with dash (-) or (/) as appropriate.
35
36 * images/back-arrow.*: Moved here from lisp/toolbar/back_arrow.*.
37 * images/fld-open.*: Moved here from lisp/toolbar/fld_open.*.
38 * images/fwd-arrow.*: Moved here from lisp/toolbar/fwd_arrow.*.
39 * images/jump-to.*: Moved here from lisp/toolbar/jump_to.*.
40 * images/left-arrow.*: Moved here from lisp/toolbar/left_arrow.*.
41 * images/right-arrow.*: Moved here from lisp/toolbar/right_arrow.*.
42 * images/up-arrow.*: Moved here from lisp/toolbar/up_arrow.*.
43 * images/low-color/back-arrow.*: Moved here from
44 lisp/toolbar/lc-back_arrow.*.
45 * images/low-color/fwd-arrow.*: Moved here from
46 lisp/toolbar/lc-fwd_arrow.*.
47 * images/low-color/jump-to.*: Moved here from
48 lisp/toolbar/lc-jump_to.*.
49 * images/low-color/left-arrow.*: Moved here from
50 lisp/toolbar/lc-left_arrow.*.
51 * images/low-color/right-arrow.*: Moved here from
52 lisp/toolbar/lc-right_arrow.*.
53 * images/low-color/up-arrow.*: Moved here from
54 lisp/toolbar/lc-up_arrow.*.
55 * images/mail/compose.*: Moved here from lisp/toolbar/mail_compose.*.
56 * images/mail/send.*: Moved here from lisp/toolbar/mail_send.*.
57
58 * images/README: Incorporated the content of lisp/toolbar/README
59 now that all of the images are here.
60
612005-10-16 Nick Roberts <nickrob@snap.net.nz>
62
63 * images/gud/n.pbm, images/gud/n.xpm
64 * images/gud/ni.xpm, images/gud/ni.xpm
65 * images/gud/s.xpm, images/gud/s.xpm
66 * images/gud/si.xpm, images/gud/si.xpm: Rename to
67 next.*, nexti.*, step.*, and stepi.* , respectively, as the
68 file-name no longer clashes on 8+3 filesystems.
69
702005-10-14 Bill Wohler <wohler@newt.com>
71
72 * images/gud/break.*: Moved here from toolbar/gud-break.*.
73 * images/gud/cont.*: Moved here from toolbar/gud-cont.*.
74 * images/gud/down.*: Moved here from toolbar/gud-down.*.
75 * images/gud/finish.*: Moved here from toolbar/gud-finish.*.
76 * images/gud/ni.*: Moved here from toolbar/gud-ni.*.
77 * images/gud/n.*: Moved here from toolbar/gud-n.*.
78 * images/gud/print.*: Moved here from toolbar/gud-print.*.
79 * images/gud/pstar.*: Moved here from toolbar/gud-pstar.*.
80 * images/gud/remove.*: Moved here from toolbar/gud-remove.*.
81 * images/gud/run.*: Moved here from toolbar/gud-run.*.
82 * images/gud/si.*: Moved here from toolbar/gud-si.*.
83 * images/gud/s.*: Moved here from toolbar/gud-s.*.
84 * images/gud/until.*: Moved here from toolbar/gud-until.*.
85 * images/gud/up.*: Moved here from toolbar/gud-up.*.
86 * images/gud/watch.*: Moved here from toolbar/gud-watch.*.
87
882005-10-14 Bill Wohler <wohler@newt.com>
89
90 Released MH-E version 7.85.
91
92 * NEWS, MH-E-NEWS: Updated for release 7.85.
93
12005-10-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 942005-10-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2 95
3 * NEWS: -nb => -nbi 96 * NEWS: -nb => -nbi
@@ -17,7 +110,7 @@
172005-09-30 Bill Wohler <wohler@newt.com> 1102005-09-30 Bill Wohler <wohler@newt.com>
18 111
19 Moved MH-E image files from toolbar and mail directories into 112 Moved MH-E image files from toolbar and mail directories into
20 etc/images. 113 images.
21 114
22 * images/mail: New directory. 115 * images/mail: New directory.
23 116
diff --git a/etc/MH-E-NEWS b/etc/MH-E-NEWS
index e5b408c8785..34b4d2ab4d1 100644
--- a/etc/MH-E-NEWS
+++ b/etc/MH-E-NEWS
@@ -6,6 +6,51 @@ Copying and distribution of this file, with or without modification,
6are permitted in any medium without royalty provided the copyright 6are permitted in any medium without royalty provided the copyright
7notice and this notice are preserved. 7notice and this notice are preserved.
8 8
9* Changes in MH-E 7.85
10
11Version 7.85 heralds a migration of the CVS repository from
12SourceForge to Savannah only for those files that were already part of
13Emacs. As a result, two incompatibilities were introduced with this
14release: the location of MH-E in the load-path has changed, and
15mh-e-autoloads.el was renamed to mh-autoloads.el. While this migration
16will benefit maintainers, it will also benefit users: CVS Emacs users
17will not have to check out MH-E separately and welcome faster MH-E
18updates, and CVS MH-E users will welcome faster MH-E updates from
19Emacs developers. Read section CVS MH-E INSTALL in the README for
20details.
21
22MH-E now works on a Mac. See section INSTALL in the README for details.
23
24** Bug Fixes in MH-E 7.85
25
26*** Prompts Now Follow Current Conventions
27
28Instead of "Prompt: [<default>] ", the prompts now look like "Prompt
29(default: <default>): ".
30
31*** Face Variable Names Now Follow Current Conventions
32
33The -face suffix has been dropped from all face names.
34
35*** mh-compose-forward and Default Message Number
36
37mh-compose-forward will now default to the sent message in the sent
38folder and the `cur' message in other folders. It also takes ranges of
39messages and can include multiple messages at a time (closes SF
40#1205890).
41
42*** mh-customize Uses Group mh, Not mh-e
43
44The `mh' customization group alias has been deleted to avoid some
45problems that were found (closes SF #1213716).
46
47*** font-lock Error in mh-letter-mode
48
49An error in MH-E was introduced as a result of a change in CVS Emacs.
50This has been fixed (closes SF #1241017).
51
52
53
9* Changes in MH-E 7.84 54* Changes in MH-E 7.84
10 55
11Version 7.84 contains no user-visible changes. This version 56Version 7.84 contains no user-visible changes. This version
diff --git a/etc/NEWS b/etc/NEWS
index 3debb164866..3c9044d95d8 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -673,6 +673,12 @@ same uses the face `completions-first-difference'. By default,
673parts less visible than normal, so that the rest of the differing 673parts less visible than normal, so that the rest of the differing
674parts is, by contrast, slightly highlighted. 674parts is, by contrast, slightly highlighted.
675 675
676Above fontification is always done when listing completions is
677triggered at minibuffer. If you want to fontify completions whose
678listing is triggered at the other normal buffer, you have to pass
679the common prefix of completions to `display-completion-list' as
680its second argument.
681
676+++ 682+++
677*** File-name completion can now ignore specified directories. 683*** File-name completion can now ignore specified directories.
678If an element of the list in `completion-ignored-extensions' ends in a 684If an element of the list in `completion-ignored-extensions' ends in a
@@ -1498,6 +1504,9 @@ corresponding articles in a web browser. Its documentation is in a
1498separate manual. 1504separate manual.
1499 1505
1500+++ 1506+++
1507** savehist saves minibuffer histories between sessions.
1508
1509+++
1501** Filesets are collections of files. You can define a fileset in 1510** Filesets are collections of files. You can define a fileset in
1502various ways, such as based on a directory tree or based on 1511various ways, such as based on a directory tree or based on
1503program files that include other program files. 1512program files that include other program files.
@@ -2850,7 +2859,7 @@ See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details.
2850--- 2859---
2851** MH-E changes. 2860** MH-E changes.
2852 2861
2853Upgraded to MH-E version 7.84. There have been major changes since 2862Upgraded to MH-E version 7.85. There have been major changes since
2854version 5.0.2; see MH-E-NEWS for details. 2863version 5.0.2; see MH-E-NEWS for details.
2855 2864
2856** Calendar changes: 2865** Calendar changes:
diff --git a/etc/images/README b/etc/images/README
index c697bfdc438..229840a2669 100644
--- a/etc/images/README
+++ b/etc/images/README
@@ -1,5 +1,17 @@
1All of the following icons are not part of Emacs, but distributed and
2used by Emacs.
3
4The following icons are from GTK+ 2.x:
5
6 close.xpm copy.xpm cut.xpm help.xpm home.xpm
7 index.xpm jump-to.xpm left-arrow.xpm new.xpm open.xpm
8 paste.xpm preferences.xpm print.xpm right-arrow.xpm save.xpm
9 saveas.xpm search.xpm spell.xpm undo.xpm up-arrow.xpm
10
11 back-arrow.xpm and fwd-arrow.xpm are slightly modified undo and redo.
12
13 diropen.xpm is file-manager.png from Gnome hicolor theme.
14
1The following icons are from GNOME 2.10: 15The following icons are from GNOME 2.10:
2 16
3 refresh.pbm, refresh.xpm 17 refresh.pbm, refresh.xpm
4
5They are not part of Emacs, but distributed and used by Emacs.
diff --git a/lisp/toolbar/attach.pbm b/etc/images/attach.pbm
index e8fcd988f0c..e8fcd988f0c 100644
--- a/lisp/toolbar/attach.pbm
+++ b/etc/images/attach.pbm
Binary files differ
diff --git a/lisp/toolbar/back_arrow.pbm b/etc/images/back-arrow.pbm
index 7f9b8975d2f..7f9b8975d2f 100644
--- a/lisp/toolbar/back_arrow.pbm
+++ b/etc/images/back-arrow.pbm
Binary files differ
diff --git a/lisp/toolbar/back_arrow.xpm b/etc/images/back-arrow.xpm
index b9b13613d81..b9b13613d81 100644
--- a/lisp/toolbar/back_arrow.xpm
+++ b/etc/images/back-arrow.xpm
diff --git a/lisp/toolbar/cancel.pbm b/etc/images/cancel.pbm
index bd85b764c27..bd85b764c27 100644
--- a/lisp/toolbar/cancel.pbm
+++ b/etc/images/cancel.pbm
Binary files differ
diff --git a/lisp/toolbar/cancel.xpm b/etc/images/cancel.xpm
index 1a9c80ac744..1a9c80ac744 100644
--- a/lisp/toolbar/cancel.xpm
+++ b/etc/images/cancel.xpm
diff --git a/lisp/toolbar/close.pbm b/etc/images/close.pbm
index 5229be27525..5229be27525 100644
--- a/lisp/toolbar/close.pbm
+++ b/etc/images/close.pbm
Binary files differ
diff --git a/lisp/toolbar/close.xpm b/etc/images/close.xpm
index 498843be6e2..498843be6e2 100644
--- a/lisp/toolbar/close.xpm
+++ b/etc/images/close.xpm
diff --git a/lisp/toolbar/copy.pbm b/etc/images/copy.pbm
index abfd22f93b3..abfd22f93b3 100644
--- a/lisp/toolbar/copy.pbm
+++ b/etc/images/copy.pbm
Binary files differ
diff --git a/lisp/toolbar/copy.xpm b/etc/images/copy.xpm
index 6262a95bc39..6262a95bc39 100644
--- a/lisp/toolbar/copy.xpm
+++ b/etc/images/copy.xpm
diff --git a/lisp/toolbar/cut.pbm b/etc/images/cut.pbm
index 29bf1abc073..29bf1abc073 100644
--- a/lisp/toolbar/cut.pbm
+++ b/etc/images/cut.pbm
Binary files differ
diff --git a/lisp/toolbar/cut.xpm b/etc/images/cut.xpm
index 3f8e71d22ce..3f8e71d22ce 100644
--- a/lisp/toolbar/cut.xpm
+++ b/etc/images/cut.xpm
diff --git a/lisp/toolbar/diropen.pbm b/etc/images/diropen.pbm
index 61adc3b2a23..61adc3b2a23 100644
--- a/lisp/toolbar/diropen.pbm
+++ b/etc/images/diropen.pbm
Binary files differ
diff --git a/lisp/toolbar/diropen.xpm b/etc/images/diropen.xpm
index 6937b99a44d..6937b99a44d 100644
--- a/lisp/toolbar/diropen.xpm
+++ b/etc/images/diropen.xpm
diff --git a/lisp/toolbar/exit.pbm b/etc/images/exit.pbm
index a6dd11e7769..a6dd11e7769 100644
--- a/lisp/toolbar/exit.pbm
+++ b/etc/images/exit.pbm
Binary files differ
diff --git a/lisp/toolbar/exit.xpm b/etc/images/exit.xpm
index 291dd0dd170..291dd0dd170 100644
--- a/lisp/toolbar/exit.xpm
+++ b/etc/images/exit.xpm
diff --git a/lisp/toolbar/fld_open.pbm b/etc/images/fld-open.pbm
index 3d2be258a67..3d2be258a67 100644
--- a/lisp/toolbar/fld_open.pbm
+++ b/etc/images/fld-open.pbm
Binary files differ
diff --git a/lisp/toolbar/fld_open.xpm b/etc/images/fld-open.xpm
index 220410003fd..220410003fd 100644
--- a/lisp/toolbar/fld_open.xpm
+++ b/etc/images/fld-open.xpm
diff --git a/lisp/toolbar/fwd_arrow.pbm b/etc/images/fwd-arrow.pbm
index e08e6fa35db..e08e6fa35db 100644
--- a/lisp/toolbar/fwd_arrow.pbm
+++ b/etc/images/fwd-arrow.pbm
Binary files differ
diff --git a/lisp/toolbar/fwd_arrow.xpm b/etc/images/fwd-arrow.xpm
index 5e7c5602ea1..5e7c5602ea1 100644
--- a/lisp/toolbar/fwd_arrow.xpm
+++ b/etc/images/fwd-arrow.xpm
diff --git a/lisp/toolbar/gud-break.pbm b/etc/images/gud/break.pbm
index ff28ff8649f..ff28ff8649f 100644
--- a/lisp/toolbar/gud-break.pbm
+++ b/etc/images/gud/break.pbm
Binary files differ
diff --git a/lisp/toolbar/gud-break.xpm b/etc/images/gud/break.xpm
index 2ffc2748271..2ffc2748271 100644
--- a/lisp/toolbar/gud-break.xpm
+++ b/etc/images/gud/break.xpm
diff --git a/lisp/toolbar/gud-cont.pbm b/etc/images/gud/cont.pbm
index bc6dbead648..bc6dbead648 100644
--- a/lisp/toolbar/gud-cont.pbm
+++ b/etc/images/gud/cont.pbm
Binary files differ
diff --git a/lisp/toolbar/gud-cont.xpm b/etc/images/gud/cont.xpm
index 9da91af994f..9da91af994f 100644
--- a/lisp/toolbar/gud-cont.xpm
+++ b/etc/images/gud/cont.xpm
diff --git a/lisp/toolbar/gud-down.pbm b/etc/images/gud/down.pbm
index c76dad2e04f..c76dad2e04f 100644
--- a/lisp/toolbar/gud-down.pbm
+++ b/etc/images/gud/down.pbm
Binary files differ
diff --git a/lisp/toolbar/gud-down.xpm b/etc/images/gud/down.xpm
index 30f3af89cce..30f3af89cce 100644
--- a/lisp/toolbar/gud-down.xpm
+++ b/etc/images/gud/down.xpm
diff --git a/lisp/toolbar/gud-finish.pbm b/etc/images/gud/finish.pbm
index 324245235c9..324245235c9 100644
--- a/lisp/toolbar/gud-finish.pbm
+++ b/etc/images/gud/finish.pbm
Binary files differ
diff --git a/lisp/toolbar/gud-finish.xpm b/etc/images/gud/finish.xpm
index 0310f07e8da..0310f07e8da 100644
--- a/lisp/toolbar/gud-finish.xpm
+++ b/etc/images/gud/finish.xpm
diff --git a/lisp/toolbar/gud-n.pbm b/etc/images/gud/next.pbm
index dc2a15323e3..dc2a15323e3 100644
--- a/lisp/toolbar/gud-n.pbm
+++ b/etc/images/gud/next.pbm
Binary files differ
diff --git a/lisp/toolbar/gud-n.xpm b/etc/images/gud/next.xpm
index f0257da5cf0..f0257da5cf0 100644
--- a/lisp/toolbar/gud-n.xpm
+++ b/etc/images/gud/next.xpm
diff --git a/lisp/toolbar/gud-ni.pbm b/etc/images/gud/nexti.pbm
index ecad2965b0d..ecad2965b0d 100644
--- a/lisp/toolbar/gud-ni.pbm
+++ b/etc/images/gud/nexti.pbm
Binary files differ
diff --git a/lisp/toolbar/gud-ni.xpm b/etc/images/gud/nexti.xpm
index bd4f02db12e..bd4f02db12e 100644
--- a/lisp/toolbar/gud-ni.xpm
+++ b/etc/images/gud/nexti.xpm
diff --git a/lisp/toolbar/gud-print.pbm b/etc/images/gud/print.pbm
index d6ab68f39ad..d6ab68f39ad 100644
--- a/lisp/toolbar/gud-print.pbm
+++ b/etc/images/gud/print.pbm
Binary files differ
diff --git a/lisp/toolbar/gud-print.xpm b/etc/images/gud/print.xpm
index e1e7c623355..e1e7c623355 100644
--- a/lisp/toolbar/gud-print.xpm
+++ b/etc/images/gud/print.xpm
diff --git a/lisp/toolbar/gud-pstar.pbm b/etc/images/gud/pstar.pbm
index 1f5967107a0..1f5967107a0 100644
--- a/lisp/toolbar/gud-pstar.pbm
+++ b/etc/images/gud/pstar.pbm
Binary files differ
diff --git a/lisp/toolbar/gud-pstar.xpm b/etc/images/gud/pstar.xpm
index 6edc603db14..6edc603db14 100644
--- a/lisp/toolbar/gud-pstar.xpm
+++ b/etc/images/gud/pstar.xpm
diff --git a/lisp/toolbar/gud-remove.pbm b/etc/images/gud/remove.pbm
index 516bec1f785..516bec1f785 100644
--- a/lisp/toolbar/gud-remove.pbm
+++ b/etc/images/gud/remove.pbm
Binary files differ
diff --git a/lisp/toolbar/gud-remove.xpm b/etc/images/gud/remove.xpm
index 5f38bd416ed..5f38bd416ed 100644
--- a/lisp/toolbar/gud-remove.xpm
+++ b/etc/images/gud/remove.xpm
diff --git a/lisp/toolbar/gud-run.pbm b/etc/images/gud/run.pbm
index 8bde32c3391..8bde32c3391 100644
--- a/lisp/toolbar/gud-run.pbm
+++ b/etc/images/gud/run.pbm
Binary files differ
diff --git a/lisp/toolbar/gud-run.xpm b/etc/images/gud/run.xpm
index ef29662ed24..ef29662ed24 100644
--- a/lisp/toolbar/gud-run.xpm
+++ b/etc/images/gud/run.xpm
diff --git a/lisp/toolbar/gud-s.pbm b/etc/images/gud/step.pbm
index de7caa50ed5..de7caa50ed5 100644
--- a/lisp/toolbar/gud-s.pbm
+++ b/etc/images/gud/step.pbm
Binary files differ
diff --git a/lisp/toolbar/gud-s.xpm b/etc/images/gud/step.xpm
index 4ee3eccaee2..4ee3eccaee2 100644
--- a/lisp/toolbar/gud-s.xpm
+++ b/etc/images/gud/step.xpm
diff --git a/lisp/toolbar/gud-si.pbm b/etc/images/gud/stepi.pbm
index eed55cc4a33..eed55cc4a33 100644
--- a/lisp/toolbar/gud-si.pbm
+++ b/etc/images/gud/stepi.pbm
Binary files differ
diff --git a/lisp/toolbar/gud-si.xpm b/etc/images/gud/stepi.xpm
index b20eb6243f7..b20eb6243f7 100644
--- a/lisp/toolbar/gud-si.xpm
+++ b/etc/images/gud/stepi.xpm
diff --git a/lisp/toolbar/gud-until.pbm b/etc/images/gud/until.pbm
index 096cacc6c17..096cacc6c17 100644
--- a/lisp/toolbar/gud-until.pbm
+++ b/etc/images/gud/until.pbm
Binary files differ
diff --git a/lisp/toolbar/gud-until.xpm b/etc/images/gud/until.xpm
index f82da6700b2..f82da6700b2 100644
--- a/lisp/toolbar/gud-until.xpm
+++ b/etc/images/gud/until.xpm
diff --git a/lisp/toolbar/gud-up.pbm b/etc/images/gud/up.pbm
index 585f488bac7..585f488bac7 100644
--- a/lisp/toolbar/gud-up.pbm
+++ b/etc/images/gud/up.pbm
Binary files differ
diff --git a/lisp/toolbar/gud-up.xpm b/etc/images/gud/up.xpm
index c2e4c9f8ff4..c2e4c9f8ff4 100644
--- a/lisp/toolbar/gud-up.xpm
+++ b/etc/images/gud/up.xpm
diff --git a/lisp/toolbar/gud-watch.pbm b/etc/images/gud/watch.pbm
index 223d4ebf8c7..223d4ebf8c7 100644
--- a/lisp/toolbar/gud-watch.pbm
+++ b/etc/images/gud/watch.pbm
Binary files differ
diff --git a/lisp/toolbar/gud-watch.xpm b/etc/images/gud/watch.xpm
index 52052212390..52052212390 100644
--- a/lisp/toolbar/gud-watch.xpm
+++ b/etc/images/gud/watch.xpm
diff --git a/lisp/toolbar/help.pbm b/etc/images/help.pbm
index 2575f6f2613..2575f6f2613 100644
--- a/lisp/toolbar/help.pbm
+++ b/etc/images/help.pbm
Binary files differ
diff --git a/lisp/toolbar/help.xpm b/etc/images/help.xpm
index 1d65ce03b53..1d65ce03b53 100644
--- a/lisp/toolbar/help.xpm
+++ b/etc/images/help.xpm
diff --git a/lisp/toolbar/home.pbm b/etc/images/home.pbm
index 5be84460652..5be84460652 100644
--- a/lisp/toolbar/home.pbm
+++ b/etc/images/home.pbm
Binary files differ
diff --git a/lisp/toolbar/home.xpm b/etc/images/home.xpm
index 57e8f9cc25a..57e8f9cc25a 100644
--- a/lisp/toolbar/home.xpm
+++ b/etc/images/home.xpm
diff --git a/lisp/toolbar/index.pbm b/etc/images/index.pbm
index d8aa08a7e53..d8aa08a7e53 100644
--- a/lisp/toolbar/index.pbm
+++ b/etc/images/index.pbm
Binary files differ
diff --git a/lisp/toolbar/index.xpm b/etc/images/index.xpm
index 7e1de12121b..7e1de12121b 100644
--- a/lisp/toolbar/index.xpm
+++ b/etc/images/index.xpm
diff --git a/lisp/toolbar/info.pbm b/etc/images/info.pbm
index 68bae42965b..68bae42965b 100644
--- a/lisp/toolbar/info.pbm
+++ b/etc/images/info.pbm
Binary files differ
diff --git a/lisp/toolbar/info.xpm b/etc/images/info.xpm
index bca0bf8e4fc..bca0bf8e4fc 100644
--- a/lisp/toolbar/info.xpm
+++ b/etc/images/info.xpm
diff --git a/lisp/toolbar/jump_to.pbm b/etc/images/jump-to.pbm
index 5f5921baf57..5f5921baf57 100644
--- a/lisp/toolbar/jump_to.pbm
+++ b/etc/images/jump-to.pbm
Binary files differ
diff --git a/lisp/toolbar/jump_to.xpm b/etc/images/jump-to.xpm
index 8f9897974ab..8f9897974ab 100644
--- a/lisp/toolbar/jump_to.xpm
+++ b/etc/images/jump-to.xpm
diff --git a/lisp/toolbar/left_arrow.pbm b/etc/images/left-arrow.pbm
index 56005e71c3f..56005e71c3f 100644
--- a/lisp/toolbar/left_arrow.pbm
+++ b/etc/images/left-arrow.pbm
Binary files differ
diff --git a/lisp/toolbar/left_arrow.xpm b/etc/images/left-arrow.xpm
index 586fe4489c0..586fe4489c0 100644
--- a/lisp/toolbar/left_arrow.xpm
+++ b/etc/images/left-arrow.xpm
diff --git a/lisp/toolbar/lc-back_arrow.xpm b/etc/images/low-color/back-arrow.xpm
index 05a797c7a65..05a797c7a65 100644
--- a/lisp/toolbar/lc-back_arrow.xpm
+++ b/etc/images/low-color/back-arrow.xpm
diff --git a/lisp/toolbar/lc-copy.xpm b/etc/images/low-color/copy.xpm
index f50fb51baf5..f50fb51baf5 100644
--- a/lisp/toolbar/lc-copy.xpm
+++ b/etc/images/low-color/copy.xpm
diff --git a/lisp/toolbar/lc-cut.xpm b/etc/images/low-color/cut.xpm
index 750ec729f60..750ec729f60 100644
--- a/lisp/toolbar/lc-cut.xpm
+++ b/etc/images/low-color/cut.xpm
diff --git a/lisp/toolbar/lc-fwd_arrow.xpm b/etc/images/low-color/fwd-arrow.xpm
index 284b8c9bee7..284b8c9bee7 100644
--- a/lisp/toolbar/lc-fwd_arrow.xpm
+++ b/etc/images/low-color/fwd-arrow.xpm
diff --git a/lisp/toolbar/lc-help.xpm b/etc/images/low-color/help.xpm
index 663460c3a06..663460c3a06 100644
--- a/lisp/toolbar/lc-help.xpm
+++ b/etc/images/low-color/help.xpm
diff --git a/lisp/toolbar/lc-home.xpm b/etc/images/low-color/home.xpm
index c7a7ecfb634..c7a7ecfb634 100644
--- a/lisp/toolbar/lc-home.xpm
+++ b/etc/images/low-color/home.xpm
diff --git a/lisp/toolbar/lc-index.xpm b/etc/images/low-color/index.xpm
index 7a2464f032b..7a2464f032b 100644
--- a/lisp/toolbar/lc-index.xpm
+++ b/etc/images/low-color/index.xpm
diff --git a/lisp/toolbar/lc-jump_to.xpm b/etc/images/low-color/jump-to.xpm
index cd7499396c7..cd7499396c7 100644
--- a/lisp/toolbar/lc-jump_to.xpm
+++ b/etc/images/low-color/jump-to.xpm
diff --git a/lisp/toolbar/lc-left_arrow.xpm b/etc/images/low-color/left-arrow.xpm
index 61dded3a5aa..61dded3a5aa 100644
--- a/lisp/toolbar/lc-left_arrow.xpm
+++ b/etc/images/low-color/left-arrow.xpm
diff --git a/lisp/toolbar/lc-new.xpm b/etc/images/low-color/new.xpm
index e2984bffd4f..e2984bffd4f 100644
--- a/lisp/toolbar/lc-new.xpm
+++ b/etc/images/low-color/new.xpm
diff --git a/lisp/toolbar/lc-open.xpm b/etc/images/low-color/open.xpm
index 0e074830bb6..0e074830bb6 100644
--- a/lisp/toolbar/lc-open.xpm
+++ b/etc/images/low-color/open.xpm
diff --git a/lisp/toolbar/lc-paste.xpm b/etc/images/low-color/paste.xpm
index c728f0f038c..c728f0f038c 100644
--- a/lisp/toolbar/lc-paste.xpm
+++ b/etc/images/low-color/paste.xpm
diff --git a/lisp/toolbar/lc-preferences.xpm b/etc/images/low-color/preferences.xpm
index cebac821d6e..cebac821d6e 100644
--- a/lisp/toolbar/lc-preferences.xpm
+++ b/etc/images/low-color/preferences.xpm
diff --git a/lisp/toolbar/lc-print.xpm b/etc/images/low-color/print.xpm
index 8c67bb632f0..8c67bb632f0 100644
--- a/lisp/toolbar/lc-print.xpm
+++ b/etc/images/low-color/print.xpm
diff --git a/lisp/toolbar/lc-right_arrow.xpm b/etc/images/low-color/right-arrow.xpm
index a74b70c74b3..a74b70c74b3 100644
--- a/lisp/toolbar/lc-right_arrow.xpm
+++ b/etc/images/low-color/right-arrow.xpm
diff --git a/lisp/toolbar/lc-save.xpm b/etc/images/low-color/save.xpm
index fd3156abfbf..fd3156abfbf 100644
--- a/lisp/toolbar/lc-save.xpm
+++ b/etc/images/low-color/save.xpm
diff --git a/lisp/toolbar/lc-saveas.xpm b/etc/images/low-color/saveas.xpm
index 11cc684c22d..11cc684c22d 100644
--- a/lisp/toolbar/lc-saveas.xpm
+++ b/etc/images/low-color/saveas.xpm
diff --git a/lisp/toolbar/lc-search.xpm b/etc/images/low-color/search.xpm
index 478b63ff648..478b63ff648 100644
--- a/lisp/toolbar/lc-search.xpm
+++ b/etc/images/low-color/search.xpm
diff --git a/lisp/toolbar/lc-spell.xpm b/etc/images/low-color/spell.xpm
index ec952467cc5..ec952467cc5 100644
--- a/lisp/toolbar/lc-spell.xpm
+++ b/etc/images/low-color/spell.xpm
diff --git a/lisp/toolbar/lc-undo.xpm b/etc/images/low-color/undo.xpm
index 8172fb2c951..8172fb2c951 100644
--- a/lisp/toolbar/lc-undo.xpm
+++ b/etc/images/low-color/undo.xpm
diff --git a/lisp/toolbar/lc-up_arrow.xpm b/etc/images/low-color/up-arrow.xpm
index ed4b7526015..ed4b7526015 100644
--- a/lisp/toolbar/lc-up_arrow.xpm
+++ b/etc/images/low-color/up-arrow.xpm
diff --git a/lisp/toolbar/mail.pbm b/etc/images/mail.pbm
index 744f38609e8..744f38609e8 100644
--- a/lisp/toolbar/mail.pbm
+++ b/etc/images/mail.pbm
Binary files differ
diff --git a/lisp/toolbar/mail.xpm b/etc/images/mail.xpm
index fc87e3a654a..fc87e3a654a 100644
--- a/lisp/toolbar/mail.xpm
+++ b/etc/images/mail.xpm
diff --git a/lisp/toolbar/mail_compose.pbm b/etc/images/mail/compose.pbm
index ca6328d27a5..ca6328d27a5 100644
--- a/lisp/toolbar/mail_compose.pbm
+++ b/etc/images/mail/compose.pbm
Binary files differ
diff --git a/lisp/toolbar/mail_compose.xpm b/etc/images/mail/compose.xpm
index 9fa4fa93706..9fa4fa93706 100644
--- a/lisp/toolbar/mail_compose.xpm
+++ b/etc/images/mail/compose.xpm
diff --git a/lisp/toolbar/mail_send.pbm b/etc/images/mail/send.pbm
index 36b60b7dbdd..36b60b7dbdd 100644
--- a/lisp/toolbar/mail_send.pbm
+++ b/etc/images/mail/send.pbm
Binary files differ
diff --git a/lisp/toolbar/mail_send.xpm b/etc/images/mail/send.xpm
index f1d2282ec8a..f1d2282ec8a 100644
--- a/lisp/toolbar/mail_send.xpm
+++ b/etc/images/mail/send.xpm
diff --git a/lisp/toolbar/new.pbm b/etc/images/new.pbm
index 1fae8c09eec..1fae8c09eec 100644
--- a/lisp/toolbar/new.pbm
+++ b/etc/images/new.pbm
Binary files differ
diff --git a/lisp/toolbar/new.xpm b/etc/images/new.xpm
index 2d4690edd3c..2d4690edd3c 100644
--- a/lisp/toolbar/new.xpm
+++ b/etc/images/new.xpm
diff --git a/lisp/toolbar/open.pbm b/etc/images/open.pbm
index 9c614e43f31..9c614e43f31 100644
--- a/lisp/toolbar/open.pbm
+++ b/etc/images/open.pbm
Binary files differ
diff --git a/lisp/toolbar/open.xpm b/etc/images/open.xpm
index 6b95c7e476d..6b95c7e476d 100644
--- a/lisp/toolbar/open.xpm
+++ b/etc/images/open.xpm
diff --git a/lisp/toolbar/paste.pbm b/etc/images/paste.pbm
index 17e3a82c0c6..17e3a82c0c6 100644
--- a/lisp/toolbar/paste.pbm
+++ b/etc/images/paste.pbm
Binary files differ
diff --git a/lisp/toolbar/paste.xpm b/etc/images/paste.xpm
index cdd86366d66..cdd86366d66 100644
--- a/lisp/toolbar/paste.xpm
+++ b/etc/images/paste.xpm
diff --git a/lisp/toolbar/preferences.pbm b/etc/images/preferences.pbm
index 00c7da36cdf..00c7da36cdf 100644
--- a/lisp/toolbar/preferences.pbm
+++ b/etc/images/preferences.pbm
Binary files differ
diff --git a/lisp/toolbar/preferences.xpm b/etc/images/preferences.xpm
index 3cdc884dd4d..3cdc884dd4d 100644
--- a/lisp/toolbar/preferences.xpm
+++ b/etc/images/preferences.xpm
diff --git a/lisp/toolbar/print.pbm b/etc/images/print.pbm
index a4ab55c2cd8..a4ab55c2cd8 100644
--- a/lisp/toolbar/print.pbm
+++ b/etc/images/print.pbm
Binary files differ
diff --git a/lisp/toolbar/print.xpm b/etc/images/print.xpm
index 95f2f400800..95f2f400800 100644
--- a/lisp/toolbar/print.xpm
+++ b/etc/images/print.xpm
diff --git a/lisp/toolbar/right_arrow.pbm b/etc/images/right-arrow.pbm
index cd32579c6bd..cd32579c6bd 100644
--- a/lisp/toolbar/right_arrow.pbm
+++ b/etc/images/right-arrow.pbm
Binary files differ
diff --git a/lisp/toolbar/right_arrow.xpm b/etc/images/right-arrow.xpm
index da8156879d6..da8156879d6 100644
--- a/lisp/toolbar/right_arrow.xpm
+++ b/etc/images/right-arrow.xpm
diff --git a/lisp/toolbar/save.pbm b/etc/images/save.pbm
index b69576096bf..b69576096bf 100644
--- a/lisp/toolbar/save.pbm
+++ b/etc/images/save.pbm
Binary files differ
diff --git a/lisp/toolbar/save.xpm b/etc/images/save.xpm
index cfa651dfaf3..cfa651dfaf3 100644
--- a/lisp/toolbar/save.xpm
+++ b/etc/images/save.xpm
diff --git a/lisp/toolbar/saveas.pbm b/etc/images/saveas.pbm
index 6bf6b8f25eb..6bf6b8f25eb 100644
--- a/lisp/toolbar/saveas.pbm
+++ b/etc/images/saveas.pbm
Binary files differ
diff --git a/lisp/toolbar/saveas.xpm b/etc/images/saveas.xpm
index 2830b06c928..2830b06c928 100644
--- a/lisp/toolbar/saveas.xpm
+++ b/etc/images/saveas.xpm
diff --git a/lisp/toolbar/search-replace.pbm b/etc/images/search-replace.pbm
index 3e444cf7bb6..3e444cf7bb6 100644
--- a/lisp/toolbar/search-replace.pbm
+++ b/etc/images/search-replace.pbm
Binary files differ
diff --git a/lisp/toolbar/search-replace.xpm b/etc/images/search-replace.xpm
index 597337f047a..597337f047a 100644
--- a/lisp/toolbar/search-replace.xpm
+++ b/etc/images/search-replace.xpm
diff --git a/lisp/toolbar/search.pbm b/etc/images/search.pbm
index 0e8a15e6a2e..0e8a15e6a2e 100644
--- a/lisp/toolbar/search.pbm
+++ b/etc/images/search.pbm
Binary files differ
diff --git a/lisp/toolbar/search.xpm b/etc/images/search.xpm
index ad6300528e9..ad6300528e9 100644
--- a/lisp/toolbar/search.xpm
+++ b/etc/images/search.xpm
diff --git a/lisp/toolbar/spell.pbm b/etc/images/spell.pbm
index 39a00c8946a..39a00c8946a 100644
--- a/lisp/toolbar/spell.pbm
+++ b/etc/images/spell.pbm
Binary files differ
diff --git a/lisp/toolbar/spell.xpm b/etc/images/spell.xpm
index b53f4510602..b53f4510602 100644
--- a/lisp/toolbar/spell.xpm
+++ b/etc/images/spell.xpm
diff --git a/lisp/toolbar/undo.pbm b/etc/images/undo.pbm
index 7f9b8975d2f..7f9b8975d2f 100644
--- a/lisp/toolbar/undo.pbm
+++ b/etc/images/undo.pbm
Binary files differ
diff --git a/lisp/toolbar/undo.xpm b/etc/images/undo.xpm
index ca5bd760937..ca5bd760937 100644
--- a/lisp/toolbar/undo.xpm
+++ b/etc/images/undo.xpm
diff --git a/lisp/toolbar/up_arrow.pbm b/etc/images/up-arrow.pbm
index 7c792bef796..7c792bef796 100644
--- a/lisp/toolbar/up_arrow.pbm
+++ b/etc/images/up-arrow.pbm
Binary files differ
diff --git a/lisp/toolbar/up_arrow.xpm b/etc/images/up-arrow.xpm
index 09963557d1b..09963557d1b 100644
--- a/lisp/toolbar/up_arrow.xpm
+++ b/etc/images/up-arrow.xpm
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 00c71e23aeb..da7c1765255 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,331 @@
12005-10-18 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * textmodes/conf-mode.el: Don't use font-lock-defaults-alist.
4 Various docstring and line-width fixups.
5 (conf-mode): Use cond.
6 Set font-lock-defaults. Don't set comment-use-syntax.
7
82005-10-18 David Ponce <david@dponce.com>
9
10 * tree-widget.el (tree-widget-button-click): New function.
11 (tree-widget-button-keymap): Use it.
12
132005-10-18 Romain Francoise <romain@orebokech.com>
14
15 * bookmark.el (bookmark-insert-location, bookmark-bmenu-list)
16 (bookmark-bmenu-hide-filenames): Add follow-link property.
17 Improve help-echo text.
18
19 * ffap.el (find-file-at-point): Doc fix.
20
212005-10-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
22
23 * mouse.el (mouse-set-region): Don't do sit-for on a mac frame.
24
252005-10-18 Masatake YAMATO <jet@gyve.org>
26
27 Install to the CVS repository what I forgot to install in my
28 2005-10-16 changes.
29
30 * progmodes/python.el (python-complete-symbol): Pass the common
31 prefix substring of completion to `display-completion-list'.
32
33 * textmodes/org.el (org-complete): Ditto.
34
352005-10-18 Masatake YAMATO <jet@gyve.org>
36
37 Fix a bug reported by Sven Joachim <sven_joachim@web.de>.
38
39 * woman.el (WoMan-xref-man-page): New button type derived
40 from `Man-abstract-xref-man-page'.
41 (woman-mode): Pass `WoMan-xref-man-page' to `Man-highlight-references'.
42
43 * man.el (Man-abstract-xref-man-page): New button type.
44 (Man-xref-man-page): Make it derived from `Man-abstract-xref-man-page'.
45 (Man-highlight-references): Add new optional argument `xref-man-type'.
46
472005-10-18 Nick Roberts <nickrob@snap.net.nz>
48
49 * progmodes/gud.el (gud-menu-map): Correct condition for fringe.
50
512005-10-17 Chong Yidong <cyd@stupidchicken.com>
52
53 * cus-edit.el (Custom-move-and-invoke): Delete.
54 (custom-mode-map): Bind mouse-1 to widget-move-and-invoke.
55
56 * wid-edit.el (widget-move-and-invoke): New function, from
57 Custom-move-and-invoke.
58
592005-10-17 Bill Wohler <wohler@newt.com>
60
61 Move all remaining images from lisp/toolbar to etc/images, move
62 lisp/toolbar/tool-bar to lisp and "delete" lisp/toolbar. Place
63 the low resolution images in their own directory (low-color).
64
65 * toolbar/attach.*, toolbar/cancel.*, toolbar/close.*,
66 * toolbar/copy.*, toolbar/cut.*, toolbar/diropen.*, toolbar/exit.*:
67 * toolbar/help.*, toolbar/home.*, toolbar/index.*, toolbar/info.*:
68 * toolbar/mail.*, toolbar/new.*, toolbar/open.*, toolbar/paste.*:
69 * toolbar/preferences.*, toolbar/print.*, toolbar/save.*:
70 * toolbar/saveas.*, toolbar/search.*, toolbar/search-replace.*:
71 * toolbar/spell.*, toolbar/undo.*: Move to etc/images.
72
73 * toolbar/lc-copy.*: Move to etc/images/low-color/copy.*.
74 * toolbar/lc-cut.*: Move to etc/images/low-color/cut.*.
75 * toolbar/lc-help.*: Move to etc/images/low-color/help.*.
76 * toolbar/lc-home.*: Move to etc/images/low-color/home.*.
77 * toolbar/lc-index.*: Move to etc/images/low-color/index.*.
78 * toolbar/lc-new.*: Move to etc/images/low-color/new.*.
79 * toolbar/lc-open.*: Move to etc/images/low-color/open.*.
80 * toolbar/lc-paste.*: Move to etc/images/low-color/paste.*.
81 * toolbar/lc-preferences.*: Move to etc/images/low-color/preferences.*.
82 * toolbar/lc-print.*: Move to etc/images/low-color/print.*.
83 * toolbar/lc-save.*: Move to etc/images/low-color/save.*.
84 * toolbar/lc-saveas.*: Move to etc/images/low-color/saveas.*.
85 * toolbar/lc-search.*: Move to etc/images/low-color/search.*.
86 * toolbar/lc-spell.*: Move to etc/images/low-color/spell.*.
87 * toolbar/lc-undo.*: Move to etc/images/low-color/undo.*.
88
89 To conform with convention, replace the underscore (_) in the
90 following image names with dash (-) or (/) as appropriate.
91
92 * toolbar/back_arrow.*: Move to etc/images/back-arrow.*.
93 * toolbar/fld_open.*: Move to etc/images/fld-open.*.
94 * toolbar/fwd_arrow.*: Move to etc/images/fwd-arrow.*.
95 * toolbar/jump_to.*: Move to etc/images/jump-to.*.
96 * toolbar/left_arrow.*: Move to etc/images/left-arrow.*.
97 * toolbar/right_arrow.*: Move to etc/images/right-arrow.*.
98 * toolbar/up_arrow.*: Move to etc/images/up-arrow.*.
99 * toolbar/lc-back_arrow.*: Move to etc/images/low-color/back-arrow.*.
100 * toolbar/lc-fwd_arrow.*: Move to etc/images/low-color/fwd-arrow.*.
101 * toolbar/lc-jump_to.*: Move to etc/images/low-color/jump-to.*.
102 * toolbar/lc-left_arrow.*: Move to etc/images/low-color/left-arrow.*.
103 * toolbar/lc-right_arrow.*: Move to etc/images/low-color/right-arrow.*.
104 * toolbar/lc-up_arrow.*: Move to etc/images/low-color/up-arrow.*.
105 * toolbar/mail_compose.*: Move to etc/images/mail/compose.*.
106 * toolbar/mail_send.*: Move to etc/images/mail/send.*.
107
108 * info.el (info-tool-bar-map): Replace underscores in image names
109 with dashes.
110
111 * makefile.w32-in (WINS): Remove toolbar.
112
113 * menu-bar.el: Replace toolbar/tool-bar.el with tool-bar.el in comment.
114
115 * tool-bar.el: Move to lisp from toolbar. Now that
116 toolbar is empty, it should be deleted when folks run "cvs up -P".
117
1182005-10-18 Jay Belanger <belanger@truman.edu>
119
120 * calc/calc-store (calc-store-into): Get the proper variable name
121 to display in message.
122
1232005-10-18 Nick Roberts <nickrob@snap.net.nz>
124
125 * progmodes/gdb-ui.el (gdb-var-create-handler): Make watch
126 expressions display in speedbar for all buffers when debugging.
127 (gdb-speedbar-expand-node): Ensure node contraction is always
128 updated.
129
130 * speedbar.el (speedbar-set-mode-line-format): Indent properly.
131 (speedbar-insert-button, speedbar-make-button):
132 Use add-text-properties.
133 (speedbar-update-localized-contents)
134 (speedbar-update-directory-contents)
135 (speedbar-update-special-contents): Use dolist.
136 (speedbar-buffer-easymenu-definition): Add a menu separator.
137
1382005-10-17 Jason Rumney <jasonr@gnu.org>
139
140 * makefile.w32-in: Use $(lisp) consistently.
141 (pre-mh-loaddefs.el-SH, pre-mh-loaddefs.el-CMD): New targets
142 for shell specific generation of mh-autoloads.
143
1442005-10-17 Richard M. Stallman <rms@gnu.org>
145
146 * textmodes/tex-mode.el (tex-font-lock-keywords-2): Undo prev change.
147
1482005-10-17 Stefan Monnier <monnier@iro.umontreal.ca>
149
150 * jit-lock.el (jit-lock-fontify-now):
151 Move jit-lock-context-unfontify-pos to avoid wasted work.
152
1532005-10-17 Michael Albinus <michael.albinus@gmx.de>
154
155 * net/tramp.el (tramp-completion-mode): New defvar. Used in
156 `tramp-completion-mode' for checking if we are in completion mode.
157 (tramp-completion-handle-file-name-all-completions): Reorder code
158 in order to complete for file names only in case there are no
159 method/user/host completions. This is necessary for cooperation
160 with ido. Reported by Kim F. Storm <storm@cua.dk>.
161
1622005-10-16 Chong Yidong <cyd@stupidchicken.com>
163
164 * longlines.el (longlines-search-forward)
165 (longlines-search-backward): Match any number of spaces.
166
1672005-10-16 Thien-Thi Nguyen <ttn@gnu.org>
168
169 * diff-mode.el (diff-mode): Doc fix.
170
1712005-10-16 David Reitter <david.reitter@gmail.com>
172
173 * mail/sendmail.el (send-mail-function): Use mailclient-send-it
174 as default on darwin and windows systems.
175
1762005-10-16 Sven Joachim <svenjoac@gmx.de> (tiny change)
177
178 * arc-mode.el (archive-zip-extract): Doc fix.
179
1802005-10-16 Romain Francoise <romain@orebokech.com>
181
182 * mouse.el (mouse-1-click-follows-link): Doc fix.
183
1842005-10-16 Stefan Monnier <monnier@iro.umontreal.ca>
185
186 * savehist.el: Don't require CL at runtime.
187 (savehist-xemacs): Remove.
188 (savehist-coding-system): Use utf-8 if present, regardless of religion.
189 (savehist-no-conversion): Use (featurep 'xemacs).
190 (savehist-load): Check existence of start-itimer rather than XEmacs.
191 Use an idle timer.
192 (savehist-process-for-saving): Replace use of CL funs `subseq' and
193 `delete-if-not'.
194
1952005-10-16 Hrvoje Niksic <hniksic@xemacs.org>
196
197 * savehist.el: Newer version.
198 (savehist-autosave-interval, savehist-coding-system, savehist-timer)
199 (savehist-last-checksum, savehist-no-conversion): New vars.
200 (savehist-autosave, savehist-process-for-saving, savehist-printable):
201 New functions.
202 (savehist-load, savehist-save): Use them.
203 (savehist-delimit): Remove.
204
2052005-10-16 Stefan Monnier <monnier@iro.umontreal.ca>
206
207 * progmodes/compile.el (compilation-goto-locus): Display the
208 compilation buffer first and the source buffer second, in case they're
209 in overlapping frames. Don't raise the compilation frame if it was the
210 selected window upon entry. Pass the `other-window' arg to
211 pop-to-buffer.
212
213 * info.el (Info-fontify-node): Use dolist.
214 Change add-text-properties to put-text-property.
215
2162005-10-16 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
217
218 * textmodes/bibtex.el (bibtex-font-lock-url): Catch when point past
219 bound of search.
220
2212005-10-16 Masatake YAMATO <jet@gyve.org>
222
223 * dabbrev.el (dabbrev-completion): Pass the common
224 prefix substring of completion to `display-completion-list'.
225
226 * filecache.el (file-cache-minibuffer-complete)
227 (file-cache-complete): Ditto.
228
229 * tempo.el (tempo-display-completions): Ditto.
230
231 * wid-edit.el (widget-file-complete, widget-color-complete): Ditto.
232
233 * emacs-lisp/lisp.el (lisp-complete-symbol): Ditto.
234
235 * eshell/em-hist.el (eshell-list-history): Ditto.
236
237 * mail/mailabbrev.el (mail-abbrev-complete-alias): Ditto.
238
239 * mail/mailalias.el (mail-complete): Ditto.
240
241 * progmodes/etags.el (complete-tag): Ditto.
242
243 * progmodes/make-mode.el (makefile-complete): Ditto.
244
245 * progmodes/meta-mode.el (meta-complete-symbol): Ditto.
246
247 * progmodes/octave-mod.el (octave-complete-symbol): Ditto.
248
249 * progmodes/pascal.el (pascal-complete-word)
250 (pascal-show-completions): Ditto.
251
252
253 * textmodes/bibtex.el (bibtex-complete-internal): Ditto.
254
255 * simple.el (completion-common-substring): New variable.
256 (completion-setup-function): Use `completion-common-substring'
257 to put faces.
258
2592005-10-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
260
261 * term/mac-win.el: Apply 2005-10-09 change for term/x-win.el.
262 (x-get-selection, mac-select-convert-to-string): Convert from/to
263 UTF-16 clipboard data as in native byte order, no BOM.
264
2652005-10-16 Nick Roberts <nickrob@snap.net.nz>
266
267 * progmodes/gud.el (gud-tool-bar-map): Rename the images
268 appropriately (gud/next, gud/nexti, gud/step, gud/stepi).
269 (gud-sentinel): Use speedbar-frame to check for speedbar.
270
2712005-10-15 Richard M. Stallman <rms@gnu.org>
272
273 * savehist.el: New file.
274
2752005-10-14 Karl Chen <quarl@cs.berkeley.edu>
276
277 * textmodes/tex-mode.el (tex-font-lock-keywords-2):
278 Fix bug in \bf fontification.
279
2802005-10-15 Stefan Monnier <monnier@iro.umontreal.ca>
281
282 * pcvs.el (cvs-edit-log-files): New var.
283 (cvs-mode-edit-log): New arg `file'.
284 (cvs-edit-log-minor-wrap): Don't set the ignore-marks property.
285 Instead force the use of the original file and nothing else.
286 (cvs-edit-log-filelist): Don't use the cvs-mode-* function unless
287 the cvs-minor-wrap-function is set.
288 (cvs-do-edit-log): Obey the vars set in cvs-edit-log-minor-wrap.
289
2902005-10-14 Bill Wohler <wohler@newt.com>
291
292 * toolbar/gud-break.*: Moved to etc/images/gud/break.*.
293 * toolbar/gud-cont.*: Moved to etc/images/gud/cont.*.
294 * toolbar/gud-down.*: Moved to etc/images/gud/down.*.
295 * toolbar/gud-finish.*: Moved to etc/images/gud/finish.*.
296 * toolbar/gud-ni.*: Moved to etc/images/gud/ni.*.
297 * toolbar/gud-n.*: Moved to etc/images/gud/n.*.
298 * toolbar/gud-print.*: Moved to etc/images/gud/print.*.
299 * toolbar/gud-pstar.*: Moved to etc/images/gud/pstar.*.
300 * toolbar/gud-remove.*: Moved to etc/images/gud/remove.*.
301 * toolbar/gud-run.*: Moved to etc/images/gud/run.*.
302 * toolbar/gud-si.*: Moved to etc/images/gud/si.*.
303 * toolbar/gud-s.*: Moved to etc/images/gud/s.*.
304 * toolbar/gud-until.*: Moved to etc/images/gud/until.*.
305 * toolbar/gud-up.*: Moved to etc/images/gud/up.*.
306 * toolbar/gud-watch.*: Moved to etc/images/gud/watch.*.
307
308 * progmodes/gud.el (gud-tool-bar-map): Rename the images
309 appropriately (for example, gud-break to gud/break).
310
3112005-10-14 Chong Yidong <cyd@stupidchicken.com>
312
313 * longlines.el (longlinges-search-function)
314 (longlines-search-forward, longlines-search-backward): New functions.
315 (longlines-mode): Set isearch-search-fun-function to
316 longlinges-search-function.
317
318 * mouse.el (mouse-drag-region-1): Handle the case where a
319 double-click event is bound to an arbitrary function.
320
3212005-10-14 David Ponce <david@dponce.com>
322
323 * recentf.el (recentf-track-opened-file)
324 (recentf-track-closed-file, recentf-update-menu)
325 (recentf-used-hooks, recentf-enabled-p): Move before dialog stuff.
326 (recentf-dialog-mode-map): Map follow-link to RET, so dialogs obey
327 mouse-1-click-follows-link.
328
12005-10-13 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 3292005-10-13 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2 330
3 * toolbar/diropen.xpm, toolbar/diropen.pbm: New versions made from 331 * toolbar/diropen.xpm, toolbar/diropen.pbm: New versions made from
@@ -26,6 +354,11 @@
26 Handle the case that ucs-mule-to-mule-unicode translates a character to 354 Handle the case that ucs-mule-to-mule-unicode translates a character to
27 ASCII (usually for IPA characters). 355 ASCII (usually for IPA characters).
28 356
3572005-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
358
359 * info.el (Info-fontify-node): Don't be fooled by a lone "...".
360 Don't hide the underline of titles if font-lock-mode is disabled.
361
292005-10-12 Bill Wohler <wohler@newt.com> 3622005-10-12 Bill Wohler <wohler@newt.com>
30 363
31 * makefile.w32-in (MH-E-SRC): New. Used by mh-autoloads. 364 * makefile.w32-in (MH-E-SRC): New. Used by mh-autoloads.
@@ -10071,8 +10404,8 @@
10071 minibuffer-with-setup-hook (which breaks turning on/off 10404 minibuffer-with-setup-hook (which breaks turning on/off
10072 file-name-shadow-mode while in the prompt). 10405 file-name-shadow-mode while in the prompt).
10073 10406
10074 * complete.el (PC-read-include-file-name-internal): Use 10407 * complete.el (PC-read-include-file-name-internal):
10075 test-completion. 10408 Use test-completion.
10076 10409
100772005-03-28 Luc Teirlinck <teirllm@auburn.edu> 104102005-03-28 Luc Teirlinck <teirllm@auburn.edu>
10078 10411
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index a29ec10d400..ae5ff9a4dbc 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -225,8 +225,7 @@ Archive and member name will be added."
225 '("unzip" "-qq" "-c")) 225 '("unzip" "-qq" "-c"))
226 "*Program and its options to run in order to extract a zip file member. 226 "*Program and its options to run in order to extract a zip file member.
227Extraction should happen to standard output. Archive and member name will 227Extraction should happen to standard output. Archive and member name will
228be added. If `archive-zip-use-pkzip' is non-nil then this program is 228be added."
229expected to extract to a file junking the directory part of the name."
230 :type '(list (string :tag "Program") 229 :type '(list (string :tag "Program")
231 (repeat :tag "Options" 230 (repeat :tag "Options"
232 :inline t 231 :inline t
diff --git a/lisp/bookmark.el b/lisp/bookmark.el
index 8014915a72e..75228288fff 100644
--- a/lisp/bookmark.el
+++ b/lisp/bookmark.el
@@ -1175,12 +1175,14 @@ minibuffer history list `bookmark-history'."
1175 (prog1 1175 (prog1
1176 (insert (bookmark-location bookmark)) ; *Return this line* 1176 (insert (bookmark-location bookmark)) ; *Return this line*
1177 (if (and (display-color-p) (display-mouse-p)) 1177 (if (and (display-color-p) (display-mouse-p))
1178 (add-text-properties start 1178 (add-text-properties
1179 (save-excursion (re-search-backward 1179 start
1180 "[^ \t]") 1180 (save-excursion (re-search-backward
1181 "[^ \t]")
1181 (1+ (point))) 1182 (1+ (point)))
1182 '(mouse-face highlight 1183 '(mouse-face highlight
1183 help-echo "mouse-2: go to this bookmark")))))) 1184 follow-link t
1185 help-echo "mouse-2: go to this bookmark in other window"))))))
1184 1186
1185;;;###autoload 1187;;;###autoload
1186(defalias 'bookmark-locate 'bookmark-insert-location) 1188(defalias 'bookmark-locate 'bookmark-insert-location)
@@ -1566,12 +1568,14 @@ deletion, or > if it is flagged for displaying."
1566 (let ((start (point))) 1568 (let ((start (point)))
1567 (insert (bookmark-name-from-full-record full-record)) 1569 (insert (bookmark-name-from-full-record full-record))
1568 (if (and (display-color-p) (display-mouse-p)) 1570 (if (and (display-color-p) (display-mouse-p))
1569 (add-text-properties start 1571 (add-text-properties
1570 (save-excursion (re-search-backward 1572 start
1571 "[^ \t]") 1573 (save-excursion (re-search-backward
1572 (1+ (point))) 1574 "[^ \t]")
1573 '(mouse-face highlight 1575 (1+ (point)))
1574 help-echo "mouse-2: go to this bookmark"))) 1576 '(mouse-face highlight
1577 follow-link t
1578 help-echo "mouse-2: go to this bookmark in other window")))
1575 (insert "\n") 1579 (insert "\n")
1576 ))) 1580 )))
1577 bookmark-alist)) 1581 bookmark-alist))
@@ -1695,13 +1699,15 @@ Optional argument SHOW means show them unconditionally."
1695 (let ((start (point))) 1699 (let ((start (point)))
1696 (insert (car bookmark-bmenu-hidden-bookmarks)) 1700 (insert (car bookmark-bmenu-hidden-bookmarks))
1697 (if (and (display-color-p) (display-mouse-p)) 1701 (if (and (display-color-p) (display-mouse-p))
1698 (add-text-properties start 1702 (add-text-properties
1699 (save-excursion (re-search-backward 1703 start
1700 "[^ \t]") 1704 (save-excursion (re-search-backward
1701 (1+ (point))) 1705 "[^ \t]")
1702 '(mouse-face highlight 1706 (1+ (point)))
1703 help-echo 1707 '(mouse-face highlight
1704 "mouse-2: go to this bookmark")))) 1708 follow-link t
1709 help-echo
1710 "mouse-2: go to this bookmark in other window"))))
1705 (setq bookmark-bmenu-hidden-bookmarks 1711 (setq bookmark-bmenu-hidden-bookmarks
1706 (cdr bookmark-bmenu-hidden-bookmarks)) 1712 (cdr bookmark-bmenu-hidden-bookmarks))
1707 (forward-line 1)))))))) 1713 (forward-line 1))))))))
diff --git a/lisp/calc/calc-store.el b/lisp/calc/calc-store.el
index 82c7077ba91..d6a37644cc7 100644
--- a/lisp/calc/calc-store.el
+++ b/lisp/calc/calc-store.el
@@ -71,7 +71,7 @@
71 (if (not (cdr var)) "") 71 (if (not (cdr var)) "")
72 (if (not (cdr var)) 1)))) 72 (if (not (cdr var)) 1))))
73 (message (concat "Stored to variable \"%s\"" msg) 73 (message (concat "Stored to variable \"%s\"" msg)
74 (calc-var-name var))) 74 (calc-var-name (car (car var)))))
75 (setq var (cdr var)))))))) 75 (setq var (cdr var))))))))
76 76
77(defun calc-store-plus (&optional var) 77(defun calc-store-plus (&optional var)
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 8f88e4d049c..696fd66543a 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -4245,20 +4245,10 @@ The format is suitable for use with `easy-menu-define'."
4245 (define-key map "u" 'Custom-goto-parent) 4245 (define-key map "u" 'Custom-goto-parent)
4246 (define-key map "n" 'widget-forward) 4246 (define-key map "n" 'widget-forward)
4247 (define-key map "p" 'widget-backward) 4247 (define-key map "p" 'widget-backward)
4248 (define-key map [mouse-1] 'Custom-move-and-invoke) 4248 (define-key map [mouse-1] 'widget-move-and-invoke)
4249 map) 4249 map)
4250 "Keymap for `custom-mode'.") 4250 "Keymap for `custom-mode'.")
4251 4251
4252(defun Custom-move-and-invoke (event)
4253 "Move to where you click, and if it is an active field, invoke it."
4254 (interactive "e")
4255 (mouse-set-point event)
4256 (if (widget-event-point event)
4257 (let* ((pos (widget-event-point event))
4258 (button (get-char-property pos 'button)))
4259 (if button
4260 (widget-button-click event)))))
4261
4262(easy-menu-define Custom-mode-menu 4252(easy-menu-define Custom-mode-menu
4263 custom-mode-map 4253 custom-mode-map
4264 "Menu used in customization buffers." 4254 "Menu used in customization buffers."
diff --git a/lisp/dabbrev.el b/lisp/dabbrev.el
index 2139e7c5761..b330f2b10d7 100644
--- a/lisp/dabbrev.el
+++ b/lisp/dabbrev.el
@@ -461,7 +461,8 @@ if there is a suitable one already."
461 ;; * String is a common substring completion already. Make list. 461 ;; * String is a common substring completion already. Make list.
462 (message "Making completion list...") 462 (message "Making completion list...")
463 (with-output-to-temp-buffer "*Completions*" 463 (with-output-to-temp-buffer "*Completions*"
464 (display-completion-list (all-completions init my-obarray))) 464 (display-completion-list (all-completions init my-obarray)
465 init))
465 (message "Making completion list...done"))) 466 (message "Making completion list...done")))
466 (and (window-minibuffer-p (selected-window)) 467 (and (window-minibuffer-p (selected-window))
467 (message nil)))) 468 (message nil))))
diff --git a/lisp/diff-mode.el b/lisp/diff-mode.el
index 09c3b6a8939..8f018185c98 100644
--- a/lisp/diff-mode.el
+++ b/lisp/diff-mode.el
@@ -967,7 +967,7 @@ If you edit the buffer manually, diff-mode will try to update the hunk
967headers for you on-the-fly. 967headers for you on-the-fly.
968 968
969You can also switch between context diff and unified diff with \\[diff-context->unified], 969You can also switch between context diff and unified diff with \\[diff-context->unified],
970or vice versa with \\[diff-unified->context] and you can also revert the direction of 970or vice versa with \\[diff-unified->context] and you can also reverse the direction of
971a diff with \\[diff-reverse-direction]." 971a diff with \\[diff-reverse-direction]."
972 (set (make-local-variable 'font-lock-defaults) diff-font-lock-defaults) 972 (set (make-local-variable 'font-lock-defaults) diff-font-lock-defaults)
973 (set (make-local-variable 'outline-regexp) diff-outline-regexp) 973 (set (make-local-variable 'outline-regexp) diff-outline-regexp)
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el
index d248882d882..4b799ebfedf 100644
--- a/lisp/emacs-lisp/lisp.el
+++ b/lisp/emacs-lisp/lisp.el
@@ -586,7 +586,7 @@ considered."
586 (setq list (cdr list))) 586 (setq list (cdr list)))
587 (setq list (nreverse new)))) 587 (setq list (nreverse new))))
588 (with-output-to-temp-buffer "*Completions*" 588 (with-output-to-temp-buffer "*Completions*"
589 (display-completion-list list))) 589 (display-completion-list list pattern)))
590 (message "Making completion list...%s" "done"))))))) 590 (message "Making completion list...%s" "done")))))))
591 591
592;;; arch-tag: aa7fa8a4-2e6f-4e9b-9cd9-fef06340e67e 592;;; arch-tag: aa7fa8a4-2e6f-4e9b-9cd9-fef06340e67e
diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el
index fd887e5fa86..e7844028542 100644
--- a/lisp/eshell/em-hist.el
+++ b/lisp/eshell/em-hist.el
@@ -507,7 +507,7 @@ See also `eshell-read-history'."
507 ;; Change "completion" to "history reference" 507 ;; Change "completion" to "history reference"
508 ;; to make the display accurate. 508 ;; to make the display accurate.
509 (with-output-to-temp-buffer history-buffer 509 (with-output-to-temp-buffer history-buffer
510 (display-completion-list history) 510 (display-completion-list history prefix)
511 (set-buffer history-buffer) 511 (set-buffer history-buffer)
512 (forward-line 3) 512 (forward-line 3)
513 (while (search-backward "completion" nil 'move) 513 (while (search-backward "completion" nil 'move)
diff --git a/lisp/ffap.el b/lisp/ffap.el
index d408918558a..6eb598d434d 100644
--- a/lisp/ffap.el
+++ b/lisp/ffap.el
@@ -1380,9 +1380,7 @@ If `ffap-url-regexp' is not nil, the FILENAME may also be an URL.
1380With a prefix, this command behaves exactly like `ffap-file-finder'. 1380With a prefix, this command behaves exactly like `ffap-file-finder'.
1381If `ffap-require-prefix' is set, the prefix meaning is reversed. 1381If `ffap-require-prefix' is set, the prefix meaning is reversed.
1382See also the variables `ffap-dired-wildcards', `ffap-newfile-prompt', 1382See also the variables `ffap-dired-wildcards', `ffap-newfile-prompt',
1383and the functions `ffap-file-at-point' and `ffap-url-at-point'. 1383and the functions `ffap-file-at-point' and `ffap-url-at-point'."
1384
1385See <ftp://ftp.mathcs.emory.edu/pub/mic/emacs/> for latest version."
1386 (interactive) 1384 (interactive)
1387 (if (and (interactive-p) 1385 (if (and (interactive-p)
1388 (if ffap-require-prefix (not current-prefix-arg) 1386 (if ffap-require-prefix (not current-prefix-arg)
diff --git a/lisp/filecache.el b/lisp/filecache.el
index bb45bb392f3..442f729dd15 100644
--- a/lisp/filecache.el
+++ b/lisp/filecache.el
@@ -607,7 +607,7 @@ the name is considered already unique; only the second substitution
607 completion-setup-hook))) 607 completion-setup-hook)))
608 ) 608 )
609 (with-output-to-temp-buffer file-cache-completions-buffer 609 (with-output-to-temp-buffer file-cache-completions-buffer
610 (display-completion-list completion-list)) 610 (display-completion-list completion-list string))
611 ) 611 )
612 ) 612 )
613 (setq file-cache-string (file-cache-file-name completion-string)) 613 (setq file-cache-string (file-cache-file-name completion-string))
@@ -700,7 +700,7 @@ the name is considered already unique; only the second substitution
700 ) 700 )
701 (t 701 (t
702 (with-output-to-temp-buffer "*Completions*" 702 (with-output-to-temp-buffer "*Completions*"
703 (display-completion-list all)) 703 (display-completion-list all pattern))
704 )) 704 ))
705 )) 705 ))
706 706
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 23e5564770f..04213b9fa45 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,19 @@
12005-10-17 Chong Yidong <cyd@stupidchicken.com>
2
3 * gnus-cus.el (gnus-custom-map): New variable. Bind mouse-1 to
4 widget-move-and-invoke.
5 (gnus-custom-mode): Use gnus-custom-map.
6
72005-10-15 Bill Wohler <wohler@newt.com>
8
9 * message.el (message-tool-bar-map): Renamed image file from
10 mail_send to mail/send.
11
122005-10-16 Masatake YAMATO <jet@gyve.org>
13
14 * message.el (message-expand-group): Pass the common
15 prefix substring of completion to `display-completion-list'.
16
12005-10-09 Daniel Brockman <daniel@brockman.se> 172005-10-09 Daniel Brockman <daniel@brockman.se>
2 18
3 * format-spec.el (format-spec): Propagate text properties of % spec. 19 * format-spec.el (format-spec): Propagate text properties of % spec.
@@ -21,6 +37,11 @@
21 * pgg-def.el (top-level): Don't require custom, it is 37 * pgg-def.el (top-level): Don't require custom, it is
22 autoloaded. (To sync with No Gnus.) 38 autoloaded. (To sync with No Gnus.)
23 39
402005-10-04 David Hansen <david.hansen@gmx.net>
41
42 * nnrss.el (nnrss-request-article): Add support for the comments tag.
43 (nnrss-check-group): Ditto.
44
242005-10-04 Reiner Steib <Reiner.Steib@gmx.de> 452005-10-04 Reiner Steib <Reiner.Steib@gmx.de>
25 46
26 * mm-url.el (mm-url-predefined-programs): Add switches for curl. 47 * mm-url.el (mm-url-predefined-programs): Add switches for curl.
diff --git a/lisp/gnus/gnus-cus.el b/lisp/gnus/gnus-cus.el
index f523af22750..df10c769315 100644
--- a/lisp/gnus/gnus-cus.el
+++ b/lisp/gnus/gnus-cus.el
@@ -36,6 +36,14 @@
36 36
37;;; Widgets: 37;;; Widgets:
38 38
39(defvar gnus-custom-map
40 (let ((map (make-keymap)))
41 (set-keymap-parent map widget-keymap)
42 (suppress-keymap map)
43 (define-key map [mouse-1] 'widget-move-and-invoke)
44 map)
45 "Keymap for editing Gnus customization buffers.")
46
39(defun gnus-custom-mode () 47(defun gnus-custom-mode ()
40 "Major mode for editing Gnus customization buffers. 48 "Major mode for editing Gnus customization buffers.
41 49
@@ -51,7 +59,7 @@ if that value is non-nil."
51 (kill-all-local-variables) 59 (kill-all-local-variables)
52 (setq major-mode 'gnus-custom-mode 60 (setq major-mode 'gnus-custom-mode
53 mode-name "Gnus Customize") 61 mode-name "Gnus Customize")
54 (use-local-map widget-keymap) 62 (use-local-map gnus-custom-map)
55 ;; Emacs 21 stuff: 63 ;; Emacs 21 stuff:
56 (when (and (facep 'custom-button-face) 64 (when (and (facep 'custom-button-face)
57 (facep 'custom-button-pressed-face)) 65 (facep 'custom-button-pressed-face))
@@ -479,7 +487,7 @@ form, but who cares?"
479 (widget-create 'sexp 487 (widget-create 'sexp
480 :tag "Method" 488 :tag "Method"
481 :value (gnus-info-method info)))) 489 :value (gnus-info-method info))))
482 (use-local-map widget-keymap) 490 (use-local-map gnus-custom-map)
483 (widget-setup) 491 (widget-setup)
484 (buffer-enable-undo) 492 (buffer-enable-undo)
485 (goto-char (point-min)))) 493 (goto-char (point-min))))
@@ -873,7 +881,7 @@ articles in the thread.
873 '(repeat :inline t 881 '(repeat :inline t
874 :tag "Unknown entries" 882 :tag "Unknown entries"
875 sexp))) 883 sexp)))
876 (use-local-map widget-keymap) 884 (use-local-map gnus-custom-map)
877 (widget-setup))) 885 (widget-setup)))
878 886
879(defun gnus-score-customize-done (&rest ignore) 887(defun gnus-score-customize-done (&rest ignore)
@@ -1050,7 +1058,7 @@ articles in the thread.
1050 1058
1051 (gnus-agent-cat-prepare-category-field agent-enable-undownloaded-faces) 1059 (gnus-agent-cat-prepare-category-field agent-enable-undownloaded-faces)
1052 1060
1053 (use-local-map widget-keymap) 1061 (use-local-map gnus-custom-map)
1054 (widget-setup) 1062 (widget-setup)
1055 (buffer-enable-undo)))) 1063 (buffer-enable-undo))))
1056 1064
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index d64d8dbd2bf..8ac3bb8cf18 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -6586,7 +6586,7 @@ which specify the range to operate on."
6586 write-file dired open-file)) 6586 write-file dired open-file))
6587 (define-key tool-bar-map (vector key) nil)) 6587 (define-key tool-bar-map (vector key) nil))
6588 (message-tool-bar-local-item-from-menu 6588 (message-tool-bar-local-item-from-menu
6589 'message-send-and-exit "mail_send" tool-bar-map message-mode-map) 6589 'message-send-and-exit "mail/send" tool-bar-map message-mode-map)
6590 (message-tool-bar-local-item-from-menu 6590 (message-tool-bar-local-item-from-menu
6591 'message-kill-buffer "close" tool-bar-map message-mode-map) 6591 'message-kill-buffer "close" tool-bar-map message-mode-map)
6592 (message-tool-bar-local-item-from-menu 6592 (message-tool-bar-local-item-from-menu
@@ -6691,7 +6691,7 @@ those headers."
6691 (let ((buffer-read-only nil)) 6691 (let ((buffer-read-only nil))
6692 (erase-buffer) 6692 (erase-buffer)
6693 (let ((standard-output (current-buffer))) 6693 (let ((standard-output (current-buffer)))
6694 (display-completion-list (sort completions 'string<))) 6694 (display-completion-list (sort completions 'string<) string))
6695 (goto-char (point-min)) 6695 (goto-char (point-min))
6696 (delete-region (point) (progn (forward-line 3) (point)))))))))) 6696 (delete-region (point) (progn (forward-line 3) (point))))))))))
6697 6697
diff --git a/lisp/gnus/nnrss.el b/lisp/gnus/nnrss.el
index 5018701ee42..adef035c830 100644
--- a/lisp/gnus/nnrss.el
+++ b/lisp/gnus/nnrss.el
@@ -197,6 +197,7 @@ for decoding when the cdr that the data specify is not available.")
197 " "))) 197 " ")))
198 (link (nth 2 e)) 198 (link (nth 2 e))
199 (enclosure (nth 7 e)) 199 (enclosure (nth 7 e))
200 (comments (nth 8 e))
200 ;; Enable encoding of Newsgroups header in XEmacs. 201 ;; Enable encoding of Newsgroups header in XEmacs.
201 (default-enable-multibyte-characters t) 202 (default-enable-multibyte-characters t)
202 (rfc2047-header-encoding-alist 203 (rfc2047-header-encoding-alist
@@ -205,7 +206,7 @@ for decoding when the cdr that the data specify is not available.")
205 rfc2047-header-encoding-alist) 206 rfc2047-header-encoding-alist)
206 rfc2047-header-encoding-alist)) 207 rfc2047-header-encoding-alist))
207 rfc2047-encode-encoded-words body) 208 rfc2047-encode-encoded-words body)
208 (when (or text link enclosure) 209 (when (or text link enclosure comments)
209 (insert "\n") 210 (insert "\n")
210 (insert "<#multipart type=alternative>\n" 211 (insert "<#multipart type=alternative>\n"
211 "<#part type=\"text/plain\">\n") 212 "<#part type=\"text/plain\">\n")
@@ -220,6 +221,8 @@ for decoding when the cdr that the data specify is not available.")
220 (insert (car enclosure) " " 221 (insert (car enclosure) " "
221 (nth 2 enclosure) " " 222 (nth 2 enclosure) " "
222 (nth 3 enclosure) "\n")) 223 (nth 3 enclosure) "\n"))
224 (when comments
225 (insert comments "\n"))
223 (setq body (buffer-substring body (point))) 226 (setq body (buffer-substring body (point)))
224 (insert "<#/part>\n" 227 (insert "<#/part>\n"
225 "<#part type=\"text/html\">\n" 228 "<#part type=\"text/html\">\n"
@@ -232,6 +235,8 @@ for decoding when the cdr that the data specify is not available.")
232 (insert "<p><a href=\"" (car enclosure) "\">" 235 (insert "<p><a href=\"" (car enclosure) "\">"
233 (cadr enclosure) "</a> " (nth 2 enclosure) 236 (cadr enclosure) "</a> " (nth 2 enclosure)
234 " " (nth 3 enclosure) "</p>\n")) 237 " " (nth 3 enclosure) "</p>\n"))
238 (when comments
239 (insert "<p><a href=\"" comments "\">comments</a></p>\n"))
235 (insert "</body></html>\n" 240 (insert "</body></html>\n"
236 "<#/part>\n" 241 "<#/part>\n"
237 "<#/multipart>\n")) 242 "<#/multipart>\n"))
@@ -528,7 +533,7 @@ nnrss: %s: Not valid XML %s and w3-parse doesn't work %s"
528 533
529(defun nnrss-check-group (group server) 534(defun nnrss-check-group (group server)
530 (let (file xml subject url extra changed author date 535 (let (file xml subject url extra changed author date
531 enclosure rss-ns rdf-ns content-ns dc-ns) 536 enclosure comments rss-ns rdf-ns content-ns dc-ns)
532 (if (and nnrss-use-local 537 (if (and nnrss-use-local
533 (file-exists-p (setq file (expand-file-name 538 (file-exists-p (setq file (expand-file-name
534 (nnrss-translate-file-chars 539 (nnrss-translate-file-chars
@@ -576,6 +581,7 @@ nnrss: %s: Not valid XML %s and w3-parse doesn't work %s"
576 (setq date (or (nnrss-node-text dc-ns 'date item) 581 (setq date (or (nnrss-node-text dc-ns 'date item)
577 (nnrss-node-text rss-ns 'pubDate item) 582 (nnrss-node-text rss-ns 'pubDate item)
578 (message-make-date))) 583 (message-make-date)))
584 (setq comments (nnrss-node-text rss-ns 'comments item))
579 (when (setq enclosure (cadr (assq (intern (concat rss-ns "enclosure")) item))) 585 (when (setq enclosure (cadr (assq (intern (concat rss-ns "enclosure")) item)))
580 (let ((url (cdr (assq 'url enclosure))) 586 (let ((url (cdr (assq 'url enclosure)))
581 (len (cdr (assq 'length enclosure))) 587 (len (cdr (assq 'length enclosure)))
@@ -606,7 +612,8 @@ nnrss: %s: Not valid XML %s and w3-parse doesn't work %s"
606 (and author (nnrss-mime-encode-string author)) 612 (and author (nnrss-mime-encode-string author))
607 date 613 date
608 (and extra (nnrss-decode-entities-string extra)) 614 (and extra (nnrss-decode-entities-string extra))
609 enclosure) 615 enclosure
616 comments)
610 nnrss-group-data) 617 nnrss-group-data)
611 (gnus-sethash (or url extra) t nnrss-group-hashtb) 618 (gnus-sethash (or url extra) t nnrss-group-hashtb)
612 (setq changed t)) 619 (setq changed t))
diff --git a/lisp/info.el b/lisp/info.el
index 5d86d0cb46e..6594d76fa03 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -3161,14 +3161,14 @@ if point is in a menu item description, follow that menu item."
3161 (if (display-graphic-p) 3161 (if (display-graphic-p)
3162 (let ((map (make-sparse-keymap))) 3162 (let ((map (make-sparse-keymap)))
3163 (tool-bar-local-item-from-menu 'Info-exit "close" map Info-mode-map) 3163 (tool-bar-local-item-from-menu 'Info-exit "close" map Info-mode-map)
3164 (tool-bar-local-item-from-menu 'Info-prev "left_arrow" map Info-mode-map) 3164 (tool-bar-local-item-from-menu 'Info-prev "left-arrow" map Info-mode-map)
3165 (tool-bar-local-item-from-menu 'Info-next "right_arrow" map Info-mode-map) 3165 (tool-bar-local-item-from-menu 'Info-next "right-arrow" map Info-mode-map)
3166 (tool-bar-local-item-from-menu 'Info-up "up_arrow" map Info-mode-map) 3166 (tool-bar-local-item-from-menu 'Info-up "up-arrow" map Info-mode-map)
3167 (tool-bar-local-item-from-menu 'Info-history-back "back_arrow" map Info-mode-map) 3167 (tool-bar-local-item-from-menu 'Info-history-back "back-arrow" map Info-mode-map)
3168 (tool-bar-local-item-from-menu 'Info-history-forward "fwd_arrow" map Info-mode-map) 3168 (tool-bar-local-item-from-menu 'Info-history-forward "fwd-arrow" map Info-mode-map)
3169 (tool-bar-local-item-from-menu 'Info-top-node "home" map Info-mode-map) 3169 (tool-bar-local-item-from-menu 'Info-top-node "home" map Info-mode-map)
3170 (tool-bar-local-item-from-menu 'Info-index "index" map Info-mode-map) 3170 (tool-bar-local-item-from-menu 'Info-index "index" map Info-mode-map)
3171 (tool-bar-local-item-from-menu 'Info-goto-node "jump_to" map Info-mode-map) 3171 (tool-bar-local-item-from-menu 'Info-goto-node "jump-to" map Info-mode-map)
3172 (tool-bar-local-item-from-menu 'Info-search "search" map Info-mode-map) 3172 (tool-bar-local-item-from-menu 'Info-search "search" map Info-mode-map)
3173 map))) 3173 map)))
3174 3174
@@ -3847,17 +3847,15 @@ the variable `Info-file-list-for-emacs'."
3847 (paragraph-separate ".*\\.[ \t]*\n[ \t]\\|[ \t]*[-*]\\|[ \t\f]*$") 3847 (paragraph-separate ".*\\.[ \t]*\n[ \t]\\|[ \t]*[-*]\\|[ \t\f]*$")
3848 (adaptive-fill-mode nil)) 3848 (adaptive-fill-mode nil))
3849 (goto-char (point-max)) 3849 (goto-char (point-max))
3850 (while paragraph-markers 3850 (dolist (m paragraph-markers)
3851 (let ((m (car paragraph-markers))) 3851 (when (< m (point))
3852 (setq paragraph-markers (cdr paragraph-markers)) 3852 (goto-char m)
3853 (when (< m (point)) 3853 (beginning-of-line)
3854 (goto-char m) 3854 (let ((beg (point)))
3855 (beginning-of-line) 3855 (when (zerop (forward-paragraph))
3856 (let ((beg (point))) 3856 (fill-individual-paragraphs beg (point) nil nil)
3857 (when (zerop (forward-paragraph)) 3857 (goto-char beg))))
3858 (fill-individual-paragraphs beg (point) nil nil) 3858 (set-marker m nil))))
3859 (goto-char beg))))
3860 (set-marker m nil)))))
3861 3859
3862 ;; Fontify menu items 3860 ;; Fontify menu items
3863 (goto-char (point-min)) 3861 (goto-char (point-min))
@@ -3889,33 +3887,32 @@ the variable `Info-file-list-for-emacs'."
3889 "mouse-2: go to this node") 3887 "mouse-2: go to this node")
3890 'mouse-face 'highlight))) 3888 'mouse-face 'highlight)))
3891 (when (or not-fontified-p fontify-visited-p) 3889 (when (or not-fontified-p fontify-visited-p)
3892 (add-text-properties 3890 (put-text-property
3893 (match-beginning 1) (match-end 1) 3891 (match-beginning 1) (match-end 1)
3894 (list 3892 'font-lock-face
3895 'font-lock-face 3893 ;; Display visited menu items in a different face
3896 ;; Display visited menu items in a different face 3894 (if (and Info-fontify-visited-nodes
3897 (if (and Info-fontify-visited-nodes 3895 (save-match-data
3898 (save-match-data 3896 (let ((node (if (equal (match-string 3) "")
3899 (let ((node (if (equal (match-string 3) "") 3897 (match-string 1)
3900 (match-string 1) 3898 (match-string 3)))
3901 (match-string 3))) 3899 (file (file-name-nondirectory Info-current-file))
3902 (file (file-name-nondirectory Info-current-file)) 3900 (hl Info-history-list)
3903 (hl Info-history-list) 3901 res)
3904 res) 3902 (if (string-match "(\\([^)]+\\))\\([^)]*\\)" node)
3905 (if (string-match "(\\([^)]+\\))\\([^)]*\\)" node) 3903 (setq file (file-name-nondirectory
3906 (setq file (file-name-nondirectory 3904 (match-string 1 node))
3907 (match-string 1 node)) 3905 node (if (equal (match-string 2 node) "")
3908 node (if (equal (match-string 2 node) "") 3906 "Top"
3909 "Top" 3907 (match-string 2 node))))
3910 (match-string 2 node)))) 3908 (while hl
3911 (while hl 3909 (if (and (string-equal node (nth 1 (car hl)))
3912 (if (and (string-equal node (nth 1 (car hl))) 3910 (string-equal file
3913 (string-equal file 3911 (file-name-nondirectory
3914 (file-name-nondirectory 3912 (nth 0 (car hl)))))
3915 (nth 0 (car hl))))) 3913 (setq res (car hl) hl nil)
3916 (setq res (car hl) hl nil) 3914 (setq hl (cdr hl))))
3917 (setq hl (cdr hl)))) 3915 res))) 'info-xref-visited 'info-xref)))
3918 res))) 'info-xref-visited 'info-xref))))
3919 (when (and not-fontified-p (memq Info-hide-note-references '(t hide))) 3916 (when (and not-fontified-p (memq Info-hide-note-references '(t hide)))
3920 (put-text-property (match-beginning 2) (1- (match-end 6)) 3917 (put-text-property (match-beginning 2) (1- (match-end 6))
3921 'invisible t) 3918 'invisible t)
diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el
index 2f8fcba91d1..b76c675cba4 100644
--- a/lisp/jit-lock.el
+++ b/lisp/jit-lock.el
@@ -349,6 +349,13 @@ Defaults to the whole buffer. END can be out of bounds."
349 (goto-char next) (setq next (line-beginning-position 2)) 349 (goto-char next) (setq next (line-beginning-position 2))
350 (goto-char start) (setq start (line-beginning-position)) 350 (goto-char start) (setq start (line-beginning-position))
351 351
352 ;; Make sure the contextual refontification doesn't re-refontify
353 ;; what's already been refontified.
354 (when (and jit-lock-context-unfontify-pos
355 (< jit-lock-context-unfontify-pos next)
356 (>= jit-lock-context-unfontify-pos start))
357 (setq jit-lock-context-unfontify-pos next))
358
352 ;; Fontify the chunk, and mark it as fontified. 359 ;; Fontify the chunk, and mark it as fontified.
353 ;; We mark it first, to make sure that we don't indefinitely 360 ;; We mark it first, to make sure that we don't indefinitely
354 ;; re-execute this fontification if an error occurs. 361 ;; re-execute this fontification if an error occurs.
@@ -566,9 +573,14 @@ will take place when text is fontified stealthily."
566 ;; Mark the change for deferred contextual refontification. 573 ;; Mark the change for deferred contextual refontification.
567 (when jit-lock-context-unfontify-pos 574 (when jit-lock-context-unfontify-pos
568 (setq jit-lock-context-unfontify-pos 575 (setq jit-lock-context-unfontify-pos
576 ;; Here we use `start' because nothing guarantees that the
577 ;; text between start and end will be otherwise refontified:
578 ;; usually it will be refontified by virtue of being
579 ;; displayed, but if it's outside of any displayed area in the
580 ;; buffer, only jit-lock-context-* will re-fontify it.
569 (min jit-lock-context-unfontify-pos start)))))) 581 (min jit-lock-context-unfontify-pos start))))))
570 582
571(provide 'jit-lock) 583(provide 'jit-lock)
572 584
573;;; arch-tag: 56b5de6e-f581-453b-bb97-49c39372ff9e 585;; arch-tag: 56b5de6e-f581-453b-bb97-49c39372ff9e
574;;; jit-lock.el ends here 586;;; jit-lock.el ends here
diff --git a/lisp/longlines.el b/lisp/longlines.el
index 6ce5dfaebc4..00a2782d0a3 100644
--- a/lisp/longlines.el
+++ b/lisp/longlines.el
@@ -109,6 +109,8 @@ are indicated with a symbol."
109 (add-to-list 'buffer-file-format 'longlines) 109 (add-to-list 'buffer-file-format 'longlines)
110 (add-hook 'change-major-mode-hook 'longlines-mode-off nil t) 110 (add-hook 'change-major-mode-hook 'longlines-mode-off nil t)
111 (make-local-variable 'buffer-substring-filters) 111 (make-local-variable 'buffer-substring-filters)
112 (set (make-local-variable 'isearch-search-fun-function)
113 'longlinges-search-function)
112 (add-to-list 'buffer-substring-filters 'longlines-encode-string) 114 (add-to-list 'buffer-substring-filters 'longlines-encode-string)
113 (when longlines-wrap-follows-window-size 115 (when longlines-wrap-follows-window-size
114 (set (make-local-variable 'fill-column) 116 (set (make-local-variable 'fill-column)
@@ -148,6 +150,7 @@ are indicated with a symbol."
148 'longlines-window-change-function t) 150 'longlines-window-change-function t)
149 (when longlines-wrap-follows-window-size 151 (when longlines-wrap-follows-window-size
150 (kill-local-variable 'fill-column)) 152 (kill-local-variable 'fill-column))
153 (kill-local-variable 'isearch-search-fun-function)
151 (kill-local-variable 'require-final-newline) 154 (kill-local-variable 'require-final-newline)
152 (kill-local-variable 'buffer-substring-filters) 155 (kill-local-variable 'buffer-substring-filters)
153 (kill-local-variable 'use-hard-newlines))) 156 (kill-local-variable 'use-hard-newlines)))
@@ -381,6 +384,27 @@ This is called by `window-size-change-functions'."
381 (longlines-wrap-region (point-min) (point-max)) 384 (longlines-wrap-region (point-min) (point-max))
382 (set-buffer-modified-p mod)))) 385 (set-buffer-modified-p mod))))
383 386
387;; Isearch
388
389(defun longlinges-search-function ()
390 (cond
391 (isearch-word
392 (if isearch-forward 'word-search-forward 'word-search-backward))
393 (isearch-regexp
394 (if isearch-forward 're-search-forward 're-search-backward))
395 (t
396 (if isearch-forward
397 'longlines-search-forward
398 'longlines-search-backward))))
399
400(defun longlines-search-forward (string &optional bound noerror count)
401 (let ((search-spaces-regexp "[ \n]+"))
402 (re-search-forward (regexp-quote string) bound noerror count)))
403
404(defun longlines-search-backward (string &optional bound noerror count)
405 (let ((search-spaces-regexp "[ \n]+"))
406 (re-search-backward (regexp-quote string) bound noerror count)))
407
384;; Loading and saving 408;; Loading and saving
385 409
386(add-to-list 410(add-to-list
diff --git a/lisp/mail/mailabbrev.el b/lisp/mail/mailabbrev.el
index 06af543b4da..587b7d0187e 100644
--- a/lisp/mail/mailabbrev.el
+++ b/lisp/mail/mailabbrev.el
@@ -587,7 +587,8 @@ of a mail alias. The value is set up, buffer-local, when first needed.")
587 (prog2 587 (prog2
588 (message "Making completion list...") 588 (message "Making completion list...")
589 (all-completions alias mail-abbrevs) 589 (all-completions alias mail-abbrevs)
590 (message "Making completion list...done")))))))) 590 (message "Making completion list...done"))
591 alias))))))
591 592
592(defun mail-abbrev-next-line (&optional arg) 593(defun mail-abbrev-next-line (&optional arg)
593 "Expand any mail abbrev, then move cursor vertically down ARG lines. 594 "Expand any mail abbrev, then move cursor vertically down ARG lines.
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el
index f7c62026d80..81afe688c10 100644
--- a/lisp/mail/sendmail.el
+++ b/lisp/mail/sendmail.el
@@ -120,7 +120,10 @@ nil means let mailer mail back a message to report errors."
120 120
121;; Useful to set in site-init.el 121;; Useful to set in site-init.el
122;;;###autoload 122;;;###autoload
123(defcustom send-mail-function 'sendmail-send-it 123(defcustom send-mail-function
124 (if (and window-system (memq system-type '(darwin windows-nt)))
125 'mailclient-send-it
126 'sendmail-send-it)
124 "Function to call to send the current buffer as mail. 127 "Function to call to send the current buffer as mail.
125The headers should be delimited by a line which is 128The headers should be delimited by a line which is
126not a valid RFC822 header or continuation line, 129not a valid RFC822 header or continuation line,
diff --git a/lisp/makefile.w32-in b/lisp/makefile.w32-in
index df92500a006..d909c909b10 100644
--- a/lisp/makefile.w32-in
+++ b/lisp/makefile.w32-in
@@ -91,14 +91,13 @@ WINS=\
91 progmodes \ 91 progmodes \
92 term \ 92 term \
93 textmodes \ 93 textmodes \
94 toolbar \
95 url 94 url
96 95
97doit: 96doit:
98 97
99cus-load.el: 98$(lisp)/cus-load.el:
100 touch $@ 99 touch $@
101custom-deps: cus-load.el doit 100custom-deps: $(lisp)/cus-load.el doit
102 @echo Directories: $(WINS) 101 @echo Directories: $(WINS)
103 -$(emacs) -l cus-dep --eval $(ARGQUOTE)(setq find-file-hook nil)$(ARGQUOTE) -f custom-make-dependencies $(lisp) $(WINS) 102 -$(emacs) -l cus-dep --eval $(ARGQUOTE)(setq find-file-hook nil)$(ARGQUOTE) -f custom-make-dependencies $(lisp) $(WINS)
104 103
@@ -106,7 +105,7 @@ finder-data: doit
106 @echo Directories: $(WINS) 105 @echo Directories: $(WINS)
107 $(emacs) -l finder -f finder-compile-keywords-make-dist $(lisp) $(WINS) 106 $(emacs) -l finder -f finder-compile-keywords-make-dist $(lisp) $(WINS)
108 107
109loaddefs.el: 108$(lisp)/loaddefs.el:
110 $(MAKE) $(MFLAGS) loaddefs.el-$(SHELLTYPE) 109 $(MAKE) $(MFLAGS) loaddefs.el-$(SHELLTYPE)
111 cp loaddefs.el-$(SHELLTYPE) $@ 110 cp loaddefs.el-$(SHELLTYPE) $@
112 rm loaddefs.el-$(SHELLTYPE) 111 rm loaddefs.el-$(SHELLTYPE)
@@ -139,7 +138,7 @@ loaddefs.el-CMD:
139 echo (autoload 'define-derived-mode "derived")>> $@ 138 echo (autoload 'define-derived-mode "derived")>> $@
140 echo (autoload 'encoded-kbd-mode "encoded-kb")>> $@ 139 echo (autoload 'encoded-kbd-mode "encoded-kb")>> $@
141 echo (defvar cvs-global-menu nil)>> $@ 140 echo (defvar cvs-global-menu nil)>> $@
142 echo ;;; >> $@ 141 echo. >> $@
143 echo ;;; Local Variables:>> $@ 142 echo ;;; Local Variables:>> $@
144 echo ;;; version-control: never>> $@ 143 echo ;;; version-control: never>> $@
145 echo ;;; no-byte-compile: t>> $@ 144 echo ;;; no-byte-compile: t>> $@
@@ -147,7 +146,7 @@ loaddefs.el-CMD:
147 echo ;;; End:>> $@ 146 echo ;;; End:>> $@
148 echo ;;; loaddefs.el ends here>> $@ 147 echo ;;; loaddefs.el ends here>> $@
149 148
150autoloads: loaddefs.el doit 149autoloads: $(lisp)/loaddefs.el doit
151 @echo Directories: $(WINS) 150 @echo Directories: $(WINS)
152 $(emacs) -l autoload \ 151 $(emacs) -l autoload \
153 --eval $(ARGQUOTE)(setq find-file-hook nil \ 152 --eval $(ARGQUOTE)(setq find-file-hook nil \
@@ -156,19 +155,19 @@ autoloads: loaddefs.el doit
156 $(DQUOTE)$(lisp)/loaddefs.el$(DQUOTE))$(ARGQUOTE) \ 155 $(DQUOTE)$(lisp)/loaddefs.el$(DQUOTE))$(ARGQUOTE) \
157 -f batch-update-autoloads $(lisp) $(WINS) 156 -f batch-update-autoloads $(lisp) $(WINS)
158 157
159subdirs.el: 158$(lisp)/subdirs.el:
160 $(MAKE) $(MFLAGS) update-subdirs 159 $(MAKE) $(MFLAGS) update-subdirs
161 160
162# Need separate version for sh and native cmd.exe 161# Need separate version for sh and native cmd.exe
163update-subdirs: update-subdirs-$(SHELLTYPE) 162update-subdirs: update-subdirs-$(SHELLTYPE)
164 163
165update-subdirs-CMD: doit 164update-subdirs-CMD: doit
166 echo ;; -*- no-byte-compile: t -*->subdirs.el 165 echo ;; -*- no-byte-compile: t -*-> $(lisp)/subdirs.el
167 echo ;; In load-path, after this directory should come>> subdirs.el 166 echo ;; In load-path, after this directory should come>> $(lisp)/subdirs.el
168 echo ;; certain of its subdirectories. Here we specify them.>> subdirs.el 167 echo ;; certain of its subdirectories. Here we specify them.>> $(lisp)/subdirs.el
169 echo (normal-top-level-add-to-load-path $(SQUOTE)(>> subdirs.el 168 echo (normal-top-level-add-to-load-path $(SQUOTE)(>> $(lisp)/subdirs.el
170 @for %%d in ($(WINS)) do if not (%%d)==(term) echo "%%d">> subdirs.el 169 @for %%d in ($(WINS)) do if not (%%d)==(term) echo "%%d">> $(lisp)/subdirs.el
171 echo ))>> subdirs.el 170 echo ))>> $(lisp)/subdirs.el
172 171
173update-subdirs-SH: doit 172update-subdirs-SH: doit
174 $(srcdir)/update-subdirs $(lisp); \ 173 $(srcdir)/update-subdirs $(lisp); \
@@ -207,7 +206,7 @@ TAGS-LISP: $(lisptagsfiles1) $(lisptagsfiles2)
207# compiled find the right files. 206# compiled find the right files.
208 207
209# Need separate version for sh and native cmd.exe 208# Need separate version for sh and native cmd.exe
210compile: subdirs.el mh-autoloads compile-$(SHELLTYPE) doit 209compile: $(lisp)/subdirs.el mh-autoloads compile-$(SHELLTYPE) doit
211 210
212compile-CMD: 211compile-CMD:
213# -for %%f in ($(lisp) $(WINS)) do for %%g in (%%f\*.elc) do @attrib -r %%g 212# -for %%f in ($(lisp) $(WINS)) do for %%g in (%%f\*.elc) do @attrib -r %%g
@@ -236,7 +235,7 @@ compile-SH:
236# unconditionally. Some files don't actually get compiled because they 235# unconditionally. Some files don't actually get compiled because they
237# set the local variable no-byte-compile. 236# set the local variable no-byte-compile.
238 237
239compile-always: subdirs.el compile-always-$(SHELLTYPE) doit 238compile-always: $(lisp)/subdirs.el compile-always-$(SHELLTYPE) doit
240 239
241compile-always-CMD: 240compile-always-CMD:
242# -for %%f in ($(lisp) $(WINS)) do for %%g in (%%f\*.elc) do @attrib -r %%g 241# -for %%f in ($(lisp) $(WINS)) do for %%g in (%%f\*.elc) do @attrib -r %%g
@@ -300,6 +299,17 @@ MH_E_SRC = $(lisp)/mh-e/mh-acros.el $(lisp)/mh-e/mh-alias.el \
300 299
301mh-autoloads: $(lisp)/mh-e/mh-loaddefs.el 300mh-autoloads: $(lisp)/mh-e/mh-loaddefs.el
302$(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC) 301$(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC)
302 $(MAKE) $(MFLAGS) pre-mh-loaddefs.el-$(SHELLTYPE)
303 cp pre-mh-loaddefs.el-$(SHELLTYPE) $@
304 rm pre-mh-loaddefs.el-$(SHELLTYPE)
305 $(EMACS) $(EMACSOPT) \
306 -l autoload \
307 --eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \
308 --eval "(setq generated-autoload-file \"$(lisp)/mh-e/mh-loaddefs.el\")" \
309 --eval "(setq make-backup-files nil)" \
310 -f batch-update-autoloads $(lisp)/mh-e
311
312pre-mh-loaddefs.el-SH:
303 echo ";;; mh-loaddefs.el --- automatically extracted autoloads" > $@ 313 echo ";;; mh-loaddefs.el --- automatically extracted autoloads" > $@
304 echo ";;" >> $@ 314 echo ";;" >> $@
305 echo ";;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc." >> $@ 315 echo ";;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc." >> $@
@@ -308,12 +318,6 @@ $(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC)
308 echo ";;; Commentary:" >> $@ 318 echo ";;; Commentary:" >> $@
309 echo ";;; Change Log:" >> $@ 319 echo ";;; Change Log:" >> $@
310 echo ";;; Code:" >> $@ 320 echo ";;; Code:" >> $@
311 $(EMACS) $(EMACSOPT) \
312 -l autoload \
313 --eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \
314 --eval "(setq generated-autoload-file \"$(lisp)/mh-e/mh-loaddefs.el\")" \
315 --eval "(setq make-backup-files nil)" \
316 -f batch-update-autoloads $(lisp)/mh-e
317 echo " " >> $@ 321 echo " " >> $@
318 echo "(provide 'mh-loaddefs)" >> $@ 322 echo "(provide 'mh-loaddefs)" >> $@
319 echo ";;; Local Variables:" >> $@ 323 echo ";;; Local Variables:" >> $@
@@ -323,6 +327,24 @@ $(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC)
323 echo ";;; End:" >> $@ 327 echo ";;; End:" >> $@
324 echo ";;; mh-loaddefs.el ends here" >> $@ 328 echo ";;; mh-loaddefs.el ends here" >> $@
325 329
330pre-mh-loaddefs.el-CMD:
331 echo ;;; mh-loaddefs.el --- automatically extracted autoloads> $@
332 echo ;;>> $@
333 echo ;;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.>> $@
334 echo ;;; Author: Bill Wohler (wohler@newt.com)>> $@
335 echo ;;; Keywords: mail>> $@
336 echo ;;; Commentary:>> $@
337 echo ;;; Change Log:>> $@
338 echo ;;; Code:>> $@
339 echo. >> $@
340 echo (provide 'mh-loaddefs)>> $@
341 echo ;;; Local Variables:>> $@
342 echo ;;; version-control: never>> $@
343 echo ;;; no-byte-compile: t>> $@
344 echo ;;; no-update-autoloads: t>> $@
345 echo ;;; End:>> $@
346 echo ;;; mh-loaddefs.el ends here>> $@
347
326# Prepare a bootstrap in the lisp subdirectory. 348# Prepare a bootstrap in the lisp subdirectory.
327# 349#
328# Build loaddefs.el to make sure it's up-to-date. If it's not, that 350# Build loaddefs.el to make sure it's up-to-date. If it's not, that
@@ -337,7 +359,7 @@ $(lisp)/mh-e/mh-loaddefs.el: $(MH_E_SRC)
337# sources only. 359# sources only.
338 360
339# Need separate version for sh and native cmd.exe 361# Need separate version for sh and native cmd.exe
340bootstrap-clean: bootstrap-clean-$(SHELLTYPE) loaddefs.el 362bootstrap-clean: bootstrap-clean-$(SHELLTYPE) $(lisp)/loaddefs.el
341 363
342bootstrap-clean-CMD: 364bootstrap-clean-CMD:
343# if exist $(EMACS) $(MAKE) $(MFLAGS) autoloads 365# if exist $(EMACS) $(MAKE) $(MFLAGS) autoloads
diff --git a/lisp/man.el b/lisp/man.el
index 6c8a5a18b44..c54a00d3663 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -415,10 +415,18 @@ Otherwise, the value is whatever the function
415 (define-key Man-mode-map "?" 'describe-mode)) 415 (define-key Man-mode-map "?" 'describe-mode))
416 416
417;; buttons 417;; buttons
418(define-button-type 'Man-xref-man-page 418(define-button-type 'Man-abstract-xref-man-page
419 'action (lambda (button) (man-follow (button-label button)))
420 'follow-link t 419 'follow-link t
421 'help-echo "mouse-2, RET: display this man page") 420 'help-echo "mouse-2, RET: display this man page"
421 'func nil
422 'action (lambda (button) (funcall
423 (button-get button 'func)
424 (button-label button))))
425
426(define-button-type 'Man-xref-man-page
427 :supertype 'Man-abstract-xref-man-page
428 'func 'man-follow)
429
422 430
423(define-button-type 'Man-xref-header-file 431(define-button-type 'Man-xref-header-file
424 'action (lambda (button) 432 'action (lambda (button)
@@ -903,14 +911,17 @@ Same for the ANSI bold and normal escape sequences."
903 'face Man-overstrike-face))) 911 'face Man-overstrike-face)))
904 (message "%s man page formatted" Man-arguments)) 912 (message "%s man page formatted" Man-arguments))
905 913
906(defun Man-highlight-references () 914(defun Man-highlight-references (&optional xref-man-type)
907 "Highlight the references on mouse-over. 915 "Highlight the references on mouse-over.
908References include items in the SEE ALSO section, 916References include items in the SEE ALSO section,
909header file (#include <foo.h>) and files in FILES." 917header file (#include <foo.h>) and files in FILES.
918If XREF-MAN-TYPE is used as the button type for items
919in SEE ALSO section. If it is nil, default type,
920`Man-xref-man-page' is used."
910 (let ((dummy 0)) 921 (let ((dummy 0))
911 (Man-highlight-references0 922 (Man-highlight-references0
912 Man-see-also-regexp Man-reference-regexp 1 dummy 923 Man-see-also-regexp Man-reference-regexp 1 dummy
913 'Man-xref-man-page) 924 (or xref-man-type 'Man-xref-man-page))
914 (Man-highlight-references0 925 (Man-highlight-references0
915 Man-synopsis-regexp Man-header-regexp 0 2 926 Man-synopsis-regexp Man-header-regexp 0 2
916 'Man-xref-header-file) 927 'Man-xref-header-file)
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 401513c3583..7a28a00edc8 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -1733,7 +1733,7 @@ Buffers menu is regenerated."
1733 :help "Terminate input and exit minibuffer"))) 1733 :help "Terminate input and exit minibuffer")))
1734 1734
1735;;;###autoload 1735;;;###autoload
1736;; This comment is taken from toolbar/tool-bar.el near 1736;; This comment is taken from tool-bar.el near
1737;; (put 'tool-bar-mode ...) 1737;; (put 'tool-bar-mode ...)
1738;; We want to pretend the menu bar by standard is on, as this will make 1738;; We want to pretend the menu bar by standard is on, as this will make
1739;; customize consider disabling the menu bar a customization, and save 1739;; customize consider disabling the menu bar a customization, and save
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog
index ac4e9242729..1f37898af76 100644
--- a/lisp/mh-e/ChangeLog
+++ b/lisp/mh-e/ChangeLog
@@ -1,3 +1,81 @@
12005-10-17 Peter S Galbraith <psg@debian.org>
2
3 * mh-identity.el (mh-identity-field-handler): Use
4 `assoc-ignore-case' to compare against header field for mixed-case
5 "From:".
6
72005-10-17 Bill Wohler <wohler@newt.com>
8
9 * mh-customize.el (mh-folder-tool-bar-map): Renamed image file
10 left_arrow to left-arrow, right_arrow to right-arrow, mail_compose
11 to mail/compose, fld_open to fld-open.
12 (mh-letter-tool-bar-map): Renamed image file mail_send to
13 mail/send.
14
152005-10-16 Bill Wohler <wohler@newt.com>
16
17 * mh-comp.el (mh-display-completion-list-compat): New macro which
18 calls `display-completion-list' correctly in older environments.
19 Versions of Emacs prior to version 22 lacked a COMMON-SUBSTRING
20 argument.
21 (mh-complete-word): Use it.
22
23 * mh-init.el (mh-image-load-path): Use locate-library to find
24 MH-E. This simplified the code a lot. Flattened out nested
25 statements even more.
26
272005-10-16 Satyaki Das <satyaki@theforce.stanford.edu>
28
29 * mh-init.el (mh-image-load-path): Remove use of pushnew since it
30 causes a compiler warning.
31
32 * mh-utils.el (mh-display-msg): Do MIME cleanup before inserting
33 the message to be viewed (closes SF #1306141).
34
352005-10-16 Masatake YAMATO <jet@gyve.org>
36
37 * mh-comp.el (mh-complete-word): Pass the common
38 prefix substring of completion to `display-completion-list'.
39
402005-10-15 Satyaki Das <satyaki@theforce.stanford.edu>
41
42 * mh-init.el (mh-image-load-path-called-flag): New variable which
43 is used by mh-image-load-path so that it runs only once.
44 (mh-image-load-path): Modified so that it gets run only once. Also
45 flatten out heavily nested if statements to make it clearer.
46
47 * mh-e.el (mh-folder-mode): Call mh-image-load-path to allow Emacs
48 to find images used in the toolbar.
49
50 * mh-customize.el (:folder): Remove call to mh-image-load-path.
51
522005-10-14 Bill Wohler <wohler@newt.com>
53
54 * mh-e.el (Version, mh-version): Added +cvs to version.
55
562005-10-14 Bill Wohler <wohler@newt.com>
57
58 Released MH-E version 7.85.
59
60 * mh-e.el (Version, mh-version): Updated for release 7.85.
61
622005-10-14 Bill Wohler <wohler@newt.com>
63
64 * mh-e.el, mh-funcs.el, mh-init.el, mh-mime.el, mh-pick.el:
65 * mh-seq.el, mh-utils.el: Ran mh-unit. Continued copyright lines
66 need to be indented.
67
68 * mh-e.el: mh-folder-tick-face had been renamed to mh-folder-tick
69 but the code that invoked the face had not been updated. Tick
70 highlighting working again.
71
72 * mh-seq.el (mh-non-seq-mode-line-annotation): Moved
73 make-variable-buffer-local call to top level to avoid warnings in
74 CVS Emacs.
75
76 * mh-comp.el (mh-insert-letter): Replaced deprecated read-input
77 with read-string.
78
12005-10-09 Bill Wohler <wohler@newt.com> 792005-10-09 Bill Wohler <wohler@newt.com>
2 80
3 * mh-init.el (mh-image-load-path): New function that adds the path 81 * mh-init.el (mh-image-load-path): New function that adds the path
diff --git a/lisp/mh-e/mh-comp.el b/lisp/mh-e/mh-comp.el
index a7af192ec40..753f4ad50aa 100644
--- a/lisp/mh-e/mh-comp.el
+++ b/lisp/mh-e/mh-comp.el
@@ -1430,10 +1430,10 @@ not indent and do not delete headers. Leaves the mark before the letter
1430and point after it." 1430and point after it."
1431 (interactive 1431 (interactive
1432 (list (mh-prompt-for-folder "Message from" mh-sent-from-folder nil) 1432 (list (mh-prompt-for-folder "Message from" mh-sent-from-folder nil)
1433 (read-input (concat "Message number" 1433 (read-string (concat "Message number"
1434 (if (numberp mh-sent-from-msg) 1434 (if (numberp mh-sent-from-msg)
1435 (format " (default %d): " mh-sent-from-msg) 1435 (format " (default %d): " mh-sent-from-msg)
1436 ": "))) 1436 ": ")))
1437 current-prefix-arg)) 1437 current-prefix-arg))
1438 (save-restriction 1438 (save-restriction
1439 (narrow-to-region (point) (point)) 1439 (narrow-to-region (point) (point))
@@ -1633,6 +1633,16 @@ This is useful in breaking up paragraphs in replies."
1633 1633
1634(mh-do-in-xemacs (defvar mail-abbrevs)) 1634(mh-do-in-xemacs (defvar mail-abbrevs))
1635 1635
1636(defmacro mh-display-completion-list-compat (word choices)
1637 "Completes WORD from CHOICES using `display-completion-list'.
1638Calls `display-completion-list' correctly in older environments.
1639Versions of Emacs prior to version 22 lacked a COMMON-SUBSTRING argument
1640which is used to highlight the next possible character you can enter
1641in the current list of completions."
1642 (if (>= emacs-major-version 22)
1643 `(display-completion-list (all-completions ,word ,choices) ,word)
1644 `(display-completion-list (all-completions ,word ,choices))))
1645
1636;;;###mh-autoload 1646;;;###mh-autoload
1637(defun mh-complete-word (word choices begin end) 1647(defun mh-complete-word (word choices begin end)
1638 "Complete WORD at from CHOICES. 1648 "Complete WORD at from CHOICES.
@@ -1650,7 +1660,7 @@ Any match found replaces the text from BEGIN to END."
1650 ((stringp completion) 1660 ((stringp completion)
1651 (if (equal word completion) 1661 (if (equal word completion)
1652 (with-output-to-temp-buffer completions-buffer 1662 (with-output-to-temp-buffer completions-buffer
1653 (display-completion-list (all-completions word choices))) 1663 (mh-display-completion-list-compat word choices))
1654 (ignore-errors 1664 (ignore-errors
1655 (kill-buffer completions-buffer)) 1665 (kill-buffer completions-buffer))
1656 (delete-region begin end) 1666 (delete-region begin end)
diff --git a/lisp/mh-e/mh-customize.el b/lisp/mh-e/mh-customize.el
index 4dcf0ad1be8..d26819d6f63 100644
--- a/lisp/mh-e/mh-customize.el
+++ b/lisp/mh-e/mh-customize.el
@@ -1897,7 +1897,6 @@ where,
1897 for y in letter-docs 1897 for y in letter-docs
1898 collect `(const :tag ,y ,x))))))) 1898 collect `(const :tag ,y ,x)))))))
1899 1899
1900(mh-image-load-path)
1901(mh-tool-bar-define 1900(mh-tool-bar-define
1902 ((:folder mh-inc-folder mh-mime-save-parts mh-previous-undeleted-msg 1901 ((:folder mh-inc-folder mh-mime-save-parts mh-previous-undeleted-msg
1903 mh-page-msg mh-next-undeleted-msg mh-delete-msg mh-refile-msg 1902 mh-page-msg mh-next-undeleted-msg mh-delete-msg mh-refile-msg
@@ -1917,12 +1916,12 @@ new mail into your Inbox folder.")
1917 "Save MIME parts from this message 1916 "Save MIME parts from this message
1918This button runs `mh-mime-save-parts' which saves a message's 1917This button runs `mh-mime-save-parts' which saves a message's
1919different parts into separate files.") 1918different parts into separate files.")
1920 (mh-previous-undeleted-msg (folder) "left_arrow" 1919 (mh-previous-undeleted-msg (folder) "left-arrow"
1921 "Go to the previous undeleted message 1920 "Go to the previous undeleted message
1922This button runs `mh-previous-undeleted-msg'") 1921This button runs `mh-previous-undeleted-msg'")
1923 (mh-page-msg (folder) "page-down" 1922 (mh-page-msg (folder) "page-down"
1924 "Page the current message forwards\nThis button runs `mh-page-msg'") 1923 "Page the current message forwards\nThis button runs `mh-page-msg'")
1925 (mh-next-undeleted-msg (folder) "right_arrow" 1924 (mh-next-undeleted-msg (folder) "right-arrow"
1926 "Go to the next undeleted message\nThe button runs `mh-next-undeleted-msg'") 1925 "Go to the next undeleted message\nThe button runs `mh-next-undeleted-msg'")
1927 (mh-delete-msg (folder) "close" 1926 (mh-delete-msg (folder) "close"
1928 "Mark this message for deletion\nThis button runs `mh-delete-msg'") 1927 "Mark this message for deletion\nThis button runs `mh-delete-msg'")
@@ -1945,7 +1944,7 @@ This button runs `mh-previous-undeleted-msg'")
1945 (mh-alias-grab-from-field (folder) "mail/alias" 1944 (mh-alias-grab-from-field (folder) "mail/alias"
1946 "Grab From alias\nThis button runs `mh-alias-grab-from-field'" 1945 "Grab From alias\nThis button runs `mh-alias-grab-from-field'"
1947 (and (mh-extract-from-header-value) (not (mh-alias-for-from-p)))) 1946 (and (mh-extract-from-header-value) (not (mh-alias-for-from-p))))
1948 (mh-send (folder) "mail_compose" 1947 (mh-send (folder) "mail/compose"
1949 "Compose new message\nThis button runs `mh-send'") 1948 "Compose new message\nThis button runs `mh-send'")
1950 (mh-rescan-folder (folder) "refresh" 1949 (mh-rescan-folder (folder) "refresh"
1951 "Rescan this folder\nThis button runs `mh-rescan-folder'") 1950 "Rescan this folder\nThis button runs `mh-rescan-folder'")
@@ -1953,10 +1952,10 @@ This button runs `mh-previous-undeleted-msg'")
1953 "Repack this folder\nThis button runs `mh-pack-folder'") 1952 "Repack this folder\nThis button runs `mh-pack-folder'")
1954 (mh-tool-bar-search (folder) "search" 1953 (mh-tool-bar-search (folder) "search"
1955 "Search\nThis button runs `mh-tool-bar-search-function'") 1954 "Search\nThis button runs `mh-tool-bar-search-function'")
1956 (mh-visit-folder (folder) "fld_open" 1955 (mh-visit-folder (folder) "fld-open"
1957 "Visit other folder\nThis button runs `mh-visit-folder'") 1956 "Visit other folder\nThis button runs `mh-visit-folder'")
1958 ;; Letter buffer buttons 1957 ;; Letter buffer buttons
1959 (mh-send-letter (letter) "mail_send" "Send this letter") 1958 (mh-send-letter (letter) "mail/send" "Send this letter")
1960 (mh-compose-insertion (letter) "attach" "Insert attachment") 1959 (mh-compose-insertion (letter) "attach" "Insert attachment")
1961 (ispell-message (letter) "spell" "Check spelling") 1960 (ispell-message (letter) "spell" "Check spelling")
1962 (save-buffer (letter) "save" "Save current buffer to its file" 1961 (save-buffer (letter) "save" "Save current buffer to its file"
diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el
index ad1093101e1..c0b57ee56ca 100644
--- a/lisp/mh-e/mh-e.el
+++ b/lisp/mh-e/mh-e.el
@@ -6,7 +6,7 @@
6 6
7;; Author: Bill Wohler <wohler@newt.com> 7;; Author: Bill Wohler <wohler@newt.com>
8;; Maintainer: Bill Wohler <wohler@newt.com> 8;; Maintainer: Bill Wohler <wohler@newt.com>
9;; Version: 7.84+cvs 9;; Version: 7.85+cvs
10;; Keywords: mail 10;; Keywords: mail
11 11
12;; This file is part of GNU Emacs. 12;; This file is part of GNU Emacs.
@@ -98,7 +98,7 @@
98(defvar font-lock-auto-fontify) 98(defvar font-lock-auto-fontify)
99(defvar font-lock-defaults) 99(defvar font-lock-defaults)
100 100
101(defconst mh-version "7.84+cvs" "Version number of MH-E.") 101(defconst mh-version "7.85+cvs" "Version number of MH-E.")
102 102
103(defvar mh-partial-folder-mode-line-annotation "select" 103(defvar mh-partial-folder-mode-line-annotation "select"
104 "Annotation when displaying part of a folder. 104 "Annotation when displaying part of a folder.
@@ -408,7 +408,7 @@ is done highlighting.")
408 (list (list ',func (list 1 '',face 'prepend t)))))))) 408 (list (list ',func (list 1 '',face 'prepend t))))))))
409 409
410(mh-generate-sequence-font-lock mh-unseen-seq unseen bold) 410(mh-generate-sequence-font-lock mh-unseen-seq unseen bold)
411(mh-generate-sequence-font-lock mh-tick-seq tick mh-folder-tick-face) 411(mh-generate-sequence-font-lock mh-tick-seq tick mh-folder-tick)
412 412
413 413
414 414
@@ -778,7 +778,7 @@ bottom of the current message."
778 (if (mh-in-show-buffer (mh-show-buffer) 778 (if (mh-in-show-buffer (mh-show-buffer)
779 (pos-visible-in-window-p (point-max))) 779 (pos-visible-in-window-p (point-max)))
780 (progn 780 (progn
781 (message 781 (message
782 "End of message (Type %s to read %s undeleted message)" 782 "End of message (Type %s to read %s undeleted message)"
783 (single-key-description last-input-event) 783 (single-key-description last-input-event)
784 (if (equal mh-next-direction 'backward) 784 (if (equal mh-next-direction 'backward)
@@ -1561,6 +1561,7 @@ messages in that region.
1561 1561
1562\\{mh-folder-mode-map}" 1562\\{mh-folder-mode-map}"
1563 1563
1564 (mh-image-load-path)
1564 (make-local-variable 'font-lock-defaults) 1565 (make-local-variable 'font-lock-defaults)
1565 (setq font-lock-defaults '(mh-folder-font-lock-keywords t)) 1566 (setq font-lock-defaults '(mh-folder-font-lock-keywords t))
1566 (make-local-variable 'desktop-save-buffer) 1567 (make-local-variable 'desktop-save-buffer)
diff --git a/lisp/mh-e/mh-funcs.el b/lisp/mh-e/mh-funcs.el
index 717d0b27aef..6ce1da8fe90 100644
--- a/lisp/mh-e/mh-funcs.el
+++ b/lisp/mh-e/mh-funcs.el
@@ -1,7 +1,7 @@
1;;; mh-funcs.el --- MH-E functions not everyone will use right away 1;;; mh-funcs.el --- MH-E functions not everyone will use right away
2 2
3;; Copyright (C) 1993, 1995, 3;; Copyright (C) 1993, 1995,
4;; 2001, 2002, 2003, 2004 Free Software Foundation, Inc. 4;; 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
5 5
6;; Author: Bill Wohler <wohler@newt.com> 6;; Author: Bill Wohler <wohler@newt.com>
7;; Maintainer: Bill Wohler <wohler@newt.com> 7;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-identity.el b/lisp/mh-e/mh-identity.el
index 1d848344897..c3f34ae75b2 100644
--- a/lisp/mh-e/mh-identity.el
+++ b/lisp/mh-e/mh-identity.el
@@ -124,7 +124,7 @@ The field name is downcased. If the FIELD begins with the character
124`:', then it must have a special handler defined in 124`:', then it must have a special handler defined in
125`mh-identity-handlers', else return an error since it is not a valid 125`mh-identity-handlers', else return an error since it is not a valid
126header field." 126header field."
127 (or (cdr (assoc (downcase field) mh-identity-handlers)) 127 (or (cdr (assoc-ignore-case field mh-identity-handlers))
128 (and (eq (aref field 0) ?:) 128 (and (eq (aref field 0) ?:)
129 (error "Field %s - unknown mh-identity-handler" field)) 129 (error "Field %s - unknown mh-identity-handler" field))
130 (cdr (assoc ":default" mh-identity-handlers)) 130 (cdr (assoc ":default" mh-identity-handlers))
diff --git a/lisp/mh-e/mh-init.el b/lisp/mh-e/mh-init.el
index 06ca97f9cd6..dcc9af84e41 100644
--- a/lisp/mh-e/mh-init.el
+++ b/lisp/mh-e/mh-init.el
@@ -300,50 +300,30 @@ by the variable `mh-variants'."
300 (add-to-list 'mh-variants variant))))) 300 (add-to-list 'mh-variants variant)))))
301 mh-variants))) 301 mh-variants)))
302 302
303;;; XXX The two calls to message in this function should really be calls to 303(defvar mh-image-load-path-called-flag nil)
304;;; error. However, when this function is compiled via the top-level call in 304
305;;; mh-customize.el, it is actually called, and in a compile environment, the
306;;; errors are triggered which botches the compile. As a workaround, the calls
307;;; to error have been changed to calls to message, and code following was
308;;; inserted as an else clause. This is not robust, so if you can fix this,
309;;; please do!
310;;;###mh-autoload 305;;;###mh-autoload
311(defun mh-image-load-path () 306(defun mh-image-load-path ()
312 "Ensure that the MH-E images are accessible by `find-image'. 307 "Ensure that the MH-E images are accessible by `find-image'.
313Images for MH-E are found in ../../etc/images relative to the files in 308Images for MH-E are found in ../../etc/images relative to the files in
314lisp/mh-e. If `image-load-path' exists (since Emacs 22), then the images 309`lisp/mh-e'. If `image-load-path' exists (since Emacs 22), then the images
315directory is added to it if isn't already there. Otherwise, the images 310directory is added to it if isn't already there. Otherwise, the images
316directory is added to the `load-path' if it isn't already there." 311directory is added to the `load-path' if it isn't already there."
317 (let (mh-load-path mh-image-load-path) 312 (unless mh-image-load-path-called-flag
318 ;; First, find mh-e in the load-path. 313 (let (mh-library-name mh-image-load-path)
319 (let ((path load-path)) 314 ;; First, find mh-e in the load-path.
320 (while path 315 (setq mh-library-name (locate-library "mh-e"))
321 (let* ((directory (directory-file-name (car path)))) 316 (if (not mh-library-name)
322 (setq mh-load-path 317 (error "Can not find MH-E in load-path"))
323 (if (and (equal (file-name-nondirectory directory) "mh-e") 318 (setq mh-image-load-path
324 (file-exists-p directory)) 319 (expand-file-name (concat (file-name-directory mh-library-name)
325 directory 320 "../../etc/images")))
326 nil)) 321 (if (not (file-exists-p mh-image-load-path))
327 (setq path (if mh-load-path nil (cdr path))))) 322 (error "Can not find image directory %s" mh-image-load-path))
328 (if (not mh-load-path)
329 ;; This message be error; there shouldn't be an else. Blame compiler.
330 (message "Can not find mh-e in load-path (OK when compiling)")
331 ;; Create the image path associated with this mh-e directory.
332 (setq mh-image-load-path (expand-file-name
333 (concat (file-name-directory mh-load-path)
334 "../etc/images")))))
335 (if (or (not mh-image-load-path)
336 (not (file-exists-p mh-image-load-path)))
337 ;; This message be error; there shouldn't be an else. Blame compiler.
338 (message "Can not find image directory %s (OK when compiling)"
339 mh-image-load-path)
340 ;; If image-load-path exists, and the image path isn't there add it.
341 (if (boundp 'image-load-path) 323 (if (boundp 'image-load-path)
342 (if (not (member mh-image-load-path image-load-path)) 324 (add-to-list 'image-load-path mh-image-load-path)
343 (push mh-image-load-path image-load-path)) 325 (add-to-list 'load-path mh-image-load-path)))
344 ;; Otherwise, if the image path isn't in the load-path, add it there. 326 (setq mh-image-load-path-called-flag t)))
345 (if (not (member mh-image-load-path load-path))
346 (push mh-image-load-path load-path))))))
347 327
348(provide 'mh-init) 328(provide 'mh-init)
349 329
diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el
index 4f72fe06487..fb7bace7ead 100644
--- a/lisp/mh-e/mh-mime.el
+++ b/lisp/mh-e/mh-mime.el
@@ -1,7 +1,7 @@
1;;; mh-mime.el --- MH-E support for composing MIME messages 1;;; mh-mime.el --- MH-E support for composing MIME messages
2 2
3;; Copyright (C) 1993, 1995, 3;; Copyright (C) 1993, 1995,
4;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 4;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
5 5
6;; Author: Bill Wohler <wohler@newt.com> 6;; Author: Bill Wohler <wohler@newt.com>
7;; Maintainer: Bill Wohler <wohler@newt.com> 7;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-pick.el b/lisp/mh-e/mh-pick.el
index c0b9360cfae..eb825fe462f 100644
--- a/lisp/mh-e/mh-pick.el
+++ b/lisp/mh-e/mh-pick.el
@@ -1,7 +1,7 @@
1;;; mh-pick.el --- make a search pattern and search for a message in MH-E 1;;; mh-pick.el --- make a search pattern and search for a message in MH-E
2 2
3;; Copyright (C) 1993, 1995, 3;; Copyright (C) 1993, 1995,
4;; 2001, 2003, 2004, 2005 Free Software Foundation, Inc. 4;; 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
5 5
6;; Author: Bill Wohler <wohler@newt.com> 6;; Author: Bill Wohler <wohler@newt.com>
7;; Maintainer: Bill Wohler <wohler@newt.com> 7;; Maintainer: Bill Wohler <wohler@newt.com>
diff --git a/lisp/mh-e/mh-seq.el b/lisp/mh-e/mh-seq.el
index 51847c2d59d..efbfe0d221f 100644
--- a/lisp/mh-e/mh-seq.el
+++ b/lisp/mh-e/mh-seq.el
@@ -1,7 +1,7 @@
1;;; mh-seq.el --- MH-E sequences support 1;;; mh-seq.el --- MH-E sequences support
2 2
3;; Copyright (C) 1993, 1995, 3;; Copyright (C) 1993, 1995,
4;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 4;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
5 5
6;; Author: Bill Wohler <wohler@newt.com> 6;; Author: Bill Wohler <wohler@newt.com>
7;; Maintainer: Bill Wohler <wohler@newt.com> 7;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -224,6 +224,8 @@ appears."
224;; Avoid compiler warning 224;; Avoid compiler warning
225(defvar tool-bar-map) 225(defvar tool-bar-map)
226 226
227(make-variable-buffer-local 'mh-non-seq-mode-line-annotation)
228
227;;;###mh-autoload 229;;;###mh-autoload
228(defun mh-narrow-to-seq (sequence) 230(defun mh-narrow-to-seq (sequence)
229 "Restrict display of this folder to just messages in SEQUENCE. 231 "Restrict display of this folder to just messages in SEQUENCE.
@@ -243,7 +245,6 @@ Use \\<mh-folder-mode-map>\\[mh-widen] to undo this command."
243 (mh-notate-deleted-and-refiled) 245 (mh-notate-deleted-and-refiled)
244 (mh-notate-cur) 246 (mh-notate-cur)
245 (when msg-at-cursor (mh-goto-msg msg-at-cursor t t)) 247 (when msg-at-cursor (mh-goto-msg msg-at-cursor t t))
246 (make-variable-buffer-local 'mh-non-seq-mode-line-annotation)
247 (setq mh-non-seq-mode-line-annotation mh-mode-line-annotation) 248 (setq mh-non-seq-mode-line-annotation mh-mode-line-annotation)
248 (setq mh-mode-line-annotation (symbol-name sequence)) 249 (setq mh-mode-line-annotation (symbol-name sequence))
249 (mh-make-folder-mode-line) 250 (mh-make-folder-mode-line)
diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el
index 0e608e52062..2dbd313b1d2 100644
--- a/lisp/mh-e/mh-utils.el
+++ b/lisp/mh-e/mh-utils.el
@@ -1,7 +1,7 @@
1;;; mh-utils.el --- MH-E code needed for both sending and reading 1;;; mh-utils.el --- MH-E code needed for both sending and reading
2 2
3;; Copyright (C) 1993, 1995, 1997, 3;; Copyright (C) 1993, 1995, 1997,
4;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 4;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
5 5
6;; Author: Bill Wohler <wohler@newt.com> 6;; Author: Bill Wohler <wohler@newt.com>
7;; Maintainer: Bill Wohler <wohler@newt.com> 7;; Maintainer: Bill Wohler <wohler@newt.com>
@@ -1718,6 +1718,8 @@ Sets the current buffer to the show buffer."
1718 (cond ((not (equal msg-filename buffer-file-name)) 1718 (cond ((not (equal msg-filename buffer-file-name))
1719 (mh-unvisit-file) 1719 (mh-unvisit-file)
1720 (setq buffer-read-only nil) 1720 (setq buffer-read-only nil)
1721 ;; Cleanup old mime handles
1722 (mh-mime-cleanup)
1721 (erase-buffer) 1723 (erase-buffer)
1722 ;; Changing contents, so this hook needs to be reinitialized. 1724 ;; Changing contents, so this hook needs to be reinitialized.
1723 ;; pgp.el uses this. 1725 ;; pgp.el uses this.
@@ -1729,8 +1731,6 @@ Sets the current buffer to the show buffer."
1729 (list "-form" formfile)) 1731 (list "-form" formfile))
1730 msg-filename) 1732 msg-filename)
1731 (insert-file-contents-literally msg-filename)) 1733 (insert-file-contents-literally msg-filename))
1732 ;; Cleanup old mime handles
1733 (mh-mime-cleanup)
1734 ;; Use mm to display buffer 1734 ;; Use mm to display buffer
1735 (when (and mh-decode-mime-flag (not formfile)) 1735 (when (and mh-decode-mime-flag (not formfile))
1736 (mh-add-missing-mime-version-header) 1736 (mh-add-missing-mime-version-header)
diff --git a/lisp/mouse.el b/lisp/mouse.el
index 90f2b3ba879..d71d80bd41f 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -54,7 +54,7 @@
54 54
55With the default setting, an ordinary Mouse-1 click on a link 55With the default setting, an ordinary Mouse-1 click on a link
56performs the same action as Mouse-2 on that link, while a longer 56performs the same action as Mouse-2 on that link, while a longer
57Mouse-1 click \(hold down the Mouse-1 button for more than 350 57Mouse-1 click \(hold down the Mouse-1 button for more than 450
58milliseconds) performs the original Mouse-1 binding \(which 58milliseconds) performs the original Mouse-1 binding \(which
59typically sets point where you click the mouse). 59typically sets point where you click the mouse).
60 60
@@ -78,7 +78,7 @@ packages. See `mouse-on-link-p' for details."
78 :version "22.1" 78 :version "22.1"
79 :type '(choice (const :tag "Disabled" nil) 79 :type '(choice (const :tag "Disabled" nil)
80 (const :tag "Double click" double) 80 (const :tag "Double click" double)
81 (number :tag "Single click time limit" :value 350) 81 (number :tag "Single click time limit" :value 450)
82 (other :tag "Single click" t)) 82 (other :tag "Single click" t))
83 :group 'mouse) 83 :group 'mouse)
84 84
@@ -663,7 +663,7 @@ This should be bound to a mouse drag event."
663 ;; If mark is highlighted, no need to bounce the cursor. 663 ;; If mark is highlighted, no need to bounce the cursor.
664 ;; On X, we highlight while dragging, thus once again no need to bounce. 664 ;; On X, we highlight while dragging, thus once again no need to bounce.
665 (or transient-mark-mode 665 (or transient-mark-mode
666 (memq (framep (selected-frame)) '(x pc w32)) 666 (memq (framep (selected-frame)) '(x pc w32 mac))
667 (sit-for 1)) 667 (sit-for 1))
668 (push-mark) 668 (push-mark)
669 (set-mark (point)) 669 (set-mark (point))
@@ -958,12 +958,14 @@ at the same position."
958 (mouse-move-drag-overlay mouse-drag-overlay start-point end-point click-count)) 958 (mouse-move-drag-overlay mouse-drag-overlay start-point end-point click-count))
959 959
960 (if (consp event) 960 (if (consp event)
961 (let ((fun (key-binding (vector (car event))))) 961 (let* ((fun (key-binding (vector (car event))))
962 (do-multi-click (and (> (event-click-count event) 0)
963 (functionp fun)
964 (not (eq fun 'mouse-set-point)))))
962 ;; Run the binding of the terminating up-event, if possible. 965 ;; Run the binding of the terminating up-event, if possible.
963 ;; In the case of a multiple click, it gives the wrong results, 966 (if (and (not (= (overlay-start mouse-drag-overlay)
964 ;; because it would fail to set up a region. 967 (overlay-end mouse-drag-overlay)))
965 (if (not (= (overlay-start mouse-drag-overlay) 968 (not do-multi-click))
966 (overlay-end mouse-drag-overlay)))
967 (let* ((stop-point 969 (let* ((stop-point
968 (if (numberp (posn-point (event-end event))) 970 (if (numberp (posn-point (event-end event)))
969 (posn-point (event-end event)) 971 (posn-point (event-end event))
@@ -996,8 +998,12 @@ at the same position."
996 (and (mark t) mark-active 998 (and (mark t) mark-active
997 (eq buffer (current-buffer)) 999 (eq buffer (current-buffer))
998 (mouse-set-region-1)))) 1000 (mouse-set-region-1))))
999 (delete-overlay mouse-drag-overlay)
1000 ;; Run the binding of the terminating up-event. 1001 ;; Run the binding of the terminating up-event.
1002 ;; If a multiple click is not bound to mouse-set-point,
1003 ;; cancel the effects of mouse-move-drag-overlay to
1004 ;; avoid producing wrong results.
1005 (if do-multi-click (goto-char start-point))
1006 (delete-overlay mouse-drag-overlay)
1001 (when (and (functionp fun) 1007 (when (and (functionp fun)
1002 (= start-hscroll (window-hscroll start-window)) 1008 (= start-hscroll (window-hscroll start-window))
1003 ;; Don't run the up-event handler if the 1009 ;; Don't run the up-event handler if the
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 6df8a5dab42..cc662770dcf 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -4384,6 +4384,7 @@ necessary anymore."
4384(defun tramp-completion-mode (file) 4384(defun tramp-completion-mode (file)
4385 "Checks whether method / user name / host name completion is active." 4385 "Checks whether method / user name / host name completion is active."
4386 (cond 4386 (cond
4387 (tramp-completion-mode t)
4387 ((not tramp-unified-filenames) t) 4388 ((not tramp-unified-filenames) t)
4388 ((string-match "^/.*:.*:$" file) nil) 4389 ((string-match "^/.*:.*:$" file) nil)
4389 ((string-match 4390 ((string-match
@@ -4434,70 +4435,83 @@ necessary anymore."
4434 (substring 4435 (substring
4435 file (length (tramp-completion-handle-file-name-directory file)))) 4436 file (length (tramp-completion-handle-file-name-directory file))))
4436 4437
4438(defvar tramp-completion-mode nil
4439 "If non-nil, we are in file name completion mode.")
4440
4437;; Method, host name and user name completion. 4441;; Method, host name and user name completion.
4438;; `tramp-completion-dissect-file-name' returns a list of 4442;; `tramp-completion-dissect-file-name' returns a list of
4439;; tramp-file-name structures. For all of them we return possible completions. 4443;; tramp-file-name structures. For all of them we return possible completions.
4440(defun tramp-completion-handle-file-name-all-completions (filename directory) 4444(defun tramp-completion-handle-file-name-all-completions (filename directory)
4441 "Like `file-name-all-completions' for partial tramp files." 4445 "Like `file-name-all-completions' for partial tramp files."
4442 4446
4443 (let* 4447 (unwind-protect
4444 ((fullname (concat directory filename)) 4448 ;; We need to reset `tramp-completion-mode'.
4445 ;; local files 4449 (progn
4446 (result 4450 (setq tramp-completion-mode t)
4447 (if (tramp-completion-mode fullname) 4451 (let*
4448 (tramp-run-real-handler 4452 ((fullname (concat directory filename))
4449 'file-name-all-completions (list filename directory)) 4453 ;; possible completion structures
4450 (tramp-completion-run-real-handler 4454 (v (tramp-completion-dissect-file-name fullname))
4451 'file-name-all-completions (list filename directory)))) 4455 result result1)
4452 ;; possible completion structures 4456
4453 (v (tramp-completion-dissect-file-name fullname))) 4457 (while v
4454 4458 (let* ((car (car v))
4455 (while v 4459 (multi-method (tramp-file-name-multi-method car))
4456 (let* ((car (car v)) 4460 (method (tramp-file-name-method car))
4457 (multi-method (tramp-file-name-multi-method car)) 4461 (user (tramp-file-name-user car))
4458 (method (tramp-file-name-method car)) 4462 (host (tramp-file-name-host car))
4459 (user (tramp-file-name-user car)) 4463 (localname (tramp-file-name-localname car))
4460 (host (tramp-file-name-host car)) 4464 (m (tramp-find-method multi-method method user host))
4461 (localname (tramp-file-name-localname car)) 4465 (tramp-current-user user) ; see `tramp-parse-passwd'
4462 (m (tramp-find-method multi-method method user host)) 4466 all-user-hosts)
4463 (tramp-current-user user) ; see `tramp-parse-passwd' 4467
4464 all-user-hosts) 4468 (unless (or multi-method ;; Not handled (yet).
4465 4469 localname) ;; Nothing to complete
4466 (unless (or multi-method ;; Not handled (yet). 4470
4467 localname) ;; Nothing to complete 4471 (if (or user host)
4468 4472
4469 (if (or user host) 4473 ;; Method dependent user / host combinations
4470 4474 (progn
4471 ;; Method dependent user / host combinations 4475 (mapcar
4472 (progn 4476 (lambda (x)
4473 (mapcar 4477 (setq all-user-hosts
4474 (lambda (x) 4478 (append all-user-hosts
4475 (setq all-user-hosts 4479 (funcall (nth 0 x) (nth 1 x)))))
4476 (append all-user-hosts 4480 (tramp-get-completion-function m))
4477 (funcall (nth 0 x) (nth 1 x))))) 4481
4478 (tramp-get-completion-function m)) 4482 (setq result (append result
4479 4483 (mapcar
4480 (setq result (append result 4484 (lambda (x)
4481 (mapcar 4485 (tramp-get-completion-user-host
4482 (lambda (x) 4486 method user host (nth 0 x) (nth 1 x)))
4483 (tramp-get-completion-user-host 4487 (delq nil all-user-hosts)))))
4484 method user host (nth 0 x) (nth 1 x))) 4488
4485 (delq nil all-user-hosts))))) 4489 ;; Possible methods
4486 4490 (setq result
4487 ;; Possible methods 4491 (append result (tramp-get-completion-methods m)))))
4488 (setq result 4492
4489 (append result (tramp-get-completion-methods m))))) 4493 (setq v (cdr v))))
4490 4494
4491 (setq v (delq car v)))) 4495 ;; unify list, remove nil elements
4492 4496 (while result
4493 ;;; unify list, remove nil elements 4497 (let ((car (car result)))
4494 (let (result1) 4498 (when car (add-to-list 'result1 car))
4495 (while result 4499 (setq result (cdr result))))
4496 (let ((car (car result))) 4500
4497 (when car (add-to-list 'result1 car)) 4501 ;; Complete local parts
4498 (setq result (delq car result)))) 4502 (append
4499 4503 result1
4500 result1))) 4504 (condition-case nil
4505 (if result1
4506 ;; "/ssh:" does not need to be expanded as hostname.
4507 (tramp-run-real-handler
4508 'file-name-all-completions (list filename directory))
4509 ;; No method/user/host found to be expanded.
4510 (tramp-completion-run-real-handler
4511 'file-name-all-completions (list filename directory)))
4512 (error nil)))))
4513 ;; unwindform
4514 (setq tramp-completion-mode nil)))
4501 4515
4502;; Method, host name and user name completion for a file. 4516;; Method, host name and user name completion for a file.
4503(defun tramp-completion-handle-file-name-completion (filename directory) 4517(defun tramp-completion-handle-file-name-completion (filename directory)
diff --git a/lisp/pcvs.el b/lisp/pcvs.el
index f86e4c95625..1e9f1bce7ce 100644
--- a/lisp/pcvs.el
+++ b/lisp/pcvs.el
@@ -1482,11 +1482,16 @@ The POSTPROC specified there (typically `log-edit') is then called,
1482 (point)))))) 1482 (point))))))
1483 1483
1484(defvar cvs-edit-log-revision) 1484(defvar cvs-edit-log-revision)
1485(defun cvs-mode-edit-log (rev &optional text) 1485(defvar cvs-edit-log-files) (put 'cvs-edit-log-files 'permanent-local t)
1486(defun cvs-mode-edit-log (file rev &optional text)
1486 "Edit the log message at point. 1487 "Edit the log message at point.
1487This is best called from a `log-view-mode' buffer." 1488This is best called from a `log-view-mode' buffer."
1488 (interactive 1489 (interactive
1489 (list 1490 (list
1491 (or (cvs-mode! (lambda ()
1492 (car (cvs-mode-files nil nil
1493 :read-only t :file t :noquery t))))
1494 (read-string "File name: "))
1490 (or (cvs-mode! (lambda () (cvs-prefix-get 'cvs-branch-prefix))) 1495 (or (cvs-mode! (lambda () (cvs-prefix-get 'cvs-branch-prefix)))
1491 (read-string "Revision to edit: ")) 1496 (read-string "Revision to edit: "))
1492 (cvs-edit-log-text-at-point))) 1497 (cvs-edit-log-text-at-point)))
@@ -1498,26 +1503,38 @@ This is best called from a `log-view-mode' buffer."
1498 (let ((buf (cvs-temp-buffer "message" 'normal 'nosetup)) 1503 (let ((buf (cvs-temp-buffer "message" 'normal 'nosetup))
1499 (setupfun (or (nth 2 (cdr (assoc "message" cvs-buffer-name-alist))) 1504 (setupfun (or (nth 2 (cdr (assoc "message" cvs-buffer-name-alist)))
1500 'log-edit))) 1505 'log-edit)))
1506 (with-current-buffer buf
1507 ;; Set the filename before, so log-edit can correctly setup its
1508 ;; log-edit-initial-files variable.
1509 (set (make-local-variable 'cvs-edit-log-files) (list file)))
1501 (funcall setupfun 'cvs-do-edit-log nil 'cvs-edit-log-filelist buf) 1510 (funcall setupfun 'cvs-do-edit-log nil 'cvs-edit-log-filelist buf)
1502 (when text (erase-buffer) (insert text)) 1511 (when text (erase-buffer) (insert text))
1503 (set (make-local-variable 'cvs-edit-log-revision) rev) 1512 (set (make-local-variable 'cvs-edit-log-revision) rev)
1504 (set (make-local-variable 'cvs-minor-wrap-function) 'cvs-edit-log-minor-wrap) 1513 (set (make-local-variable 'cvs-minor-wrap-function)
1514 'cvs-edit-log-minor-wrap)
1505 ;; (run-hooks 'cvs-mode-commit-hook) 1515 ;; (run-hooks 'cvs-mode-commit-hook)
1506 )) 1516 ))
1507 1517
1508(defun cvs-edit-log-minor-wrap (buf f) 1518(defun cvs-edit-log-minor-wrap (buf f)
1509 (let ((cvs-ignore-marks-modif (cvs-mode-mark-get-modif "commit"))) 1519 (let ((cvs-branch-prefix (with-current-buffer buf cvs-edit-log-revision))
1520 (cvs-minor-current-files
1521 (with-current-buffer buf cvs-edit-log-files))
1522 ;; FIXME: I need to force because the fileinfos are UNKNOWN
1523 (cvs-force-command "/F"))
1510 (funcall f))) 1524 (funcall f)))
1511 1525
1512(defun cvs-edit-log-filelist () 1526(defun cvs-edit-log-filelist ()
1513 (cvs-mode-files nil nil :read-only t :file t :noquery t)) 1527 (if cvs-minor-wrap-function
1528 (cvs-mode-files nil nil :read-only t :file t :noquery t)
1529 cvs-edit-log-files))
1514 1530
1515(defun cvs-do-edit-log (rev) 1531(defun cvs-do-edit-log (rev)
1516 "Do the actual commit, using the current buffer as the log message." 1532 "Do the actual commit, using the current buffer as the log message."
1517 (interactive (list cvs-edit-log-revision)) 1533 (interactive (list cvs-edit-log-revision))
1518 (let ((msg (buffer-substring-no-properties (point-min) (point-max)))) 1534 (let ((msg (buffer-substring-no-properties (point-min) (point-max))))
1519 (cvs-mode!) 1535 (cvs-mode!
1520 (cvs-mode-do "admin" (list (concat "-m" rev ":" msg)) nil))) 1536 (lambda ()
1537 (cvs-mode-do "admin" (list (concat "-m" rev ":" msg)) nil)))))
1521 1538
1522 1539
1523;;;; 1540;;;;
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 269fbeaf137..d041fa366c8 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -1678,37 +1678,20 @@ displays at the top of the window; there is no arrow."
1678 "Jump to an error corresponding to MSG at MK. 1678 "Jump to an error corresponding to MSG at MK.
1679All arguments are markers. If END-MK is non-nil, mark is set there 1679All arguments are markers. If END-MK is non-nil, mark is set there
1680and overlay is highlighted between MK and END-MK." 1680and overlay is highlighted between MK and END-MK."
1681 (if (eq (window-buffer (selected-window))
1682 (marker-buffer msg))
1683 ;; If the compilation buffer window is selected,
1684 ;; keep the compilation buffer in this window;
1685 ;; display the source in another window.
1686 (let ((pop-up-windows t))
1687 (pop-to-buffer (marker-buffer mk)))
1688 (if (window-dedicated-p (selected-window))
1689 (pop-to-buffer (marker-buffer mk))
1690 (switch-to-buffer (marker-buffer mk))))
1691 ;; If narrowing gets in the way of going to the right place, widen.
1692 (unless (eq (goto-char mk) (point))
1693 (widen)
1694 (goto-char mk))
1695 (if end-mk
1696 (push-mark end-mk t)
1697 (if mark-active (setq mark-active)))
1698 ;; If hideshow got in the way of
1699 ;; seeing the right place, open permanently.
1700 (dolist (ov (overlays-at (point)))
1701 (when (eq 'hs (overlay-get ov 'invisible))
1702 (delete-overlay ov)
1703 (goto-char mk)))
1704
1705 ;; Show compilation buffer in other window, scrolled to this error. 1681 ;; Show compilation buffer in other window, scrolled to this error.
1706 (let* ((pop-up-windows t) 1682 (let* ((from-compilation-buffer (eq (window-buffer (selected-window))
1707 ;; Use an existing window if it is in a visible frame. 1683 (marker-buffer msg)))
1684 ;; Use an existing window if it is in a visible frame.
1708 (pre-existing (get-buffer-window (marker-buffer msg) 0)) 1685 (pre-existing (get-buffer-window (marker-buffer msg) 0))
1709 (w (let ((display-buffer-reuse-frames t)) 1686 (w (if (and from-compilation-buffer pre-existing)
1710 ;; Pop up a window. 1687 ;; Calling display-buffer here may end up (partly) hiding
1711 (display-buffer (marker-buffer msg)))) 1688 ;; the error location if the two buffers are in two
1689 ;; different frames. So don't do it if it's not necessary.
1690 pre-existing
1691 (let ((display-buffer-reuse-frames t)
1692 (pop-up-windows t))
1693 ;; Pop up a window.
1694 (display-buffer (marker-buffer msg)))))
1712 (highlight-regexp (with-current-buffer (marker-buffer msg) 1695 (highlight-regexp (with-current-buffer (marker-buffer msg)
1713 ;; also do this while we change buffer 1696 ;; also do this while we change buffer
1714 (compilation-set-window w msg) 1697 (compilation-set-window w msg)
@@ -1718,6 +1701,29 @@ and overlay is highlighted between MK and END-MK."
1718 ;; creating a new window. 1701 ;; creating a new window.
1719 (unless pre-existing (compilation-set-window-height w)) 1702 (unless pre-existing (compilation-set-window-height w))
1720 1703
1704 (if from-compilation-buffer
1705 ;; If the compilation buffer window was selected,
1706 ;; keep the compilation buffer in this window;
1707 ;; display the source in another window.
1708 (let ((pop-up-windows t))
1709 (pop-to-buffer (marker-buffer mk) 'other-window))
1710 (if (window-dedicated-p (selected-window))
1711 (pop-to-buffer (marker-buffer mk))
1712 (switch-to-buffer (marker-buffer mk))))
1713 ;; If narrowing gets in the way of going to the right place, widen.
1714 (unless (eq (goto-char mk) (point))
1715 (widen)
1716 (goto-char mk))
1717 (if end-mk
1718 (push-mark end-mk t)
1719 (if mark-active (setq mark-active)))
1720 ;; If hideshow got in the way of
1721 ;; seeing the right place, open permanently.
1722 (dolist (ov (overlays-at (point)))
1723 (when (eq 'hs (overlay-get ov 'invisible))
1724 (delete-overlay ov)
1725 (goto-char mk)))
1726
1721 (when highlight-regexp 1727 (when highlight-regexp
1722 (if (timerp next-error-highlight-timer) 1728 (if (timerp next-error-highlight-timer)
1723 (cancel-timer next-error-highlight-timer)) 1729 (cancel-timer next-error-highlight-timer))
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index f6e8697543f..ac2cc23048a 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -2015,7 +2015,8 @@ for \\[find-tag] (which see)."
2015 (message "Making completion list...") 2015 (message "Making completion list...")
2016 (with-output-to-temp-buffer "*Completions*" 2016 (with-output-to-temp-buffer "*Completions*"
2017 (display-completion-list 2017 (display-completion-list
2018 (all-completions pattern 'tags-complete-tag nil))) 2018 (all-completions pattern 'tags-complete-tag nil)
2019 pattern))
2019 (message "Making completion list...%s" "done"))))) 2020 (message "Making completion list...%s" "done")))))
2020 2021
2021(dolist (x '("^No tags table in use; use .* to select one$" 2022(dolist (x '("^No tags table in use; use .* to select one$"
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index 852cd8deb88..bf09669083d 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -437,6 +437,9 @@ Also display the main routine in the disassembly buffer if present."
437 nil nil))) 437 nil nil)))
438 (push var gdb-var-list) 438 (push var gdb-var-list)
439 (speedbar 1) 439 (speedbar 1)
440 (unless (string-equal
441 speedbar-initial-expansion-list-name "GUD")
442 (speedbar-change-initial-expansion-list "GUD"))
440 (if (equal (nth 2 var) "0") 443 (if (equal (nth 2 var) "0")
441 (gdb-enqueue-input 444 (gdb-enqueue-input
442 (list 445 (list
@@ -600,7 +603,9 @@ INDENT is the current indentation depth."
600 (dolist (var gdb-var-list) 603 (dolist (var gdb-var-list)
601 (if (string-match (concat token "\\.") (nth 1 var)) 604 (if (string-match (concat token "\\.") (nth 1 var))
602 (setq gdb-var-list (delq var gdb-var-list)))) 605 (setq gdb-var-list (delq var gdb-var-list))))
603 (setq gdb-var-changed t)))) 606 (setq gdb-var-changed t)
607 (with-current-buffer gud-comint-buffer
608 (speedbar-timer-fn)))))
604 609
605(defun gdb-get-target-string () 610(defun gdb-get-target-string ()
606 (with-current-buffer gud-comint-buffer 611 (with-current-buffer gud-comint-buffer
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index d38697a2152..8f962381d24 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 Free Software Foundation, Inc.
9 9
10;; This file is part of GNU Emacs. 10;; This file is part of GNU Emacs.
11 11
@@ -139,13 +139,13 @@ Used to grey out relevant togolbar icons.")
139 ([remove] menu-item "Remove Breakpoint" gud-remove 139 ([remove] menu-item "Remove Breakpoint" gud-remove
140 :enable (not gud-running) 140 :enable (not gud-running)
141 :visible (not (and (memq gud-minor-mode '(gdbmi gdba)) 141 :visible (not (and (memq gud-minor-mode '(gdbmi gdba))
142 (window-fringes)))) 142 (> (car (window-fringes)) 0))))
143 ([tbreak] menu-item "Temporary Breakpoint" gud-tbreak 143 ([tbreak] menu-item "Temporary Breakpoint" gud-tbreak
144 :enable (memq gud-minor-mode '(gdbmi gdba gdb sdb xdb bashdb))) 144 :enable (memq gud-minor-mode '(gdbmi gdba gdb sdb xdb bashdb)))
145 ([break] menu-item "Set Breakpoint" gud-break 145 ([break] menu-item "Set Breakpoint" gud-break
146 :enable (not gud-running) 146 :enable (not gud-running)
147 :visible (not (and (memq gud-minor-mode '(gdbmi gdba)) 147 :visible (not (and (memq gud-minor-mode '(gdbmi gdba))
148 (window-fringes)))) 148 (> (car (window-fringes)) 0))))
149 ([up] menu-item "Up Stack" gud-up 149 ([up] menu-item "Up Stack" gud-up
150 :enable (and (not gud-running) 150 :enable (and (not gud-running)
151 (memq gud-minor-mode 151 (memq gud-minor-mode
@@ -197,24 +197,24 @@ Used to grey out relevant togolbar icons.")
197(defvar gud-tool-bar-map 197(defvar gud-tool-bar-map
198 (if (display-graphic-p) 198 (if (display-graphic-p)
199 (let ((map (make-sparse-keymap))) 199 (let ((map (make-sparse-keymap)))
200 (dolist (x '((gud-break . "gud-break") 200 (dolist (x '((gud-break . "gud/break")
201 (gud-remove . "gud-remove") 201 (gud-remove . "gud/remove")
202 (gud-print . "gud-print") 202 (gud-print . "gud/print")
203 (gud-pstar . "gud-pstar") 203 (gud-pstar . "gud/pstar")
204 (gud-watch . "gud-watch") 204 (gud-watch . "gud/watch")
205 (gud-cont . "gud-cont") 205 (gud-cont . "gud/cont")
206 (gud-until . "gud-until") 206 (gud-until . "gud/until")
207 (gud-finish . "gud-finish") 207 (gud-finish . "gud/finish")
208 (gud-run . "gud-run") 208 (gud-run . "gud/run")
209 ;; gud-s, gud-si etc. instead of gud-step, 209 ;; gud-s, gud-si etc. instead of gud-step,
210 ;; gud-stepi, to avoid file-name clashes on DOS 210 ;; gud-stepi, to avoid file-name clashes on DOS
211 ;; 8+3 filesystems. 211 ;; 8+3 filesystems.
212 (gud-next . "gud-n") 212 (gud-next . "gud/next")
213 (gud-step . "gud-s") 213 (gud-step . "gud/step")
214 (gud-nexti . "gud-ni") 214 (gud-nexti . "gud/nexti")
215 (gud-stepi . "gud-si") 215 (gud-stepi . "gud/stepi")
216 (gud-up . "gud-up") 216 (gud-up . "gud/up")
217 (gud-down . "gud-down") 217 (gud-down . "gud/down")
218 (gud-goto-info . "info")) 218 (gud-goto-info . "info"))
219 map) 219 map)
220 (tool-bar-local-item-from-menu 220 (tool-bar-local-item-from-menu
@@ -2575,7 +2575,8 @@ It is saved for when this flag is not set.")
2575 ;; Stop displaying an arrow in a source file. 2575 ;; Stop displaying an arrow in a source file.
2576 (setq gud-overlay-arrow-position nil) 2576 (setq gud-overlay-arrow-position nil)
2577 (set-process-buffer proc nil) 2577 (set-process-buffer proc nil)
2578 (if (featurep 'speedbar) 2578 (if (and (boundp 'speedbar-frame)
2579 (string-equal speedbar-initial-expansion-list-name "GUD"))
2579 (speedbar-change-initial-expansion-list 2580 (speedbar-change-initial-expansion-list
2580 speedbar-previously-used-expansion-list-name)) 2581 speedbar-previously-used-expansion-list-name))
2581 (if (memq gud-minor-mode-type '(gdbmi gdba)) 2582 (if (memq gud-minor-mode-type '(gdbmi gdba))
diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el
index 11ae1c66aa7..3a55129c899 100644
--- a/lisp/progmodes/make-mode.el
+++ b/lisp/progmodes/make-mode.el
@@ -1176,7 +1176,7 @@ The context determines which are considered."
1176 (message "Making completion list...") 1176 (message "Making completion list...")
1177 (let ((list (all-completions try table))) 1177 (let ((list (all-completions try table)))
1178 (with-output-to-temp-buffer "*Completions*" 1178 (with-output-to-temp-buffer "*Completions*"
1179 (display-completion-list list))) 1179 (display-completion-list list try)))
1180 (message "Making completion list...done")))))) 1180 (message "Making completion list...done"))))))
1181 1181
1182 1182
diff --git a/lisp/progmodes/meta-mode.el b/lisp/progmodes/meta-mode.el
index 9ae3e5a5935..f5bbb4d68db 100644
--- a/lisp/progmodes/meta-mode.el
+++ b/lisp/progmodes/meta-mode.el
@@ -509,7 +509,7 @@ If the list was changed, sort the list and remove duplicates first."
509 (message "Making completion list...") 509 (message "Making completion list...")
510 (let ((list (all-completions symbol list nil))) 510 (let ((list (all-completions symbol list nil)))
511 (with-output-to-temp-buffer "*Completions*" 511 (with-output-to-temp-buffer "*Completions*"
512 (display-completion-list list))) 512 (display-completion-list list symbol)))
513 (message "Making completion list... done")))) 513 (message "Making completion list... done"))))
514 (funcall (nth 1 entry))))) 514 (funcall (nth 1 entry)))))
515 515
diff --git a/lisp/progmodes/octave-mod.el b/lisp/progmodes/octave-mod.el
index e37f3b14a15..b65ad9eac1a 100644
--- a/lisp/progmodes/octave-mod.el
+++ b/lisp/progmodes/octave-mod.el
@@ -1252,7 +1252,7 @@ variables."
1252 ;; Taken from comint.el 1252 ;; Taken from comint.el
1253 (message "Making completion list...") 1253 (message "Making completion list...")
1254 (with-output-to-temp-buffer "*Completions*" 1254 (with-output-to-temp-buffer "*Completions*"
1255 (display-completion-list list)) 1255 (display-completion-list list string))
1256 (message "Hit space to flush") 1256 (message "Hit space to flush")
1257 (let (key first) 1257 (let (key first)
1258 (if (save-excursion 1258 (if (save-excursion
diff --git a/lisp/progmodes/pascal.el b/lisp/progmodes/pascal.el
index 3cd243580e2..801096b9b0f 100644
--- a/lisp/progmodes/pascal.el
+++ b/lisp/progmodes/pascal.el
@@ -1378,7 +1378,7 @@ indent of the current line in parameterlist."
1378 ((and (not (null (cdr allcomp))) (= (length pascal-str) 1378 ((and (not (null (cdr allcomp))) (= (length pascal-str)
1379 (length match))) 1379 (length match)))
1380 (with-output-to-temp-buffer "*Completions*" 1380 (with-output-to-temp-buffer "*Completions*"
1381 (display-completion-list allcomp)) 1381 (display-completion-list allcomp pascal-str))
1382 ;; Wait for a keypress. Then delete *Completion* window 1382 ;; Wait for a keypress. Then delete *Completion* window
1383 (momentary-string-display "" (point)) 1383 (momentary-string-display "" (point))
1384 (delete-window (get-buffer-window (get-buffer "*Completions*"))) 1384 (delete-window (get-buffer-window (get-buffer "*Completions*")))
@@ -1398,7 +1398,7 @@ indent of the current line in parameterlist."
1398 (all-completions pascal-str 'pascal-completion)))) 1398 (all-completions pascal-str 'pascal-completion))))
1399 ;; Show possible completions in a temporary buffer. 1399 ;; Show possible completions in a temporary buffer.
1400 (with-output-to-temp-buffer "*Completions*" 1400 (with-output-to-temp-buffer "*Completions*"
1401 (display-completion-list allcomp)) 1401 (display-completion-list allcomp pascal-str))
1402 ;; Wait for a keypress. Then delete *Completion* window 1402 ;; Wait for a keypress. Then delete *Completion* window
1403 (momentary-string-display "" (point)) 1403 (momentary-string-display "" (point))
1404 (delete-window (get-buffer-window (get-buffer "*Completions*"))))) 1404 (delete-window (get-buffer-window (get-buffer "*Completions*")))))
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index f7788404350..6ed2e39e4e8 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -1652,7 +1652,7 @@ Repeating the command scrolls the completion window."
1652 (t 1652 (t
1653 (message "Making completion list...") 1653 (message "Making completion list...")
1654 (with-output-to-temp-buffer "*Completions*" 1654 (with-output-to-temp-buffer "*Completions*"
1655 (display-completion-list completions)) 1655 (display-completion-list completions symbol))
1656 (message "Making completion list...%s" "done")))))))) 1656 (message "Making completion list...%s" "done"))))))))
1657 1657
1658(eval-when-compile (require 'hippie-exp)) 1658(eval-when-compile (require 'hippie-exp))
diff --git a/lisp/recentf.el b/lisp/recentf.el
index dee7a8d438d..b14997d604f 100644
--- a/lisp/recentf.el
+++ b/lisp/recentf.el
@@ -985,6 +985,54 @@ unchanged."
985 t))))) 985 t)))))
986 l)) 986 l))
987 987
988;;; Hooks
989;;
990(defun recentf-track-opened-file ()
991 "Insert the name of the file just opened or written into the recent list."
992 (and buffer-file-name
993 (recentf-add-file buffer-file-name))
994 ;; Must return nil because it is run from `write-file-functions'.
995 nil)
996
997(defun recentf-track-closed-file ()
998 "Update the recent list when a buffer is killed.
999That is, remove a non kept file from the recent list."
1000 (and buffer-file-name
1001 (recentf-remove-if-non-kept buffer-file-name)))
1002
1003(defun recentf-update-menu ()
1004 "Update the recentf menu from the current recent list."
1005 (let ((cache (cons default-directory recentf-list)))
1006 ;; Does nothing, if nothing has changed.
1007 (unless (equal recentf-data-cache cache)
1008 (setq recentf-data-cache cache)
1009 (condition-case err
1010 (easy-menu-add-item
1011 (recentf-menu-bar) recentf-menu-path
1012 (easy-menu-create-menu recentf-menu-title
1013 (recentf-make-menu-items))
1014 recentf-menu-before)
1015 (error
1016 (message "recentf update menu failed: %s"
1017 (error-message-string err)))))))
1018
1019(defconst recentf-used-hooks
1020 '(
1021 (find-file-hook recentf-track-opened-file)
1022 (write-file-functions recentf-track-opened-file)
1023 (kill-buffer-hook recentf-track-closed-file)
1024 (menu-bar-update-hook recentf-update-menu)
1025 (kill-emacs-hook recentf-save-list)
1026 )
1027 "Hooks used by recentf.")
1028
1029(defsubst recentf-enabled-p ()
1030 "Return non-nil if recentf mode is currently enabled."
1031 (memq 'recentf-update-menu menu-bar-update-hook))
1032
1033;;; Commands
1034;;
1035
988;;; Common dialog stuff 1036;;; Common dialog stuff
989;; 1037;;
990(defun recentf-cancel-dialog (&rest ignore) 1038(defun recentf-cancel-dialog (&rest ignore)
@@ -1011,7 +1059,7 @@ Go to the beginning of buffer if not found."
1011 (let ((km (copy-keymap recentf--shortcuts-keymap))) 1059 (let ((km (copy-keymap recentf--shortcuts-keymap)))
1012 (set-keymap-parent km widget-keymap) 1060 (set-keymap-parent km widget-keymap)
1013 (define-key km "q" 'recentf-cancel-dialog) 1061 (define-key km "q" 'recentf-cancel-dialog)
1014 (define-key km [down-mouse-1] 'widget-button-click) 1062 (define-key km [follow-link] "\C-m")
1015 km) 1063 km)
1016 "Keymap used in recentf dialogs.") 1064 "Keymap used in recentf dialogs.")
1017 1065
@@ -1038,54 +1086,6 @@ Go to the beginning of buffer if not found."
1038 (widget-setup) 1086 (widget-setup)
1039 (switch-to-buffer (current-buffer)))) 1087 (switch-to-buffer (current-buffer))))
1040 1088
1041;;; Hooks
1042;;
1043(defun recentf-track-opened-file ()
1044 "Insert the name of the file just opened or written into the recent list."
1045 (and buffer-file-name
1046 (recentf-add-file buffer-file-name))
1047 ;; Must return nil because it is run from `write-file-functions'.
1048 nil)
1049
1050(defun recentf-track-closed-file ()
1051 "Update the recent list when a buffer is killed.
1052That is, remove a non kept file from the recent list."
1053 (and buffer-file-name
1054 (recentf-remove-if-non-kept buffer-file-name)))
1055
1056(defun recentf-update-menu ()
1057 "Update the recentf menu from the current recent list."
1058 (let ((cache (cons default-directory recentf-list)))
1059 ;; Does nothing, if nothing has changed.
1060 (unless (equal recentf-data-cache cache)
1061 (setq recentf-data-cache cache)
1062 (condition-case err
1063 (easy-menu-add-item
1064 (recentf-menu-bar) recentf-menu-path
1065 (easy-menu-create-menu recentf-menu-title
1066 (recentf-make-menu-items))
1067 recentf-menu-before)
1068 (error
1069 (message "recentf update menu failed: %s"
1070 (error-message-string err)))))))
1071
1072(defconst recentf-used-hooks
1073 '(
1074 (find-file-hook recentf-track-opened-file)
1075 (write-file-functions recentf-track-opened-file)
1076 (kill-buffer-hook recentf-track-closed-file)
1077 (menu-bar-update-hook recentf-update-menu)
1078 (kill-emacs-hook recentf-save-list)
1079 )
1080 "Hooks used by recentf.")
1081
1082(defsubst recentf-enabled-p ()
1083 "Return non-nil if recentf mode is currently enabled."
1084 (memq 'recentf-update-menu menu-bar-update-hook))
1085
1086;;; Commands
1087;;
1088
1089;;; Edit list dialog 1089;;; Edit list dialog
1090;; 1090;;
1091(defvar recentf-edit-list nil) 1091(defvar recentf-edit-list nil)
@@ -1140,7 +1140,7 @@ Click on Cancel or type `q' to cancel.\n")
1140 :notify 'recentf-cancel-dialog 1140 :notify 'recentf-cancel-dialog
1141 "Cancel") 1141 "Cancel")
1142 (recentf-dialog-goto-first 'checkbox))) 1142 (recentf-dialog-goto-first 'checkbox)))
1143 1143
1144;;; Open file dialog 1144;;; Open file dialog
1145;; 1145;;
1146(defun recentf-open-files-action (widget &rest ignore) 1146(defun recentf-open-files-action (widget &rest ignore)
@@ -1252,7 +1252,7 @@ Optional argument N must be a valid digit number. It defaults to 1.
1252 (when recentf--files-with-key 1252 (when recentf--files-with-key
1253 (kill-buffer (current-buffer))) 1253 (kill-buffer (current-buffer)))
1254 (funcall recentf-menu-action file))) 1254 (funcall recentf-menu-action file)))
1255 1255
1256;;; Save/load/cleanup the recent list 1256;;; Save/load/cleanup the recent list
1257;; 1257;;
1258(defconst recentf-save-file-header 1258(defconst recentf-save-file-header
@@ -1316,7 +1316,9 @@ That is, remove duplicates, non-kept, and excluded files."
1316 (message "File %s removed from the recentf list" f))) 1316 (message "File %s removed from the recentf list" f)))
1317 (message "Cleaning up the recentf list...done (%d removed)" n) 1317 (message "Cleaning up the recentf list...done (%d removed)" n)
1318 (setq recentf-list (nreverse newlist)))) 1318 (setq recentf-list (nreverse newlist))))
1319 1319
1320;;; The minor mode
1321;;
1320(defvar recentf-mode-map (make-sparse-keymap) 1322(defvar recentf-mode-map (make-sparse-keymap)
1321 "Keymap to use in recentf mode.") 1323 "Keymap to use in recentf mode.")
1322 1324
diff --git a/lisp/savehist.el b/lisp/savehist.el
new file mode 100644
index 00000000000..de0f1504ff8
--- /dev/null
+++ b/lisp/savehist.el
@@ -0,0 +1,270 @@
1;;; savehist.el --- Save minibuffer history.
2
3;; Copyright (C) 1997, 2005 Free Software Foundation
4
5;; Author: Hrvoje Niksic <hniksic@xemacs.org>
6;; Keywords: minibuffer
7;; Version: 7
8
9;; This file is part of GNU Emacs.
10
11;; GNU Emacs is free software; you can redistribute it and/or modify
12;; it under the terms of the GNU General Public License as published by
13;; the Free Software Foundation; either version 2, or (at your option)
14;; any later version.
15
16;; GNU Emacs is distributed in the hope that it will be useful,
17;; but WITHOUT ANY WARRANTY; without even the implied warranty of
18;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;; GNU General Public License for more details.
20
21;; You should have received a copy of the GNU General Public License
22;; along with GNU Emacs; see the file COPYING. If not, write to the
23;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
24;; Boston, MA 02110-1301, USA.
25
26;;; Commentary:
27
28;; Many editors (e.g. Vim) have the feature of saving minibuffer
29;; history to an external file after exit. This package provides the
30;; same feature in Emacs. When Emacs is about the exit,
31;; `savehist-save' will dump the contents of various minibuffer
32;; histories (as determined by `savehist-history-variables') to a save
33;; file (`~/.emacs-history' by default). Although the package was
34;; designed for saving the minibuffer histories, any variables can be
35;; saved that way.
36
37;; To use savehist, put the following to `~/.emacs':
38;;
39;; (require 'savehist)
40;; (savehist-load)
41
42;; Be sure to have `savehist.el' in a directory that is in your
43;; load-path, and byte-compile it.
44
45;;; Code:
46
47(require 'custom)
48
49;; User variables
50
51(defgroup savehist nil
52 "Save minibuffer history."
53 :group 'minibuffer)
54
55(defcustom savehist-history-variables
56 '(
57 ;; Catch-all minibuffer history
58 minibuffer-history
59 ;; File-oriented commands
60 file-name-history
61 ;; Regexp-related reads
62 regexp-history
63 ;; Searches in minibuffer (via `M-r' and such)
64 minibuffer-history-search-history
65 ;; Query replace
66 query-replace-history
67 ;; eval-expression (`M-:')
68 read-expression-history
69 ;; shell-command (`M-!')
70 shell-command-history
71 ;; compile
72 compile-history
73 ;; find-tag (`M-.')
74 find-tag-history
75 ;; grep
76 grep-history
77 ;; Viper stuff
78 vip-ex-history vip-search-history
79 vip-replace1-history vip-replace2-history
80 vip-shell-history vip-search-history
81
82 ;; XEmacs-specific:
83 ;; Buffer-related commands
84 buffer-history
85 ;; Reads of variables and functions
86 variable-history function-history
87 ;; Extended commands
88 read-command-history
89
90 ;; Info, lookup, and bookmark historys
91 Info-minibuffer-history
92 Info-search-history
93 Manual-page-minibuffer-history
94
95 ;; Emacs-specific:
96 ;; Extended commands
97 extended-command-history)
98 "*List of symbols to be saved.
99Every symbol should refer to a variable. The variable will be saved
100only if it is bound and has a non-nil value. Thus it is safe to
101specify a superset of the variables a user is expected to want to
102save.
103
104Default value contains minibuffer history variables used by Emacs, XEmacs,
105and Viper (uh-oh). Note that, if you customize this variable, you
106can lose the benefit of future versions of Emacs adding new values to
107the list. Because of that it might be more useful to add values using
108`add-to-list'."
109 :type '(repeat (symbol :tag "Variable"))
110 :group 'savehist)
111
112(defcustom savehist-file "~/.emacs-history"
113 "*File name to save minibuffer history to.
114The minibuffer history is a series of Lisp expressions, which should be
115loaded using `savehist-load' from your .emacs. See `savehist-load' for
116more details."
117 :type 'file
118 :group 'savehist)
119
120(defcustom savehist-length 100
121 "*Maximum length of a minibuffer list.
122If set to nil, the length is unlimited."
123 :type '(choice integer
124 (const :tag "Unlimited" nil))
125 :group 'savehist)
126
127(defcustom savehist-modes #o600
128 "*Default permissions of the history file.
129This is decimal, not octal. The default is 384 (0600 in octal).
130Set to nil to use the default permissions that Emacs uses, typically
131mandated by umask. The default is a bit more restrictive to protect
132the user's privacy."
133 :type 'integer
134 :group 'savehist)
135
136(defcustom savehist-autosave-interval (* 5 60)
137 "*The interval during which savehist should autosave the history buffer."
138 :type 'integer
139 :group 'savehist)
140
141(defvar savehist-coding-system (if (coding-system-p 'utf-8) 'utf-8 'iso-2022-8)
142 "The coding system savehist uses for saving the minibuffer history.
143Changing this value while Emacs is running is supported, but considered
144unwise, unless you know what you are doing.")
145
146;; Internal variables.
147
148(defvar savehist-timer nil)
149
150(defvar savehist-last-checksum nil)
151
152(defconst savehist-no-conversion (if (featurep 'xemacs) 'binary 'no-conversion)
153 ;; FIXME: Why not use savehist-coding-system?
154 "Coding system without conversion, only used for calculating checksums.")
155
156;; Functions
157
158;;;###autoload
159(defun savehist-load (&optional no-hook)
160 "Load the minibuffer histories from `savehist-file'.
161Unless NO-HOOK is specified, the function will also add the save function
162to `kill-emacs-hook' and on a timer, ensuring that the minibuffer contents
163will be saved before leaving Emacs.
164
165This function should be normally used from your Emacs init file. Since it
166removes your current minibuffer histories, it is unwise to call it at any
167other time."
168 (interactive "P")
169 (unless no-hook
170 (add-hook 'kill-emacs-hook 'savehist-autosave)
171 ;; Install an invocation of savehist-autosave on a timer. This
172 ;; should not cause a noticeable delay -- savehist-autosave
173 ;; executes in under 5 ms on my system.
174 (unless savehist-timer
175 (setq savehist-timer
176 (if (featurep 'xemacs)
177 (start-itimer
178 "savehist" 'savehist-autosave savehist-autosave-interval
179 savehist-autosave-interval)
180 (run-with-idle-timer savehist-autosave-interval savehist-autosave-interval
181 'savehist-autosave)))))
182 ;; Don't set coding-system-for-read here. We rely on autodetection
183 ;; and the coding cookie to convey that information. That way, if
184 ;; the user changes the value of savehist-coding-system, we can
185 ;; still correctly load the old file.
186 (load savehist-file t (not (interactive-p))))
187
188;;;###autoload
189(defun savehist-save (&optional auto-save)
190 "Save the histories from `savehist-history-variables' to `savehist-file'.
191Unbound symbols referenced in `savehist-history-variables' are ignored.
192If AUTO-SAVE is non-nil, compare the saved contents to the one last saved,
193 and don't save the buffer if they are the same."
194 (interactive)
195 (with-temp-buffer
196 (insert
197 (format ";; -*- mode: emacs-lisp; coding: %s -*-\n" savehist-coding-system)
198 ";; Minibuffer history file, automatically generated by `savehist'.\n\n")
199 (let ((print-length nil)
200 (print-string-length nil)
201 (print-level nil)
202 (print-readably t)
203 (print-quoted t))
204 (dolist (sym savehist-history-variables)
205 (when (boundp sym)
206 (let ((value (savehist-process-for-saving (symbol-value sym))))
207 (prin1 `(setq ,sym ',value) (current-buffer))
208 (insert ?\n)))))
209 ;; If autosaving, avoid writing if nothing has changed since the
210 ;; last write.
211 (let ((checksum (md5 (current-buffer) nil nil savehist-no-conversion)))
212 (unless (and auto-save (equal checksum savehist-last-checksum))
213 ;; Set file-precious-flag when saving the buffer because we
214 ;; don't want a half-finished write ruining the entire
215 ;; history. (Remember that this is run from a timer and from
216 ;; kill-emacs-hook.)
217 (let ((file-precious-flag t)
218 (coding-system-for-write savehist-coding-system))
219 (write-region (point-min) (point-max) savehist-file nil
220 (unless (interactive-p) 'quiet)))
221 (when savehist-modes
222 (set-file-modes savehist-file savehist-modes))
223 (setq savehist-last-checksum checksum)))))
224
225(defun savehist-autosave ()
226 "Save the minibuffer history if it has been modified since the last save."
227 (savehist-save t))
228
229(defun savehist-process-for-saving (value)
230 ;; Process VALUE for saving to file. If it is a list, retain only
231 ;; the first `savehist-length' values and prune non-printable ones.
232 ;; If VALUE is not a list, return it as-is if it is printable and
233 ;; nil otherwise.
234 (cond
235 ((listp value)
236 (when (and savehist-length (> (length value) savehist-length))
237 ;; This should be: (setq value (subseq value 0 savehist-length))
238 (setq value (copy-sequence value))
239 (setcdr (nthcdr savehist-length value) nil))
240 ;; And this should be (remove-if-not #'savehist-printable value)
241 (delq nil (mapcar (lambda (x) (if (savehist-printable x) x)) value)))
242 ((savehist-printable value) value)
243 (t nil)))
244
245(defun savehist-printable (value)
246 "Return non-nil if VALUE is printable."
247 ;; Quick response for oft-encountered types known to be printable.
248 (cond
249 ((stringp value))
250 ((numberp value))
251 ((symbolp value))
252 (t
253 ;; For others, check explicitly.
254 (condition-case nil
255 (let ((print-readably t)
256 (print-level nil)
257 (chars ()))
258 ;; Print the value into a string...
259 (prin1 value (lambda (char) (push char chars)))
260 ;; ...and attempt to read it.
261 (read (apply #'string (nreverse chars)))
262 ;; The attempt worked: the object is printable.
263 t)
264 ;; The attempt failed: the object is not printable.
265 (error nil)))))
266
267(provide 'savehist)
268
269;; arch-tag: b3ce47f4-c5ad-4ebc-ad02-73aba705cf9f
270;;; savehist.el ends here
diff --git a/lisp/simple.el b/lisp/simple.el
index d52f1a20094..301b4cc996a 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -4848,10 +4848,13 @@ Called from `temp-buffer-show-hook'."
4848 "Normal hook run at the end of setting up a completion list buffer. 4848 "Normal hook run at the end of setting up a completion list buffer.
4849When this hook is run, the current buffer is the one in which the 4849When this hook is run, the current buffer is the one in which the
4850command to display the completion list buffer was run. 4850command to display the completion list buffer was run.
4851The completion list buffer is available as the value of `standard-output'.") 4851The completion list buffer is available as the value of `standard-output'.
4852The common prefix substring for completion may be available as the
4853value of `completion-common-substring'. See also `display-completion-list'.")
4854
4855
4856;; Variables and faces used in `completion-setup-function'.
4852 4857
4853;; This function goes in completion-setup-hook, so that it is called
4854;; after the text of the completion list buffer is written.
4855(defface completions-first-difference 4858(defface completions-first-difference
4856 '((t (:inherit bold))) 4859 '((t (:inherit bold)))
4857 "Face put on the first uncommon character in completions in *Completions* buffer." 4860 "Face put on the first uncommon character in completions in *Completions* buffer."
@@ -4871,6 +4874,17 @@ of the differing parts is, by contrast, slightly highlighted."
4871(defvar completion-root-regexp "^/" 4874(defvar completion-root-regexp "^/"
4872 "Regexp to use in `completion-setup-function' to find the root directory.") 4875 "Regexp to use in `completion-setup-function' to find the root directory.")
4873 4876
4877(defvar completion-common-substring nil
4878 "Common prefix substring to use in `completion-setup-function' to put faces.
4879The value is set by `display-completion-list' during running `completion-setup-hook'.
4880
4881To put faces, `completions-first-difference' and `completions-common-part'
4882into \"*Completions*\* buffer, the common prefix substring in completions is
4883needed as a hint. (Minibuffer is a special case. The content of minibuffer itself
4884is the substring.)")
4885
4886;; This function goes in completion-setup-hook, so that it is called
4887;; after the text of the completion list buffer is written.
4874(defun completion-setup-function () 4888(defun completion-setup-function ()
4875 (let ((mainbuf (current-buffer)) 4889 (let ((mainbuf (current-buffer))
4876 (mbuf-contents (minibuffer-contents))) 4890 (mbuf-contents (minibuffer-contents)))
@@ -4909,9 +4923,11 @@ of the differing parts is, by contrast, slightly highlighted."
4909 (funcall (get minibuffer-completion-table 'completion-base-size-function))) 4923 (funcall (get minibuffer-completion-table 'completion-base-size-function)))
4910 (setq completion-base-size 0)))) 4924 (setq completion-base-size 0))))
4911 ;; Put faces on first uncommon characters and common parts. 4925 ;; Put faces on first uncommon characters and common parts.
4912 (when completion-base-size 4926 (when (or completion-base-size completion-common-substring)
4913 (let* ((common-string-length 4927 (let* ((common-string-length
4914 (- (length mbuf-contents) completion-base-size)) 4928 (if completion-base-size
4929 (- (length mbuf-contents) completion-base-size)
4930 (length completion-common-substring)))
4915 (element-start (next-single-property-change 4931 (element-start (next-single-property-change
4916 (point-min) 4932 (point-min)
4917 'mouse-face)) 4933 'mouse-face))
diff --git a/lisp/speedbar.el b/lisp/speedbar.el
index bb813808ed9..e09c0d734cc 100644
--- a/lisp/speedbar.el
+++ b/lisp/speedbar.el
@@ -1106,7 +1106,8 @@ frame and window to be the currently active frame and window."
1106 (or (not dframe-xemacsp) 1106 (or (not dframe-xemacsp)
1107 (with-no-warnings 1107 (with-no-warnings
1108 (specifier-instance has-modeline-p))) 1108 (specifier-instance has-modeline-p)))
1109 speedbar-buffer) (save-excursion 1109 speedbar-buffer)
1110 (save-excursion
1110 (set-buffer speedbar-buffer) 1111 (set-buffer speedbar-buffer)
1111 (let* ((w (or (speedbar-frame-width) 20)) 1112 (let* ((w (or (speedbar-frame-width) 20))
1112 (p1 "<<") 1113 (p1 "<<")
@@ -1677,9 +1678,8 @@ specialized speedbar displays."
1677 (speedbar-make-button start (point) face mouse function token)) 1678 (speedbar-make-button start (point) face mouse function token))
1678 (let ((start (point))) 1679 (let ((start (point)))
1679 (insert "\n") 1680 (insert "\n")
1680 (put-text-property start (point) 'face nil) 1681 (add-text-properties
1681 (put-text-property start (point) 'invisible nil) 1682 start (point) '(face nil invisible nil mouse-face nil))))
1682 (put-text-property start (point) 'mouse-face nil)))
1683 1683
1684(defun speedbar-insert-separator (text) 1684(defun speedbar-insert-separator (text)
1685 "Insert a separation label of TEXT. 1685 "Insert a separation label of TEXT.
@@ -1698,13 +1698,11 @@ Separators are not active, have no labels, depth, or actions."
1698 "Create a button from START to END, with FACE as the display face. 1698 "Create a button from START to END, with FACE as the display face.
1699MOUSE is the mouse face. When this button is clicked on FUNCTION 1699MOUSE is the mouse face. When this button is clicked on FUNCTION
1700will be run with the TOKEN parameter (any Lisp object)" 1700will be run with the TOKEN parameter (any Lisp object)"
1701 (put-text-property start end 'face face) 1701 (add-text-properties
1702 (put-text-property start end 'mouse-face mouse) 1702 start end `(face ,face mouse-face ,mouse invisible nil
1703 speedbar-text ,(buffer-substring-no-properties start end)))
1703 (if speedbar-use-tool-tips-flag 1704 (if speedbar-use-tool-tips-flag
1704 (put-text-property start end 'help-echo #'dframe-help-echo)) 1705 (put-text-property start end 'help-echo #'dframe-help-echo))
1705 (put-text-property start end 'invisible nil)
1706 (put-text-property start end 'speedbar-text
1707 (buffer-substring-no-properties start end))
1708 (if function (put-text-property start end 'speedbar-function function)) 1706 (if function (put-text-property start end 'speedbar-function function))
1709 (if token (put-text-property start end 'speedbar-token token)) 1707 (if token (put-text-property start end 'speedbar-token token))
1710 ;; So far the only text we have is less that 3 chars. 1708 ;; So far the only text we have is less that 3 chars.
@@ -2455,10 +2453,9 @@ name will have the function FIND-FUN and not token."
2455 (set-buffer speedbar-buffer) 2453 (set-buffer speedbar-buffer)
2456 (speedbar-with-writable 2454 (speedbar-with-writable
2457 (erase-buffer) 2455 (erase-buffer)
2458 (while funclst 2456 (dolist (func funclst)
2459 (setq default-directory cbd) 2457 (setq default-directory cbd)
2460 (funcall (car funclst) cbd 0) 2458 (funcall func cbd 0))
2461 (setq funclst (cdr funclst)))
2462 (speedbar-reconfigure-keymaps) 2459 (speedbar-reconfigure-keymaps)
2463 (goto-char (point-min))) 2460 (goto-char (point-min)))
2464 )))) 2461 ))))
@@ -2535,10 +2532,9 @@ name will have the function FIND-FUN and not token."
2535 speedbar-shown-directories)) 2532 speedbar-shown-directories))
2536 (insert (cdr cache))) 2533 (insert (cdr cache)))
2537 (t 2534 (t
2538 (while funclst 2535 (dolist (func funclst)
2539 (setq default-directory cbd) 2536 (setq default-directory cbd)
2540 (funcall (car funclst) cbd 0) 2537 (funcall func cbd 0)))))
2541 (setq funclst (cdr funclst))))))
2542 (goto-char (point-min))))) 2538 (goto-char (point-min)))))
2543 (speedbar-reconfigure-keymaps)) 2539 (speedbar-reconfigure-keymaps))
2544 2540
@@ -2561,11 +2557,10 @@ This should only be used by modes classified as special."
2561 speedbar-shown-directories nil)) 2557 speedbar-shown-directories nil))
2562 ;; Now fill in the buffer with our newly found specialized list. 2558 ;; Now fill in the buffer with our newly found specialized list.
2563 (speedbar-with-writable 2559 (speedbar-with-writable
2564 (while funclst 2560 (dolist (func funclst)
2565 ;; We do not erase the buffer because these functions may 2561 ;; We do not erase the buffer because these functions may
2566 ;; decide NOT to update themselves. 2562 ;; decide NOT to update themselves.
2567 (funcall (car funclst) specialbuff) 2563 (funcall func specialbuff)))
2568 (setq funclst (cdr funclst))))
2569 2564
2570 (goto-char (point-min)))) 2565 (goto-char (point-min))))
2571 (speedbar-reconfigure-keymaps)) 2566 (speedbar-reconfigure-keymaps))
@@ -3822,6 +3817,7 @@ regular expression EXPR."
3822 ["Contract File Tags" speedbar-contract-line 3817 ["Contract File Tags" speedbar-contract-line
3823 (save-excursion (beginning-of-line) 3818 (save-excursion (beginning-of-line)
3824 (looking-at "[0-9]+: *.-. "))] 3819 (looking-at "[0-9]+: *.-. "))]
3820 "----"
3825 ["Kill Buffer" speedbar-buffer-kill-buffer 3821 ["Kill Buffer" speedbar-buffer-kill-buffer
3826 (save-excursion (beginning-of-line) 3822 (save-excursion (beginning-of-line)
3827 (looking-at "[0-9]+: *.[-+?]. "))] 3823 (looking-at "[0-9]+: *.[-+?]. "))]
diff --git a/lisp/tempo.el b/lisp/tempo.el
index 4939715a31c..62ba3c9acae 100644
--- a/lisp/tempo.el
+++ b/lisp/tempo.el
@@ -717,11 +717,13 @@ non-nil, a buffer containing possible completions is displayed."
717 (if tempo-leave-completion-buffer 717 (if tempo-leave-completion-buffer
718 (with-output-to-temp-buffer "*Completions*" 718 (with-output-to-temp-buffer "*Completions*"
719 (display-completion-list 719 (display-completion-list
720 (all-completions string tag-list))) 720 (all-completions string tag-list)
721 string))
721 (save-window-excursion 722 (save-window-excursion
722 (with-output-to-temp-buffer "*Completions*" 723 (with-output-to-temp-buffer "*Completions*"
723 (display-completion-list 724 (display-completion-list
724 (all-completions string tag-list))) 725 (all-completions string tag-list)
726 string))
725 (sit-for 32767)))) 727 (sit-for 32767))))
726 728
727;;; 729;;;
diff --git a/lisp/term/mac-win.el b/lisp/term/mac-win.el
index 5e09d6391ce..f7782433fdc 100644
--- a/lisp/term/mac-win.el
+++ b/lisp/term/mac-win.el
@@ -54,8 +54,6 @@
54;; -font *font 54;; -font *font
55;; -foreground *foreground 55;; -foreground *foreground
56;; -geometry .geometry 56;; -geometry .geometry
57;; -i .iconType
58;; -itype .iconType
59;; -iconic .iconic 57;; -iconic .iconic
60;; -name .name 58;; -name .name
61;; -reverse *reverseVideo 59;; -reverse *reverseVideo
@@ -1199,15 +1197,21 @@ in `selection-converter-alist', which see."
1199 (when (and (stringp data) 1197 (when (and (stringp data)
1200 (setq data-type (get-text-property 0 'foreign-selection data))) 1198 (setq data-type (get-text-property 0 'foreign-selection data)))
1201 (cond ((eq data-type 'public.utf16-plain-text) 1199 (cond ((eq data-type 'public.utf16-plain-text)
1202 (let ((encoded (and (fboundp 'mac-code-convert-string) 1200 (if (fboundp 'mac-code-convert-string)
1203 (mac-code-convert-string data 1201 (let ((s (mac-code-convert-string data nil coding)))
1204 'utf-16 coding)))) 1202 (if s
1205 (if encoded 1203 (setq data (decode-coding-string s coding))
1206 (let ((coding-save last-coding-system-used)) 1204 (setq data
1207 (setq data (decode-coding-string encoded coding)) 1205 ;; (decode-coding-string data 'utf-16) is
1208 (setq last-coding-system-used coding-save)) 1206 ;; not correct because
1209 (setq data 1207 ;; public.utf16-plain-text is defined as
1210 (decode-coding-string data 'utf-16))))) 1208 ;; native byte order, no BOM.
1209 (decode-coding-string
1210 (mac-code-convert-string data nil 'utf-8)
1211 'utf-8))))
1212 ;; No `mac-code-convert-string' means non-Carbon, which
1213 ;; implies big endian.
1214 (setq data (decode-coding-string data 'utf-16be))))
1211 ((eq data-type 'com.apple.traditional-mac-plain-text) 1215 ((eq data-type 'com.apple.traditional-mac-plain-text)
1212 (setq data (decode-coding-string data coding))) 1216 (setq data (decode-coding-string data coding)))
1213 ((eq data-type 'public.file-url) 1217 ((eq data-type 'public.file-url)
@@ -1324,14 +1328,25 @@ in `selection-converter-alist', which see."
1324 (remove-text-properties 0 (length str) '(composition nil) str) 1328 (remove-text-properties 0 (length str) '(composition nil) str)
1325 (cond 1329 (cond
1326 ((eq type 'public.utf16-plain-text) 1330 ((eq type 'public.utf16-plain-text)
1327 (let (s) 1331 (if (fboundp 'mac-code-convert-string)
1328 (when (and (fboundp 'mac-code-convert-string) 1332 (let (s)
1329 (memq coding (find-coding-systems-string str))) 1333 (when (memq coding (find-coding-systems-string str))
1330 (setq coding (coding-system-change-eol-conversion coding 'mac)) 1334 (setq coding
1331 (setq s (mac-code-convert-string 1335 (coding-system-change-eol-conversion coding 'mac))
1332 (encode-coding-string str coding) 1336 (setq s (mac-code-convert-string
1333 coding 'utf-16))) 1337 (encode-coding-string str coding)
1334 (setq str (or s (encode-coding-string str 'utf-16-mac))))) 1338 coding nil)))
1339 (setq str (or s
1340 ;; (encode-coding-string str
1341 ;; 'utf-16-mac) is not correct because
1342 ;; public.utf16-plain-text is defined
1343 ;; as native byte order, no BOM.
1344 (mac-code-convert-string
1345 (encode-coding-string str 'utf-8-mac)
1346 'utf-8 nil))))
1347 ;; No `mac-code-convert-string' means non-Carbon, which
1348 ;; implies big endian.
1349 (setq str (encode-coding-string str 'utf-16be-mac))))
1335 ((eq type 'com.apple.traditional-mac-plain-text) 1350 ((eq type 'com.apple.traditional-mac-plain-text)
1336 (let ((encodables (find-coding-systems-string str)) 1351 (let ((encodables (find-coding-systems-string str))
1337 (rest mac-script-code-coding-systems)) 1352 (rest mac-script-code-coding-systems))
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el
index 2177f72fd0d..7b736708268 100644
--- a/lisp/textmodes/bibtex.el
+++ b/lisp/textmodes/bibtex.el
@@ -2522,7 +2522,8 @@ of a word, all strings are listed. Return completion."
2522 (message "Making completion list...") 2522 (message "Making completion list...")
2523 (with-output-to-temp-buffer "*Completions*" 2523 (with-output-to-temp-buffer "*Completions*"
2524 (display-completion-list (all-completions part-of-word 2524 (display-completion-list (all-completions part-of-word
2525 completions))) 2525 completions)
2526 part-of-word))
2526 (message "Making completion list...done") 2527 (message "Making completion list...done")
2527 ;; return value is handled by choose-completion-string-functions 2528 ;; return value is handled by choose-completion-string-functions
2528 nil)))) 2529 nil))))
@@ -2661,6 +2662,7 @@ begins at the beginning of a line. We use this function for font-locking."
2661 field bounds start end found) 2662 field bounds start end found)
2662 (bibtex-beginning-of-field) 2663 (bibtex-beginning-of-field)
2663 (while (and (not found) 2664 (while (and (not found)
2665 (<= (point) bound)
2664 (prog1 (re-search-forward bibtex-font-lock-url-regexp bound t) 2666 (prog1 (re-search-forward bibtex-font-lock-url-regexp bound t)
2665 (setq field (match-string-no-properties 1))) 2667 (setq field (match-string-no-properties 1)))
2666 (setq bounds (bibtex-parse-field-text)) 2668 (setq bounds (bibtex-parse-field-text))
diff --git a/lisp/textmodes/conf-mode.el b/lisp/textmodes/conf-mode.el
index 8c009921d09..2c895eb517e 100644
--- a/lisp/textmodes/conf-mode.el
+++ b/lisp/textmodes/conf-mode.el
@@ -86,7 +86,7 @@ not align (only setting space according to `conf-assignment-space')."
86 (define-key map "\C-c'" 'conf-quote-normal) 86 (define-key map "\C-c'" 'conf-quote-normal)
87 (define-key map "\C-c\C-a" 'conf-align-assignments) 87 (define-key map "\C-c\C-a" 'conf-align-assignments)
88 map) 88 map)
89 "Local keymap for conf-mode buffers.") 89 "Local keymap for `conf-mode' buffers.")
90 90
91(defvar conf-mode-syntax-table 91(defvar conf-mode-syntax-table
92 (let ((table (make-syntax-table))) 92 (let ((table (make-syntax-table)))
@@ -99,7 +99,7 @@ not align (only setting space according to `conf-assignment-space')."
99 (modify-syntax-entry ?\n ">" table) 99 (modify-syntax-entry ?\n ">" table)
100 (modify-syntax-entry ?\r ">" table) 100 (modify-syntax-entry ?\r ">" table)
101 table) 101 table)
102 "Syntax table in use in Windows style conf-mode buffers.") 102 "Syntax table in use in Windows style `conf-mode' buffers.")
103 103
104(defvar conf-unix-mode-syntax-table 104(defvar conf-unix-mode-syntax-table
105 (let ((table (make-syntax-table conf-mode-syntax-table))) 105 (let ((table (make-syntax-table conf-mode-syntax-table)))
@@ -107,7 +107,7 @@ not align (only setting space according to `conf-assignment-space')."
107 ;; override 107 ;; override
108 (modify-syntax-entry ?\; "." table) 108 (modify-syntax-entry ?\; "." table)
109 table) 109 table)
110 "Syntax table in use in Unix style conf-mode buffers.") 110 "Syntax table in use in Unix style `conf-mode' buffers.")
111 111
112(defvar conf-javaprop-mode-syntax-table 112(defvar conf-javaprop-mode-syntax-table
113 (let ((table (make-syntax-table conf-unix-mode-syntax-table))) 113 (let ((table (make-syntax-table conf-unix-mode-syntax-table)))
@@ -124,7 +124,7 @@ not align (only setting space according to `conf-assignment-space')."
124 (modify-syntax-entry ?\' "." table) 124 (modify-syntax-entry ?\' "." table)
125 (modify-syntax-entry ?\; "." table) 125 (modify-syntax-entry ?\; "." table)
126 table) 126 table)
127 "Syntax table in use in PPD conf-mode buffers.") 127 "Syntax table in use in PPD `conf-mode' buffers.")
128 128
129(defvar conf-xdefaults-mode-syntax-table 129(defvar conf-xdefaults-mode-syntax-table
130 (let ((table (make-syntax-table conf-mode-syntax-table))) 130 (let ((table (make-syntax-table conf-mode-syntax-table)))
@@ -132,7 +132,7 @@ not align (only setting space according to `conf-assignment-space')."
132 ;; override 132 ;; override
133 (modify-syntax-entry ?\; "." table) 133 (modify-syntax-entry ?\; "." table)
134 table) 134 table)
135 "Syntax table in use in Xdefaults style conf-mode buffers.") 135 "Syntax table in use in Xdefaults style `conf-mode' buffers.")
136 136
137 137
138(defvar conf-font-lock-keywords 138(defvar conf-font-lock-keywords
@@ -144,7 +144,7 @@ not align (only setting space according to `conf-assignment-space')."
144 (2 'font-lock-constant-face nil t)) 144 (2 'font-lock-constant-face nil t))
145 ;; section { ... } (do this last because some assign ...{...) 145 ;; section { ... } (do this last because some assign ...{...)
146 ("^[ \t]*\\([^=:\n]+?\\)[ \t\n]*{[^{}]*?$" 1 'font-lock-type-face prepend)) 146 ("^[ \t]*\\([^=:\n]+?\\)[ \t\n]*{[^{}]*?$" 1 'font-lock-type-face prepend))
147 "Keywords to hilight in Conf mode") 147 "Keywords to hilight in Conf mode.")
148 148
149(defvar conf-javaprop-font-lock-keywords 149(defvar conf-javaprop-font-lock-keywords
150 '(;; var=val 150 '(;; var=val
@@ -156,7 +156,7 @@ not align (only setting space according to `conf-assignment-space')."
156 (5 'font-lock-variable-name-face nil t) 156 (5 'font-lock-variable-name-face nil t)
157 (6 'font-lock-constant-face nil t) 157 (6 'font-lock-constant-face nil t)
158 (7 'font-lock-variable-name-face nil t))) 158 (7 'font-lock-variable-name-face nil t)))
159 "Keywords to hilight in Conf Java Properties mode") 159 "Keywords to hilight in Conf Java Properties mode.")
160 160
161(defvar conf-space-keywords-alist 161(defvar conf-space-keywords-alist
162 '(("\\`/etc/gpm/" . "key\\|name\\|foreground\\|background\\|border\\|head") 162 '(("\\`/etc/gpm/" . "key\\|name\\|foreground\\|background\\|border\\|head")
@@ -188,7 +188,7 @@ This variable is best set in the file local variables, or through
188 '(1 'font-lock-keyword-face) 188 '(1 'font-lock-keyword-face)
189 '(2 'font-lock-variable-name-face)) 189 '(2 'font-lock-variable-name-face))
190 '("^[ \t]*\\([^\000- ]+\\)" 1 'font-lock-variable-name-face))) 190 '("^[ \t]*\\([^\000- ]+\\)" 1 'font-lock-variable-name-face)))
191 "Keywords to hilight in Conf Space mode") 191 "Keywords to hilight in Conf Space mode.")
192 192
193(defvar conf-colon-font-lock-keywords 193(defvar conf-colon-font-lock-keywords
194 `(;; [section] (do this first because it may look like a parameter) 194 `(;; [section] (do this first because it may look like a parameter)
@@ -198,7 +198,7 @@ This variable is best set in the file local variables, or through
198 (1 'font-lock-variable-name-face)) 198 (1 'font-lock-variable-name-face))
199 ;; section { ... } (do this last because some assign ...{...) 199 ;; section { ... } (do this last because some assign ...{...)
200 ("^[ \t]*\\([^:\n]+\\)[ \t\n]*{[^{}]*?$" 1 'font-lock-type-face prepend)) 200 ("^[ \t]*\\([^:\n]+\\)[ \t\n]*{[^{}]*?$" 1 'font-lock-type-face prepend))
201 "Keywords to hilight in Conf Colon mode") 201 "Keywords to hilight in Conf Colon mode.")
202 202
203(defvar conf-assignment-sign ?= 203(defvar conf-assignment-sign ?=
204 "What sign is used for assignments.") 204 "What sign is used for assignments.")
@@ -231,12 +231,15 @@ whitespace.")
231 (if (>= arg 0) 231 (if (>= arg 0)
232 (progn 232 (progn
233 (indent-to-column arg) 233 (indent-to-column arg)
234 (or (not conf-assignment-space) (memq (char-before (point)) '(?\s ?\t)) (insert ?\s)) 234 (or (not conf-assignment-space)
235 (insert conf-assignment-sign (if (and conf-assignment-space (not (eolp))) ?\s ""))) 235 (memq (char-before (point)) '(?\s ?\t)) (insert ?\s))
236 (insert conf-assignment-sign
237 (if (and conf-assignment-space (not (eolp))) ?\s "")))
236 (insert (if conf-assignment-space ?\s "") conf-assignment-sign) 238 (insert (if conf-assignment-space ?\s "") conf-assignment-sign)
237 (unless (eolp) 239 (unless (eolp)
238 (indent-to-column (- arg)) 240 (indent-to-column (- arg))
239 (or (not conf-assignment-space) (memq (char-before (point)) '(?\s ?\t)) (insert ?\s)))) 241 (or (not conf-assignment-space)
242 (memq (char-before (point)) '(?\s ?\t)) (insert ?\s))))
240 (unless (eolp) 243 (unless (eolp)
241 (if (>= (current-column) (abs arg)) 244 (if (>= (current-column) (abs arg))
242 (insert ?\s) 245 (insert ?\s)
@@ -255,8 +258,10 @@ both, i.e. quotes delimit strings, except when they are
255unbalanced, but hey...)" 258unbalanced, but hey...)"
256 (interactive "P") 259 (interactive "P")
257 (let ((table (copy-syntax-table (syntax-table)))) 260 (let ((table (copy-syntax-table (syntax-table))))
258 (if (or (not arg) (= (prefix-numeric-value arg) 1)) (modify-syntax-entry ?\' "." table)) 261 (if (or (not arg) (= (prefix-numeric-value arg) 1))
259 (if (or (not arg) (= (prefix-numeric-value arg) 2)) (modify-syntax-entry ?\" "." table)) 262 (modify-syntax-entry ?\' "." table))
263 (if (or (not arg) (= (prefix-numeric-value arg) 2))
264 (modify-syntax-entry ?\" "." table))
260 (set-syntax-table table) 265 (set-syntax-table table)
261 (and (boundp 'font-lock-mode) 266 (and (boundp 'font-lock-mode)
262 font-lock-mode 267 font-lock-mode
@@ -326,25 +331,25 @@ See also `conf-space-mode', `conf-colon-mode', `conf-javaprop-mode',
326 ((looking-at ".*{")) ; nop 331 ((looking-at ".*{")) ; nop
327 ((setq space (1+ space)))) 332 ((setq space (1+ space))))
328 (forward-line))) 333 (forward-line)))
329 (if (> jp (max unix win 3)) 334 (cond
330 (conf-javaprop-mode) 335 ((> jp (max unix win 3)) (conf-javaprop-mode))
331 (if (> colon (max equal space)) 336 ((> colon (max equal space)) (conf-colon-mode))
332 (conf-colon-mode) 337 ((> space (max equal colon)) (conf-space-mode))
333 (if (> space (max equal colon)) 338 ((or (> win unix) (and (= win unix) (eq system-type 'windows-nt)))
334 (conf-space-mode) 339 (conf-windows-mode))
335 (if (or (> win unix) 340 (t (conf-unix-mode))))
336 (and (= win unix) (eq system-type 'windows-nt)))
337 (conf-windows-mode)
338 (conf-unix-mode))))))
339 (kill-all-local-variables) 341 (kill-all-local-variables)
340 (use-local-map conf-mode-map) 342 (use-local-map conf-mode-map)
341 343
342 (setq major-mode 'conf-mode 344 (setq major-mode 'conf-mode
343 mode-name name) 345 mode-name name)
346 (set (make-local-variable 'font-lock-defaults)
347 '(conf-font-lock-keywords nil t nil nil))
344 (set (make-local-variable 'comment-start) comment) 348 (set (make-local-variable 'comment-start) comment)
345 (set (make-local-variable 'comment-start-skip) 349 (set (make-local-variable 'comment-start-skip)
346 (concat (regexp-quote comment-start) "+\\s *")) 350 (concat (regexp-quote comment-start) "+\\s *"))
347 (set (make-local-variable 'comment-use-syntax) t) 351 ;; Let newcomment.el decide this for himself.
352 ;; (set (make-local-variable 'comment-use-syntax) t)
348 (set (make-local-variable 'parse-sexp-ignore-comments) t) 353 (set (make-local-variable 'parse-sexp-ignore-comments) t)
349 (set (make-local-variable 'outline-regexp) 354 (set (make-local-variable 'outline-regexp)
350 "[ \t]*\\(?:\\[\\|.+[ \t\n]*{\\)") 355 "[ \t]*\\(?:\\[\\|.+[ \t\n]*{\\)")
@@ -368,7 +373,7 @@ See also `conf-space-mode', `conf-colon-mode', `conf-javaprop-mode',
368Comments start with `#'. 373Comments start with `#'.
369For details see `conf-mode'. Example: 374For details see `conf-mode'. Example:
370 375
371# Conf mode font-locks this right on Unix and with C-c C-u 376# Conf mode font-locks this right on Unix and with \\[conf-unix-mode]
372 377
373\[Desktop Entry] 378\[Desktop Entry]
374 Encoding=UTF-8 379 Encoding=UTF-8
@@ -384,7 +389,7 @@ For details see `conf-mode'. Example:
384Comments start with `;'. 389Comments start with `;'.
385For details see `conf-mode'. Example: 390For details see `conf-mode'. Example:
386 391
387; Conf mode font-locks this right on Windows and with C-c C-w 392; Conf mode font-locks this right on Windows and with \\[conf-windows-mode]
388 393
389\[ExtShellFolderViews] 394\[ExtShellFolderViews]
390Default={5984FFE0-28D4-11CF-AE66-08002B2E1262} 395Default={5984FFE0-28D4-11CF-AE66-08002B2E1262}
@@ -407,7 +412,7 @@ Comments start with `#' but are also recognized with `//' or
407between `/*' and `*/'. 412between `/*' and `*/'.
408For details see `conf-mode'. Example: 413For details see `conf-mode'. Example:
409 414
410# Conf mode font-locks this right with C-c C-j (Java properties) 415# Conf mode font-locks this right with \\[conf-javaprop-mode] (Java properties)
411// another kind of comment 416// another kind of comment
412/* yet another */ 417/* yet another */
413 418
@@ -441,7 +446,7 @@ KEYWORDS, or any non-nil non-string for no keywords.
441 446
442For details see `conf-mode'. Example: 447For details see `conf-mode'. Example:
443 448
444# Conf mode font-locks this right with C-c C-s (space separated) 449# Conf mode font-locks this right with \\[conf-space-mode] (space separated)
445 450
446image/jpeg jpeg jpg jpe 451image/jpeg jpeg jpg jpe
447image/png png 452image/png png
@@ -495,7 +500,7 @@ add /dev/mixer desktop"
495\"Assignments\" are with `:'. 500\"Assignments\" are with `:'.
496For details see `conf-mode'. Example: 501For details see `conf-mode'. Example:
497 502
498# Conf mode font-locks this right with C-c C-c (colon) 503# Conf mode font-locks this right with \\[conf-colon-mode] (colon)
499 504
500<Multi_key> <exclam> <exclam> : \"\\241\" exclamdown 505<Multi_key> <exclam> <exclam> : \"\\241\" exclamdown
501<Multi_key> <c> <slash> : \"\\242\" cent" 506<Multi_key> <c> <slash> : \"\\242\" cent"
@@ -524,7 +529,7 @@ For details see `conf-mode'. Example:
524Comments start with `*%' and \"assignments\" are with `:'. 529Comments start with `*%' and \"assignments\" are with `:'.
525For details see `conf-mode'. Example: 530For details see `conf-mode'. Example:
526 531
527*% Conf mode font-locks this right with C-c C-p (PPD) 532*% Conf mode font-locks this right with \\[conf-ppd-mode] (PPD)
528 533
529*DefaultTransfer: Null 534*DefaultTransfer: Null
530*Transfer Null.Inverse: \"{ 1 exch sub }\"" 535*Transfer Null.Inverse: \"{ 1 exch sub }\""
@@ -539,22 +544,13 @@ For details see `conf-mode'. Example:
539Comments start with `!' and \"assignments\" are with `:'. 544Comments start with `!' and \"assignments\" are with `:'.
540For details see `conf-mode'. Example: 545For details see `conf-mode'. Example:
541 546
542! Conf mode font-locks this right with C-c C-x (.Xdefaults) 547! Conf mode font-locks this right with \\[conf-xdefaults-mode] (.Xdefaults)
543 548
544*background: gray99 549*background: gray99
545*foreground: black" 550*foreground: black"
546 (interactive) 551 (interactive)
547 (conf-colon-mode "!" conf-xdefaults-mode-syntax-table "Conf[Xdefaults]")) 552 (conf-colon-mode "!" conf-xdefaults-mode-syntax-table "Conf[Xdefaults]"))
548 553
549
550;; font lock support
551(if (boundp 'font-lock-defaults-alist)
552 (add-to-list
553 'font-lock-defaults-alist
554 (cons 'conf-mode
555 (list 'conf-font-lock-keywords nil t nil nil))))
556
557
558(provide 'conf-mode) 554(provide 'conf-mode)
559 555
560;; arch-tag: 0a3805b2-0371-4d3a-8498-8897116b2356 556;; arch-tag: 0a3805b2-0371-4d3a-8498-8897116b2356
diff --git a/lisp/textmodes/org.el b/lisp/textmodes/org.el
index b9542c9fce7..7f0d257e5f6 100644
--- a/lisp/textmodes/org.el
+++ b/lisp/textmodes/org.el
@@ -2844,7 +2844,7 @@ At all other locations, this simply calls `ispell-complete-word'."
2844 (message "Making completion list...") 2844 (message "Making completion list...")
2845 (let ((list (sort (all-completions pattern table) 'string<))) 2845 (let ((list (sort (all-completions pattern table) 'string<)))
2846 (with-output-to-temp-buffer "*Completions*" 2846 (with-output-to-temp-buffer "*Completions*"
2847 (display-completion-list list))) 2847 (display-completion-list list pattern)))
2848 (message "Making completion list...%s" "done")))))) 2848 (message "Making completion list...%s" "done"))))))
2849 2849
2850;;; Comments, TODO and DEADLINE 2850;;; Comments, TODO and DEADLINE
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index 3623c788882..bdd4e659a0e 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -576,7 +576,7 @@ An alternative value is \" . \", if you use a font with a narrow period."
576 2 '(tex-font-lock-append-prop 'italic) 'append) 576 2 '(tex-font-lock-append-prop 'italic) 'append)
577 ;; This is separate from the previous one because of cases like 577 ;; This is separate from the previous one because of cases like
578 ;; {\em foo {\bf bar} bla} where both match. 578 ;; {\em foo {\bf bar} bla} where both match.
579 (list (concat "\\\\\\(bf\\(series\\)?\\)\\>" args) 579 (list (concat "\\\\\\(bf\\(series\\)?\\)\\>" args)
580 3 '(tex-font-lock-append-prop 'bold) 'append))))) 580 3 '(tex-font-lock-append-prop 'bold) 'append)))))
581 "Gaudy expressions to highlight in TeX modes.") 581 "Gaudy expressions to highlight in TeX modes.")
582 582
diff --git a/lisp/toolbar/tool-bar.el b/lisp/tool-bar.el
index 487255a0272..984dac92b12 100644
--- a/lisp/toolbar/tool-bar.el
+++ b/lisp/tool-bar.el
@@ -97,7 +97,7 @@ PROPS are additional items to add to the menu item specification. See
97Info node `(elisp)Tool Bar'. Items are added from left to right. 97Info node `(elisp)Tool Bar'. Items are added from left to right.
98 98
99ICON is the base name of a file containing the image to use. The 99ICON is the base name of a file containing the image to use. The
100function will first try to use lc-ICON.xpm if display-color-cells 100function will first try to use low-color/ICON.xpm if display-color-cells
101is less or equal to 256, then ICON.xpm, then ICON.pbm, and finally 101is less or equal to 256, then ICON.xpm, then ICON.pbm, and finally
102ICON.xbm, using `find-image'. 102ICON.xbm, using `find-image'.
103 103
@@ -114,7 +114,7 @@ PROPS are additional items to add to the menu item specification. See
114Info node `(elisp)Tool Bar'. Items are added from left to right. 114Info node `(elisp)Tool Bar'. Items are added from left to right.
115 115
116ICON is the base name of a file containing the image to use. The 116ICON is the base name of a file containing the image to use. The
117function will first try to use lc-ICON.xpm if display-color-cells 117function will first try to use low-color/ICON.xpm if display-color-cells
118is less or equal to 256, then ICON.xpm, then ICON.pbm, and finally 118is less or equal to 256, then ICON.xpm, then ICON.pbm, and finally
119ICON.xbm, using `find-image'." 119ICON.xbm, using `find-image'."
120 (let* ((fg (face-attribute 'tool-bar :foreground)) 120 (let* ((fg (face-attribute 'tool-bar :foreground))
@@ -124,9 +124,12 @@ ICON.xbm, using `find-image'."
124 (xpm-spec (list :type 'xpm :file (concat icon ".xpm"))) 124 (xpm-spec (list :type 'xpm :file (concat icon ".xpm")))
125 (xpm-lo-spec (if (> (display-color-cells) 256) 125 (xpm-lo-spec (if (> (display-color-cells) 256)
126 nil 126 nil
127 (list :type 'xpm :file (concat "lc-" icon ".xpm")))) 127 (list :type 'xpm :file
128 (pbm-spec (append (list :type 'pbm :file (concat icon ".pbm")) colors)) 128 (concat "low-color/" icon ".xpm"))))
129 (xbm-spec (append (list :type 'xbm :file (concat icon ".xbm")) colors)) 129 (pbm-spec (append (list :type 'pbm :file
130 (concat icon ".pbm")) colors))
131 (xbm-spec (append (list :type 'xbm :file
132 (concat icon ".xbm")) colors))
130 (image (find-image 133 (image (find-image
131 (if (display-color-p) 134 (if (display-color-p)
132 (list xpm-lo-spec xpm-spec pbm-spec xbm-spec) 135 (list xpm-lo-spec xpm-spec pbm-spec xbm-spec)
@@ -175,9 +178,12 @@ MAP must contain appropriate binding for `[menu-bar]' which holds a keymap."
175 (xpm-spec (list :type 'xpm :file (concat icon ".xpm"))) 178 (xpm-spec (list :type 'xpm :file (concat icon ".xpm")))
176 (xpm-lo-spec (if (> (display-color-cells) 256) 179 (xpm-lo-spec (if (> (display-color-cells) 256)
177 nil 180 nil
178 (list :type 'xpm :file (concat "lc-" icon ".xpm")))) 181 (list :type 'xpm :file
179 (pbm-spec (append (list :type 'pbm :file (concat icon ".pbm")) colors)) 182 (concat "low-color/" icon ".xpm"))))
180 (xbm-spec (append (list :type 'xbm :file (concat icon ".xbm")) colors)) 183 (pbm-spec (append (list :type 'pbm :file
184 (concat icon ".pbm")) colors))
185 (xbm-spec (append (list :type 'xbm :file
186 (concat icon ".xbm")) colors))
181 (spec (if (display-color-p) 187 (spec (if (display-color-p)
182 (list xpm-lo-spec xpm-spec pbm-spec xbm-spec) 188 (list xpm-lo-spec xpm-spec pbm-spec xbm-spec)
183 (list pbm-spec xbm-spec xpm-lo-spec xpm-spec))) 189 (list pbm-spec xbm-spec xpm-lo-spec xpm-spec)))
@@ -255,7 +261,7 @@ MAP must contain appropriate binding for `[menu-bar]' which holds a keymap."
255 261
256 ;; There's no icon appropriate for News and we need a command rather 262 ;; There's no icon appropriate for News and we need a command rather
257 ;; than a lambda for Read Mail. 263 ;; than a lambda for Read Mail.
258 ;;(tool-bar-add-item-from-menu 'compose-mail "mail_compose") 264 ;;(tool-bar-add-item-from-menu 'compose-mail "mail/compose")
259 265
260 (tool-bar-add-item-from-menu 'print-buffer "print") 266 (tool-bar-add-item-from-menu 'print-buffer "print")
261 (tool-bar-add-item "preferences" 'customize 'customize 267 (tool-bar-add-item "preferences" 'customize 'customize
diff --git a/lisp/toolbar/README b/lisp/toolbar/README
deleted file mode 100644
index 81df0c874bd..00000000000
--- a/lisp/toolbar/README
+++ /dev/null
@@ -1,12 +0,0 @@
1The following icons are from GTK+ 2.x:
2
3 close.xpm copy.xpm cut.xpm help.xpm home.xpm
4 index.xpm jump_to.xpm left_arrow.xpm new.xpm open.xpm
5 paste.xpm preferences.xpm print.xpm right_arrow.xpm save.xpm
6 saveas.xpm search.xpm spell.xpm undo.xpm up_arrow.xpm
7
8 back_arrow.xpm and fwd_arrow.xpm are slightly modified undo and redo.
9
10 diropen.xpm is file-manager.png from Gnome hicolor theme.
11
12They are not part of Emacs, but distributed and used by Emacs.
diff --git a/lisp/tree-widget.el b/lisp/tree-widget.el
index 708dc294f8d..8ee1d5f9ed9 100644
--- a/lisp/tree-widget.el
+++ b/lisp/tree-widget.el
@@ -434,16 +434,25 @@ Return the image found, or nil if not found."
434 434
435;;; Widgets 435;;; Widgets
436;; 436;;
437(defun tree-widget-button-click (event)
438 "Move to the position clicked on, and if it is a button, invoke it.
439EVENT is the mouse event received."
440 (interactive "e")
441 (mouse-set-point event)
442 (let ((pos (widget-event-point event)))
443 (if (get-char-property pos 'button)
444 (widget-button-click event))))
445
437(defvar tree-widget-button-keymap 446(defvar tree-widget-button-keymap
438 (let ((km (make-sparse-keymap))) 447 (let ((km (make-sparse-keymap)))
439 (if (boundp 'widget-button-keymap) 448 (if (boundp 'widget-button-keymap)
440 ;; XEmacs 449 ;; XEmacs
441 (progn 450 (progn
442 (set-keymap-parent km widget-button-keymap) 451 (set-keymap-parent km widget-button-keymap)
443 (define-key km [button1] 'widget-button-click)) 452 (define-key km [button1] 'tree-widget-button-click))
444 ;; Emacs 453 ;; Emacs
445 (set-keymap-parent km widget-keymap) 454 (set-keymap-parent km widget-keymap)
446 (define-key km [down-mouse-1] 'widget-button-click)) 455 (define-key km [down-mouse-1] 'tree-widget-button-click))
447 km) 456 km)
448 "Keymap used inside node buttons. 457 "Keymap used inside node buttons.
449Handle mouse button 1 click on buttons.") 458Handle mouse button 1 click on buttons.")
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index 3eb850f85f3..d7a822e105a 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -1,3 +1,7 @@
12005-10-15 Richard M. Stallman <rms@gnu.org>
2
3 * url.el: Don't try to autoload hash table functions.
4
12005-10-03 Stefan Monnier <monnier@iro.umontreal.ca> 52005-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
2 6
3 * url-http.el (url-http-create-request): Avoid incorrect implicit 7 * url-http.el (url-http-create-request): Avoid incorrect implicit
diff --git a/lisp/url/url.el b/lisp/url/url.el
index ef101fe6f2a..4a1e157e59d 100644
--- a/lisp/url/url.el
+++ b/lisp/url/url.el
@@ -30,16 +30,6 @@
30;;; Code: 30;;; Code:
31 31
32(eval-when-compile (require 'cl)) 32(eval-when-compile (require 'cl))
33;; Don't require CL at runtime if we can avoid it (Emacs 21).
34;; Otherwise we need it for hashing functions. `puthash' was never
35;; defined in the Emacs 20 cl.el for some reason.
36(if (fboundp 'puthash)
37 nil ; internal or CL is loaded
38 (defalias 'puthash 'cl-puthash)
39 (autoload 'cl-puthash "cl")
40 (autoload 'gethash "cl")
41 (autoload 'maphash "cl")
42 (autoload 'make-hash-table "cl"))
43 33
44(eval-when-compile 34(eval-when-compile
45 (require 'mm-decode) 35 (require 'mm-decode)
@@ -236,6 +226,10 @@ no further processing). URL is either a string or a parsed URL."
236 226
237(defun url-mm-url (url) 227(defun url-mm-url (url)
238 "Retrieve URL and pass to the appropriate viewing application." 228 "Retrieve URL and pass to the appropriate viewing application."
229 ;; These requires could advantageously be moved to url-mm-callback or
230 ;; turned into autoloads, but I suspect that it would introduce some bugs
231 ;; because loading those files from a process sentinel or filter may
232 ;; result in some undesirable carner cases.
239 (require 'mm-decode) 233 (require 'mm-decode)
240 (require 'mm-view) 234 (require 'mm-view)
241 (url-retrieve url 'url-mm-callback nil)) 235 (url-retrieve url 'url-mm-callback nil))
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 9dea809dc91..1d5cb3625f0 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -660,6 +660,16 @@ button is pressed or inactive, respectively. These are currently ignored."
660 tag 'mouse-face widget-button-pressed-face))) 660 tag 'mouse-face widget-button-pressed-face)))
661 (insert tag))) 661 (insert tag)))
662 662
663(defun widget-move-and-invoke (event)
664 "Move to where you click, and if it is an active field, invoke it."
665 (interactive "e")
666 (mouse-set-point event)
667 (if (widget-event-point event)
668 (let* ((pos (widget-event-point event))
669 (button (get-char-property pos 'button)))
670 (if button
671 (widget-button-click event)))))
672
663;;; Buttons. 673;;; Buttons.
664 674
665(defgroup widget-button nil 675(defgroup widget-button nil
@@ -3012,7 +3022,8 @@ It will read a file name from the minibuffer when invoked."
3012 (with-output-to-temp-buffer "*Completions*" 3022 (with-output-to-temp-buffer "*Completions*"
3013 (display-completion-list 3023 (display-completion-list
3014 (sort (file-name-all-completions name-part directory) 3024 (sort (file-name-all-completions name-part directory)
3015 'string<))) 3025 'string<)
3026 name-part))
3016 (message "Making completion list...%s" "done"))))) 3027 (message "Making completion list...%s" "done")))))
3017 3028
3018(defun widget-file-prompt-value (widget prompt value unbound) 3029(defun widget-file-prompt-value (widget prompt value unbound)
@@ -3571,7 +3582,8 @@ example:
3571 (t 3582 (t
3572 (message "Making completion list...") 3583 (message "Making completion list...")
3573 (with-output-to-temp-buffer "*Completions*" 3584 (with-output-to-temp-buffer "*Completions*"
3574 (display-completion-list (all-completions prefix list nil))) 3585 (display-completion-list (all-completions prefix list nil)
3586 prefix))
3575 (message "Making completion list...done"))))) 3587 (message "Making completion list...done")))))
3576 3588
3577(defun widget-color-sample-face-get (widget) 3589(defun widget-color-sample-face-get (widget)
diff --git a/lisp/woman.el b/lisp/woman.el
index bc7ec86e4a7..5e8aff75e7f 100644
--- a/lisp/woman.el
+++ b/lisp/woman.el
@@ -424,6 +424,11 @@
424(defvar woman-version "0.551 (beta)" "WoMan version information.") 424(defvar woman-version "0.551 (beta)" "WoMan version information.")
425 425
426(require 'man) 426(require 'man)
427(require 'button)
428(define-button-type 'WoMan-xref-man-page
429 :supertype 'Man-abstract-xref-man-page
430 'func 'woman)
431
427(eval-when-compile ; to avoid compiler warnings 432(eval-when-compile ; to avoid compiler warnings
428 (require 'dired) 433 (require 'dired)
429 (require 'apropos)) 434 (require 'apropos))
@@ -1864,7 +1869,7 @@ See `Man-mode' for additional details."
1864 (setq woman-imenu-done nil) 1869 (setq woman-imenu-done nil)
1865 (if woman-imenu (woman-imenu)) 1870 (if woman-imenu (woman-imenu))
1866 (let (buffer-read-only) 1871 (let (buffer-read-only)
1867 (Man-highlight-references)) 1872 (Man-highlight-references 'WoMan-xref-man-page))
1868 (set-buffer-modified-p nil) 1873 (set-buffer-modified-p nil)
1869 (run-mode-hooks 'woman-mode-hook)) 1874 (run-mode-hooks 'woman-mode-hook))
1870 1875
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index 897d4a0aec2..36c3fd342de 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,30 @@
12005-10-17 Richard M. Stallman <rms@gnu.org>
2
3 * commands.texi (Quitting): Minor clarification.
4
5 * processes.texi (Sentinels): Clarify about output and quitting.
6 (Filter Functions): Mention with-local-quit.
7
82005-10-17 Juri Linkov <juri@jurta.org>
9
10 * buffers.texi (Current Buffer):
11 * commands.texi (Event Input Misc):
12 * compile.texi (Eval During Compile, Compiler Errors):
13 * customize.texi (Group Definitions):
14 * display.texi (Progress, Defining Faces):
15 * files.texi (Writing to Files):
16 * modes.texi (Mode Hooks, Defining Minor Modes):
17 * streams.texi (Output Functions):
18 * syntax.texi (Syntax Table Functions):
19 * text.texi (Change Hooks):
20 Replace `...' with `@dots{}' in `@defmac' and `@defspec'.
21
22 * commands.texi (Quitting): Replace arg `forms' with `body' in
23 `with-local-quit'.
24
25 * positions.texi (Excursions): Replace arg `forms' with `body' in
26 `save-excursion'.
27
12005-10-08 Kim F. Storm <storm@cua.dk> 282005-10-08 Kim F. Storm <storm@cua.dk>
2 29
3 * windows.texi (Window Tree): Rename window-split-tree to window-tree. 30 * windows.texi (Window Tree): Rename window-split-tree to window-tree.
diff --git a/lispref/buffers.texi b/lispref/buffers.texi
index 6204dfce339..30031a10d6e 100644
--- a/lispref/buffers.texi
+++ b/lispref/buffers.texi
@@ -202,7 +202,7 @@ An error is signaled if @var{buffer-or-name} does not identify an
202existing buffer. 202existing buffer.
203@end defun 203@end defun
204 204
205@defspec save-current-buffer body... 205@defspec save-current-buffer body@dots{}
206The @code{save-current-buffer} special form saves the identity of the 206The @code{save-current-buffer} special form saves the identity of the
207current buffer, evaluates the @var{body} forms, and finally restores 207current buffer, evaluates the @var{body} forms, and finally restores
208that buffer as current. The return value is the value of the last 208that buffer as current. The return value is the value of the last
@@ -215,7 +215,7 @@ of course. Instead, whichever buffer was current just before exit
215remains current. 215remains current.
216@end defspec 216@end defspec
217 217
218@defmac with-current-buffer buffer-or-name body... 218@defmac with-current-buffer buffer-or-name body@dots{}
219The @code{with-current-buffer} macro saves the identity of the current 219The @code{with-current-buffer} macro saves the identity of the current
220buffer, makes @var{buffer-or-name} current, evaluates the @var{body} 220buffer, makes @var{buffer-or-name} current, evaluates the @var{body}
221forms, and finally restores the buffer. The return value is the value 221forms, and finally restores the buffer. The return value is the value
@@ -227,7 +227,7 @@ An error is signaled if @var{buffer-or-name} does not identify an
227existing buffer. 227existing buffer.
228@end defmac 228@end defmac
229 229
230@defmac with-temp-buffer body... 230@defmac with-temp-buffer body@dots{}
231@anchor{Definition of with-temp-buffer} 231@anchor{Definition of with-temp-buffer}
232The @code{with-temp-buffer} macro evaluates the @var{body} forms 232The @code{with-temp-buffer} macro evaluates the @var{body} forms
233with a temporary buffer as the current buffer. It saves the identity of 233with a temporary buffer as the current buffer. It saves the identity of
diff --git a/lispref/commands.texi b/lispref/commands.texi
index 353a7436c28..ed9cb2cf3ca 100644
--- a/lispref/commands.texi
+++ b/lispref/commands.texi
@@ -2434,7 +2434,7 @@ The alias @code{last-input-char} exists for compatibility with
2434Emacs version 18. 2434Emacs version 18.
2435@end defvar 2435@end defvar
2436 2436
2437@defmac while-no-input body... 2437@defmac while-no-input body@dots{}
2438This construct runs the @var{body} forms and returns the value of the 2438This construct runs the @var{body} forms and returns the value of the
2439last one---but only if no input arrives. If any input arrives during 2439last one---but only if no input arrives. If any input arrives during
2440the execution of the @var{body} forms, it aborts them (working much 2440the execution of the @var{body} forms, it aborts them (working much
@@ -2658,27 +2658,28 @@ is set to a value other than @code{nil}. If @code{inhibit-quit} is
2658non-@code{nil}, then @code{quit-flag} has no special effect. 2658non-@code{nil}, then @code{quit-flag} has no special effect.
2659@end defvar 2659@end defvar
2660 2660
2661@defmac with-local-quit forms@dots{} 2661@defmac with-local-quit body@dots{}
2662This macro executes @var{forms} in sequence, but allows quitting, at 2662This macro executes @var{body} forms in sequence, but allows quitting, at
2663least locally, within @var{body} even if @code{inhibit-quit} was 2663least locally, within @var{body} even if @code{inhibit-quit} was
2664non-@code{nil} outside this construct. It returns the value of the 2664non-@code{nil} outside this construct. It returns the value of the
2665last form in @var{forms}, unless exited by quitting, in which case 2665last form in @var{body}, unless exited by quitting, in which case
2666it returns @code{nil}. 2666it returns @code{nil}.
2667 2667
2668If @code{inhibit-quit} is @code{nil} on entry to @code{with-local-quit}, 2668If @code{inhibit-quit} is @code{nil} on entry to @code{with-local-quit},
2669it only executes the @var{forms}, and setting @code{quit-flag} causes 2669it only executes the @var{body}, and setting @code{quit-flag} causes
2670a normal quit. However, if @code{inhibit-quit} is non-@code{nil} so 2670a normal quit. However, if @code{inhibit-quit} is non-@code{nil} so
2671that ordinary quitting is delayed, a non-@code{nil} @code{quit-flag} 2671that ordinary quitting is delayed, a non-@code{nil} @code{quit-flag}
2672triggers a special kind of local quit. This ends the execution of 2672triggers a special kind of local quit. This ends the execution of
2673@var{forms} and exits the @code{with-local-quit} form with 2673@var{body} and exits the @code{with-local-quit} body with
2674@code{quit-flag} still non-@code{nil}, so that another (ordinary) quit 2674@code{quit-flag} still non-@code{nil}, so that another (ordinary) quit
2675will happen as soon as that is allowed. If @code{quit-flag} is 2675will happen as soon as that is allowed. If @code{quit-flag} is
2676already non-@code{nil} at the beginning of @var{forms}, the local quit 2676already non-@code{nil} at the beginning of @var{body}, the local quit
2677happens immediately and they don't execute at all. 2677happens immediately and the body doesn't execute at all.
2678 2678
2679This macro is mainly useful in functions that can be called from 2679This macro is mainly useful in functions that can be called from
2680timers, @code{pre-command-hook}, @code{post-command-hook} and other 2680timers, process filters, process sentinels, @code{pre-command-hook},
2681places where @code{inhibit-quit} is normally bound to @code{t}. 2681@code{post-command-hook}, and other places where @code{inhibit-quit} is
2682normally bound to @code{t}.
2682@end defmac 2683@end defmac
2683 2684
2684@deffn Command keyboard-quit 2685@deffn Command keyboard-quit
diff --git a/lispref/compile.texi b/lispref/compile.texi
index 79ac366c27d..f8fd3f72b9a 100644
--- a/lispref/compile.texi
+++ b/lispref/compile.texi
@@ -401,7 +401,7 @@ it does nothing. It always returns @var{function}.
401 These features permit you to write code to be evaluated during 401 These features permit you to write code to be evaluated during
402compilation of a program. 402compilation of a program.
403 403
404@defspec eval-and-compile body 404@defspec eval-and-compile body@dots{}
405This form marks @var{body} to be evaluated both when you compile the 405This form marks @var{body} to be evaluated both when you compile the
406containing code and when you run it (whether compiled or not). 406containing code and when you run it (whether compiled or not).
407 407
@@ -410,7 +410,7 @@ and referring to that file with @code{require}. That method is
410preferable when @var{body} is large. 410preferable when @var{body} is large.
411@end defspec 411@end defspec
412 412
413@defspec eval-when-compile body 413@defspec eval-when-compile body@dots{}
414This form marks @var{body} to be evaluated at compile time but not when 414This form marks @var{body} to be evaluated at compile time but not when
415the compiled program is loaded. The result of evaluation by the 415the compiled program is loaded. The result of evaluation by the
416compiler becomes a constant which appears in the compiled program. If 416compiler becomes a constant which appears in the compiled program. If
@@ -470,7 +470,7 @@ The reference to @var{variable} must be in the @var{then-form} of the
470@c This is implemented with a defun, but conceptually it is 470@c This is implemented with a defun, but conceptually it is
471@c a special form. 471@c a special form.
472 472
473@defspec with-no-warnings body... 473@defspec with-no-warnings body@dots{}
474In execution, this is equivalent to @code{(progn @var{body}...)}, 474In execution, this is equivalent to @code{(progn @var{body}...)},
475but the compiler does not issue warnings for anything that occurs 475but the compiler does not issue warnings for anything that occurs
476inside @var{body}. 476inside @var{body}.
diff --git a/lispref/customize.texi b/lispref/customize.texi
index b573ab942a6..176165294f9 100644
--- a/lispref/customize.texi
+++ b/lispref/customize.texi
@@ -119,7 +119,7 @@ keyword.
119 119
120 The way to declare new customization groups is with @code{defgroup}. 120 The way to declare new customization groups is with @code{defgroup}.
121 121
122@defmac defgroup group members doc [keyword value]... 122@defmac defgroup group members doc [keyword value]@dots{}
123Declare @var{group} as a customization group containing @var{members}. 123Declare @var{group} as a customization group containing @var{members}.
124Do not quote the symbol @var{group}. The argument @var{doc} specifies 124Do not quote the symbol @var{group}. The argument @var{doc} specifies
125the documentation string for the group. It should not start with a 125the documentation string for the group. It should not start with a
diff --git a/lispref/display.texi b/lispref/display.texi
index 93a14f1a139..4c534282011 100644
--- a/lispref/display.texi
+++ b/lispref/display.texi
@@ -403,7 +403,7 @@ never print it, there are many good reasons for this not to happen.
403Secondly, ``done'' is more explicit. 403Secondly, ``done'' is more explicit.
404@end defun 404@end defun
405 405
406@defmac dotimes-with-progress-reporter (var count [result]) message body... 406@defmac dotimes-with-progress-reporter (var count [result]) message body@dots{}
407This is a convenience macro that works the same way as @code{dotimes} 407This is a convenience macro that works the same way as @code{dotimes}
408does, but also reports loop progress using the functions described 408does, but also reports loop progress using the functions described
409above. It allows you to save some typing. 409above. It allows you to save some typing.
@@ -1721,7 +1721,7 @@ kind of customization item (@pxref{Customization}) which the user can
1721customize using the Customization buffer (@pxref{Easy Customization,,, 1721customize using the Customization buffer (@pxref{Easy Customization,,,
1722emacs, The GNU Emacs Manual}). 1722emacs, The GNU Emacs Manual}).
1723 1723
1724@defmac defface face spec doc [keyword value]... 1724@defmac defface face spec doc [keyword value]@dots{}
1725This declares @var{face} as a customizable face that defaults 1725This declares @var{face} as a customizable face that defaults
1726according to @var{spec}. You should not quote the symbol @var{face}, 1726according to @var{spec}. You should not quote the symbol @var{face},
1727and it should not end in @samp{-face} (that would be redundant). The 1727and it should not end in @samp{-face} (that would be redundant). The
diff --git a/lispref/files.texi b/lispref/files.texi
index 5b8d77d2070..e9c5f31b448 100644
--- a/lispref/files.texi
+++ b/lispref/files.texi
@@ -625,7 +625,7 @@ feature is useful for programs that use files for internal purposes,
625files that the user does not need to know about. 625files that the user does not need to know about.
626@end deffn 626@end deffn
627 627
628@defmac with-temp-file file body... 628@defmac with-temp-file file body@dots{}
629@anchor{Definition of with-temp-file} 629@anchor{Definition of with-temp-file}
630The @code{with-temp-file} macro evaluates the @var{body} forms with a 630The @code{with-temp-file} macro evaluates the @var{body} forms with a
631temporary buffer as the current buffer; then, at the end, it writes the 631temporary buffer as the current buffer; then, at the end, it writes the
diff --git a/lispref/modes.texi b/lispref/modes.texi
index 27aea507cc8..00b58f0a9ff 100644
--- a/lispref/modes.texi
+++ b/lispref/modes.texi
@@ -1154,7 +1154,7 @@ Instead, it arranges for the next call to @code{run-mode-hooks} to run
1154@var{hookvars}. 1154@var{hookvars}.
1155@end defun 1155@end defun
1156 1156
1157@defmac delay-mode-hooks body... 1157@defmac delay-mode-hooks body@dots{}
1158This macro executes @var{body} like @code{progn}, but all calls to 1158This macro executes @var{body} like @code{progn}, but all calls to
1159@code{run-mode-hooks} inside @var{body} delay running their hooks. 1159@code{run-mode-hooks} inside @var{body} delay running their hooks.
1160They will be run by the first call to @code{run-mode-hooks} after exit 1160They will be run by the first call to @code{run-mode-hooks} after exit
@@ -1364,7 +1364,7 @@ characters are reserved for major modes.)
1364 The macro @code{define-minor-mode} offers a convenient way of 1364 The macro @code{define-minor-mode} offers a convenient way of
1365implementing a mode in one self-contained definition. 1365implementing a mode in one self-contained definition.
1366 1366
1367@defmac define-minor-mode mode doc [init-value [lighter [keymap]]] keyword-args... body... 1367@defmac define-minor-mode mode doc [init-value [lighter [keymap]]] keyword-args@dots{} body@dots{}
1368@tindex define-minor-mode 1368@tindex define-minor-mode
1369This macro defines a new minor mode whose name is @var{mode} (a 1369This macro defines a new minor mode whose name is @var{mode} (a
1370symbol). It defines a command named @var{mode} to toggle the minor 1370symbol). It defines a command named @var{mode} to toggle the minor
@@ -1492,7 +1492,7 @@ See the command \\[hungry-electric-delete]."
1492 :group 'hunger) 1492 :group 'hunger)
1493@end smallexample 1493@end smallexample
1494 1494
1495@defmac define-global-minor-mode global-mode mode turn-on keyword-args... 1495@defmac define-global-minor-mode global-mode mode turn-on keyword-args@dots{}
1496This defines a global minor mode named @var{global-mode} whose meaning 1496This defines a global minor mode named @var{global-mode} whose meaning
1497is to enable the buffer-local minor mode @var{mode} in every buffer. 1497is to enable the buffer-local minor mode @var{mode} in every buffer.
1498To turn on the minor mode in a buffer, it uses the function 1498To turn on the minor mode in a buffer, it uses the function
diff --git a/lispref/positions.texi b/lispref/positions.texi
index 77063addf9a..d1a7813aa60 100644
--- a/lispref/positions.texi
+++ b/lispref/positions.texi
@@ -829,13 +829,13 @@ after the completion of the excursion.
829described elsewhere (see @ref{Window Configurations}, and @pxref{Frame 829described elsewhere (see @ref{Window Configurations}, and @pxref{Frame
830Configurations}). 830Configurations}).
831 831
832@defspec save-excursion forms@dots{} 832@defspec save-excursion body@dots{}
833@cindex mark excursion 833@cindex mark excursion
834@cindex point excursion 834@cindex point excursion
835@cindex current buffer excursion 835@cindex current buffer excursion
836The @code{save-excursion} special form saves the identity of the current 836The @code{save-excursion} special form saves the identity of the current
837buffer and the values of point and the mark in it, evaluates 837buffer and the values of point and the mark in it, evaluates
838@var{forms}, and finally restores the buffer and its saved values of 838@var{body}, and finally restores the buffer and its saved values of
839point and the mark. All three saved values are restored even in case of 839point and the mark. All three saved values are restored even in case of
840an abnormal exit via @code{throw} or error (@pxref{Nonlocal Exits}). 840an abnormal exit via @code{throw} or error (@pxref{Nonlocal Exits}).
841 841
@@ -855,8 +855,8 @@ One way to restore these correspondences, and the selected window, is to
855use @code{save-window-excursion} inside @code{save-excursion} 855use @code{save-window-excursion} inside @code{save-excursion}
856(@pxref{Window Configurations}). 856(@pxref{Window Configurations}).
857 857
858The value returned by @code{save-excursion} is the result of the last of 858The value returned by @code{save-excursion} is the result of the last
859@var{forms}, or @code{nil} if no @var{forms} are given. 859form in @var{body}, or @code{nil} if no body forms were given.
860 860
861@example 861@example
862@group 862@group
diff --git a/lispref/processes.texi b/lispref/processes.texi
index afdeaa1d2a0..d63ddc4aa3e 100644
--- a/lispref/processes.texi
+++ b/lispref/processes.texi
@@ -1096,9 +1096,10 @@ then free to do whatever it chooses with the output.
1096 1096
1097 Quitting is normally inhibited within a filter function---otherwise, 1097 Quitting is normally inhibited within a filter function---otherwise,
1098the effect of typing @kbd{C-g} at command level or to quit a user 1098the effect of typing @kbd{C-g} at command level or to quit a user
1099command would be unpredictable. If you want to permit quitting inside a 1099command would be unpredictable. If you want to permit quitting inside
1100filter function, bind @code{inhibit-quit} to @code{nil}. 1100a filter function, bind @code{inhibit-quit} to @code{nil}. In most
1101@xref{Quitting}. 1101cases, the right way to do this is with the macro
1102@code{with-local-quit}. @xref{Quitting}.
1102 1103
1103 If an error happens during execution of a filter function, it is 1104 If an error happens during execution of a filter function, it is
1104caught automatically, so that it doesn't stop the execution of whatever 1105caught automatically, so that it doesn't stop the execution of whatever
@@ -1375,16 +1376,22 @@ quick succession, can call the sentinel just once. However, process
1375termination will always run the sentinel exactly once. This is 1376termination will always run the sentinel exactly once. This is
1376because the process status can't change again after termination. 1377because the process status can't change again after termination.
1377 1378
1378 Quitting is normally inhibited within a sentinel---otherwise, the 1379 Emacs explicitly checks for output from the process before running
1379effect of typing @kbd{C-g} at command level or to quit a user command 1380the process sentinel. Once the sentinel runs due to process
1380would be unpredictable. If you want to permit quitting inside a 1381termination, no further output can arrive from the process.
1381sentinel, bind @code{inhibit-quit} to @code{nil}. @xref{Quitting}.
1382 1382
1383 A sentinel that writes the output into the buffer of the process 1383 A sentinel that writes the output into the buffer of the process
1384should check whether the buffer is still alive. If it tries to insert 1384should check whether the buffer is still alive. If it tries to insert
1385into a dead buffer, it will get an error. If the buffer is dead, 1385into a dead buffer, it will get an error. If the buffer is dead,
1386@code{(buffer-name (process-buffer @var{process}))} returns @code{nil}. 1386@code{(buffer-name (process-buffer @var{process}))} returns @code{nil}.
1387 1387
1388 Quitting is normally inhibited within a sentinel---otherwise, the
1389effect of typing @kbd{C-g} at command level or to quit a user command
1390would be unpredictable. If you want to permit quitting inside a
1391sentinel, bind @code{inhibit-quit} to @code{nil}. In most cases, the
1392right way to do this is with the macro @code{with-local-quit}.
1393@xref{Quitting}.
1394
1388 If an error happens during execution of a sentinel, it is caught 1395 If an error happens during execution of a sentinel, it is caught
1389automatically, so that it doesn't stop the execution of whatever 1396automatically, so that it doesn't stop the execution of whatever
1390programs was running when the sentinel was started. However, if 1397programs was running when the sentinel was started. However, if
diff --git a/lispref/streams.texi b/lispref/streams.texi
index b5a18e27d01..cb8a7fcf297 100644
--- a/lispref/streams.texi
+++ b/lispref/streams.texi
@@ -663,7 +663,7 @@ See @code{format}, in @ref{Formatting Strings}, for other ways to obtain
663the printed representation of a Lisp object as a string. 663the printed representation of a Lisp object as a string.
664@end defun 664@end defun
665 665
666@defmac with-output-to-string body... 666@defmac with-output-to-string body@dots{}
667This macro executes the @var{body} forms with @code{standard-output} set 667This macro executes the @var{body} forms with @code{standard-output} set
668up to feed output into a string. Then it returns that string. 668up to feed output into a string. Then it returns that string.
669 669
diff --git a/lispref/syntax.texi b/lispref/syntax.texi
index 5cde2badabd..7de2cee2f81 100644
--- a/lispref/syntax.texi
+++ b/lispref/syntax.texi
@@ -512,7 +512,7 @@ This function returns the current syntax table, which is the table for
512the current buffer. 512the current buffer.
513@end defun 513@end defun
514 514
515@defmac with-syntax-table @var{table} @var{body}... 515@defmac with-syntax-table @var{table} @var{body}@dots{}
516@tindex with-syntax-table 516@tindex with-syntax-table
517This macro executes @var{body} using @var{table} as the current syntax 517This macro executes @var{body} using @var{table} as the current syntax
518table. It returns the value of the last form in @var{body}, after 518table. It returns the value of the last form in @var{body}, after
diff --git a/lispref/text.texi b/lispref/text.texi
index 1fa68fce917..ecbce818519 100644
--- a/lispref/text.texi
+++ b/lispref/text.texi
@@ -4265,7 +4265,7 @@ arguments.
4265 Output of messages into the @samp{*Messages*} buffer does not 4265 Output of messages into the @samp{*Messages*} buffer does not
4266call these functions. 4266call these functions.
4267 4267
4268@defmac combine-after-change-calls body... 4268@defmac combine-after-change-calls body@dots{}
4269The macro executes @var{body} normally, but arranges to call the 4269The macro executes @var{body} normally, but arranges to call the
4270after-change functions just once for a series of several changes---if 4270after-change functions just once for a series of several changes---if
4271that seems safe. 4271that seems safe.
diff --git a/make-dist b/make-dist
index d2563e16a5d..0e25de0059f 100755
--- a/make-dist
+++ b/make-dist
@@ -314,8 +314,9 @@ for subdir in lisp site-lisp lispref lispintro \
314 leim/SKK-DIC leim/ja-dic leim/quail \ 314 leim/SKK-DIC leim/ja-dic leim/quail \
315 src src/m src/s src/bitmaps lib-src oldXMenu lwlib \ 315 src src/m src/s src/bitmaps lib-src oldXMenu lwlib \
316 nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \ 316 nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \
317 etc etc/e etc/images etc/images/gnus etc/images/smilies \ 317 etc etc/e \
318 etc/images/mail etc/images/ezimage \ 318 etc/images etc/images/ezimage etc/images/gnus etc/images/gud \
319 etc/images/low-color etc/images/mail etc/images/smilies \
319 etc/tree-widget etc/tree-widget/default etc/tree-widget/folder \ 320 etc/tree-widget etc/tree-widget/default etc/tree-widget/folder \
320 info man m4 msdos vms mac mac/inc mac/inc/sys \ 321 info man m4 msdos vms mac mac/inc mac/inc/sys \
321 mac/src mac/Emacs.app mac/Emacs.app/Contents \ 322 mac/src mac/Emacs.app mac/Emacs.app/Contents \
@@ -601,9 +602,9 @@ echo "Making links to \`etc/images'"
601 fi 602 fi
602 done) 603 done)
603 604
604for dir in etc/images/gnus etc/images/smilies etc/images/mail \ 605for dir in etc/images/ezimage etc/images/gnus etc/images/gud \
605 etc/images/ezimage etc/tree-widget/default \ 606 etc/images/low-color etc/images/mail etc/images/smilies \
606 etc/tree-widget/folder ; do 607 etc/tree-widget/default etc/tree-widget/folder ; do
607 echo "Making links to \`${dir}'" 608 echo "Making links to \`${dir}'"
608 (cd ${dir} 609 (cd ${dir}
609 ln `ls -d * | grep -v CVS | grep -v RCS` ../../../${tempdir}/${dir} 610 ln `ls -d * | grep -v CVS | grep -v RCS` ../../../${tempdir}/${dir}
diff --git a/man/ChangeLog b/man/ChangeLog
index 8ba536739fc..5d009b3340d 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,55 @@
12005-10-18 Romain Francoise <romain@orebokech.com>
2
3 * files.texi (Version Systems): Capitalize GNU.
4
5 * viper.texi (Viper Specials): Likewise.
6
72005-10-18 Nick Roberts <nickrob@snap.net.nz>
8
9 * building.texi (Compilation Mode): Remove redundant paragraph.
10 (Watch Expressions): Remove paragraph to reflect code change.
11
122005-10-17 Juri Linkov <juri@jurta.org>
13
14 * info.texi (Getting Started, Search Index, Expert Info):
15 Fix wording.
16 (Search Text): Replace `echo area' with `mode line'.
17 (Search Index): Both `i' and `,' find all index entries.
18 Replace example `C-f' with `C-l' (which exists in index of Info
19 manual) and delete spaces in its keyboard input sequence.
20 Delete unnecessary explanations about literal characters.
21
222005-10-16 Richard M. Stallman <rms@gnu.org>
23
24 * building.texi (Compilation Mode, Compilation): Clarified.
25
262005-10-15 Richard M. Stallman <rms@gnu.org>
27
28 * misc.texi (Saving Emacs Sessions): Mention savehist library.
29
302005-10-14 Katsumi Yamaoka <yamaoka@jpl.org>
31
32 * gnus.texi (Document Server Internals): Addition.
33
342005-10-13 Katsumi Yamaoka <yamaoka@jpl.org>
35
36 * gnus.texi (A note on namespaces): Fix RFC reference.
37
382005-10-12 Katsumi Yamaoka <yamaoka@jpl.org>
39
40 * gnus.texi (RSS): Fix key description.
41
422005-10-11 Katsumi Yamaoka <yamaoka@jpl.org>
43
44 * gnus.texi: Emacs/w3 -> Emacs/W3.
45 (Browsing the Web): Fix description.
46 (Web Searches): Ditto.
47 (Customizing W3): Ditto.
48
492005-10-07 Katsumi Yamaoka <yamaoka@jpl.org>
50
51 * gnus.texi (Maildir): Clarify expire-age and expire-group.
52
12005-10-13 Kenichi Handa <handa@m17n.org> 532005-10-13 Kenichi Handa <handa@m17n.org>
2 54
3 * basic.texi (Position Info): Fix previous change. 55 * basic.texi (Position Info): Fix previous change.
@@ -50,7 +102,7 @@
50 102
512005-10-10 Carsten Dominik <dominik@science.uva.nl> 1032005-10-10 Carsten Dominik <dominik@science.uva.nl>
52 104
53 * org.texi: (Workflow states): Documented that change in keywords 105 * org.texi (Workflow states): Documented that change in keywords
54 becomes active only after restart of Emacs. 106 becomes active only after restart of Emacs.
55 107
562005-10-09 Richard M. Stallman <rms@gnu.org> 1082005-10-09 Richard M. Stallman <rms@gnu.org>
@@ -65,7 +117,7 @@
65 117
662005-10-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 1182005-10-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
67 119
68 * cmdargs.texi (Icons X): Removed options -i, -itype, --icon-type, 120 * cmdargs.texi (Icons X): Removed options -i, -itype, --icon-type,
69 added -nb, --no-bitmap-icon. 121 added -nb, --no-bitmap-icon.
70 122
712005-10-08 Michael Albinus <michael.albinus@gmx.de> 1232005-10-08 Michael Albinus <michael.albinus@gmx.de>
@@ -886,7 +938,7 @@
8862005-04-25 Luc Teirlinck <teirllm@auburn.edu> 9382005-04-25 Luc Teirlinck <teirllm@auburn.edu>
887 939
888 * frames.texi (Tooltips): Tooltip mode is enabled by default. 940 * frames.texi (Tooltips): Tooltip mode is enabled by default.
889 Delete redundant reference to tooltip Custom group. It is 941 Delete redundant reference to tooltip Custom group. It is
890 referred too again in the next paragraph. 942 referred too again in the next paragraph.
891 943
8922005-04-24 Richard M. Stallman <rms@gnu.org> 9442005-04-24 Richard M. Stallman <rms@gnu.org>
diff --git a/man/building.texi b/man/building.texi
index eb7a8bb00fe..01a91e9be7b 100644
--- a/man/building.texi
+++ b/man/building.texi
@@ -63,17 +63,16 @@ command; normally, therefore, the compilation happens in this
63directory. 63directory.
64 64
65@vindex compile-command 65@vindex compile-command
66 When the shell command line is read, the minibuffer appears 66 The default for the compilation command is normally @samp{make -k},
67containing a default command line, which is the command you used the 67which is correct most of the time for nontrivial programs.
68last time you did @kbd{M-x compile}. If you type just @key{RET}, the 68(@xref{Top,, Make, make, GNU Make Manual}.) If you have done @kbd{M-x
69same command line is used again. For the first @kbd{M-x compile}, the 69compile} before, the default each time is the command you used the
70default is @samp{make -k}, which is correct most of the time for 70previous time. @code{compile} stores this command in the variable
71nontrivial programs. (@xref{Top,, Make, make, GNU Make Manual}.) 71@code{compile-command}, so setting that variable specifies the default
72The default compilation command comes from the variable 72for the next use of @kbd{M-x compile}. If a file specifies a file
73@code{compile-command}; if the appropriate compilation command for a 73local value for @code{compile-command}, that provides the default when
74file is something other than @samp{make -k}, it can be useful for the 74you type @kbd{M-x compile} in that file's buffer. @xref{File
75file to specify a local value for @code{compile-command} (@pxref{File 75Variables}.
76Variables}).
77 76
78 Starting a compilation displays the buffer @samp{*compilation*} in 77 Starting a compilation displays the buffer @samp{*compilation*} in
79another window but does not select it. The buffer's mode line tells 78another window but does not select it. The buffer's mode line tells
@@ -224,13 +223,13 @@ leading context in the window before the current message. If it is
224scroll. If there is no left fringe, no arrow is displayed and a value 223scroll. If there is no left fringe, no arrow is displayed and a value
225of @code{nil} means display the message at the top of the window. 224of @code{nil} means display the message at the top of the window.
226 225
227 You don't have to be in the compilation buffer in order to use 226 If you're not in the compilation buffer when you run
228@code{next-error}. If one window on the selected frame can be the 227@code{next-error}, Emacs will look for a buffer that contains error
229target of the @code{next-error} call, it is used. Else, if a buffer 228messages. First, it looks for one displayed in the selected frame,
230previously had @code{next-error} called on it, it is used. Else, 229then for one that previously had @code{next-error} called on it, and
231if the current buffer can be the target of @code{next-error}, it is 230then at the current buffer. Finally, Emacs looks at all the remaining
232used. Else, all the buffers Emacs manages are tried for 231buffers. @code{next-error} signals an error if it can't find any such
233@code{next-error} support. 232buffer.
234 233
235 @kbd{C-u C-x `} starts scanning from the beginning of the compilation 234 @kbd{C-u C-x `} starts scanning from the beginning of the compilation
236buffer. This is one way to process the same set of errors again. 235buffer. This is one way to process the same set of errors again.
@@ -901,12 +900,6 @@ types, such as arrays, structures and unions are represented in a tree
901format. To expand or contract a complex data type, click @kbd{Mouse-2} 900format. To expand or contract a complex data type, click @kbd{Mouse-2}
902on the tag to the left of the expression. 901on the tag to the left of the expression.
903 902
904By default, watch expressions only display in the speedbar when the
905GUD buffer is selected in the attached frame. If you want your watch
906expressions to remain visible at all times then select the @samp{GUD}
907radio button on the @samp{Speedbar->Displays} sub-menu using
908@kbd{Mouse-3}.
909
910@findex gdb-var-delete 903@findex gdb-var-delete
911With the cursor over the root expression of a complex data type, type 904With the cursor over the root expression of a complex data type, type
912@kbd{D} to delete it from the speedbar 905@kbd{D} to delete it from the speedbar
diff --git a/man/files.texi b/man/files.texi
index 6bf9a590a9d..5a072b4a46b 100644
--- a/man/files.texi
+++ b/man/files.texi
@@ -1288,7 +1288,7 @@ SCCS only if for some reason you cannot use RCS, or one of the
1288higher-level systems such as CVS or GNU Arch. 1288higher-level systems such as CVS or GNU Arch.
1289 1289
1290In the following, we discuss mainly RCS, SCCS and CVS. Nearly 1290In the following, we discuss mainly RCS, SCCS and CVS. Nearly
1291everything said about CVS applies to Gnu Arch, Subversion and Meta-CVS 1291everything said about CVS applies to GNU Arch, Subversion and Meta-CVS
1292as well. 1292as well.
1293 1293
1294@node VC Concepts 1294@node VC Concepts
diff --git a/man/gnus.texi b/man/gnus.texi
index 7ced947a5ce..1a66bd763e0 100644
--- a/man/gnus.texi
+++ b/man/gnus.texi
@@ -683,7 +683,7 @@ Browsing the Web
683* Ultimate:: The Ultimate Bulletin Board systems. 683* Ultimate:: The Ultimate Bulletin Board systems.
684* Web Archive:: Reading mailing list archived on web. 684* Web Archive:: Reading mailing list archived on web.
685* RSS:: Reading RDF site summary. 685* RSS:: Reading RDF site summary.
686* Customizing w3:: Doing stuff to Emacs/w3 from Gnus. 686* Customizing W3:: Doing stuff to Emacs/W3 from Gnus.
687 687
688@acronym{IMAP} 688@acronym{IMAP}
689 689
@@ -8569,8 +8569,8 @@ Customization, emacs-mime, The Emacs MIME Manual}) to convert the
8569can use include: 8569can use include:
8570 8570
8571@table @code 8571@table @code
8572@item w3 8572@item W3
8573Use Emacs/w3. 8573Use Emacs/W3.
8574 8574
8575@item w3m 8575@item w3m
8576Use @uref{http://emacs-w3m.namazu.org/, emacs-w3m}. 8576Use @uref{http://emacs-w3m.namazu.org/, emacs-w3m}.
@@ -15093,8 +15093,9 @@ An integer specifying the minimum age, in seconds, of an article
15093before it will be expired, or the symbol @code{never} to specify that 15093before it will be expired, or the symbol @code{never} to specify that
15094articles should never be expired. If this parameter is not set, 15094articles should never be expired. If this parameter is not set,
15095@code{nnmaildir} falls back to the usual 15095@code{nnmaildir} falls back to the usual
15096@code{nnmail-expiry-wait}(@code{-function}) variables (overrideable by 15096@code{nnmail-expiry-wait}(@code{-function}) variables (the
15097the @code{expiry-wait}(@code{-function}) group parameters. If you 15097@code{expiry-wait} group parameter overrides @code{nnmail-expiry-wait}
15098and makes @code{nnmail-expiry-wait-function} ineffective). If you
15098wanted a value of 3 days, you could use something like @code{[(* 3 24 15099wanted a value of 3 days, you could use something like @code{[(* 3 24
1509960 60)]}; @code{nnmaildir} will evaluate the form and use the result. 1510060 60)]}; @code{nnmaildir} will evaluate the form and use the result.
15100An article's age is measured starting from the article file's 15101An article's age is measured starting from the article file's
@@ -15117,8 +15118,8 @@ the parameter belongs to, then the article is not expired at all. If
15117you use the vector form, the first element is evaluated once for each 15118you use the vector form, the first element is evaluated once for each
15118article. So that form can refer to 15119article. So that form can refer to
15119@code{nnmaildir-article-file-name}, etc., to decide where to put the 15120@code{nnmaildir-article-file-name}, etc., to decide where to put the
15120article. @emph{If this parameter is not set, @code{nnmaildir} does 15121article. @emph{Even if this parameter is not set, @code{nnmaildir}
15121not fall back to the @code{expiry-target} group parameter or the 15122does not fall back to the @code{expiry-target} group parameter or the
15122@code{nnmail-expiry-target} variable.} 15123@code{nnmail-expiry-target} variable.}
15123 15124
15124@item read-only 15125@item read-only
@@ -15534,10 +15535,11 @@ interfaces to these sources.
15534* Ultimate:: The Ultimate Bulletin Board systems. 15535* Ultimate:: The Ultimate Bulletin Board systems.
15535* Web Archive:: Reading mailing list archived on web. 15536* Web Archive:: Reading mailing list archived on web.
15536* RSS:: Reading RDF site summary. 15537* RSS:: Reading RDF site summary.
15537* Customizing w3:: Doing stuff to Emacs/w3 from Gnus. 15538* Customizing W3:: Doing stuff to Emacs/W3 from Gnus.
15538@end menu 15539@end menu
15539 15540
15540All the web sources require Emacs/w3 and the url library to work. 15541All the web sources require Emacs/W3 and the url library or those
15542alternatives to work.
15541 15543
15542The main caveat with all these web sources is that they probably won't 15544The main caveat with all these web sources is that they probably won't
15543work for a very long time. Gleaning information from the @acronym{HTML} data 15545work for a very long time. Gleaning information from the @acronym{HTML} data
@@ -15624,8 +15626,9 @@ make money off of advertisements, not to provide services to the
15624community. Since @code{nnweb} washes the ads off all the articles, one 15626community. Since @code{nnweb} washes the ads off all the articles, one
15625might think that the providers might be somewhat miffed. We'll see. 15627might think that the providers might be somewhat miffed. We'll see.
15626 15628
15627You must have the @code{url} and @code{w3} package installed to be able 15629You must have the @code{url} and @code{W3} package or those alternatives
15628to use @code{nnweb}. 15630(try @code{customize-group} on the @samp{mm-url} variable group)
15631installed to be able to use @code{nnweb}.
15629 15632
15630Virtual server variables: 15633Virtual server variables:
15631 15634
@@ -15845,9 +15848,9 @@ system because @acronym{RSS} uses UTF-8 for encoding non-@acronym{ASCII}
15845text by default. It is also used by default for non-@acronym{ASCII} 15848text by default. It is also used by default for non-@acronym{ASCII}
15846group names. 15849group names.
15847 15850
15848@kindex G R (Summary) 15851@kindex G R (Group)
15849Use @kbd{G R} from the summary buffer to subscribe to a feed---you will 15852Use @kbd{G R} from the group buffer to subscribe to a feed---you will be
15850be prompted for the location, the title and the description of the feed. 15853prompted for the location, the title and the description of the feed.
15851The title, which allows any characters, will be used for the group name 15854The title, which allows any characters, will be used for the group name
15852and the name of the group data file. The description can be omitted. 15855and the name of the group data file. The description can be omitted.
15853 15856
@@ -15940,18 +15943,19 @@ summary buffer.
15940(add-to-list 'nnmail-extra-headers nnrss-url-field) 15943(add-to-list 'nnmail-extra-headers nnrss-url-field)
15941@end lisp 15944@end lisp
15942 15945
15943@node Customizing w3 15946@node Customizing W3
15944@subsection Customizing w3 15947@subsection Customizing W3
15945@cindex w3 15948@cindex W3
15946@cindex html 15949@cindex html
15947@cindex url 15950@cindex url
15948@cindex Netscape 15951@cindex Netscape
15949 15952
15950Gnus uses the url library to fetch web pages and Emacs/w3 to display web 15953Gnus uses the url library to fetch web pages and Emacs/W3 (or those
15951pages. Emacs/w3 is documented in its own manual, but there are some 15954alternatives) to display web pages. Emacs/W3 is documented in its own
15952things that may be more relevant for Gnus users. 15955manual, but there are some things that may be more relevant for Gnus
15956users.
15953 15957
15954For instance, a common question is how to make Emacs/w3 follow links 15958For instance, a common question is how to make Emacs/W3 follow links
15955using the @code{browse-url} functions (which will call some external web 15959using the @code{browse-url} functions (which will call some external web
15956browser like Netscape). Here's one way: 15960browser like Netscape). Here's one way:
15957 15961
@@ -15966,7 +15970,7 @@ browser like Netscape). Here's one way:
15966 (w3-fetch-orig url target))))) 15970 (w3-fetch-orig url target)))))
15967@end lisp 15971@end lisp
15968 15972
15969Put that in your @file{.emacs} file, and hitting links in w3-rendered 15973Put that in your @file{.emacs} file, and hitting links in W3-rendered
15970@acronym{HTML} in the Gnus article buffers will use @code{browse-url} to 15974@acronym{HTML} in the Gnus article buffers will use @code{browse-url} to
15971follow the link. 15975follow the link.
15972 15976
@@ -16559,7 +16563,7 @@ delete them.
16559@cindex namespaces 16563@cindex namespaces
16560 16564
16561The @acronym{IMAP} protocol has a concept called namespaces, described 16565The @acronym{IMAP} protocol has a concept called namespaces, described
16562by the following text in the RFC: 16566by the following text in the RFC2060:
16563 16567
16564@display 16568@display
165655.1.2. Mailbox Namespace Naming Convention 165695.1.2. Mailbox Namespace Naming Convention
@@ -16891,34 +16895,48 @@ totally ignored.
16891 16895
16892@item article-begin 16896@item article-begin
16893This setting has to be present in all document type definitions. It 16897This setting has to be present in all document type definitions. It
16894says what the beginning of each article looks like. 16898says what the beginning of each article looks like. To do more
16899complicated things that cannot be dealt with a simple regexp, you can
16900use @code{article-begin-function} instead of this.
16895 16901
16896@item head-begin-function 16902@item article-begin-function
16897If present, this should be a function that moves point to the head of 16903If present, this should be a function that moves point to the beginning
16898the article. 16904of each article. This setting overrides @code{article-begin}.
16899 16905
16900@item nndoc-head-begin 16906@item head-begin
16901If present, this should be a regexp that matches the head of the 16907If present, this should be a regexp that matches the head of the
16902article. 16908article. To do more complicated things that cannot be dealt with a
16909simple regexp, you can use @code{head-begin-function} instead of this.
16903 16910
16904@item nndoc-head-end 16911@item head-begin-function
16912If present, this should be a function that moves point to the head of
16913the article. This setting overrides @code{head-begin}.
16914
16915@item head-end
16905This should match the end of the head of the article. It defaults to 16916This should match the end of the head of the article. It defaults to
16906@samp{^$}---the empty line. 16917@samp{^$}---the empty line.
16907 16918
16919@item body-begin
16920This should match the beginning of the body of the article. It defaults
16921to @samp{^\n}. To do more complicated things that cannot be dealt with
16922a simple regexp, you can use @code{body-begin-function} instead of this.
16923
16908@item body-begin-function 16924@item body-begin-function
16909If present, this function should move point to the beginning of the body 16925If present, this function should move point to the beginning of the body
16910of the article. 16926of the article. This setting overrides @code{body-begin}.
16911 16927
16912@item body-begin 16928@item body-end
16913This should match the beginning of the body of the article. It defaults 16929If present, this should match the end of the body of the article. To do
16914to @samp{^\n}. 16930more complicated things that cannot be dealt with a simple regexp, you
16931can use @code{body-end-function} instead of this.
16915 16932
16916@item body-end-function 16933@item body-end-function
16917If present, this function should move point to the end of the body of 16934If present, this function should move point to the end of the body of
16918the article. 16935the article. This setting overrides @code{body-end}.
16919 16936
16920@item body-end 16937@item file-begin
16921If present, this should match the end of the body of the article. 16938If present, this should match the beginning of the file. All text
16939before this regexp will be totally ignored.
16922 16940
16923@item file-end 16941@item file-end
16924If present, this should match the end of the file. All text after this 16942If present, this should match the end of the file. All text after this
@@ -16949,6 +16967,19 @@ understand. It is called with the article number as a parameter, and is
16949expected to generate a nice head for the article in question. It is 16967expected to generate a nice head for the article in question. It is
16950called when requesting the headers of all articles. 16968called when requesting the headers of all articles.
16951 16969
16970@item generate-article-function
16971If present, this function is called to generate an entire article that
16972Gnus can understand. It is called with the article number as a
16973parameter when requesting all articles.
16974
16975@item dissection-function
16976If present, this function is called to dissect a document by itself,
16977overriding @code{first-article}, @code{article-begin},
16978@code{article-begin-function}, @code{head-begin},
16979@code{head-begin-function}, @code{head-end}, @code{body-begin},
16980@code{body-begin-function}, @code{body-end}, @code{body-end-function},
16981@code{file-begin}, and @code{file-end}.
16982
16952@end table 16983@end table
16953 16984
16954Let's look at the most complicated example I can come up with---standard 16985Let's look at the most complicated example I can come up with---standard
@@ -24388,7 +24419,7 @@ XEmacs is distributed as a collection of packages. You should install
24388whatever packages the Gnus XEmacs package requires. The current 24419whatever packages the Gnus XEmacs package requires. The current
24389requirements are @samp{gnus}, @samp{mail-lib}, @samp{xemacs-base}, 24420requirements are @samp{gnus}, @samp{mail-lib}, @samp{xemacs-base},
24390@samp{eterm}, @samp{sh-script}, @samp{net-utils}, @samp{os-utils}, 24421@samp{eterm}, @samp{sh-script}, @samp{net-utils}, @samp{os-utils},
24391@samp{dired}, @samp{mh-e}, @samp{sieve}, @samp{ps-print}, @samp{w3}, 24422@samp{dired}, @samp{mh-e}, @samp{sieve}, @samp{ps-print}, @samp{W3},
24392@samp{pgg}, @samp{mailcrypt}, @samp{ecrypto}, and @samp{sasl}. 24423@samp{pgg}, @samp{mailcrypt}, @samp{ecrypto}, and @samp{sasl}.
24393 24424
24394 24425
diff --git a/man/info.texi b/man/info.texi
index 532478ca521..ce8bc6a2bf4 100644
--- a/man/info.texi
+++ b/man/info.texi
@@ -92,8 +92,8 @@ Started' chapter.
92This first part of this Info manual describes how to get around inside 92This first part of this Info manual describes how to get around inside
93of Info. The second part of the manual describes various advanced 93of Info. The second part of the manual describes various advanced
94Info commands. The third part briefly explains how to generate Info 94Info commands. The third part briefly explains how to generate Info
95files from Texinfo files, and describes how to write an Info as 95files from Texinfo files, and describes how to write an Info file
96distinct from a Texinfo file. 96by hand.
97 97
98@ifnotinfo 98@ifnotinfo
99This manual is primarily designed for browsing with an Info reader 99This manual is primarily designed for browsing with an Info reader
@@ -954,7 +954,7 @@ by @key{RET} will do. The file's nodes are scanned in the order
954they are in the file, which has no necessary relationship to the 954they are in the file, which has no necessary relationship to the
955order that they may be in the tree structure of menus and @samp{next} 955order that they may be in the tree structure of menus and @samp{next}
956pointers. But normally the two orders are not very different. In any 956pointers. But normally the two orders are not very different. In any
957case, you can always look at the echo area to find out what node you have 957case, you can always look at the mode line to find out what node you have
958reached, if the header is not visible (this can happen, because @kbd{s} 958reached, if the header is not visible (this can happen, because @kbd{s}
959puts your cursor at the occurrence of the string, not at the beginning 959puts your cursor at the occurrence of the string, not at the beginning
960of the node). 960of the node).
@@ -982,8 +982,8 @@ if the variable @code{Info-isearch-search} is non-@code{nil}
982@cindex searching Info indices 982@cindex searching Info indices
983@kindex i @r{(Info mode)} 983@kindex i @r{(Info mode)}
984@findex Info-index 984@findex Info-index
985 Since most subjects related to what the manual describes should be 985 Since most topics in the manual should be indexed, you should try
986indexed, you should try the index search first. The @kbd{i} command 986the index search first before the text search. The @kbd{i} command
987prompts you for a subject and then looks up that subject in the 987prompts you for a subject and then looks up that subject in the
988indices. If it finds an index entry with the subject you typed, it 988indices. If it finds an index entry with the subject you typed, it
989goes to the node to which that index entry points. You should browse 989goes to the node to which that index entry points. You should browse
@@ -991,13 +991,13 @@ through that node to see whether the issue you are looking for is
991described there. If it isn't, type @kbd{,} one or more times to go 991described there. If it isn't, type @kbd{,} one or more times to go
992through additional index entries which match your subject. 992through additional index entries which match your subject.
993 993
994 The @kbd{i} command finds all index entries which include the string 994 The @kbd{i} command and subsequent @kbd{,} commands find all index
995you typed @emph{as a substring}. For each match, Info shows in the 995entries which include the string you typed @emph{as a substring}.
996echo area the full index entry it found. Often, the text of the full 996For each match, Info shows in the echo area the full index entry it
997index entry already gives you enough information to decide whether it 997found. Often, the text of the full index entry already gives you
998is relevant to what you are looking for, so we recommend that you read 998enough information to decide whether it is relevant to what you are
999what Info shows in the echo area before looking at the node it 999looking for, so we recommend that you read what Info shows in the echo
1000displays. 1000area before looking at the node it displays.
1001 1001
1002 Since @kbd{i} looks for a substring, you can search for subjects even 1002 Since @kbd{i} looks for a substring, you can search for subjects even
1003if you are not sure how they are spelled in the index. For example, 1003if you are not sure how they are spelled in the index. For example,
@@ -1010,20 +1010,18 @@ to catch index entries that refer to ``complete'', ``completion'', and
1010options, and key sequences that the program provides. If you are 1010options, and key sequences that the program provides. If you are
1011looking for a description of a command, an option, or a key, just type 1011looking for a description of a command, an option, or a key, just type
1012their names when @kbd{i} prompts you for a topic. For example, if you 1012their names when @kbd{i} prompts you for a topic. For example, if you
1013want to read the description of what the @kbd{C-f} key does, type 1013want to read the description of what the @kbd{C-l} key does, type
1014@kbd{i C - f @key{RET}}. Here @kbd{C-f} are 3 literal characters 1014@kbd{iC-l@key{RET}} literally.
1015@samp{C}, @samp{-}, and @samp{f}, not the ``Control-f'' command key
1016you type inside Emacs to run the command bound to @kbd{C-f}.
1017 1015
1018 In Emacs, @kbd{i} runs the command @code{Info-index}. 1016 In Emacs, @kbd{i} runs the command @code{Info-index}.
1019 1017
1020@findex info-apropos 1018@findex info-apropos
1021@findex index-apropos 1019@findex index-apropos
1022If you don't know what manual documents something, try the @kbd{M-x 1020If you aren't sure which manual documents the topic you are looking
1023info-apropos} command in Emacs, or the @kbd{M-x index-apropos} command 1021for, try the @kbd{M-x info-apropos} command in Emacs, or the @kbd{M-x
1024in the stand-alone reader. It prompts for a string and then looks up 1022index-apropos} command in the stand-alone reader. It prompts for
1025that string in all the indices of all the Info documents installed on 1023a string and then looks up that string in all the indices of all the
1026your system. 1024Info documents installed on your system.
1027 1025
1028@node Go to node, Choose menu subtopic, Search Index, Advanced 1026@node Go to node, Choose menu subtopic, Search Index, Advanced
1029@comment node-name, next, previous, up 1027@comment node-name, next, previous, up
@@ -1193,24 +1191,23 @@ this:
1193@node Expert Info 1191@node Expert Info
1194@chapter Info for Experts 1192@chapter Info for Experts
1195 1193
1196 This chapter explains how to write an Info as distinct from a 1194 This chapter explains how to write an Info file by hand. However,
1197Texinfo file. However, in most cases, writing a Texinfo file is 1195in most cases, writing a Texinfo file is better, since you can use it
1198better, since you can use it to make a printed manual or produce other 1196to make a printed manual or produce other formats, such as HTML and
1199formats, such as HTML and DocBook, as well as for generating Info 1197DocBook, as well as for generating Info files.
1200files.
1201 1198
1202@code{makeinfo} is a utility that converts a Texinfo file into an Info 1199The @code{makeinfo} command converts a Texinfo file into an Info file;
1203file; @code{texinfo-format-region} and @code{texinfo-format-buffer} are 1200@code{texinfo-format-region} and @code{texinfo-format-buffer} are GNU
1204GNU Emacs functions that do the same. 1201Emacs functions that do the same.
1205 1202
1206@xref{Top,, Overview of Texinfo, texinfo, Texinfo: The GNU 1203@xref{Top,, Overview of Texinfo, texinfo, Texinfo: The GNU
1207Documentation Format}, to learn how to write a Texinfo file. 1204Documentation Format}, for how to write a Texinfo file.
1208 1205
1209@xref{Creating an Info File,,, texinfo, Texinfo: The GNU Documentation 1206@xref{Creating an Info File,,, texinfo, Texinfo: The GNU Documentation
1210Format}, to learn how to create an Info file from a Texinfo file. 1207Format}, for how to create an Info file from a Texinfo file.
1211 1208
1212@xref{Installing an Info File,,, texinfo, Texinfo: The GNU 1209@xref{Installing an Info File,,, texinfo, Texinfo: The GNU
1213Documentation Format}, to learn how to install an Info file after you 1210Documentation Format}, for how to install an Info file after you
1214have created one. 1211have created one.
1215 1212
1216However, if you want to edit an Info file manually and install it manually, 1213However, if you want to edit an Info file manually and install it manually,
diff --git a/man/misc.texi b/man/misc.texi
index baebc6bf4d0..57a58fd1d3a 100644
--- a/man/misc.texi
+++ b/man/misc.texi
@@ -2022,6 +2022,9 @@ preserve certain buffers, customize the variable
2022@code{desktop-clear-preserve-buffers-regexp}, whose value is a regular 2022@code{desktop-clear-preserve-buffers-regexp}, whose value is a regular
2023expression matching the names of buffers not to kill. 2023expression matching the names of buffers not to kill.
2024 2024
2025 If you want to save minibuffer history from one session to
2026another, use the @code{savehist} library.
2027
2025@node Recursive Edit, Emulation, Saving Emacs Sessions, Top 2028@node Recursive Edit, Emulation, Saving Emacs Sessions, Top
2026@section Recursive Editing Levels 2029@section Recursive Editing Levels
2027@cindex recursive editing level 2030@cindex recursive editing level
diff --git a/man/viper.texi b/man/viper.texi
index 237e2474540..572a3296d52 100644
--- a/man/viper.texi
+++ b/man/viper.texi
@@ -206,7 +206,7 @@ Emacs can edit several files at once. A file in Emacs is placed in a
206@dfn{buffer} that usually has the same name as the file. Buffers are also used 206@dfn{buffer} that usually has the same name as the file. Buffers are also used
207for other purposes, such as shell interfaces, directory editing, etc. 207for other purposes, such as shell interfaces, directory editing, etc.
208@xref{Dired,,Directory Editor,emacs,The 208@xref{Dired,,Directory Editor,emacs,The
209Gnu Emacs Manual}, for an example.@refill 209GNU Emacs Manual}, for an example.@refill
210 210
211A buffer has a distinguished position called the @dfn{point}. 211A buffer has a distinguished position called the @dfn{point}.
212A @dfn{point} is always between 2 characters, and is @dfn{looking at} 212A @dfn{point} is always between 2 characters, and is @dfn{looking at}
@@ -2582,7 +2582,7 @@ above block should be commented out.
2582Even though these commands are sometimes useful, they are no substitute for 2582Even though these commands are sometimes useful, they are no substitute for
2583the powerful @emph{tag table} facility of Emacs. Viper's @kbd{:tag} command 2583the powerful @emph{tag table} facility of Emacs. Viper's @kbd{:tag} command
2584in a primitive interface to Emacs tags. @xref{Tags,Tags,Tags,emacs, 2584in a primitive interface to Emacs tags. @xref{Tags,Tags,Tags,emacs,
2585The Gnu Emacs Manual}, for more information on tags. 2585The GNU Emacs Manual}, for more information on tags.
2586 2586
2587The following two commands are normally bound to a mouse click and are part 2587The following two commands are normally bound to a mouse click and are part
2588of Viper. They work only if Emacs runs as an application under X 2588of Viper. They work only if Emacs runs as an application under X
diff --git a/src/ChangeLog b/src/ChangeLog
index 30db0548172..61b658b6b88 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,62 @@
12005-10-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * macterm.c (note_mouse_movement): Use PtInRect.
4 (XTread_socket): Also ignore mouse motion just before a button
5 release event. Don't process button release event when mouse is
6 not grabbed.
7
82005-10-16 Masatake YAMATO <jet@gyve.org>
9
10 * minibuf.c (Fdisplay_completion_list): Add new optional
11 argument COMMON_SUBSTRING. Bind `completion-common-substring'
12 to the optional argument during running `completion-setup-hook'.
13
142005-10-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15
16 * mac.c [TARGET_API_MAC_CARBON] (get_cfstring_encoding_from_lisp):
17 Allow nil as argument.
18 [TARGET_API_MAC_CARBON] (Fmac_code_convert_string): Regard nil
19 for encoding arguments as UTF-16 in native byte order, no BOM.
20
21 * macfns.c (Fx_create_frame): Add debugging code.
22 (Fx_show_tip): Set frame pixel width and height.
23
24 * macterm.c (MAC_WINDOW_NORMAL_GC): Remove macro.
25 (FRAME_NORMAL_GC): New macro.
26 (mac_draw_line, mac_clear_area, mac_clear_window)
27 (mac_fill_rectangle, mac_draw_string, mac_draw_string_16)
28 (mac_draw_image_string, mac_draw_image_string_16): Rename from
29 XDrawLine, XClearArea, XClearWindow, XFillRectangle, XDrawString,
30 XDrawString16, XDrawImageString, and XDrawImageString16, respectively.
31 All uses changed.
32 (mac_draw_line, mac_erase_rectangle, mac_clear_area)
33 (mac_clear_window, mac_draw_bitmap, mac_draw_rectangle)
34 (mac_invert_rectangle, mac_draw_string_common, mac_draw_string)
35 (mac_draw_string_16, mac_draw_image_string)
36 (mac_draw_image_string_16, mac_copy_area, mac_copy_area_with_mask)
37 (mac_scroll_area): Drawing functions now take frame as destination.
38 All uses changed.
39 (mac_draw_string_common): Get port height with FRAME_PIXEL_HEIGHT.
40 (x_draw_fringe_bitmap): Set clipping area in face->gc.
41
42 * macterm.h (mac_clear_area): Add extern.
43
442005-10-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
45
46 * macterm.c (note_mouse_movement, XTread_socket): Apply 2005-10-14
47 changes for xterm.c.
48
49 * w32term.c (note_mouse_movement, w32_read_socket): Likewise.
50
512005-10-14 Kenichi Handa <handa@m17n.org>
52
53 * search.c (search_buffer): Give up BM search on case-fold-search
54 if one of a target character has a case-equivalence of different
55 charset even if that target charcter is an ASCII.
56
57 * casefiddle.c (casify_object): Fix for the case that case
58 conversion change the byte length.
59
12005-10-14 Kim F. Storm <storm@cua.dk> 602005-10-14 Kim F. Storm <storm@cua.dk>
2 61
3 * xterm.c (note_mouse_movement): Return 1 if mouse moved; 0 otherwise. 62 * xterm.c (note_mouse_movement): Return 1 if mouse moved; 0 otherwise.
@@ -177,7 +236,7 @@
177 (FRAME_MAC_WINDOW, FRAME_X_WINDOW): Use window_desc. 236 (FRAME_MAC_WINDOW, FRAME_X_WINDOW): Use window_desc.
178 237
179 * xfaces.c (x_create_gc, x_free_gc) [MAC_OS]: Add BLOCK_INPUT. 238 * xfaces.c (x_create_gc, x_free_gc) [MAC_OS]: Add BLOCK_INPUT.
180 Add debug code. 239 Add debugging code.
181 240
1822005-10-08 Kim F. Storm <storm@cua.dk> 2412005-10-08 Kim F. Storm <storm@cua.dk>
183 242
@@ -221,6 +280,11 @@
221 * xterm.c, w32term.c, macterm.c: Rename member for_overlaps_p in 280 * xterm.c, w32term.c, macterm.c: Rename member for_overlaps_p in
222 struct glyph_string to for_overlaps. 281 struct glyph_string to for_overlaps.
223 282
2832005-10-04 Richard M. Stallman <rms@gnu.org>
284
285 * alloc.c (refill_memory_reserve): Conditionalize the body,
286 not the function's existence.
287
2242005-10-04 Kim F. Storm <storm@cua.dk> 2882005-10-04 Kim F. Storm <storm@cua.dk>
225 289
226 * window.c (window_split_tree): New function. 290 * window.c (window_split_tree): New function.
@@ -262,7 +326,7 @@
262 * keyboard.c (init_keyboard) [MAC_OSX]: Don't install SIGINT handler. 326 * keyboard.c (init_keyboard) [MAC_OSX]: Don't install SIGINT handler.
263 327
264 * macfns.c (start_hourglass): Apply 2005-05-07 change for xfns.c. 328 * macfns.c (start_hourglass): Apply 2005-05-07 change for xfns.c.
265 (x_create_tip_frame) [GLYPH_DEBUG]: Uncomment debug code. 329 (x_create_tip_frame) [GLYPH_DEBUG]: Uncomment debugging code.
266 (Fx_create_frame, x_create_tip_frame) [USE_ATSUI]: 330 (Fx_create_frame, x_create_tip_frame) [USE_ATSUI]:
267 Try ATSUI-compatible 12pt Monaco font first. 331 Try ATSUI-compatible 12pt Monaco font first.
268 332
diff --git a/src/casefiddle.c b/src/casefiddle.c
index 454d184b99b..dee68fcf8c0 100644
--- a/src/casefiddle.c
+++ b/src/casefiddle.c
@@ -92,7 +92,8 @@ casify_object (flag, obj)
92 else if (!UPPERCASEP (c) 92 else if (!UPPERCASEP (c)
93 && (!inword || flag != CASE_CAPITALIZE_UP)) 93 && (!inword || flag != CASE_CAPITALIZE_UP))
94 c = UPCASE1 (c); 94 c = UPCASE1 (c);
95 if (ASCII_BYTE_P (c) || (! multibyte && SINGLE_BYTE_CHAR_P (c))) 95 if ((ASCII_BYTE_P (c) && from_len == 1)
96 || (! multibyte && SINGLE_BYTE_CHAR_P (c)))
96 SSET (obj, i, c); 97 SSET (obj, i, c);
97 else 98 else
98 { 99 {
@@ -100,7 +101,10 @@ casify_object (flag, obj)
100 if (from_len == to_len) 101 if (from_len == to_len)
101 CHAR_STRING (c, SDATA (obj) + i); 102 CHAR_STRING (c, SDATA (obj) + i);
102 else 103 else
103 Faset (obj, make_number (n), make_number (c)); 104 {
105 Faset (obj, make_number (n), make_number (c));
106 len += to_len - from_len;
107 }
104 } 108 }
105 if ((int) flag >= (int) CASE_CAPITALIZE) 109 if ((int) flag >= (int) CASE_CAPITALIZE)
106 inword = SYNTAX (c) == Sword; 110 inword = SYNTAX (c) == Sword;
diff --git a/src/mac.c b/src/mac.c
index 0d8c99ffb1e..4c8e78ade25 100644
--- a/src/mac.c
+++ b/src/mac.c
@@ -3411,7 +3411,7 @@ terminate_applescript()
3411} 3411}
3412 3412
3413/* Convert a lisp string to the 4 byte character code. */ 3413/* Convert a lisp string to the 4 byte character code. */
3414 3414
3415OSType 3415OSType
3416mac_get_code_from_arg(Lisp_Object arg, OSType defCode) 3416mac_get_code_from_arg(Lisp_Object arg, OSType defCode)
3417{ 3417{
@@ -3419,7 +3419,7 @@ mac_get_code_from_arg(Lisp_Object arg, OSType defCode)
3419 if (NILP(arg)) 3419 if (NILP(arg))
3420 { 3420 {
3421 result = defCode; 3421 result = defCode;
3422 } 3422 }
3423 else 3423 else
3424 { 3424 {
3425 /* check type string */ 3425 /* check type string */
@@ -3483,7 +3483,7 @@ DEFUN ("mac-get-file-creator", Fmac_get_file_creator, Smac_get_file_creator, 1,
3483 3483
3484 status = FSpGetFInfo (&fss, &finder_info); 3484 status = FSpGetFInfo (&fss, &finder_info);
3485#endif 3485#endif
3486 if (status == noErr) 3486 if (status == noErr)
3487 { 3487 {
3488#ifdef MAC_OSX 3488#ifdef MAC_OSX
3489 result = mac_get_object_from_code(((FileInfo*)&catalogInfo.finderInfo)->fileCreator); 3489 result = mac_get_object_from_code(((FileInfo*)&catalogInfo.finderInfo)->fileCreator);
@@ -3538,7 +3538,7 @@ DEFUN ("mac-get-file-type", Fmac_get_file_type, Smac_get_file_type, 1, 1, 0,
3538 3538
3539 status = FSpGetFInfo (&fss, &finder_info); 3539 status = FSpGetFInfo (&fss, &finder_info);
3540#endif 3540#endif
3541 if (status == noErr) 3541 if (status == noErr)
3542 { 3542 {
3543#ifdef MAC_OSX 3543#ifdef MAC_OSX
3544 result = mac_get_object_from_code(((FileInfo*)&catalogInfo.finderInfo)->fileType); 3544 result = mac_get_object_from_code(((FileInfo*)&catalogInfo.finderInfo)->fileType);
@@ -3596,7 +3596,7 @@ assumed. Return non-nil if successful. */)
3596 3596
3597 status = FSpGetFInfo (&fss, &finder_info); 3597 status = FSpGetFInfo (&fss, &finder_info);
3598#endif 3598#endif
3599 if (status == noErr) 3599 if (status == noErr)
3600 { 3600 {
3601#ifdef MAC_OSX 3601#ifdef MAC_OSX
3602 ((FileInfo*)&catalogInfo.finderInfo)->fileCreator = cCode; 3602 ((FileInfo*)&catalogInfo.finderInfo)->fileCreator = cCode;
@@ -3656,7 +3656,7 @@ CODE must be a 4-character string. Return non-nil if successful. */)
3656 3656
3657 status = FSpGetFInfo (&fss, &finder_info); 3657 status = FSpGetFInfo (&fss, &finder_info);
3658#endif 3658#endif
3659 if (status == noErr) 3659 if (status == noErr)
3660 { 3660 {
3661#ifdef MAC_OSX 3661#ifdef MAC_OSX
3662 ((FileInfo*)&catalogInfo.finderInfo)->fileType = cCode; 3662 ((FileInfo*)&catalogInfo.finderInfo)->fileType = cCode;
@@ -3968,10 +3968,13 @@ get_cfstring_encoding_from_lisp (obj)
3968 CFStringRef iana_name; 3968 CFStringRef iana_name;
3969 CFStringEncoding encoding = kCFStringEncodingInvalidId; 3969 CFStringEncoding encoding = kCFStringEncodingInvalidId;
3970 3970
3971 if (NILP (obj))
3972 return kCFStringEncodingUnicode;
3973
3971 if (INTEGERP (obj)) 3974 if (INTEGERP (obj))
3972 return XINT (obj); 3975 return XINT (obj);
3973 3976
3974 if (SYMBOLP (obj) && !NILP (obj) && !NILP (Fcoding_system_p (obj))) 3977 if (SYMBOLP (obj) && !NILP (Fcoding_system_p (obj)))
3975 { 3978 {
3976 Lisp_Object coding_spec, plist; 3979 Lisp_Object coding_spec, plist;
3977 3980
@@ -4115,7 +4118,8 @@ DEFUN ("mac-code-convert-string", Fmac_code_convert_string, Smac_code_convert_st
4115 doc: /* Convert STRING from SOURCE encoding to TARGET encoding. 4118 doc: /* Convert STRING from SOURCE encoding to TARGET encoding.
4116The conversion is performed using the converter provided by the system. 4119The conversion is performed using the converter provided by the system.
4117Each encoding is specified by either a coding system symbol, a mime 4120Each encoding is specified by either a coding system symbol, a mime
4118charset string, or an integer as a CFStringEncoding value. 4121charset string, or an integer as a CFStringEncoding value. Nil for
4122encoding means UTF-16 in native byte order, no byte order marker.
4119On Mac OS X 10.2 and later, you can do Unicode Normalization by 4123On Mac OS X 10.2 and later, you can do Unicode Normalization by
4120specifying the optional argument NORMALIZATION-FORM with a symbol NFD, 4124specifying the optional argument NORMALIZATION-FORM with a symbol NFD,
4121NFKD, NFC, NFKC, HFS+D, or HFS+C. 4125NFKD, NFC, NFKC, HFS+D, or HFS+C.
@@ -4126,7 +4130,6 @@ On successful conversion, return the result string, else return nil. */)
4126 Lisp_Object result = Qnil; 4130 Lisp_Object result = Qnil;
4127 CFStringEncoding src_encoding, tgt_encoding; 4131 CFStringEncoding src_encoding, tgt_encoding;
4128 CFStringRef str = NULL; 4132 CFStringRef str = NULL;
4129 CFDataRef data = NULL;
4130 4133
4131 CHECK_STRING (string); 4134 CHECK_STRING (string);
4132 if (!INTEGERP (source) && !STRINGP (source)) 4135 if (!INTEGERP (source) && !STRINGP (source))
@@ -4148,7 +4151,7 @@ On successful conversion, return the result string, else return nil. */)
4148 if (src_encoding != kCFStringEncodingInvalidId 4151 if (src_encoding != kCFStringEncodingInvalidId
4149 && tgt_encoding != kCFStringEncodingInvalidId) 4152 && tgt_encoding != kCFStringEncodingInvalidId)
4150 str = CFStringCreateWithBytes (NULL, SDATA (string), SBYTES (string), 4153 str = CFStringCreateWithBytes (NULL, SDATA (string), SBYTES (string),
4151 src_encoding, true); 4154 src_encoding, !NILP (source));
4152#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 4155#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
4153 if (str) 4156 if (str)
4154 { 4157 {
@@ -4160,15 +4163,18 @@ On successful conversion, return the result string, else return nil. */)
4160#endif 4163#endif
4161 if (str) 4164 if (str)
4162 { 4165 {
4163 data = CFStringCreateExternalRepresentation (NULL, str, 4166 CFIndex str_len, buf_len;
4164 tgt_encoding, '\0'); 4167
4168 str_len = CFStringGetLength (str);
4169 if (CFStringGetBytes (str, CFRangeMake (0, str_len), tgt_encoding, 0,
4170 !NILP (target), NULL, 0, &buf_len) == str_len)
4171 {
4172 result = make_uninit_string (buf_len);
4173 CFStringGetBytes (str, CFRangeMake (0, str_len), tgt_encoding, 0,
4174 !NILP (target), SDATA (result), buf_len, NULL);
4175 }
4165 CFRelease (str); 4176 CFRelease (str);
4166 } 4177 }
4167 if (data)
4168 {
4169 result = cfdata_to_lisp (data);
4170 CFRelease (data);
4171 }
4172 4178
4173 UNBLOCK_INPUT; 4179 UNBLOCK_INPUT;
4174 4180
diff --git a/src/macfns.c b/src/macfns.c
index f0d07a9fe55..64e20af4a47 100644
--- a/src/macfns.c
+++ b/src/macfns.c
@@ -1745,8 +1745,7 @@ x_set_tool_bar_lines (f, value, oldval)
1745 int y = nlines * FRAME_LINE_HEIGHT (f); 1745 int y = nlines * FRAME_LINE_HEIGHT (f);
1746 1746
1747 BLOCK_INPUT; 1747 BLOCK_INPUT;
1748 XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), 1748 mac_clear_area (f, 0, y, width, height);
1749 0, y, width, height, 0);
1750 UNBLOCK_INPUT; 1749 UNBLOCK_INPUT;
1751 1750
1752 if (WINDOWP (f->tool_bar_window)) 1751 if (WINDOWP (f->tool_bar_window))
@@ -2439,7 +2438,7 @@ This function is an internal primitive--use `make-frame' instead. */)
2439 frame = Qnil; 2438 frame = Qnil;
2440 GCPRO4 (parms, parent, name, frame); 2439 GCPRO4 (parms, parent, name, frame);
2441 tem = mac_get_arg (parms, Qminibuffer, "minibuffer", "Minibuffer", 2440 tem = mac_get_arg (parms, Qminibuffer, "minibuffer", "Minibuffer",
2442 RES_TYPE_SYMBOL); 2441 RES_TYPE_SYMBOL);
2443 if (EQ (tem, Qnone) || NILP (tem)) 2442 if (EQ (tem, Qnone) || NILP (tem))
2444 f = make_frame_without_minibuffer (Qnil, kb, display); 2443 f = make_frame_without_minibuffer (Qnil, kb, display);
2445 else if (EQ (tem, Qonly)) 2444 else if (EQ (tem, Qonly))
@@ -2480,7 +2479,11 @@ This function is an internal primitive--use `make-frame' instead. */)
2480 if (! STRINGP (f->icon_name)) 2479 if (! STRINGP (f->icon_name))
2481 f->icon_name = Qnil; 2480 f->icon_name = Qnil;
2482 2481
2483/* FRAME_W32_DISPLAY_INFO (f) = dpyinfo; */ 2482/* FRAME_MAC_DISPLAY_INFO (f) = dpyinfo; */
2483#if GLYPH_DEBUG
2484 image_cache_refcount = FRAME_X_IMAGE_CACHE (f)->refcount;
2485 dpyinfo_refcount = dpyinfo->reference_count;
2486#endif /* GLYPH_DEBUG */
2484#ifdef MULTI_KBOARD 2487#ifdef MULTI_KBOARD
2485 FRAME_KBOARD (f) = kb; 2488 FRAME_KBOARD (f) = kb;
2486#endif 2489#endif
@@ -2606,9 +2609,10 @@ This function is an internal primitive--use `make-frame' instead. */)
2606 x_default_parameter (f, parms, Qmenu_bar_lines, make_number (1), 2609 x_default_parameter (f, parms, Qmenu_bar_lines, make_number (1),
2607 "menuBar", "MenuBar", RES_TYPE_NUMBER); 2610 "menuBar", "MenuBar", RES_TYPE_NUMBER);
2608 x_default_parameter (f, parms, Qtool_bar_lines, make_number (1), 2611 x_default_parameter (f, parms, Qtool_bar_lines, make_number (1),
2609 "toolBar", "ToolBar", RES_TYPE_NUMBER); 2612 "toolBar", "ToolBar", RES_TYPE_NUMBER);
2610 x_default_parameter (f, parms, Qbuffer_predicate, Qnil, 2613 x_default_parameter (f, parms, Qbuffer_predicate, Qnil,
2611 "bufferPredicate", "BufferPredicate", RES_TYPE_SYMBOL); 2614 "bufferPredicate", "BufferPredicate",
2615 RES_TYPE_SYMBOL);
2612 x_default_parameter (f, parms, Qtitle, Qnil, 2616 x_default_parameter (f, parms, Qtitle, Qnil,
2613 "title", "Title", RES_TYPE_STRING); 2617 "title", "Title", RES_TYPE_STRING);
2614 x_default_parameter (f, parms, Qfullscreen, Qnil, 2618 x_default_parameter (f, parms, Qfullscreen, Qnil,
@@ -3593,7 +3597,7 @@ x_create_tip_frame (dpyinfo, parms, text)
3593 3597
3594 FRAME_FONTSET (f) = -1; 3598 FRAME_FONTSET (f) = -1;
3595 f->icon_name = Qnil; 3599 f->icon_name = Qnil;
3596 3600/* FRAME_X_DISPLAY_INFO (f) = dpyinfo; */
3597#if GLYPH_DEBUG 3601#if GLYPH_DEBUG
3598 image_cache_refcount = FRAME_X_IMAGE_CACHE (f)->refcount; 3602 image_cache_refcount = FRAME_X_IMAGE_CACHE (f)->refcount;
3599 dpyinfo_refcount = dpyinfo->reference_count; 3603 dpyinfo_refcount = dpyinfo->reference_count;
@@ -4047,6 +4051,9 @@ Text larger than the specified size is clipped. */)
4047 BringToFront (FRAME_MAC_WINDOW (f)); 4051 BringToFront (FRAME_MAC_WINDOW (f));
4048 UNBLOCK_INPUT; 4052 UNBLOCK_INPUT;
4049 4053
4054 FRAME_PIXEL_WIDTH (f) = width;
4055 FRAME_PIXEL_HEIGHT (f) = height;
4056
4050 /* Draw into the window. */ 4057 /* Draw into the window. */
4051 w->must_be_updated_p = 1; 4058 w->must_be_updated_p = 1;
4052 update_single_window (w, 1); 4059 update_single_window (w, 1);
diff --git a/src/macterm.c b/src/macterm.c
index 83561639cbf..a4fe2342a63 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -271,7 +271,7 @@ extern void menubar_selection_callback (FRAME_PTR, int);
271#define GC_BACK_COLOR(gc) (&(gc)->back_color) 271#define GC_BACK_COLOR(gc) (&(gc)->back_color)
272#define GC_FONT(gc) ((gc)->xgcv.font) 272#define GC_FONT(gc) ((gc)->xgcv.font)
273#define GC_CLIP_REGION(gc) ((gc)->clip_region) 273#define GC_CLIP_REGION(gc) ((gc)->clip_region)
274#define MAC_WINDOW_NORMAL_GC(w) (((mac_output *) GetWRefCon (w))->normal_gc) 274#define FRAME_NORMAL_GC(f) ((f)->output_data.mac->normal_gc)
275 275
276static RgnHandle saved_port_clip_region = NULL; 276static RgnHandle saved_port_clip_region = NULL;
277 277
@@ -317,13 +317,12 @@ XFreePixmap (display, pixmap)
317/* Mac version of XDrawLine. */ 317/* Mac version of XDrawLine. */
318 318
319static void 319static void
320XDrawLine (display, w, gc, x1, y1, x2, y2) 320mac_draw_line (f, gc, x1, y1, x2, y2)
321 Display *display; 321 struct frame *f;
322 WindowPtr w;
323 GC gc; 322 GC gc;
324 int x1, y1, x2, y2; 323 int x1, y1, x2, y2;
325{ 324{
326 SetPortWindowPort (w); 325 SetPortWindowPort (FRAME_MAC_WINDOW (f));
327 326
328 RGBForeColor (GC_FORE_COLOR (gc)); 327 RGBForeColor (GC_FORE_COLOR (gc));
329 328
@@ -358,15 +357,15 @@ mac_draw_line_to_pixmap (display, p, gc, x1, y1, x2, y2)
358 357
359 358
360static void 359static void
361mac_erase_rectangle (w, gc, x, y, width, height) 360mac_erase_rectangle (f, gc, x, y, width, height)
362 WindowPtr w; 361 struct frame *f;
363 GC gc; 362 GC gc;
364 int x, y; 363 int x, y;
365 unsigned int width, height; 364 unsigned int width, height;
366{ 365{
367 Rect r; 366 Rect r;
368 367
369 SetPortWindowPort (w); 368 SetPortWindowPort (FRAME_MAC_WINDOW (f));
370 369
371 RGBBackColor (GC_BACK_COLOR (gc)); 370 RGBBackColor (GC_BACK_COLOR (gc));
372 SetRect (&r, x, y, x + width, y + height); 371 SetRect (&r, x, y, x + width, y + height);
@@ -375,43 +374,40 @@ mac_erase_rectangle (w, gc, x, y, width, height)
375 EraseRect (&r); 374 EraseRect (&r);
376 mac_end_clip (GC_CLIP_REGION (gc)); 375 mac_end_clip (GC_CLIP_REGION (gc));
377 376
378 RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w))); 377 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
379} 378}
380 379
381 380
382/* Mac version of XClearArea. */ 381/* Mac version of XClearArea. */
383 382
384void 383void
385XClearArea (display, w, x, y, width, height, exposures) 384mac_clear_area (f, x, y, width, height)
386 Display *display; 385 struct frame *f;
387 WindowPtr w;
388 int x, y; 386 int x, y;
389 unsigned int width, height; 387 unsigned int width, height;
390 int exposures;
391{ 388{
392 mac_erase_rectangle (w, MAC_WINDOW_NORMAL_GC (w), x, y, width, height); 389 mac_erase_rectangle (f, FRAME_NORMAL_GC (f), x, y, width, height);
393} 390}
394 391
395/* Mac version of XClearWindow. */ 392/* Mac version of XClearWindow. */
396 393
397static void 394static void
398XClearWindow (display, w) 395mac_clear_window (f)
399 Display *display; 396 struct frame *f;
400 WindowPtr w;
401{ 397{
402 SetPortWindowPort (w); 398 SetPortWindowPort (FRAME_MAC_WINDOW (f));
403 399
404 RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w))); 400 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
405 401
406#if TARGET_API_MAC_CARBON 402#if TARGET_API_MAC_CARBON
407 { 403 {
408 Rect r; 404 Rect r;
409 405
410 GetWindowPortBounds (w, &r); 406 GetWindowPortBounds (FRAME_MAC_WINDOW (f), &r);
411 EraseRect (&r); 407 EraseRect (&r);
412 } 408 }
413#else /* not TARGET_API_MAC_CARBON */ 409#else /* not TARGET_API_MAC_CARBON */
414 EraseRect (&(w->portRect)); 410 EraseRect (&(FRAME_MAC_WINDOW (f)->portRect));
415#endif /* not TARGET_API_MAC_CARBON */ 411#endif /* not TARGET_API_MAC_CARBON */
416} 412}
417 413
@@ -419,9 +415,8 @@ XClearWindow (display, w)
419/* Mac replacement for XCopyArea. */ 415/* Mac replacement for XCopyArea. */
420 416
421static void 417static void
422mac_draw_bitmap (display, w, gc, x, y, width, height, bits, overlay_p) 418mac_draw_bitmap (f, gc, x, y, width, height, bits, overlay_p)
423 Display *display; 419 struct frame *f;
424 WindowPtr w;
425 GC gc; 420 GC gc;
426 int x, y, width, height; 421 int x, y, width, height;
427 unsigned short *bits; 422 unsigned short *bits;
@@ -434,7 +429,7 @@ mac_draw_bitmap (display, w, gc, x, y, width, height, bits, overlay_p)
434 bitmap.baseAddr = (char *)bits; 429 bitmap.baseAddr = (char *)bits;
435 SetRect (&(bitmap.bounds), 0, 0, width, height); 430 SetRect (&(bitmap.bounds), 0, 0, width, height);
436 431
437 SetPortWindowPort (w); 432 SetPortWindowPort (FRAME_MAC_WINDOW (f));
438 433
439 RGBForeColor (GC_FORE_COLOR (gc)); 434 RGBForeColor (GC_FORE_COLOR (gc));
440 RGBBackColor (GC_BACK_COLOR (gc)); 435 RGBBackColor (GC_BACK_COLOR (gc));
@@ -442,17 +437,22 @@ mac_draw_bitmap (display, w, gc, x, y, width, height, bits, overlay_p)
442 437
443 mac_begin_clip (GC_CLIP_REGION (gc)); 438 mac_begin_clip (GC_CLIP_REGION (gc));
444#if TARGET_API_MAC_CARBON 439#if TARGET_API_MAC_CARBON
445 LockPortBits (GetWindowPort (w)); 440 {
446 CopyBits (&bitmap, GetPortBitMapForCopyBits (GetWindowPort (w)), 441 CGrafPtr port;
447 &(bitmap.bounds), &r, overlay_p ? srcOr : srcCopy, 0); 442
448 UnlockPortBits (GetWindowPort (w)); 443 GetPort (&port);
444 LockPortBits (port);
445 CopyBits (&bitmap, GetPortBitMapForCopyBits (port),
446 &(bitmap.bounds), &r, overlay_p ? srcOr : srcCopy, 0);
447 UnlockPortBits (port);
448 }
449#else /* not TARGET_API_MAC_CARBON */ 449#else /* not TARGET_API_MAC_CARBON */
450 CopyBits (&bitmap, &(w->portBits), &(bitmap.bounds), &r, 450 CopyBits (&bitmap, &(FRAME_MAC_WINDOW (f)->portBits), &(bitmap.bounds), &r,
451 overlay_p ? srcOr : srcCopy, 0); 451 overlay_p ? srcOr : srcCopy, 0);
452#endif /* not TARGET_API_MAC_CARBON */ 452#endif /* not TARGET_API_MAC_CARBON */
453 mac_end_clip (GC_CLIP_REGION (gc)); 453 mac_end_clip (GC_CLIP_REGION (gc));
454 454
455 RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w))); 455 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
456} 456}
457 457
458 458
@@ -569,16 +569,15 @@ XCreatePixmapFromBitmapData (display, w, data, width, height, fg, bg, depth)
569/* Mac replacement for XFillRectangle. */ 569/* Mac replacement for XFillRectangle. */
570 570
571static void 571static void
572XFillRectangle (display, w, gc, x, y, width, height) 572mac_fill_rectangle (f, gc, x, y, width, height)
573 Display *display; 573 struct frame *f;
574 WindowPtr w;
575 GC gc; 574 GC gc;
576 int x, y; 575 int x, y;
577 unsigned int width, height; 576 unsigned int width, height;
578{ 577{
579 Rect r; 578 Rect r;
580 579
581 SetPortWindowPort (w); 580 SetPortWindowPort (FRAME_MAC_WINDOW (f));
582 581
583 RGBForeColor (GC_FORE_COLOR (gc)); 582 RGBForeColor (GC_FORE_COLOR (gc));
584 SetRect (&r, x, y, x + width, y + height); 583 SetRect (&r, x, y, x + width, y + height);
@@ -589,46 +588,18 @@ XFillRectangle (display, w, gc, x, y, width, height)
589} 588}
590 589
591 590
592#if 0 /* TODO: figure out if we need to do this on Mac. */
593static void
594mac_fill_rectangle_to_pixmap (display, p, gc, x, y, width, height)
595 Display *display;
596 Pixmap p;
597 GC gc;
598 int x, y;
599 unsigned int width, height;
600{
601 CGrafPtr old_port;
602 GDHandle old_gdh;
603 Rect r;
604
605 GetGWorld (&old_port, &old_gdh);
606 SetGWorld (p, NULL);
607 RGBForeColor (GC_FORE_COLOR (gc));
608 SetRect (&r, x, y, x + width, y + height);
609
610 LockPixels (GetGWorldPixMap (p));
611 PaintRect (&r); /* using foreground color of gc */
612 UnlockPixels (GetGWorldPixMap (p));
613
614 SetGWorld (old_port, old_gdh);
615}
616#endif
617
618
619/* Mac replacement for XDrawRectangle: dest is a window. */ 591/* Mac replacement for XDrawRectangle: dest is a window. */
620 592
621static void 593static void
622mac_draw_rectangle (display, w, gc, x, y, width, height) 594mac_draw_rectangle (f, gc, x, y, width, height)
623 Display *display; 595 struct frame *f;
624 WindowPtr w;
625 GC gc; 596 GC gc;
626 int x, y; 597 int x, y;
627 unsigned int width, height; 598 unsigned int width, height;
628{ 599{
629 Rect r; 600 Rect r;
630 601
631 SetPortWindowPort (w); 602 SetPortWindowPort (FRAME_MAC_WINDOW (f));
632 603
633 RGBForeColor (GC_FORE_COLOR (gc)); 604 RGBForeColor (GC_FORE_COLOR (gc));
634 SetRect (&r, x, y, x + width + 1, y + height + 1); 605 SetRect (&r, x, y, x + width + 1, y + height + 1);
@@ -639,35 +610,6 @@ mac_draw_rectangle (display, w, gc, x, y, width, height)
639} 610}
640 611
641 612
642#if 0 /* TODO: figure out if we need to do this on Mac. */
643/* Mac replacement for XDrawRectangle: dest is a Pixmap. */
644
645static void
646mac_draw_rectangle_to_pixmap (display, p, gc, x, y, width, height)
647 Display *display;
648 Pixmap p;
649 GC gc;
650 int x, y;
651 unsigned int width, height;
652{
653 CGrafPtr old_port;
654 GDHandle old_gdh;
655 Rect r;
656
657 GetGWorld (&old_port, &old_gdh);
658 SetGWorld (p, NULL);
659 RGBForeColor (GC_FORE_COLOR (gc));
660 SetRect (&r, x, y, x + width + 1, y + height + 1);
661
662 LockPixels (GetGWorldPixMap (p));
663 FrameRect (&r); /* using foreground color of gc */
664 UnlockPixels (GetGWorldPixMap (p));
665
666 SetGWorld (old_port, old_gdh);
667}
668#endif
669
670
671#if USE_ATSUI 613#if USE_ATSUI
672static OSStatus 614static OSStatus
673atsu_get_text_layout_with_text_ptr (text, text_length, style, text_layout) 615atsu_get_text_layout_with_text_ptr (text, text_length, style, text_layout)
@@ -724,16 +666,16 @@ atsu_get_text_layout_with_text_ptr (text, text_length, style, text_layout)
724} 666}
725#endif 667#endif
726 668
669
727static void 670static void
728mac_invert_rectangle (display, w, x, y, width, height) 671mac_invert_rectangle (f, x, y, width, height)
729 Display *display; 672 struct frame *f;
730 WindowPtr w;
731 int x, y; 673 int x, y;
732 unsigned int width, height; 674 unsigned int width, height;
733{ 675{
734 Rect r; 676 Rect r;
735 677
736 SetPortWindowPort (w); 678 SetPortWindowPort (FRAME_MAC_WINDOW (f));
737 679
738 SetRect (&r, x, y, x + width, y + height); 680 SetRect (&r, x, y, x + width, y + height);
739 681
@@ -742,10 +684,8 @@ mac_invert_rectangle (display, w, x, y, width, height)
742 684
743 685
744static void 686static void
745mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode, 687mac_draw_string_common (f, gc, x, y, buf, nchars, mode, bytes_per_char)
746 bytes_per_char) 688 struct frame *f;
747 Display *display;
748 WindowPtr w;
749 GC gc; 689 GC gc;
750 int x, y; 690 int x, y;
751 char *buf; 691 char *buf;
@@ -759,7 +699,7 @@ mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode,
759 } 699 }
760#endif 700#endif
761 701
762 SetPortWindowPort (w); 702 SetPortWindowPort (FRAME_MAC_WINDOW (f));
763 703
764 RGBForeColor (GC_FORE_COLOR (gc)); 704 RGBForeColor (GC_FORE_COLOR (gc));
765 if (mode != srcOr) 705 if (mode != srcOr)
@@ -804,16 +744,13 @@ mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode,
804 { 744 {
805 CGrafPtr port; 745 CGrafPtr port;
806 CGContextRef context; 746 CGContextRef context;
807 Rect rect; 747 float port_height = FRAME_PIXEL_HEIGHT (f);
808 float port_height;
809 ATSUAttributeTag tags[] = {kATSUCGContextTag}; 748 ATSUAttributeTag tags[] = {kATSUCGContextTag};
810 ByteCount sizes[] = {sizeof (CGContextRef)}; 749 ByteCount sizes[] = {sizeof (CGContextRef)};
811 ATSUAttributeValuePtr values[] = {&context}; 750 ATSUAttributeValuePtr values[] = {&context};
812 751
813 GetPort (&port); 752 GetPort (&port);
814 QDBeginCGContext (port, &context); 753 QDBeginCGContext (port, &context);
815 GetPortBounds (port, &rect);
816 port_height = rect.bottom - rect.top;
817 if (gc->n_clip_rects) 754 if (gc->n_clip_rects)
818 { 755 {
819 CGContextTranslateCTM (context, 0, port_height); 756 CGContextTranslateCTM (context, 0, port_height);
@@ -862,7 +799,7 @@ mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode,
862#endif 799#endif
863 800
864 if (mode != srcOr) 801 if (mode != srcOr)
865 RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w))); 802 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
866#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 803#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
867 if (!NILP(Vmac_use_core_graphics)) 804 if (!NILP(Vmac_use_core_graphics))
868 SwapQDTextFlags(savedFlags); 805 SwapQDTextFlags(savedFlags);
@@ -873,73 +810,65 @@ mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode,
873/* Mac replacement for XDrawString. */ 810/* Mac replacement for XDrawString. */
874 811
875static void 812static void
876XDrawString (display, w, gc, x, y, buf, nchars) 813mac_draw_string (f, gc, x, y, buf, nchars)
877 Display *display; 814 struct frame *f;
878 WindowPtr w;
879 GC gc; 815 GC gc;
880 int x, y; 816 int x, y;
881 char *buf; 817 char *buf;
882 int nchars; 818 int nchars;
883{ 819{
884 mac_draw_string_common (display, w, gc, x, y, buf, nchars, srcOr, 1); 820 mac_draw_string_common (f, gc, x, y, buf, nchars, srcOr, 1);
885} 821}
886 822
887 823
888/* Mac replacement for XDrawString16. */ 824/* Mac replacement for XDrawString16. */
889 825
890static void 826static void
891XDrawString16 (display, w, gc, x, y, buf, nchars) 827mac_draw_string_16 (f, gc, x, y, buf, nchars)
892 Display *display; 828 struct frame *f;
893 WindowPtr w;
894 GC gc; 829 GC gc;
895 int x, y; 830 int x, y;
896 XChar2b *buf; 831 XChar2b *buf;
897 int nchars; 832 int nchars;
898{ 833{
899 mac_draw_string_common (display, w, gc, x, y, (char *) buf, nchars, srcOr, 834 mac_draw_string_common (f, gc, x, y, (char *) buf, nchars, srcOr, 2);
900 2);
901} 835}
902 836
903 837
904/* Mac replacement for XDrawImageString. */ 838/* Mac replacement for XDrawImageString. */
905 839
906static void 840static void
907XDrawImageString (display, w, gc, x, y, buf, nchars) 841mac_draw_image_string (f, gc, x, y, buf, nchars)
908 Display *display; 842 struct frame *f;
909 WindowPtr w;
910 GC gc; 843 GC gc;
911 int x, y; 844 int x, y;
912 char *buf; 845 char *buf;
913 int nchars; 846 int nchars;
914{ 847{
915 mac_draw_string_common (display, w, gc, x, y, buf, nchars, srcCopy, 1); 848 mac_draw_string_common (f, gc, x, y, buf, nchars, srcCopy, 1);
916} 849}
917 850
918 851
919/* Mac replacement for XDrawString16. */ 852/* Mac replacement for XDrawString16. */
920 853
921static void 854static void
922XDrawImageString16 (display, w, gc, x, y, buf, nchars) 855mac_draw_image_string_16 (f, gc, x, y, buf, nchars)
923 Display *display; 856 struct frame *f;
924 WindowPtr w;
925 GC gc; 857 GC gc;
926 int x, y; 858 int x, y;
927 XChar2b *buf; 859 XChar2b *buf;
928 int nchars; 860 int nchars;
929{ 861{
930 mac_draw_string_common (display, w, gc, x, y, (char *) buf, nchars, srcCopy, 862 mac_draw_string_common (f, gc, x, y, (char *) buf, nchars, srcCopy, 2);
931 2);
932} 863}
933 864
934 865
935/* Mac replacement for XCopyArea: dest must be window. */ 866/* Mac replacement for XCopyArea: dest must be window. */
936 867
937static void 868static void
938mac_copy_area (display, src, dest, gc, src_x, src_y, width, height, dest_x, 869mac_copy_area (src, f, gc, src_x, src_y, width, height, dest_x, dest_y)
939 dest_y)
940 Display *display;
941 Pixmap src; 870 Pixmap src;
942 WindowPtr dest; 871 struct frame *f;
943 GC gc; 872 GC gc;
944 int src_x, src_y; 873 int src_x, src_y;
945 unsigned int width, height; 874 unsigned int width, height;
@@ -947,7 +876,7 @@ mac_copy_area (display, src, dest, gc, src_x, src_y, width, height, dest_x,
947{ 876{
948 Rect src_r, dest_r; 877 Rect src_r, dest_r;
949 878
950 SetPortWindowPort (dest); 879 SetPortWindowPort (FRAME_MAC_WINDOW (f));
951 880
952 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height); 881 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
953 SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height); 882 SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height);
@@ -958,28 +887,32 @@ mac_copy_area (display, src, dest, gc, src_x, src_y, width, height, dest_x,
958 mac_begin_clip (GC_CLIP_REGION (gc)); 887 mac_begin_clip (GC_CLIP_REGION (gc));
959 LockPixels (GetGWorldPixMap (src)); 888 LockPixels (GetGWorldPixMap (src));
960#if TARGET_API_MAC_CARBON 889#if TARGET_API_MAC_CARBON
961 LockPortBits (GetWindowPort (dest)); 890 {
962 CopyBits (GetPortBitMapForCopyBits (src), 891 CGrafPtr port;
963 GetPortBitMapForCopyBits (GetWindowPort (dest)), 892
964 &src_r, &dest_r, srcCopy, 0); 893 GetPort (&port);
965 UnlockPortBits (GetWindowPort (dest)); 894 LockPortBits (port);
895 CopyBits (GetPortBitMapForCopyBits (src),
896 GetPortBitMapForCopyBits (port),
897 &src_r, &dest_r, srcCopy, 0);
898 UnlockPortBits (port);
899 }
966#else /* not TARGET_API_MAC_CARBON */ 900#else /* not TARGET_API_MAC_CARBON */
967 CopyBits (&(((GrafPtr)src)->portBits), &(dest->portBits), 901 CopyBits (&(((GrafPtr)src)->portBits), &(FRAME_MAC_WINDOW (f)->portBits),
968 &src_r, &dest_r, srcCopy, 0); 902 &src_r, &dest_r, srcCopy, 0);
969#endif /* not TARGET_API_MAC_CARBON */ 903#endif /* not TARGET_API_MAC_CARBON */
970 UnlockPixels (GetGWorldPixMap (src)); 904 UnlockPixels (GetGWorldPixMap (src));
971 mac_end_clip (GC_CLIP_REGION (gc)); 905 mac_end_clip (GC_CLIP_REGION (gc));
972 906
973 RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (dest))); 907 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
974} 908}
975 909
976 910
977static void 911static void
978mac_copy_area_with_mask (display, src, mask, dest, gc, src_x, src_y, 912mac_copy_area_with_mask (src, mask, f, gc, src_x, src_y,
979 width, height, dest_x, dest_y) 913 width, height, dest_x, dest_y)
980 Display *display;
981 Pixmap src, mask; 914 Pixmap src, mask;
982 WindowPtr dest; 915 struct frame *f;
983 GC gc; 916 GC gc;
984 int src_x, src_y; 917 int src_x, src_y;
985 unsigned int width, height; 918 unsigned int width, height;
@@ -987,7 +920,7 @@ mac_copy_area_with_mask (display, src, mask, dest, gc, src_x, src_y,
987{ 920{
988 Rect src_r, dest_r; 921 Rect src_r, dest_r;
989 922
990 SetPortWindowPort (dest); 923 SetPortWindowPort (FRAME_MAC_WINDOW (f));
991 924
992 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height); 925 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
993 SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height); 926 SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height);
@@ -999,29 +932,33 @@ mac_copy_area_with_mask (display, src, mask, dest, gc, src_x, src_y,
999 LockPixels (GetGWorldPixMap (src)); 932 LockPixels (GetGWorldPixMap (src));
1000 LockPixels (GetGWorldPixMap (mask)); 933 LockPixels (GetGWorldPixMap (mask));
1001#if TARGET_API_MAC_CARBON 934#if TARGET_API_MAC_CARBON
1002 LockPortBits (GetWindowPort (dest)); 935 {
1003 CopyMask (GetPortBitMapForCopyBits (src), GetPortBitMapForCopyBits (mask), 936 CGrafPtr port;
1004 GetPortBitMapForCopyBits (GetWindowPort (dest)), 937
1005 &src_r, &src_r, &dest_r); 938 GetPort (&port);
1006 UnlockPortBits (GetWindowPort (dest)); 939 LockPortBits (port);
940 CopyMask (GetPortBitMapForCopyBits (src), GetPortBitMapForCopyBits (mask),
941 GetPortBitMapForCopyBits (port),
942 &src_r, &src_r, &dest_r);
943 UnlockPortBits (port);
944 }
1007#else /* not TARGET_API_MAC_CARBON */ 945#else /* not TARGET_API_MAC_CARBON */
1008 CopyMask (&(((GrafPtr)src)->portBits), &(((GrafPtr)mask)->portBits), 946 CopyMask (&(((GrafPtr)src)->portBits), &(((GrafPtr)mask)->portBits),
1009 &(dest->portBits), &src_r, &src_r, &dest_r); 947 &(FRAME_MAC_WINDOW (f)->portBits), &src_r, &src_r, &dest_r);
1010#endif /* not TARGET_API_MAC_CARBON */ 948#endif /* not TARGET_API_MAC_CARBON */
1011 UnlockPixels (GetGWorldPixMap (mask)); 949 UnlockPixels (GetGWorldPixMap (mask));
1012 UnlockPixels (GetGWorldPixMap (src)); 950 UnlockPixels (GetGWorldPixMap (src));
1013 mac_end_clip (GC_CLIP_REGION (gc)); 951 mac_end_clip (GC_CLIP_REGION (gc));
1014 952
1015 RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (dest))); 953 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
1016} 954}
1017 955
1018 956
1019/* Mac replacement for XCopyArea: used only for scrolling. */ 957/* Mac replacement for XCopyArea: used only for scrolling. */
1020 958
1021static void 959static void
1022mac_scroll_area (display, w, gc, src_x, src_y, width, height, dest_x, dest_y) 960mac_scroll_area (f, gc, src_x, src_y, width, height, dest_x, dest_y)
1023 Display *display; 961 struct frame *f;
1024 WindowPtr w;
1025 GC gc; 962 GC gc;
1026 int src_x, src_y; 963 int src_x, src_y;
1027 unsigned int width, height; 964 unsigned int width, height;
@@ -1032,11 +969,13 @@ mac_scroll_area (display, w, gc, src_x, src_y, width, height, dest_x, dest_y)
1032 RgnHandle dummy = NewRgn (); /* For avoiding update events. */ 969 RgnHandle dummy = NewRgn (); /* For avoiding update events. */
1033 970
1034 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height); 971 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
1035 ScrollWindowRect (w, &src_r, dest_x - src_x, dest_y - src_y, 972 ScrollWindowRect (FRAME_MAC_WINDOW (f),
973 &src_r, dest_x - src_x, dest_y - src_y,
1036 kScrollWindowNoOptions, dummy); 974 kScrollWindowNoOptions, dummy);
1037 DisposeRgn (dummy); 975 DisposeRgn (dummy);
1038#else /* not TARGET_API_MAC_CARBON */ 976#else /* not TARGET_API_MAC_CARBON */
1039 Rect src_r, dest_r; 977 Rect src_r, dest_r;
978 WindowPtr w = FRAME_MAC_WINDOW (f);
1040 979
1041 SetPort (w); 980 SetPort (w);
1042 981
@@ -1051,93 +990,11 @@ mac_scroll_area (display, w, gc, src_x, src_y, width, height, dest_x, dest_y)
1051 CopyBits (&(w->portBits), &(w->portBits), &src_r, &dest_r, srcCopy, 0); 990 CopyBits (&(w->portBits), &(w->portBits), &src_r, &dest_r, srcCopy, 0);
1052 mac_end_clip (GC_CLIP_REGION (gc)); 991 mac_end_clip (GC_CLIP_REGION (gc));
1053 992
1054 RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w))); 993 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
1055#endif /* not TARGET_API_MAC_CARBON */
1056}
1057
1058
1059#if 0 /* TODO: figure out if we need to do this on Mac. */
1060/* Mac replacement for XCopyArea: dest must be Pixmap. */
1061
1062static void
1063mac_copy_area_to_pixmap (display, src, dest, gc, src_x, src_y, width, height,
1064 dest_x, dest_y)
1065 Display *display;
1066 Pixmap src, dest;
1067 GC gc;
1068 int src_x, src_y;
1069 unsigned int width, height;
1070 int dest_x, dest_y;
1071{
1072 CGrafPtr old_port;
1073 GDHandle old_gdh;
1074 Rect src_r, dest_r;
1075
1076 GetGWorld (&old_port, &old_gdh);
1077 SetGWorld (dest, NULL);
1078 ForeColor (blackColor);
1079 BackColor (whiteColor);
1080
1081 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
1082 SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height);
1083
1084 LockPixels (GetGWorldPixMap (src));
1085 LockPixels (GetGWorldPixMap (dest));
1086#if TARGET_API_MAC_CARBON
1087 CopyBits (GetPortBitMapForCopyBits (src), GetPortBitMapForCopyBits (dest),
1088 &src_r, &dest_r, srcCopy, 0);
1089#else /* not TARGET_API_MAC_CARBON */
1090 CopyBits (&(((GrafPtr)src)->portBits), &(((GrafPtr)dest)->portBits),
1091 &src_r, &dest_r, srcCopy, 0);
1092#endif /* not TARGET_API_MAC_CARBON */ 994#endif /* not TARGET_API_MAC_CARBON */
1093 UnlockPixels (GetGWorldPixMap (dest));
1094 UnlockPixels (GetGWorldPixMap (src));
1095
1096 SetGWorld (old_port, old_gdh);
1097} 995}
1098 996
1099 997
1100static void
1101mac_copy_area_with_mask_to_pixmap (display, src, mask, dest, gc, src_x, src_y,
1102 width, height, dest_x, dest_y)
1103 Display *display;
1104 Pixmap src, mask, dest;
1105 GC gc;
1106 int src_x, src_y;
1107 unsigned int width, height;
1108 int dest_x, dest_y;
1109{
1110 CGrafPtr old_port;
1111 GDHandle old_gdh;
1112 Rect src_r, dest_r;
1113
1114 GetGWorld (&old_port, &old_gdh);
1115 SetGWorld (dest, NULL);
1116 ForeColor (blackColor);
1117 BackColor (whiteColor);
1118
1119 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
1120 SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height);
1121
1122 LockPixels (GetGWorldPixMap (src));
1123 LockPixels (GetGWorldPixMap (mask));
1124 LockPixels (GetGWorldPixMap (dest));
1125#if TARGET_API_MAC_CARBON
1126 CopyMask (GetPortBitMapForCopyBits (src), GetPortBitMapForCopyBits (mask),
1127 GetPortBitMapForCopyBits (dest), &src_r, &src_r, &dest_r);
1128#else /* not TARGET_API_MAC_CARBON */
1129 CopyMask (&(((GrafPtr)src)->portBits), &(((GrafPtr)mask)->portBits),
1130 &(((GrafPtr)dest)->portBits), &src_r, &src_r, &dest_r);
1131#endif /* not TARGET_API_MAC_CARBON */
1132 UnlockPixels (GetGWorldPixMap (dest));
1133 UnlockPixels (GetGWorldPixMap (mask));
1134 UnlockPixels (GetGWorldPixMap (src));
1135
1136 SetGWorld (old_port, old_gdh);
1137}
1138#endif
1139
1140
1141/* Mac replacement for XChangeGC. */ 998/* Mac replacement for XChangeGC. */
1142 999
1143static void 1000static void
@@ -1509,8 +1366,7 @@ mac_draw_vertical_window_border (w, x, y0, y1)
1509 XSetForeground (FRAME_MAC_DISPLAY (f), f->output_data.mac->normal_gc, 1366 XSetForeground (FRAME_MAC_DISPLAY (f), f->output_data.mac->normal_gc,
1510 face->foreground); 1367 face->foreground);
1511 1368
1512 XDrawLine (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), 1369 mac_draw_line (f, f->output_data.mac->normal_gc, x, y0, x, y1);
1513 f->output_data.mac->normal_gc, x, y0, x, y1);
1514} 1370}
1515 1371
1516/* End update of window W (which is equal to updated_window). 1372/* End update of window W (which is equal to updated_window).
@@ -1649,11 +1505,8 @@ x_after_update_window_line (desired_row)
1649 y -= width; 1505 y -= width;
1650 1506
1651 BLOCK_INPUT; 1507 BLOCK_INPUT;
1652 XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), 1508 mac_clear_area (f, 0, y, width, height);
1653 0, y, width, height, 0); 1509 mac_clear_area (f, FRAME_PIXEL_WIDTH (f) - width, y, width, height);
1654 XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
1655 FRAME_PIXEL_WIDTH (f) - width, y,
1656 width, height, 0);
1657 UNBLOCK_INPUT; 1510 UNBLOCK_INPUT;
1658 } 1511 }
1659} 1512}
@@ -1672,8 +1525,6 @@ x_draw_fringe_bitmap (w, row, p)
1672{ 1525{
1673 struct frame *f = XFRAME (WINDOW_FRAME (w)); 1526 struct frame *f = XFRAME (WINDOW_FRAME (w));
1674 Display *display = FRAME_MAC_DISPLAY (f); 1527 Display *display = FRAME_MAC_DISPLAY (f);
1675 WindowPtr window = FRAME_MAC_WINDOW (f);
1676 GC gc = f->output_data.mac->normal_gc;
1677 struct face *face = p->face; 1528 struct face *face = p->face;
1678 int rowY; 1529 int rowY;
1679 1530
@@ -1687,12 +1538,12 @@ x_draw_fringe_bitmap (w, row, p)
1687 int oldVH = row->visible_height; 1538 int oldVH = row->visible_height;
1688 row->visible_height = p->h; 1539 row->visible_height = p->h;
1689 row->y -= rowY - p->y; 1540 row->y -= rowY - p->y;
1690 x_clip_to_row (w, row, -1, gc); 1541 x_clip_to_row (w, row, -1, face->gc);
1691 row->y = oldY; 1542 row->y = oldY;
1692 row->visible_height = oldVH; 1543 row->visible_height = oldVH;
1693 } 1544 }
1694 else 1545 else
1695 x_clip_to_row (w, row, -1, gc); 1546 x_clip_to_row (w, row, -1, face->gc);
1696 1547
1697 if (p->bx >= 0 && !p->overlay_p) 1548 if (p->bx >= 0 && !p->overlay_p)
1698 { 1549 {
@@ -1707,7 +1558,7 @@ x_draw_fringe_bitmap (w, row, p)
1707 XSetForeground (FRAME_X_DISPLAY (f), face->gc, face->background); 1558 XSetForeground (FRAME_X_DISPLAY (f), face->gc, face->background);
1708#endif 1559#endif
1709 1560
1710 mac_erase_rectangle (window, face->gc, p->bx, p->by, p->nx, p->ny); 1561 mac_erase_rectangle (f, face->gc, p->bx, p->by, p->nx, p->ny);
1711 1562
1712#if 0 /* MAC_TODO: stipple */ 1563#if 0 /* MAC_TODO: stipple */
1713 if (!face->stipple) 1564 if (!face->stipple)
@@ -1726,12 +1577,12 @@ x_draw_fringe_bitmap (w, row, p)
1726 ? (p->overlay_p ? face->background 1577 ? (p->overlay_p ? face->background
1727 : f->output_data.mac->cursor_pixel) 1578 : f->output_data.mac->cursor_pixel)
1728 : face->foreground)); 1579 : face->foreground));
1729 mac_draw_bitmap (display, window, face->gc, p->x, p->y, 1580 mac_draw_bitmap (f, face->gc, p->x, p->y,
1730 p->wd, p->h, bits, p->overlay_p); 1581 p->wd, p->h, bits, p->overlay_p);
1731 XSetForeground (display, face->gc, gcv.foreground); 1582 XSetForeground (display, face->gc, gcv.foreground);
1732 } 1583 }
1733 1584
1734 mac_reset_clip_rectangles (display, gc); 1585 mac_reset_clip_rectangles (display, face->gc);
1735} 1586}
1736 1587
1737 1588
@@ -2282,7 +2133,7 @@ x_clear_glyph_string_rect (s, x, y, w, h)
2282 struct glyph_string *s; 2133 struct glyph_string *s;
2283 int x, y, w, h; 2134 int x, y, w, h;
2284{ 2135{
2285 mac_erase_rectangle (s->window, s->gc, x, y, w, h); 2136 mac_erase_rectangle (s->f, s->gc, x, y, w, h);
2286} 2137}
2287 2138
2288 2139
@@ -2364,9 +2215,8 @@ x_draw_glyph_string_foreground (s)
2364 for (i = 0; i < s->nchars; ++i) 2215 for (i = 0; i < s->nchars; ++i)
2365 { 2216 {
2366 struct glyph *g = s->first_glyph + i; 2217 struct glyph *g = s->first_glyph + i;
2367 mac_draw_rectangle (s->display, s->window, 2218 mac_draw_rectangle (s->f, s->gc, x, s->y,
2368 s->gc, x, s->y, g->pixel_width - 1, 2219 g->pixel_width - 1, s->height - 1);
2369 s->height - 1);
2370 x += g->pixel_width; 2220 x += g->pixel_width;
2371 } 2221 }
2372 } 2222 }
@@ -2403,21 +2253,21 @@ x_draw_glyph_string_foreground (s)
2403 || GC_FONT (s->gc)->mac_style 2253 || GC_FONT (s->gc)->mac_style
2404#endif 2254#endif
2405 ) 2255 )
2406 XDrawString16 (s->display, s->window, s->gc, x, 2256 mac_draw_string_16 (s->f, s->gc, x, s->ybase - boff,
2407 s->ybase - boff, s->char2b, s->nchars); 2257 s->char2b, s->nchars);
2408 else 2258 else
2409 XDrawString (s->display, s->window, s->gc, x, 2259 mac_draw_string (s->f, s->gc, x, s->ybase - boff,
2410 s->ybase - boff, char1b, s->nchars); 2260 char1b, s->nchars);
2411 } 2261 }
2412#if defined (MAC_OS8) && !USE_ATSUI 2262#if defined (MAC_OS8) && !USE_ATSUI
2413 else 2263 else
2414 { 2264 {
2415 if (s->two_byte_p) 2265 if (s->two_byte_p)
2416 XDrawImageString16 (s->display, s->window, s->gc, x, 2266 mac_draw_image_string_16 (s->f, s->gc, x, s->ybase - boff,
2417 s->ybase - boff, s->char2b, s->nchars); 2267 s->char2b, s->nchars);
2418 else 2268 else
2419 XDrawImageString (s->display, s->window, s->gc, x, 2269 mac_draw_image_string (s->f, s->gc, x, s->ybase - boff,
2420 s->ybase - boff, char1b, s->nchars); 2270 char1b, s->nchars);
2421 } 2271 }
2422#endif 2272#endif
2423 } 2273 }
@@ -2449,16 +2299,16 @@ x_draw_composite_glyph_string_foreground (s)
2449 if (s->font_not_found_p) 2299 if (s->font_not_found_p)
2450 { 2300 {
2451 if (s->gidx == 0) 2301 if (s->gidx == 0)
2452 mac_draw_rectangle (s->display, s->window, s->gc, x, s->y, 2302 mac_draw_rectangle (s->f, s->gc, x, s->y,
2453 s->width - 1, s->height - 1); 2303 s->width - 1, s->height - 1);
2454 } 2304 }
2455 else 2305 else
2456 { 2306 {
2457 for (i = 0; i < s->nchars; i++, ++s->gidx) 2307 for (i = 0; i < s->nchars; i++, ++s->gidx)
2458 XDrawString16 (s->display, s->window, s->gc, 2308 mac_draw_string_16 (s->f, s->gc,
2459 x + s->cmp->offsets[s->gidx * 2], 2309 x + s->cmp->offsets[s->gidx * 2],
2460 s->ybase - s->cmp->offsets[s->gidx * 2 + 1], 2310 s->ybase - s->cmp->offsets[s->gidx * 2 + 1],
2461 s->char2b + i, 1); 2311 s->char2b + i, 1);
2462 } 2312 }
2463} 2313}
2464 2314
@@ -2814,7 +2664,6 @@ x_draw_relief_rect (f, left_x, top_y, right_x, bottom_y, width,
2814 Rect *clip_rect; 2664 Rect *clip_rect;
2815{ 2665{
2816 Display *dpy = FRAME_MAC_DISPLAY (f); 2666 Display *dpy = FRAME_MAC_DISPLAY (f);
2817 Window window = FRAME_MAC_WINDOW (f);
2818 int i; 2667 int i;
2819 GC gc; 2668 GC gc;
2820 2669
@@ -2827,15 +2676,15 @@ x_draw_relief_rect (f, left_x, top_y, right_x, bottom_y, width,
2827 /* Top. */ 2676 /* Top. */
2828 if (top_p) 2677 if (top_p)
2829 for (i = 0; i < width; ++i) 2678 for (i = 0; i < width; ++i)
2830 XDrawLine (dpy, window, gc, 2679 mac_draw_line (f, gc,
2831 left_x + i * left_p, top_y + i, 2680 left_x + i * left_p, top_y + i,
2832 right_x - i * right_p, top_y + i); 2681 right_x - i * right_p, top_y + i);
2833 2682
2834 /* Left. */ 2683 /* Left. */
2835 if (left_p) 2684 if (left_p)
2836 for (i = 0; i < width; ++i) 2685 for (i = 0; i < width; ++i)
2837 XDrawLine (dpy, window, gc, 2686 mac_draw_line (f, gc,
2838 left_x + i, top_y + i, left_x + i, bottom_y - i); 2687 left_x + i, top_y + i, left_x + i, bottom_y - i);
2839 2688
2840 mac_reset_clip_rectangles (dpy, gc); 2689 mac_reset_clip_rectangles (dpy, gc);
2841 if (raised_p) 2690 if (raised_p)
@@ -2847,15 +2696,15 @@ x_draw_relief_rect (f, left_x, top_y, right_x, bottom_y, width,
2847 /* Bottom. */ 2696 /* Bottom. */
2848 if (bot_p) 2697 if (bot_p)
2849 for (i = 0; i < width; ++i) 2698 for (i = 0; i < width; ++i)
2850 XDrawLine (dpy, window, gc, 2699 mac_draw_line (f, gc,
2851 left_x + i * left_p, bottom_y - i, 2700 left_x + i * left_p, bottom_y - i,
2852 right_x - i * right_p, bottom_y - i); 2701 right_x - i * right_p, bottom_y - i);
2853 2702
2854 /* Right. */ 2703 /* Right. */
2855 if (right_p) 2704 if (right_p)
2856 for (i = 0; i < width; ++i) 2705 for (i = 0; i < width; ++i)
2857 XDrawLine (dpy, window, gc, 2706 mac_draw_line (f, gc,
2858 right_x - i, top_y + i + 1, right_x - i, bottom_y - i - 1); 2707 right_x - i, top_y + i + 1, right_x - i, bottom_y - i - 1);
2859 2708
2860 mac_reset_clip_rectangles (dpy, gc); 2709 mac_reset_clip_rectangles (dpy, gc);
2861} 2710}
@@ -2882,22 +2731,22 @@ x_draw_box_rect (s, left_x, top_y, right_x, bottom_y, width,
2882 mac_set_clip_rectangles (s->display, s->gc, clip_rect, 1); 2731 mac_set_clip_rectangles (s->display, s->gc, clip_rect, 1);
2883 2732
2884 /* Top. */ 2733 /* Top. */
2885 XFillRectangle (s->display, s->window, s->gc, 2734 mac_fill_rectangle (s->f, s->gc, left_x, top_y,
2886 left_x, top_y, right_x - left_x + 1, width); 2735 right_x - left_x + 1, width);
2887 2736
2888 /* Left. */ 2737 /* Left. */
2889 if (left_p) 2738 if (left_p)
2890 XFillRectangle (s->display, s->window, s->gc, 2739 mac_fill_rectangle (s->f, s->gc, left_x, top_y,
2891 left_x, top_y, width, bottom_y - top_y + 1); 2740 width, bottom_y - top_y + 1);
2892 2741
2893 /* Bottom. */ 2742 /* Bottom. */
2894 XFillRectangle (s->display, s->window, s->gc, 2743 mac_fill_rectangle (s->f, s->gc, left_x, bottom_y - width + 1,
2895 left_x, bottom_y - width + 1, right_x - left_x + 1, width); 2744 right_x - left_x + 1, width);
2896 2745
2897 /* Right. */ 2746 /* Right. */
2898 if (right_p) 2747 if (right_p)
2899 XFillRectangle (s->display, s->window, s->gc, 2748 mac_fill_rectangle (s->f, s->gc, right_x - width + 1,
2900 right_x - width + 1, top_y, width, bottom_y - top_y + 1); 2749 top_y, width, bottom_y - top_y + 1);
2901 2750
2902 XSetForeground (s->display, s->gc, xgcv.foreground); 2751 XSetForeground (s->display, s->gc, xgcv.foreground);
2903 mac_reset_clip_rectangles (s->display, s->gc); 2752 mac_reset_clip_rectangles (s->display, s->gc);
@@ -2984,13 +2833,13 @@ x_draw_image_foreground (s)
2984 x_set_glyph_string_clipping (s); 2833 x_set_glyph_string_clipping (s);
2985 2834
2986 if (s->img->mask) 2835 if (s->img->mask)
2987 mac_copy_area_with_mask (s->display, s->img->pixmap, s->img->mask, 2836 mac_copy_area_with_mask (s->img->pixmap, s->img->mask,
2988 s->window, s->gc, s->slice.x, s->slice.y, 2837 s->f, s->gc, s->slice.x, s->slice.y,
2989 s->slice.width, s->slice.height, x, y); 2838 s->slice.width, s->slice.height, x, y);
2990 else 2839 else
2991 { 2840 {
2992 mac_copy_area (s->display, s->img->pixmap, 2841 mac_copy_area (s->img->pixmap,
2993 s->window, s->gc, s->slice.x, s->slice.y, 2842 s->f, s->gc, s->slice.x, s->slice.y,
2994 s->slice.width, s->slice.height, x, y); 2843 s->slice.width, s->slice.height, x, y);
2995 2844
2996 /* When the image has a mask, we can expect that at 2845 /* When the image has a mask, we can expect that at
@@ -3003,8 +2852,7 @@ x_draw_image_foreground (s)
3003 { 2852 {
3004 int r = s->img->relief; 2853 int r = s->img->relief;
3005 if (r < 0) r = -r; 2854 if (r < 0) r = -r;
3006 mac_draw_rectangle (s->display, s->window, s->gc, 2855 mac_draw_rectangle (s->f, s->gc, x - r, y - r,
3007 x - r, y - r,
3008 s->slice.width + r*2 - 1, 2856 s->slice.width + r*2 - 1,
3009 s->slice.height + r*2 - 1); 2857 s->slice.height + r*2 - 1);
3010 } 2858 }
@@ -3012,7 +2860,7 @@ x_draw_image_foreground (s)
3012 } 2860 }
3013 else 2861 else
3014 /* Draw a rectangle if image could not be loaded. */ 2862 /* Draw a rectangle if image could not be loaded. */
3015 mac_draw_rectangle (s->display, s->window, s->gc, x, y, 2863 mac_draw_rectangle (s->f, s->gc, x, y,
3016 s->slice.width - 1, s->slice.height - 1); 2864 s->slice.width - 1, s->slice.height - 1);
3017} 2865}
3018 2866
@@ -3070,70 +2918,6 @@ x_draw_image_relief (s)
3070} 2918}
3071 2919
3072 2920
3073#if 0 /* TODO: figure out if we need to do this on Mac. */
3074/* Draw the foreground of image glyph string S to PIXMAP. */
3075
3076static void
3077x_draw_image_foreground_1 (s, pixmap)
3078 struct glyph_string *s;
3079 Pixmap pixmap;
3080{
3081 int x = 0;
3082 int y = s->ybase - s->y - image_ascent (s->img, s->face, &s->slice);
3083
3084 /* If first glyph of S has a left box line, start drawing it to the
3085 right of that line. */
3086 if (s->face->box != FACE_NO_BOX
3087 && s->first_glyph->left_box_line_p
3088 && s->slice.x == 0)
3089 x += abs (s->face->box_line_width);
3090
3091 /* If there is a margin around the image, adjust x- and y-position
3092 by that margin. */
3093 if (s->slice.x == 0)
3094 x += s->img->hmargin;
3095 if (s->slice.y == 0)
3096 y += s->img->vmargin;
3097
3098 if (s->img->pixmap)
3099 {
3100 if (s->img->mask)
3101 mac_copy_area_with_mask_to_pixmap (s->display, s->img->pixmap,
3102 s->img->mask, pixmap, s->gc,
3103 s->slice.x, s->slice.y,
3104 s->slice.width, s->slice.height,
3105 x, y);
3106 else
3107 {
3108 mac_copy_area_to_pixmap (s->display, s->img->pixmap, pixmap, s->gc,
3109 s->slice.x, s->slice.y,
3110 s->slice.width, s->slice.height,
3111 x, y);
3112
3113 /* When the image has a mask, we can expect that at
3114 least part of a mouse highlight or a block cursor will
3115 be visible. If the image doesn't have a mask, make
3116 a block cursor visible by drawing a rectangle around
3117 the image. I believe it's looking better if we do
3118 nothing here for mouse-face. */
3119 if (s->hl == DRAW_CURSOR)
3120 {
3121 int r = s->img->relief;
3122 if (r < 0) r = -r;
3123 mac_draw_rectangle (s->display, s->window, s->gc, x - r, y - r,
3124 s->slice.width + r*2 - 1,
3125 s->slice.height + r*2 - 1);
3126 }
3127 }
3128 }
3129 else
3130 /* Draw a rectangle if image could not be loaded. */
3131 mac_draw_rectangle_to_pixmap (s->display, pixmap, s->gc, x, y,
3132 s->slice.width - 1, s->slice.height - 1);
3133}
3134#endif
3135
3136
3137/* Draw part of the background of glyph string S. X, Y, W, and H 2921/* Draw part of the background of glyph string S. X, Y, W, and H
3138 give the rectangle to draw. */ 2922 give the rectangle to draw. */
3139 2923
@@ -3203,62 +2987,13 @@ x_draw_image_glyph_string (s)
3203 if (s->slice.y == 0) 2987 if (s->slice.y == 0)
3204 y += box_line_vwidth; 2988 y += box_line_vwidth;
3205 2989
3206#if 0 /* TODO: figure out if we need to do this on Mac. */ 2990 x_draw_glyph_string_bg_rect (s, x, y, s->background_width, height);
3207 if (s->img->mask)
3208 {
3209 /* Create a pixmap as large as the glyph string. Fill it
3210 with the background color. Copy the image to it, using
3211 its mask. Copy the temporary pixmap to the display. */
3212 int depth = one_mac_display_info.n_planes;
3213
3214 /* Create a pixmap as large as the glyph string. */
3215 pixmap = XCreatePixmap (s->display, s->window,
3216 s->background_width,
3217 s->height, depth);
3218
3219 /* Fill the pixmap with the background color/stipple. */
3220#if 0 /* TODO: stipple */
3221 if (s->stippled_p)
3222 {
3223 /* Fill background with a stipple pattern. */
3224 XSetFillStyle (s->display, s->gc, FillOpaqueStippled);
3225 XFillRectangle (s->display, pixmap, s->gc,
3226 0, 0, s->background_width, s->height);
3227 XSetFillStyle (s->display, s->gc, FillSolid);
3228 }
3229 else
3230#endif
3231 {
3232 XGCValues xgcv;
3233 XGetGCValues (s->display, s->gc, GCForeground | GCBackground,
3234 &xgcv);
3235 XSetForeground (s->display, s->gc, xgcv.background);
3236 mac_fill_rectangle_to_pixmap (s->display, pixmap, s->gc,
3237 0, 0, s->background_width,
3238 s->height);
3239 XSetForeground (s->display, s->gc, xgcv.foreground);
3240 }
3241 }
3242 else
3243#endif
3244 x_draw_glyph_string_bg_rect (s, x, y, s->background_width, height);
3245 2991
3246 s->background_filled_p = 1; 2992 s->background_filled_p = 1;
3247 } 2993 }
3248 2994
3249 /* Draw the foreground. */ 2995 /* Draw the foreground. */
3250#if 0 /* TODO: figure out if we need to do this on Mac. */ 2996 x_draw_image_foreground (s);
3251 if (pixmap != 0)
3252 {
3253 x_draw_image_foreground_1 (s, pixmap);
3254 x_set_glyph_string_clipping (s);
3255 mac_copy_area (s->display, pixmap, s->window, s->gc,
3256 0, 0, s->background_width, s->height, s->x, s->y);
3257 XFreePixmap (s->display, pixmap);
3258 }
3259 else
3260#endif
3261 x_draw_image_foreground (s);
3262 2997
3263 /* If we must draw a relief around the image, do it. */ 2998 /* If we must draw a relief around the image, do it. */
3264 if (s->img->relief 2999 if (s->img->relief
@@ -3317,7 +3052,7 @@ x_draw_stretch_glyph_string (s)
3317 } 3052 }
3318 else 3053 else
3319#endif /* MAC_TODO */ 3054#endif /* MAC_TODO */
3320 mac_erase_rectangle (s->window, gc, x, y, w, h); 3055 mac_erase_rectangle (s->f, gc, x, y, w, h);
3321 } 3056 }
3322 } 3057 }
3323 else if (!s->background_filled_p) 3058 else if (!s->background_filled_p)
@@ -3408,15 +3143,15 @@ x_draw_glyph_string (s)
3408 unsigned long dy = s->height - h; 3143 unsigned long dy = s->height - h;
3409 3144
3410 if (s->face->underline_defaulted_p) 3145 if (s->face->underline_defaulted_p)
3411 XFillRectangle (s->display, s->window, s->gc, s->x, s->y + dy, 3146 mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy,
3412 s->width, h); 3147 s->width, h);
3413 else 3148 else
3414 { 3149 {
3415 XGCValues xgcv; 3150 XGCValues xgcv;
3416 XGetGCValues (s->display, s->gc, GCForeground, &xgcv); 3151 XGetGCValues (s->display, s->gc, GCForeground, &xgcv);
3417 XSetForeground (s->display, s->gc, s->face->underline_color); 3152 XSetForeground (s->display, s->gc, s->face->underline_color);
3418 XFillRectangle (s->display, s->window, s->gc, s->x, s->y + dy, 3153 mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy,
3419 s->width, h); 3154 s->width, h);
3420 XSetForeground (s->display, s->gc, xgcv.foreground); 3155 XSetForeground (s->display, s->gc, xgcv.foreground);
3421 } 3156 }
3422 } 3157 }
@@ -3427,15 +3162,15 @@ x_draw_glyph_string (s)
3427 unsigned long dy = 0, h = 1; 3162 unsigned long dy = 0, h = 1;
3428 3163
3429 if (s->face->overline_color_defaulted_p) 3164 if (s->face->overline_color_defaulted_p)
3430 XFillRectangle (s->display, s->window, s->gc, s->x, s->y + dy, 3165 mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy,
3431 s->width, h); 3166 s->width, h);
3432 else 3167 else
3433 { 3168 {
3434 XGCValues xgcv; 3169 XGCValues xgcv;
3435 XGetGCValues (s->display, s->gc, GCForeground, &xgcv); 3170 XGetGCValues (s->display, s->gc, GCForeground, &xgcv);
3436 XSetForeground (s->display, s->gc, s->face->overline_color); 3171 XSetForeground (s->display, s->gc, s->face->overline_color);
3437 XFillRectangle (s->display, s->window, s->gc, s->x, s->y + dy, 3172 mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy,
3438 s->width, h); 3173 s->width, h);
3439 XSetForeground (s->display, s->gc, xgcv.foreground); 3174 XSetForeground (s->display, s->gc, xgcv.foreground);
3440 } 3175 }
3441 } 3176 }
@@ -3447,15 +3182,15 @@ x_draw_glyph_string (s)
3447 unsigned long dy = (s->height - h) / 2; 3182 unsigned long dy = (s->height - h) / 2;
3448 3183
3449 if (s->face->strike_through_color_defaulted_p) 3184 if (s->face->strike_through_color_defaulted_p)
3450 XFillRectangle (s->display, s->window, s->gc, s->x, s->y + dy, 3185 mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy,
3451 s->width, h); 3186 s->width, h);
3452 else 3187 else
3453 { 3188 {
3454 XGCValues xgcv; 3189 XGCValues xgcv;
3455 XGetGCValues (s->display, s->gc, GCForeground, &xgcv); 3190 XGetGCValues (s->display, s->gc, GCForeground, &xgcv);
3456 XSetForeground (s->display, s->gc, s->face->strike_through_color); 3191 XSetForeground (s->display, s->gc, s->face->strike_through_color);
3457 XFillRectangle (s->display, s->window, s->gc, s->x, s->y + dy, 3192 mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy,
3458 s->width, h); 3193 s->width, h);
3459 XSetForeground (s->display, s->gc, xgcv.foreground); 3194 XSetForeground (s->display, s->gc, xgcv.foreground);
3460 } 3195 }
3461 } 3196 }
@@ -3476,8 +3211,7 @@ mac_shift_glyphs_for_insert (f, x, y, width, height, shift_by)
3476 struct frame *f; 3211 struct frame *f;
3477 int x, y, width, height, shift_by; 3212 int x, y, width, height, shift_by;
3478{ 3213{
3479 mac_scroll_area (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), 3214 mac_scroll_area (f, f->output_data.mac->normal_gc,
3480 f->output_data.mac->normal_gc,
3481 x, y, width, height, 3215 x, y, width, height,
3482 x + shift_by, y); 3216 x + shift_by, y);
3483} 3217}
@@ -3515,7 +3249,7 @@ x_clear_frame ()
3515 /* We don't set the output cursor here because there will always 3249 /* We don't set the output cursor here because there will always
3516 follow an explicit cursor_to. */ 3250 follow an explicit cursor_to. */
3517 BLOCK_INPUT; 3251 BLOCK_INPUT;
3518 XClearWindow (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f)); 3252 mac_clear_window (f);
3519 3253
3520 /* We have to clear the scroll bars, too. If we have changed 3254 /* We have to clear the scroll bars, too. If we have changed
3521 colors or something like that, then they should be notified. */ 3255 colors or something like that, then they should be notified. */
@@ -3605,21 +3339,18 @@ XTflash (f)
3605 /* If window is tall, flash top and bottom line. */ 3339 /* If window is tall, flash top and bottom line. */
3606 if (height > 3 * FRAME_LINE_HEIGHT (f)) 3340 if (height > 3 * FRAME_LINE_HEIGHT (f))
3607 { 3341 {
3608 mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), 3342 mac_invert_rectangle (f, flash_left,
3609 flash_left,
3610 (FRAME_INTERNAL_BORDER_WIDTH (f) 3343 (FRAME_INTERNAL_BORDER_WIDTH (f)
3611 + FRAME_TOOL_BAR_LINES (f) * FRAME_LINE_HEIGHT (f)), 3344 + FRAME_TOOL_BAR_LINES (f) * FRAME_LINE_HEIGHT (f)),
3612 width, flash_height); 3345 width, flash_height);
3613 mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), 3346 mac_invert_rectangle (f, flash_left,
3614 flash_left,
3615 (height - flash_height 3347 (height - flash_height
3616 - FRAME_INTERNAL_BORDER_WIDTH (f)), 3348 - FRAME_INTERNAL_BORDER_WIDTH (f)),
3617 width, flash_height); 3349 width, flash_height);
3618 } 3350 }
3619 else 3351 else
3620 /* If it is short, flash it all. */ 3352 /* If it is short, flash it all. */
3621 mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), 3353 mac_invert_rectangle (f, flash_left, FRAME_INTERNAL_BORDER_WIDTH (f),
3622 flash_left, FRAME_INTERNAL_BORDER_WIDTH (f),
3623 width, height - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)); 3354 width, height - 2 * FRAME_INTERNAL_BORDER_WIDTH (f));
3624 3355
3625 x_flush (f); 3356 x_flush (f);
@@ -3659,21 +3390,18 @@ XTflash (f)
3659 /* If window is tall, flash top and bottom line. */ 3390 /* If window is tall, flash top and bottom line. */
3660 if (height > 3 * FRAME_LINE_HEIGHT (f)) 3391 if (height > 3 * FRAME_LINE_HEIGHT (f))
3661 { 3392 {
3662 mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), 3393 mac_invert_rectangle (f, flash_left,
3663 flash_left,
3664 (FRAME_INTERNAL_BORDER_WIDTH (f) 3394 (FRAME_INTERNAL_BORDER_WIDTH (f)
3665 + FRAME_TOOL_BAR_LINES (f) * FRAME_LINE_HEIGHT (f)), 3395 + FRAME_TOOL_BAR_LINES (f) * FRAME_LINE_HEIGHT (f)),
3666 width, flash_height); 3396 width, flash_height);
3667 mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), 3397 mac_invert_rectangle (f, flash_left,
3668 flash_left,
3669 (height - flash_height 3398 (height - flash_height
3670 - FRAME_INTERNAL_BORDER_WIDTH (f)), 3399 - FRAME_INTERNAL_BORDER_WIDTH (f)),
3671 width, flash_height); 3400 width, flash_height);
3672 } 3401 }
3673 else 3402 else
3674 /* If it is short, flash it all. */ 3403 /* If it is short, flash it all. */
3675 mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), 3404 mac_invert_rectangle (f, flash_left, FRAME_INTERNAL_BORDER_WIDTH (f),
3676 flash_left, FRAME_INTERNAL_BORDER_WIDTH (f),
3677 width, height - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)); 3405 width, height - 2 * FRAME_INTERNAL_BORDER_WIDTH (f));
3678 3406
3679 x_flush (f); 3407 x_flush (f);
@@ -3778,11 +3506,10 @@ x_scroll_run (w, run)
3778 updated_window = w; 3506 updated_window = w;
3779 x_clear_cursor (w); 3507 x_clear_cursor (w);
3780 3508
3781 mac_scroll_area (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), 3509 mac_scroll_area (f, f->output_data.mac->normal_gc,
3782 f->output_data.mac->normal_gc, 3510 x, from_y,
3783 x, from_y, 3511 width, height,
3784 width, height, 3512 x, to_y);
3785 x, to_y);
3786 3513
3787 UNBLOCK_INPUT; 3514 UNBLOCK_INPUT;
3788} 3515}
@@ -4149,7 +3876,7 @@ x_get_keysym_name (keysym)
4149static Point last_mouse_motion_position; 3876static Point last_mouse_motion_position;
4150static Lisp_Object last_mouse_motion_frame; 3877static Lisp_Object last_mouse_motion_frame;
4151 3878
4152static void 3879static int
4153note_mouse_movement (frame, pos) 3880note_mouse_movement (frame, pos)
4154 FRAME_PTR frame; 3881 FRAME_PTR frame;
4155 Point *pos; 3882 Point *pos;
@@ -4180,19 +3907,20 @@ note_mouse_movement (frame, pos)
4180 rif->define_frame_cursor (frame, 3907 rif->define_frame_cursor (frame,
4181 frame->output_data.mac->nontext_cursor); 3908 frame->output_data.mac->nontext_cursor);
4182 } 3909 }
3910 return 1;
4183 } 3911 }
4184 /* Has the mouse moved off the glyph it was on at the last sighting? */ 3912 /* Has the mouse moved off the glyph it was on at the last sighting? */
4185 else if (pos->h < last_mouse_glyph.left 3913 if (!PtInRect (*pos, &last_mouse_glyph))
4186 || pos->h >= last_mouse_glyph.right
4187 || pos->v < last_mouse_glyph.top
4188 || pos->v >= last_mouse_glyph.bottom)
4189 { 3914 {
4190 frame->mouse_moved = 1; 3915 frame->mouse_moved = 1;
4191 last_mouse_scroll_bar = Qnil; 3916 last_mouse_scroll_bar = Qnil;
4192 note_mouse_highlight (frame, pos->h, pos->v); 3917 note_mouse_highlight (frame, pos->h, pos->v);
4193 /* Remember which glyph we're now on. */ 3918 /* Remember which glyph we're now on. */
4194 remember_mouse_glyph (frame, pos->h, pos->v, &last_mouse_glyph); 3919 remember_mouse_glyph (frame, pos->h, pos->v, &last_mouse_glyph);
3920 return 1;
4195 } 3921 }
3922
3923 return 0;
4196} 3924}
4197 3925
4198 3926
@@ -4825,8 +4553,7 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
4825 if (NILP (w->vertical_scroll_bar)) 4553 if (NILP (w->vertical_scroll_bar))
4826 { 4554 {
4827 BLOCK_INPUT; 4555 BLOCK_INPUT;
4828 XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), 4556 mac_clear_area (f, left, top, width, height);
4829 left, top, width, height, 0);
4830 UNBLOCK_INPUT; 4557 UNBLOCK_INPUT;
4831 bar = x_scroll_bar_create (w, top, sb_left, sb_width, height, disp_top, 4558 bar = x_scroll_bar_create (w, top, sb_left, sb_width, height, disp_top,
4832 disp_height); 4559 disp_height);
@@ -4850,14 +4577,7 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
4850 { 4577 {
4851 /* Since toolkit scroll bars are smaller than the space reserved 4578 /* Since toolkit scroll bars are smaller than the space reserved
4852 for them on the frame, we have to clear "under" them. */ 4579 for them on the frame, we have to clear "under" them. */
4853 XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), 4580 mac_clear_area (f, left, top, width, height);
4854 left, top, width, height, 0);
4855
4856#if 0
4857 if (sb_left + sb_width >= FRAME_PIXEL_WIDTH (f))
4858 XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
4859 sb_left - 1, top, 1, height, 0);
4860#endif
4861 4581
4862 HideControl (ch); 4582 HideControl (ch);
4863 MoveControl (ch, sb_left + VERTICAL_SCROLL_BAR_WIDTH_TRIM, disp_top); 4583 MoveControl (ch, sb_left + VERTICAL_SCROLL_BAR_WIDTH_TRIM, disp_top);
@@ -5290,7 +5010,7 @@ x_draw_hollow_cursor (w, row)
5290 5010
5291 /* Set clipping, draw the rectangle, and reset clipping again. */ 5011 /* Set clipping, draw the rectangle, and reset clipping again. */
5292 x_clip_to_row (w, row, TEXT_AREA, gc); 5012 x_clip_to_row (w, row, TEXT_AREA, gc);
5293 mac_draw_rectangle (dpy, FRAME_MAC_WINDOW (f), gc, x, y, wd, h); 5013 mac_draw_rectangle (f, gc, x, y, wd, h);
5294 mac_reset_clip_rectangles (dpy, gc); 5014 mac_reset_clip_rectangles (dpy, gc);
5295} 5015}
5296 5016
@@ -5363,17 +5083,17 @@ x_draw_bar_cursor (w, row, width, kind)
5363 x_clip_to_row (w, row, TEXT_AREA, gc); 5083 x_clip_to_row (w, row, TEXT_AREA, gc);
5364 5084
5365 if (kind == BAR_CURSOR) 5085 if (kind == BAR_CURSOR)
5366 XFillRectangle (dpy, window, gc, 5086 mac_fill_rectangle (f, gc,
5367 WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x), 5087 WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x),
5368 WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y), 5088 WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y),
5369 width, row->height); 5089 width, row->height);
5370 else 5090 else
5371 XFillRectangle (dpy, window, gc, 5091 mac_fill_rectangle (f, gc,
5372 WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x), 5092 WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x),
5373 WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y + 5093 WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y +
5374 row->height - width), 5094 row->height - width),
5375 cursor_glyph->pixel_width, 5095 cursor_glyph->pixel_width,
5376 width); 5096 width);
5377 5097
5378 mac_reset_clip_rectangles (dpy, gc); 5098 mac_reset_clip_rectangles (dpy, gc);
5379 } 5099 }
@@ -5398,8 +5118,7 @@ mac_clear_frame_area (f, x, y, width, height)
5398 struct frame *f; 5118 struct frame *f;
5399 int x, y, width, height; 5119 int x, y, width, height;
5400{ 5120{
5401 XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f), 5121 mac_clear_area (f, x, y, width, height);
5402 x, y, width, height, 0);
5403} 5122}
5404 5123
5405 5124
@@ -9799,7 +9518,8 @@ XTread_socket (sd, expected, hold_quit)
9799 } 9518 }
9800 } 9519 }
9801 9520
9802 if (er.what != mouseDown && part_code != inContent) 9521 if (er.what != mouseDown &&
9522 (part_code != inContent || dpyinfo->grabbed == 0))
9803 break; 9523 break;
9804 9524
9805 switch (part_code) 9525 switch (part_code)
@@ -9922,12 +9642,6 @@ XTread_socket (sd, expected, hold_quit)
9922 { 9642 {
9923 dpyinfo->grabbed |= (1 << inev.code); 9643 dpyinfo->grabbed |= (1 << inev.code);
9924 last_mouse_frame = f; 9644 last_mouse_frame = f;
9925 /* Ignore any mouse motion that happened
9926 before this event; any subsequent
9927 mouse-movement Emacs events should reflect
9928 only motion after the ButtonPress. */
9929 if (f != 0)
9930 f->mouse_moved = 0;
9931 9645
9932 if (!tool_bar_p) 9646 if (!tool_bar_p)
9933 last_tool_bar_item = -1; 9647 last_tool_bar_item = -1;
@@ -9943,6 +9657,13 @@ XTread_socket (sd, expected, hold_quit)
9943 dpyinfo->grabbed &= ~(1 << inev.code); 9657 dpyinfo->grabbed &= ~(1 << inev.code);
9944 } 9658 }
9945 9659
9660 /* Ignore any mouse motion that happened before
9661 this event; any subsequent mouse-movement Emacs
9662 events should reflect only motion after the
9663 ButtonPress. */
9664 if (f != 0)
9665 f->mouse_moved = 0;
9666
9946#ifdef USE_TOOLKIT_SCROLL_BARS 9667#ifdef USE_TOOLKIT_SCROLL_BARS
9947 if (inev.kind == MOUSE_CLICK_EVENT) 9668 if (inev.kind == MOUSE_CLICK_EVENT)
9948#endif 9669#endif
@@ -10031,8 +9752,7 @@ XTread_socket (sd, expected, hold_quit)
10031 er.where.h + 1, er.where.v + 1); 9752 er.where.h + 1, er.where.v + 1);
10032#endif 9753#endif
10033 previous_help_echo_string = help_echo_string; 9754 previous_help_echo_string = help_echo_string;
10034 help_echo_string = help_echo_object = help_echo_window = Qnil; 9755 help_echo_string = Qnil;
10035 help_echo_pos = -1;
10036 9756
10037 if (dpyinfo->grabbed && last_mouse_frame 9757 if (dpyinfo->grabbed && last_mouse_frame
10038 && FRAME_LIVE_P (last_mouse_frame)) 9758 && FRAME_LIVE_P (last_mouse_frame))
@@ -10091,7 +9811,8 @@ XTread_socket (sd, expected, hold_quit)
10091 9811
10092 last_window=window; 9812 last_window=window;
10093 } 9813 }
10094 note_mouse_movement (f, &mouse_pos); 9814 if (!note_mouse_movement (f, &mouse_pos))
9815 help_echo_string = previous_help_echo_string;
10095 } 9816 }
10096 } 9817 }
10097 9818
diff --git a/src/macterm.h b/src/macterm.h
index ed645317990..ca6f82021fe 100644
--- a/src/macterm.h
+++ b/src/macterm.h
@@ -559,6 +559,8 @@ extern void XSetBackground P_ ((Display *, GC, unsigned long));
559extern void XSetWindowBackground P_ ((Display *, WindowPtr, unsigned long)); 559extern void XSetWindowBackground P_ ((Display *, WindowPtr, unsigned long));
560extern void mac_draw_line_to_pixmap P_ ((Display *, Pixmap, GC, int, int, 560extern void mac_draw_line_to_pixmap P_ ((Display *, Pixmap, GC, int, int,
561 int, int)); 561 int, int));
562extern void mac_clear_area P_ ((struct frame *, int, int,
563 unsigned int, unsigned int));
562extern void mac_unload_font P_ ((struct mac_display_info *, XFontStruct *)); 564extern void mac_unload_font P_ ((struct mac_display_info *, XFontStruct *));
563extern OSErr install_window_handler P_ ((WindowPtr)); 565extern OSErr install_window_handler P_ ((WindowPtr));
564extern void remove_window_handler P_ ((WindowPtr)); 566extern void remove_window_handler P_ ((WindowPtr));
diff --git a/src/minibuf.c b/src/minibuf.c
index a84f37cad21..9c0f4a09284 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -2357,7 +2357,7 @@ Return nil if there is no valid completion, else t. */)
2357} 2357}
2358 2358
2359DEFUN ("display-completion-list", Fdisplay_completion_list, Sdisplay_completion_list, 2359DEFUN ("display-completion-list", Fdisplay_completion_list, Sdisplay_completion_list,
2360 1, 1, 0, 2360 1, 2, 0,
2361 doc: /* Display the list of completions, COMPLETIONS, using `standard-output'. 2361 doc: /* Display the list of completions, COMPLETIONS, using `standard-output'.
2362Each element may be just a symbol or string 2362Each element may be just a symbol or string
2363or may be a list of two strings to be printed as if concatenated. 2363or may be a list of two strings to be printed as if concatenated.
@@ -2367,14 +2367,23 @@ alternative, the second serves as annotation.
2367The actual completion alternatives, as inserted, are given `mouse-face' 2367The actual completion alternatives, as inserted, are given `mouse-face'
2368properties of `highlight'. 2368properties of `highlight'.
2369At the end, this runs the normal hook `completion-setup-hook'. 2369At the end, this runs the normal hook `completion-setup-hook'.
2370It can find the completion buffer in `standard-output'. */) 2370It can find the completion buffer in `standard-output'.
2371 (completions) 2371The optional second arg COMMON-SUBSTRING is a string.
2372It is used to put faces, `completions-first-difference` and
2373`completions-common-part' on the completion bufffer. The
2374`completions-common-part' face is put on the common substring
2375specified by COMMON-SUBSTRING. If COMMON-SUBSTRING is nil,
2376the faces are not put.
2377Internally, COMMON-SUBSTRING is bound to `completion-common-substring'
2378during running `completion-setup-hook'. */)
2379 (completions, common_substring)
2372 Lisp_Object completions; 2380 Lisp_Object completions;
2381 Lisp_Object common_substring;
2373{ 2382{
2374 Lisp_Object tail, elt; 2383 Lisp_Object tail, elt;
2375 register int i; 2384 register int i;
2376 int column = 0; 2385 int column = 0;
2377 struct gcpro gcpro1, gcpro2; 2386 struct gcpro gcpro1, gcpro2, gcpro3;
2378 struct buffer *old = current_buffer; 2387 struct buffer *old = current_buffer;
2379 int first = 1; 2388 int first = 1;
2380 2389
@@ -2383,7 +2392,7 @@ It can find the completion buffer in `standard-output'. */)
2383 except for ELT. ELT can be pointing to a string 2392 except for ELT. ELT can be pointing to a string
2384 when terpri or Findent_to calls a change hook. */ 2393 when terpri or Findent_to calls a change hook. */
2385 elt = Qnil; 2394 elt = Qnil;
2386 GCPRO2 (completions, elt); 2395 GCPRO3 (completions, elt, common_substring);
2387 2396
2388 if (BUFFERP (Vstandard_output)) 2397 if (BUFFERP (Vstandard_output))
2389 set_buffer_internal (XBUFFER (Vstandard_output)); 2398 set_buffer_internal (XBUFFER (Vstandard_output));
@@ -2532,13 +2541,20 @@ It can find the completion buffer in `standard-output'. */)
2532 } 2541 }
2533 } 2542 }
2534 2543
2535 UNGCPRO;
2536
2537 if (BUFFERP (Vstandard_output)) 2544 if (BUFFERP (Vstandard_output))
2538 set_buffer_internal (old); 2545 set_buffer_internal (old);
2539 2546
2540 if (!NILP (Vrun_hooks)) 2547 if (!NILP (Vrun_hooks))
2541 call1 (Vrun_hooks, intern ("completion-setup-hook")); 2548 {
2549 int count1 = SPECPDL_INDEX ();
2550
2551 specbind (intern ("completion-common-substring"), common_substring);
2552 call1 (Vrun_hooks, intern ("completion-setup-hook"));
2553
2554 unbind_to (count1, Qnil);
2555 }
2556
2557 UNGCPRO;
2542 2558
2543 return Qnil; 2559 return Qnil;
2544} 2560}
diff --git a/src/search.c b/src/search.c
index aa7f6fda699..f60e6d0cfe2 100644
--- a/src/search.c
+++ b/src/search.c
@@ -1175,9 +1175,9 @@ search_buffer (string, pos, pos_byte, lim, lim_byte, n,
1175 unsigned char *patbuf; 1175 unsigned char *patbuf;
1176 int multibyte = !NILP (current_buffer->enable_multibyte_characters); 1176 int multibyte = !NILP (current_buffer->enable_multibyte_characters);
1177 unsigned char *base_pat = SDATA (string); 1177 unsigned char *base_pat = SDATA (string);
1178 /* Set to nozero if we find a non-ASCII char that need 1178 /* Set to positive if we find a non-ASCII char that need
1179 translation. */ 1179 translation. Otherwise set to zero later. */
1180 int charset_base = 0; 1180 int charset_base = -1;
1181 int boyer_moore_ok = 1; 1181 int boyer_moore_ok = 1;
1182 1182
1183 /* MULTIBYTE says whether the text to be searched is multibyte. 1183 /* MULTIBYTE says whether the text to be searched is multibyte.
@@ -1275,24 +1275,30 @@ search_buffer (string, pos, pos_byte, lim, lim_byte, n,
1275 always handle their translation. */ 1275 always handle their translation. */
1276 while (1) 1276 while (1)
1277 { 1277 {
1278 if (! ASCII_BYTE_P (inverse)) 1278 if (ASCII_BYTE_P (inverse))
1279 { 1279 {
1280 if (SINGLE_BYTE_CHAR_P (inverse)) 1280 if (charset_base > 0)
1281 {
1282 /* Boyer-moore search can't handle a
1283 translation of an eight-bit
1284 character. */
1285 boyer_moore_ok = 0;
1286 break;
1287 }
1288 else if (charset_base == 0)
1289 charset_base = inverse & ~CHAR_FIELD3_MASK;
1290 else if ((inverse & ~CHAR_FIELD3_MASK)
1291 != charset_base)
1292 { 1281 {
1293 boyer_moore_ok = 0; 1282 boyer_moore_ok = 0;
1294 break; 1283 break;
1295 } 1284 }
1285 charset_base = 0;
1286 }
1287 else if (SINGLE_BYTE_CHAR_P (inverse))
1288 {
1289 /* Boyer-moore search can't handle a
1290 translation of an eight-bit
1291 character. */
1292 boyer_moore_ok = 0;
1293 break;
1294 }
1295 else if (charset_base < 0)
1296 charset_base = inverse & ~CHAR_FIELD3_MASK;
1297 else if ((inverse & ~CHAR_FIELD3_MASK)
1298 != charset_base)
1299 {
1300 boyer_moore_ok = 0;
1301 break;
1296 } 1302 }
1297 if (c == inverse) 1303 if (c == inverse)
1298 break; 1304 break;
@@ -1300,6 +1306,8 @@ search_buffer (string, pos, pos_byte, lim, lim_byte, n,
1300 } 1306 }
1301 } 1307 }
1302 } 1308 }
1309 if (charset_base < 0)
1310 charset_base = 0;
1303 1311
1304 /* Store this character into the translated pattern. */ 1312 /* Store this character into the translated pattern. */
1305 bcopy (str, pat, charlen); 1313 bcopy (str, pat, charlen);
diff --git a/src/w32term.c b/src/w32term.c
index 5f268867e8b..14b5d0ffb79 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -3204,7 +3204,7 @@ construct_drag_n_drop (result, msg, f)
3204static MSG last_mouse_motion_event; 3204static MSG last_mouse_motion_event;
3205static Lisp_Object last_mouse_motion_frame; 3205static Lisp_Object last_mouse_motion_frame;
3206 3206
3207static void 3207static int
3208note_mouse_movement (frame, msg) 3208note_mouse_movement (frame, msg)
3209 FRAME_PTR frame; 3209 FRAME_PTR frame;
3210 MSG *msg; 3210 MSG *msg;
@@ -3221,13 +3221,14 @@ note_mouse_movement (frame, msg)
3221 frame->mouse_moved = 1; 3221 frame->mouse_moved = 1;
3222 last_mouse_scroll_bar = Qnil; 3222 last_mouse_scroll_bar = Qnil;
3223 note_mouse_highlight (frame, -1, -1); 3223 note_mouse_highlight (frame, -1, -1);
3224 return 1;
3224 } 3225 }
3225 3226
3226 /* Has the mouse moved off the glyph it was on at the last sighting? */ 3227 /* Has the mouse moved off the glyph it was on at the last sighting? */
3227 else if (mouse_x < last_mouse_glyph.left 3228 if (mouse_x < last_mouse_glyph.left
3228 || mouse_x >= last_mouse_glyph.right 3229 || mouse_x >= last_mouse_glyph.right
3229 || mouse_y < last_mouse_glyph.top 3230 || mouse_y < last_mouse_glyph.top
3230 || mouse_y >= last_mouse_glyph.bottom) 3231 || mouse_y >= last_mouse_glyph.bottom)
3231 { 3232 {
3232 frame->mouse_moved = 1; 3233 frame->mouse_moved = 1;
3233 last_mouse_scroll_bar = Qnil; 3234 last_mouse_scroll_bar = Qnil;
@@ -3237,7 +3238,10 @@ note_mouse_movement (frame, msg)
3237 to keep track of the mouse for help_echo and highlighting at 3238 to keep track of the mouse for help_echo and highlighting at
3238 other times. */ 3239 other times. */
3239 remember_mouse_glyph (frame, mouse_x, mouse_y, &last_mouse_glyph); 3240 remember_mouse_glyph (frame, mouse_x, mouse_y, &last_mouse_glyph);
3241 return 1;
3240 } 3242 }
3243
3244 return 0;
3241} 3245}
3242 3246
3243 3247
@@ -4314,6 +4318,7 @@ w32_read_socket (sd, expected, hold_quit)
4314 } 4318 }
4315 4319
4316 previous_help_echo_string = help_echo_string; 4320 previous_help_echo_string = help_echo_string;
4321 help_echo_string = Qnil;
4317 4322
4318 if (dpyinfo->grabbed && last_mouse_frame 4323 if (dpyinfo->grabbed && last_mouse_frame
4319 && FRAME_LIVE_P (last_mouse_frame)) 4324 && FRAME_LIVE_P (last_mouse_frame))
@@ -4352,7 +4357,8 @@ w32_read_socket (sd, expected, hold_quit)
4352 4357
4353 last_window=window; 4358 last_window=window;
4354 } 4359 }
4355 note_mouse_movement (f, &msg.msg); 4360 if (!note_mouse_movement (f, &msg.msg))
4361 help_echo_string = previous_help_echo_string;
4356 } 4362 }
4357 else 4363 else
4358 { 4364 {