aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiles Bader2005-01-29 00:06:24 +0000
committerMiles Bader2005-01-29 00:06:24 +0000
commit5f85994ad17fbe952504bfafb49fbef4ded186af (patch)
tree33522e4a7a8ddc7c7efa704bd6264f9722ad4ce8
parent87795686a9e8ea51ec492d01d7dce4698b14f3af (diff)
parentaba1948af5107ad44c467e4f97792af5ce75a7d7 (diff)
downloademacs-5f85994ad17fbe952504bfafb49fbef4ded186af.tar.gz
emacs-5f85994ad17fbe952504bfafb49fbef4ded186af.zip
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-7
Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-52 - miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-53 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-54 Update from CVS: lisp/cus-start.el (all): Add `undo-outer-limit'. * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-55 - miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-57 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-58 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-7 Merge from emacs--cvs-trunk--0 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-8 - miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-11 Update from CVS
-rw-r--r--admin/FOR-RELEASE7
-rw-r--r--lisp/ChangeLog64
-rw-r--r--lisp/cus-edit.el39
-rw-r--r--lisp/cus-start.el11
-rw-r--r--lisp/descr-text.el6
-rw-r--r--lisp/emacs-lisp/lisp-mode.el4
-rw-r--r--lisp/gnus/ChangeLog28
-rw-r--r--lisp/gnus/gnus-art.el19
-rw-r--r--lisp/gnus/message.el20
-rw-r--r--lisp/gnus/mml.el6
-rw-r--r--lisp/help-at-pt.el1
-rw-r--r--lisp/international/mule-cmds.el37
-rw-r--r--lisp/progmodes/gdb-ui.el4
-rw-r--r--lisp/progmodes/scheme.el48
-rw-r--r--lisp/speedbar.el12
-rw-r--r--lisp/textmodes/bibtex.el29
-rw-r--r--lisp/textmodes/ispell.el8
-rw-r--r--lisp/textmodes/reftex-global.el126
-rw-r--r--lisp/textmodes/reftex.el4
-rw-r--r--man/ChangeLog13
-rw-r--r--man/cmdargs.texi9
-rw-r--r--man/gnus.texi103
-rw-r--r--man/reftex.texi22
-rw-r--r--src/ChangeLog164
-rw-r--r--src/dispextern.h2
-rw-r--r--src/keymap.c6
-rw-r--r--src/macterm.c25
-rw-r--r--src/w32term.c30
-rw-r--r--src/xdisp.c85
-rw-r--r--src/xterm.c67
30 files changed, 648 insertions, 351 deletions
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index d6d9060dbf1..22d36fe42fd 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -4,9 +4,6 @@ Tasks needed before the next release.
4 4
5** Face remapping. 5** Face remapping.
6 6
7** Make Rmail find the best version of movemail.
8To be done by Sergey Poznyakoff <gray@Mirddin.farlep.net>.
9
10** Make VC-over-Tramp work where possible, or at least fail 7** Make VC-over-Tramp work where possible, or at least fail
11gracefully if something isn't supported over Tramp. 8gracefully if something isn't supported over Tramp.
12To be done by Andre Spiegel <spiegel@gnu.org>. 9To be done by Andre Spiegel <spiegel@gnu.org>.
@@ -14,6 +11,8 @@ To be done by Andre Spiegel <spiegel@gnu.org>.
14** define-minor-mode should not put :require into defcustom. 11** define-minor-mode should not put :require into defcustom.
15See msg from rms to emacs-devel on 21 Dec. 12See msg from rms to emacs-devel on 21 Dec.
16 13
14** Update Speedbar.
15
17* FATAL ERRORS 16* FATAL ERRORS
18 17
19** Investigate face cache related crash. 18** Investigate face cache related crash.
@@ -184,7 +183,7 @@ man/anti.texi
184man/basic.texi "Luc Teirlinck" 183man/basic.texi "Luc Teirlinck"
185man/buffers.texi "Luc Teirlinck" 184man/buffers.texi "Luc Teirlinck"
186man/building.texi "Ted Zlatanov" <tzz@lifelogs.com> 185man/building.texi "Ted Zlatanov" <tzz@lifelogs.com>
187man/calendar.texi 186man/calendar.texi Joakim Verona <joakim@verona.se>
188man/cmdargs.texi 187man/cmdargs.texi
189man/commands.texi "Luc Teirlinck" 188man/commands.texi "Luc Teirlinck"
190man/custom.texi 189man/custom.texi
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index c70fd38ecd7..6a70d138b0d 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,65 @@
12005-01-29 Nick Roberts <nickrob@snap.net.nz>
2
3 * progmodes/gdb-ui.el (gdb-info-breakpoints-custom)
4 (gdb-goto-breakpoint): Make breakpoint handling work on template
5 functions in C++. Reported by Martin Reed <mjreed@essex.ac.uk>
6
72005-01-28 Eli Zaretskii <eliz@gnu.org>
8
9 * descr-text.el: Add more keywords.
10
112005-01-27 Stefan Monnier <monnier@iro.umontreal.ca>
12
13 * speedbar.el: Avoid unnecessary use of locate-library.
14
15 * international/mule-cmds.el (standard-display-european-internal):
16 Don't fiddle with latin-1 non-break space any more since it's now
17 special cased in the C code.
18 Don't "do&undo" setting for 160 (especially, don't undo incorrectly).
19
202005-01-26 Luc Teirlinck <teirllm@auburn.edu>
21
22 * cus-start.el (all): Add `undo-outer-limit'.
23
242005-01-25 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
25
26 * textmodes/bibtex.el (bibtex-format-entry):
27 Use `bibtex-empty-field-re' only on the text of fields, not on entire
28 field lines.
29 (bibtex-autofill-entry): Use `bibtex-empty-field-re' on a string,
30 not on part of a buffer.
31
322005-01-25 Lute Kamstra <lute@gnu.org>
33
34 * textmodes/bibtex.el (bibtex-empty-field-re): Don't match
35 nonempty field text strings like "{letters\\macro{}more letters}".
36 Clarify docstring.
37 (bibtex-sort-entry-class, bibtex-autokey-titleword-ignore)
38 (bibtex-entry-offset, bibtex-parse-association)
39 (bibtex-parse-field-name): Fix typos in docstrings.
40 (bibtex-field-list, bibtex-find-crossref): Fix typos in error messages.
41
422005-01-24 Carsten Dominik <dominik@science.uva.nl>
43
44 * textmodes/reftex-global.el (reftex-isearch-push-state-function)
45 (reftex-isearch-pop-state-function, reftex-isearch-isearch-search)
46 (reftex-isearch-switch-to-next-file, reftex-isearch-turn-off)
47 (reftex-isearch-turn-on, reftex-isearch-minor-mode): New functions.
48
49 * textmodes/reftex.el (reftex-mode-menu): Add entry for reftex
50 isearch minor mode.
51
522005-01-24 Luc Teirlinck <teirllm@auburn.edu>
53
54 * help-at-pt.el (help-at-pt-display-when-idle): Add autoload cookie.
55
562005-01-24 Lute Kamstra <lute@gnu.org>
57
58 * textmodes/ispell.el (ispell-dictionary-alist-4): Rewrite the
59 CASECHARS and NOT-CASECHARS regular expressions of the
60 "nederlands" and "nederlands8" dictionaries to prevent a "Range
61 striding over charsets" error.
62
12005-01-24 Jay Belanger <belanger@truman.edu> 632005-01-24 Jay Belanger <belanger@truman.edu>
2 64
3 * calc/calc-store.el (calc-declare-variable): Use calc-var-name to 65 * calc/calc-store.el (calc-declare-variable): Use calc-var-name to
@@ -76,7 +138,7 @@
76 138
772005-01-20 Steven Tamm <steventamm@mac.com> 1392005-01-20 Steven Tamm <steventamm@mac.com>
78 140
79 * term/mac-win.el (process-connection-type): Removed. 141 * term/mac-win.el (process-connection-type): Remove.
80 Controlled now by s/darwin.h:PTY_ITERATION. 142 Controlled now by s/darwin.h:PTY_ITERATION.
81 143
822005-01-20 Stefan Monnier <monnier@iro.umontreal.ca> 1442005-01-20 Stefan Monnier <monnier@iro.umontreal.ca>
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 8a60163181a..989a9f16840 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -1,6 +1,7 @@
1;;; cus-edit.el --- tools for customizing Emacs and Lisp packages 1;;; cus-edit.el --- tools for customizing Emacs and Lisp packages
2;; 2;;
3;; Copyright (C) 1996,97,1999,2000,01,02,03,2004 Free Software Foundation, Inc. 3;; Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005
4;; Free Software Foundation, Inc.
4;; 5;;
5;; Author: Per Abrahamsen <abraham@dina.kvl.dk> 6;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
6;; Maintainer: FSF 7;; Maintainer: FSF
@@ -898,8 +899,6 @@ then prompt for the MODE to customize."
898 (let ( 899 (let (
899 ;; Copied from `custom-buffer-create-other-window'. 900 ;; Copied from `custom-buffer-create-other-window'.
900 (pop-up-windows t) 901 (pop-up-windows t)
901 (special-display-buffer-names nil)
902 (special-display-regexps nil)
903 (same-window-buffer-names nil) 902 (same-window-buffer-names nil)
904 (same-window-regexps nil)) 903 (same-window-regexps nil))
905 (pop-to-buffer name)) 904 (pop-to-buffer name))
@@ -1246,8 +1245,6 @@ SYMBOL is a customization option, and WIDGET is a widget for editing
1246that option." 1245that option."
1247 (unless name (setq name "*Customization*")) 1246 (unless name (setq name "*Customization*"))
1248 (let ((pop-up-windows t) 1247 (let ((pop-up-windows t)
1249 (special-display-buffer-names nil)
1250 (special-display-regexps nil)
1251 (same-window-buffer-names nil) 1248 (same-window-buffer-names nil)
1252 (same-window-regexps nil)) 1249 (same-window-regexps nil))
1253 (pop-to-buffer (custom-get-fresh-buffer name)) 1250 (pop-to-buffer (custom-get-fresh-buffer name))
@@ -4072,23 +4069,23 @@ The format is suitable for use with `easy-menu-define'."
4072 4069
4073;;; The Custom Mode. 4070;;; The Custom Mode.
4074 4071
4075(defvar custom-mode-map nil 4072(defvar custom-mode-map
4076 "Keymap for `custom-mode'.")
4077
4078(unless custom-mode-map
4079 ;; This keymap should be dense, but a dense keymap would prevent inheriting 4073 ;; This keymap should be dense, but a dense keymap would prevent inheriting
4080 ;; "\r" bindings from the parent map. 4074 ;; "\r" bindings from the parent map.
4081 (setq custom-mode-map (make-sparse-keymap)) 4075 ;; Actually, this misfeature of dense keymaps was fixed on 2001-11-26.
4082 (set-keymap-parent custom-mode-map widget-keymap) 4076 (let ((map (make-keymap)))
4083 (suppress-keymap custom-mode-map) 4077 (set-keymap-parent map widget-keymap)
4084 (define-key custom-mode-map " " 'scroll-up) 4078 (suppress-keymap map)
4085 (define-key custom-mode-map "\177" 'scroll-down) 4079 (define-key map " " 'scroll-up)
4086 (define-key custom-mode-map "\C-x\C-s" 'Custom-save) 4080 (define-key map "\177" 'scroll-down)
4087 (define-key custom-mode-map "q" 'Custom-buffer-done) 4081 (define-key map "\C-x\C-s" 'Custom-save)
4088 (define-key custom-mode-map "u" 'Custom-goto-parent) 4082 (define-key map "q" 'Custom-buffer-done)
4089 (define-key custom-mode-map "n" 'widget-forward) 4083 (define-key map "u" 'Custom-goto-parent)
4090 (define-key custom-mode-map "p" 'widget-backward) 4084 (define-key map "n" 'widget-forward)
4091 (define-key custom-mode-map [mouse-1] 'Custom-move-and-invoke)) 4085 (define-key map "p" 'widget-backward)
4086 (define-key map [mouse-1] 'Custom-move-and-invoke)
4087 map)
4088 "Keymap for `custom-mode'.")
4092 4089
4093(defun Custom-move-and-invoke (event) 4090(defun Custom-move-and-invoke (event)
4094 "Move to where you click, and if it is an active field, invoke it." 4091 "Move to where you click, and if it is an active field, invoke it."
@@ -4187,5 +4184,5 @@ if that value is non-nil."
4187 4184
4188(provide 'cus-edit) 4185(provide 'cus-edit)
4189 4186
4190;;; arch-tag: 64533aa4-1b1a-48c3-8812-f9dc718e8a6f 4187;; arch-tag: 64533aa4-1b1a-48c3-8812-f9dc718e8a6f
4191;;; cus-edit.el ends here 4188;;; cus-edit.el ends here
diff --git a/lisp/cus-start.el b/lisp/cus-start.el
index 607c1cfd011..a7df119e497 100644
--- a/lisp/cus-start.el
+++ b/lisp/cus-start.el
@@ -41,6 +41,17 @@
41 (gc-cons-threshold alloc integer) 41 (gc-cons-threshold alloc integer)
42 (undo-limit undo integer) 42 (undo-limit undo integer)
43 (undo-strong-limit undo integer) 43 (undo-strong-limit undo integer)
44 (undo-outer-limit undo
45 (choice integer
46 (const :tag "No limit"
47 :format "%t\n%d"
48 :doc
49 "With this choice, \
50the undo info for the current command never gets discarded.
51This should only be chosen under exceptional circumstances,
52since it could result in memory overflow and make Emacs crash."
53 nil))
54 "21.4")
44 (garbage-collection-messages alloc boolean) 55 (garbage-collection-messages alloc boolean)
45 ;; buffer.c 56 ;; buffer.c
46 (mode-line-format modeline sexp) ;Hard to do right. 57 (mode-line-format modeline sexp) ;Hard to do right.
diff --git a/lisp/descr-text.el b/lisp/descr-text.el
index 4b41c2501e5..d7079bcf44c 100644
--- a/lisp/descr-text.el
+++ b/lisp/descr-text.el
@@ -1,10 +1,10 @@
1;;; descr-text.el --- describe text mode 1;;; descr-text.el --- describe text mode
2 2
3;; Copyright (c) 1994, 1995, 1996, 2001, 2002, 2003, 2004 3;; Copyright (c) 1994, 1995, 1996, 2001, 2002, 2003, 2004, 2005
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Boris Goldowsky <boris@gnu.org> 6;; Author: Boris Goldowsky <boris@gnu.org>
7;; Keywords: faces 7;; Keywords: faces, i18n, Unicode, multilingual
8 8
9;; This file is part of GNU Emacs. 9;; This file is part of GNU Emacs.
10 10
@@ -217,7 +217,7 @@ otherwise."
217(defcustom describe-char-unicodedata-file nil 217(defcustom describe-char-unicodedata-file nil
218 "Location of Unicode data file. 218 "Location of Unicode data file.
219This is the UnicodeData.txt file from the Unicode consortium, used for 219This is the UnicodeData.txt file from the Unicode consortium, used for
220diagnostics. If it is non-nil `describe-char-after' will print data 220diagnostics. If it is non-nil `describe-char' will print data
221looked up from it. This facility is mostly of use to people doing 221looked up from it. This facility is mostly of use to people doing
222multilingual development. 222multilingual development.
223 223
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index f181f3683f0..86c3ac1bab4 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -1,6 +1,6 @@
1;;; lisp-mode.el --- Lisp mode, and its idiosyncratic commands 1;;; lisp-mode.el --- Lisp mode, and its idiosyncratic commands
2 2
3;; Copyright (C) 1985, 1986, 1999, 2000, 2001, 2003, 2004 3;; Copyright (C) 1985, 1986, 1999, 2000, 2001, 2003, 2004, 2005
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Maintainer: FSF 6;; Maintainer: FSF
@@ -602,7 +602,7 @@ Reinitialize the face according to the `defface' specification."
602 (boundp (cadr form))) 602 (boundp (cadr form)))
603 ;; Force variable to be re-set. 603 ;; Force variable to be re-set.
604 `(progn (defvar ,(nth 1 form) nil ,@(nthcdr 3 form)) 604 `(progn (defvar ,(nth 1 form) nil ,@(nthcdr 3 form))
605 (setq ,(nth 1 form) ,(nth 2 form)))) 605 (setq-default ,(nth 1 form) ,(nth 2 form))))
606 ;; `defcustom' is now macroexpanded to 606 ;; `defcustom' is now macroexpanded to
607 ;; `custom-declare-variable' with a quoted value arg. 607 ;; `custom-declare-variable' with a quoted value arg.
608 ((and (eq (car form) 'custom-declare-variable) 608 ((and (eq (car form) 'custom-declare-variable)
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 77a600427e2..2fbab6bea54 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,24 @@
12005-01-28 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * message.el (message-beginning-of-line): Change the behavior when
4 invoked between BOL and : so that it first moves backward.
5
62005-01-28 Katsumi Yamaoka <yamaoka@jpl.org>
7
8 * gnus-art.el (gnus-article-setup-buffer): Kill and re-create the
9 article buffer when editing of the article is discarded.
10 (gnus-article-prepare): Revert.
11
122005-01-28 Katsumi Yamaoka <yamaoka@jpl.org>
13
14 * gnus-art.el (gnus-article-prepare): Remove
15 message-strip-forbidden-properties from the local hook.
16
172005-01-24 Katsumi Yamaoka <yamaoka@jpl.org>
18
19 * mml.el (mml-generate-mime-1): Convert string into unibyte when
20 inserting " *mml*" buffer's contents into a unibyte temp buffer.
21
12005-01-20 Katsumi Yamaoka <yamaoka@jpl.org> 222005-01-20 Katsumi Yamaoka <yamaoka@jpl.org>
2 23
3 * mm-decode.el (mm-insert-part): Switch the multibyteness of data 24 * mm-decode.el (mm-insert-part): Switch the multibyteness of data
@@ -14,8 +35,7 @@
14 35
15 * mm-bodies.el (mm-body-encoding): Don't permit 7-bit to be used 36 * mm-bodies.el (mm-body-encoding): Don't permit 7-bit to be used
16 when mm-use-ultra-safe-encoding is enabled (e.g., for PGP/MIME) 37 when mm-use-ultra-safe-encoding is enabled (e.g., for PGP/MIME)
17 and we have trailing white space. Reported by Werner Koch 38 and we have trailing white space. Reported by Werner Koch <wk@gnupg.org>.
18 <wk@gnupg.org>.
19 39
202004-12-17 Kim F. Storm <storm@cua.dk> 402004-12-17 Kim F. Storm <storm@cua.dk>
21 41
@@ -58,8 +78,8 @@
58 78
592004-12-13 Katsumi Yamaoka <yamaoka@jpl.org> 792004-12-13 Katsumi Yamaoka <yamaoka@jpl.org>
60 80
61 * gnus-group.el (gnus-group-make-rss-group): Use 81 * gnus-group.el (gnus-group-make-rss-group):
62 gnus-group-make-group instead of gnus-group-unsubscribe-group. 82 Use gnus-group-make-group instead of gnus-group-unsubscribe-group.
63 83
64 * gnus-start.el (gnus-setup-news): Honor user's setting to 84 * gnus-start.el (gnus-setup-news): Honor user's setting to
65 gnus-message-archive-method. Suggested by Lute Kamstra 85 gnus-message-archive-method. Suggested by Lute Kamstra
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 7450fee69ee..8a81176a5f6 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -1,5 +1,5 @@
1;;; gnus-art.el --- article mode commands for Gnus 1;;; gnus-art.el --- article mode commands for Gnus
2;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 2;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
3;; Free Software Foundation, Inc. 3;; Free Software Foundation, Inc.
4 4
5;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> 5;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -3743,14 +3743,19 @@ commands:
3743 (mm-enable-multibyte) 3743 (mm-enable-multibyte)
3744 (setq major-mode 'gnus-original-article-mode) 3744 (setq major-mode 'gnus-original-article-mode)
3745 (make-local-variable 'gnus-original-article)) 3745 (make-local-variable 'gnus-original-article))
3746 (if (get-buffer name) 3746 (if (and (get-buffer name)
3747 (with-current-buffer name
3748 (if gnus-article-edit-mode
3749 (if (y-or-n-p "Article mode edit in progress; discard? ")
3750 (progn
3751 (set-buffer-modified-p nil)
3752 (gnus-kill-buffer name)
3753 (message "")
3754 nil)
3755 (error "Action aborted"))
3756 t)))
3747 (save-excursion 3757 (save-excursion
3748 (set-buffer name) 3758 (set-buffer name)
3749 (when (and gnus-article-edit-mode
3750 (buffer-modified-p)
3751 (not
3752 (y-or-n-p "Article mode edit in progress; discard? ")))
3753 (error "Action aborted"))
3754 (set (make-local-variable 'gnus-article-edit-mode) nil) 3759 (set (make-local-variable 'gnus-article-edit-mode) nil)
3755 (when gnus-article-mime-handles 3760 (when gnus-article-mime-handles
3756 (mm-destroy-parts gnus-article-mime-handles) 3761 (mm-destroy-parts gnus-article-mime-handles)
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 113547741c0..d88fd54b144 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -1,5 +1,5 @@
1;;; message.el --- composing mail and news messages 1;;; message.el --- composing mail and news messages
2;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 2;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
3;; Free Software Foundation, Inc. 3;; Free Software Foundation, Inc.
4 4
5;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> 5;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -800,7 +800,7 @@ variable isn't used."
800;; is nil. See: http://article.gmane.org/gmane.emacs.gnus.general/51138 800;; is nil. See: http://article.gmane.org/gmane.emacs.gnus.general/51138
801(defcustom message-generate-headers-first '(references) 801(defcustom message-generate-headers-first '(references)
802 "Which headers should be generated before starting to compose a message. 802 "Which headers should be generated before starting to compose a message.
803If `t', generate all required headers. This can also be a list of headers to 803If t, generate all required headers. This can also be a list of headers to
804generate. The variables `message-required-news-headers' and 804generate. The variables `message-required-news-headers' and
805`message-required-mail-headers' specify which headers to generate. 805`message-required-mail-headers' specify which headers to generate.
806 806
@@ -5295,10 +5295,10 @@ outside the message header or if the option `message-beginning-of-line'
5295is nil. 5295is nil.
5296 5296
5297If point is in the message header and on a (non-continued) header 5297If point is in the message header and on a (non-continued) header
5298line, move point to the beginning of the header value. If point 5298line, move point to the beginning of the header value or the beginning of line,
5299is already there, move point to beginning of line. Therefore, 5299whichever is closer. If point is already at beginning of line, move point to
5300repeated calls will toggle point between beginning of field and 5300beginning of header value. Therefore, repeated calls will toggle point
5301beginning of line." 5301between beginning of field and beginning of line."
5302 (interactive "p") 5302 (interactive "p")
5303 (let ((zrs 'zmacs-region-stays)) 5303 (let ((zrs 'zmacs-region-stays))
5304 (when (and (interactive-p) (boundp zrs)) 5304 (when (and (interactive-p) (boundp zrs))
@@ -5309,9 +5309,9 @@ beginning of line."
5309 (bol (progn (beginning-of-line n) (point))) 5309 (bol (progn (beginning-of-line n) (point)))
5310 (eol (gnus-point-at-eol)) 5310 (eol (gnus-point-at-eol))
5311 (eoh (re-search-forward ": *" eol t))) 5311 (eoh (re-search-forward ": *" eol t)))
5312 (if (or (not eoh) (equal here eoh)) 5312 (goto-char
5313 (goto-char bol) 5313 (if (and eoh (or (< eoh here) (= bol here)))
5314 (goto-char eoh))) 5314 eoh bol)))
5315 (beginning-of-line n))) 5315 (beginning-of-line n)))
5316 5316
5317(defun message-buffer-name (type &optional to group) 5317(defun message-buffer-name (type &optional to group)
@@ -6880,5 +6880,5 @@ regexp VARSTR."
6880;; coding: iso-8859-1 6880;; coding: iso-8859-1
6881;; End: 6881;; End:
6882 6882
6883;;; arch-tag: 94b32cac-4504-4b6c-8181-030ebf380ee0 6883;; arch-tag: 94b32cac-4504-4b6c-8181-030ebf380ee0
6884;;; message.el ends here 6884;;; message.el ends here
diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el
index d88f6318159..c4c4ccdbd81 100644
--- a/lisp/gnus/mml.el
+++ b/lisp/gnus/mml.el
@@ -1,5 +1,5 @@
1;;; mml.el --- A package for parsing and validating MML documents 1;;; mml.el --- A package for parsing and validating MML documents
2;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 2;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
3;; Free Software Foundation, Inc. 3;; Free Software Foundation, Inc.
4 4
5;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> 5;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -471,7 +471,9 @@ If MML is non-nil, return the buffer up till the correspondent mml tag."
471 (mm-with-unibyte-buffer 471 (mm-with-unibyte-buffer
472 (cond 472 (cond
473 ((cdr (assq 'buffer cont)) 473 ((cdr (assq 'buffer cont))
474 (insert-buffer-substring (cdr (assq 'buffer cont)))) 474 (insert (with-current-buffer (cdr (assq 'buffer cont))
475 (mm-with-unibyte-current-buffer
476 (buffer-string)))))
475 ((and (setq filename (cdr (assq 'filename cont))) 477 ((and (setq filename (cdr (assq 'filename cont)))
476 (not (equal (cdr (assq 'nofile cont)) "yes"))) 478 (not (equal (cdr (assq 'nofile cont)) "yes")))
477 (let ((coding-system-for-read mm-binary-coding-system)) 479 (let ((coding-system-for-read mm-binary-coding-system))
diff --git a/lisp/help-at-pt.el b/lisp/help-at-pt.el
index 2266c8d5a2a..53af1bdd579 100644
--- a/lisp/help-at-pt.el
+++ b/lisp/help-at-pt.el
@@ -146,6 +146,7 @@ This is done by setting a timer, if none is currently active."
146 (run-with-idle-timer 146 (run-with-idle-timer
147 help-at-pt-timer-delay t #'help-at-pt-maybe-display)))) 147 help-at-pt-timer-delay t #'help-at-pt-maybe-display))))
148 148
149;;;###autoload
149(defcustom help-at-pt-display-when-idle 'never 150(defcustom help-at-pt-display-when-idle 'never
150 "*Automatically show local help on point-over. 151 "*Automatically show local help on point-over.
151If the value is t, the string obtained from any `kbd-help' or 152If the value is t, the string obtained from any `kbd-help' or
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index 3de363a596f..573481d71d0 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -1,6 +1,6 @@
1;;; mule-cmds.el --- commands for mulitilingual environment -*-coding: iso-2022-7bit -*- 1;;; mule-cmds.el --- commands for mulitilingual environment -*-coding: iso-2022-7bit -*-
2 2
3;; Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. 3;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
4;; Copyright (C) 1995, 2003 Electrotechnical Laboratory, JAPAN. 4;; Copyright (C) 1995, 2003 Electrotechnical Laboratory, JAPAN.
5;; Licensed to the Free Software Foundation. 5;; Licensed to the Free Software Foundation.
6;; Copyright (C) 2003 6;; Copyright (C) 2003
@@ -1839,12 +1839,14 @@ Setting this variable directly does not take effect. See
1839 ;; different there. 1839 ;; different there.
1840 (or (and (eq window-system 'pc) (not default-enable-multibyte-characters)) 1840 (or (and (eq window-system 'pc) (not default-enable-multibyte-characters))
1841 (progn 1841 (progn
1842 ;; Make non-line-break space display as a plain space. 1842 ;; Most X fonts used to do the wrong thing for latin-1 code 160.
1843 ;; Most X fonts do the wrong thing for code 160. 1843 (unless (and (eq window-system 'x)
1844 (aset standard-display-table 160 [32]) 1844 ;; XFree86 4 has fixed the fonts.
1845 ;; With luck, non-Latin-1 fonts are more recent and so don't 1845 (string= "The XFree86 Project, Inc" (x-server-vendor))
1846 ;; have this bug. 1846 (> (aref (number-to-string (nth 2 (x-server-version))) 0)
1847 (aset standard-display-table (make-char 'latin-iso8859-1 160) [32]) 1847 ?3))
1848 ;; Make non-line-break space display as a plain space.
1849 (aset standard-display-table 160 [32]))
1848 ;; Most Windows programs send out apostrophes as \222. Most X fonts 1850 ;; Most Windows programs send out apostrophes as \222. Most X fonts
1849 ;; don't contain a character at that position. Map it to the ASCII 1851 ;; don't contain a character at that position. Map it to the ASCII
1850 ;; apostrophe. [This is actually RIGHT SINGLE QUOTATION MARK, 1852 ;; apostrophe. [This is actually RIGHT SINGLE QUOTATION MARK,
@@ -1852,23 +1854,7 @@ Setting this variable directly does not take effect. See
1852 ;; fonts probably have the appropriate glyph at this position, 1854 ;; fonts probably have the appropriate glyph at this position,
1853 ;; so they could use standard-display-8bit. It's better to use a 1855 ;; so they could use standard-display-8bit. It's better to use a
1854 ;; proper windows-1252 coding system. --fx] 1856 ;; proper windows-1252 coding system. --fx]
1855 (aset standard-display-table 146 [39]) 1857 (aset standard-display-table 146 [39]))))
1856 ;; XFree86 4 has changed most of the fonts from their designed
1857 ;; versions such that `' no longer appears as balanced quotes.
1858 ;; Assume it has iso10646 fonts installed, so we can display
1859 ;; balanced quotes.
1860 (when (and (eq window-system 'x)
1861 (string= "The XFree86 Project, Inc" (x-server-vendor))
1862 (> (aref (number-to-string (nth 2 (x-server-version))) 0)
1863 ?3))
1864 ;; We suppress these setting for the moment because the
1865 ;; above assumption is wrong.
1866 ;; (aset standard-display-table ?' [?,F"(B])
1867 ;; (aset standard-display-table ?` [?,F!(B])
1868 ;; The fonts don't have the relevant bug.
1869 (aset standard-display-table 160 nil)
1870 (aset standard-display-table (make-char 'latin-iso8859-1 160)
1871 nil)))))
1872 1858
1873(defun set-language-environment-coding-systems (language-name 1859(defun set-language-environment-coding-systems (language-name
1874 &optional eol-type) 1860 &optional eol-type)
@@ -1924,8 +1910,7 @@ of `buffer-file-coding-system' set by this function."
1924 (setq language-name (symbol-name language-name))) 1910 (setq language-name (symbol-name language-name)))
1925 (dolist (feature (get-language-info language-name 'features)) 1911 (dolist (feature (get-language-info language-name 'features))
1926 (require feature)) 1912 (require feature))
1927 (let ((doc (get-language-info language-name 'documentation)) 1913 (let ((doc (get-language-info language-name 'documentation)))
1928 pos)
1929 (help-setup-xref (list #'describe-language-environment language-name) 1914 (help-setup-xref (list #'describe-language-environment language-name)
1930 (interactive-p)) 1915 (interactive-p))
1931 (with-output-to-temp-buffer (help-buffer) 1916 (with-output-to-temp-buffer (help-buffer)
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index 1827589387e..a89f4b1694f 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -1143,7 +1143,7 @@ static char *magick[] = {
1143 (setq bptno (match-string 1)) 1143 (setq bptno (match-string 1))
1144 (setq flag (char-after (match-beginning 2))) 1144 (setq flag (char-after (match-beginning 2)))
1145 (beginning-of-line) 1145 (beginning-of-line)
1146 (if (re-search-forward "in\\s-+\\S-+\\s-+at\\s-+" nil t) 1146 (if (re-search-forward "in.*at\\s-+" nil t)
1147 (progn 1147 (progn
1148 (looking-at "\\(\\S-+\\):\\([0-9]+\\)") 1148 (looking-at "\\(\\S-+\\):\\([0-9]+\\)")
1149 (let ((line (match-string 2)) (buffer-read-only nil) 1149 (let ((line (match-string 2)) (buffer-read-only nil)
@@ -1298,7 +1298,7 @@ static char *magick[] = {
1298 (save-excursion 1298 (save-excursion
1299 (beginning-of-line 1) 1299 (beginning-of-line 1)
1300 (if (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)) 1300 (if (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
1301 (looking-at ".*in\\s-+\\S-+\\s-+at\\s-+\\(\\S-*\\):\\([0-9]+\\)") 1301 (looking-at ".*in.*at\\s-+\\(\\S-*\\):\\([0-9]+\\)")
1302 (looking-at 1302 (looking-at
1303 "[0-9]+\\s-*\\S-*\\s-*\\S-*\\s-*.\\s-*\\S-*\\s-*\\(\\S-*\\):\\([0-9]+\\)")) 1303 "[0-9]+\\s-*\\S-*\\s-*\\S-*\\s-*.\\s-*\\S-*\\s-*\\(\\S-*\\):\\([0-9]+\\)"))
1304 (let ((line (match-string 2)) 1304 (let ((line (match-string 2))
diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el
index 13dd790b6a0..bf0f18d5bba 100644
--- a/lisp/progmodes/scheme.el
+++ b/lisp/progmodes/scheme.el
@@ -1,6 +1,7 @@
1;;; scheme.el --- Scheme (and DSSSL) editing mode 1;;; scheme.el --- Scheme (and DSSSL) editing mode
2 2
3;; Copyright (C) 1986, 87, 88, 97, 1998 Free Software Foundation, Inc. 3;; Copyright (C) 1986, 1987, 1988, 1997, 1998, 2005
4;; Free Software Foundation, Inc.
4 5
5;; Author: Bill Rozas <jinx@martigny.ai.mit.edu> 6;; Author: Bill Rozas <jinx@martigny.ai.mit.edu>
6;; Adapted-by: Dave Love <d.love@dl.ac.uk> 7;; Adapted-by: Dave Love <d.love@dl.ac.uk>
@@ -144,6 +145,7 @@
144 (setq outline-regexp ";;; \\|(....") 145 (setq outline-regexp ";;; \\|(....")
145 (make-local-variable 'comment-start) 146 (make-local-variable 'comment-start)
146 (setq comment-start ";") 147 (setq comment-start ";")
148 (set (make-local-variable 'comment-add) 1)
147 (make-local-variable 'comment-start-skip) 149 (make-local-variable 'comment-start-skip)
148 ;; Look within the line for a ; following an even number of backslashes 150 ;; Look within the line for a ; following an even number of backslashes
149 ;; after either a non-backslash or the line beginning. 151 ;; after either a non-backslash or the line beginning.
@@ -171,17 +173,11 @@
171 173
172(defvar scheme-mode-line-process "") 174(defvar scheme-mode-line-process "")
173 175
174(defvar scheme-mode-map nil 176(defvar scheme-mode-map
175 "Keymap for Scheme mode. 177 (let ((smap (make-sparse-keymap))
176All commands in `lisp-mode-shared-map' are inherited by this map.") 178 (map (make-sparse-keymap "Scheme")))
177 179 (set-keymap-parent smap lisp-mode-shared-map)
178(unless scheme-mode-map 180 (define-key smap [menu-bar scheme] (cons "Scheme" map))
179 (let ((map (make-sparse-keymap "Scheme")))
180 (setq scheme-mode-map (make-sparse-keymap))
181 (set-keymap-parent scheme-mode-map lisp-mode-shared-map)
182 (define-key scheme-mode-map [menu-bar] (make-sparse-keymap))
183 (define-key scheme-mode-map [menu-bar scheme]
184 (cons "Scheme" map))
185 (define-key map [run-scheme] '("Run Inferior Scheme" . run-scheme)) 181 (define-key map [run-scheme] '("Run Inferior Scheme" . run-scheme))
186 (define-key map [uncomment-region] 182 (define-key map [uncomment-region]
187 '("Uncomment Out Region" . (lambda (beg end) 183 '("Uncomment Out Region" . (lambda (beg end)
@@ -192,7 +188,10 @@ All commands in `lisp-mode-shared-map' are inherited by this map.")
192 (define-key map [indent-line] '("Indent Line" . lisp-indent-line)) 188 (define-key map [indent-line] '("Indent Line" . lisp-indent-line))
193 (put 'comment-region 'menu-enable 'mark-active) 189 (put 'comment-region 'menu-enable 'mark-active)
194 (put 'uncomment-region 'menu-enable 'mark-active) 190 (put 'uncomment-region 'menu-enable 'mark-active)
195 (put 'indent-region 'menu-enable 'mark-active))) 191 (put 'indent-region 'menu-enable 'mark-active)
192 smap)
193 "Keymap for Scheme mode.
194All commands in `lisp-mode-shared-map' are inherited by this map.")
196 195
197;; Used by cmuscheme 196;; Used by cmuscheme
198(defun scheme-mode-commands (map) 197(defun scheme-mode-commands (map)
@@ -222,14 +221,11 @@ Entry to this mode calls the value of `scheme-mode-hook'
222if that value is non-nil." 221if that value is non-nil."
223 (interactive) 222 (interactive)
224 (kill-all-local-variables) 223 (kill-all-local-variables)
225 (scheme-mode-initialize)
226 (scheme-mode-variables)
227 (run-hooks 'scheme-mode-hook))
228
229(defun scheme-mode-initialize ()
230 (use-local-map scheme-mode-map) 224 (use-local-map scheme-mode-map)
231 (setq major-mode 'scheme-mode) 225 (setq major-mode 'scheme-mode)
232 (setq mode-name "Scheme")) 226 (setq mode-name "Scheme")
227 (scheme-mode-variables)
228 (run-mode-hooks 'scheme-mode-hook))
233 229
234(defgroup scheme nil 230(defgroup scheme nil
235 "Editing Scheme code" 231 "Editing Scheme code"
@@ -346,7 +342,7 @@ See `run-hooks'."
346 "Default expressions to highlight in Scheme modes.") 342 "Default expressions to highlight in Scheme modes.")
347 343
348;;;###autoload 344;;;###autoload
349(defun dsssl-mode () 345(define-derived-mode dsssl-mode scheme-mode "DSSSL"
350 "Major mode for editing DSSSL code. 346 "Major mode for editing DSSSL code.
351Editing commands are similar to those of `lisp-mode'. 347Editing commands are similar to those of `lisp-mode'.
352 348
@@ -357,20 +353,16 @@ Blank lines separate paragraphs. Semicolons start comments.
357Entering this mode runs the hooks `scheme-mode-hook' and then 353Entering this mode runs the hooks `scheme-mode-hook' and then
358`dsssl-mode-hook' and inserts the value of `dsssl-sgml-declaration' if 354`dsssl-mode-hook' and inserts the value of `dsssl-sgml-declaration' if
359that variable's value is a string." 355that variable's value is a string."
360 (interactive)
361 (kill-all-local-variables)
362 (use-local-map scheme-mode-map)
363 (scheme-mode-initialize)
364 (make-local-variable 'page-delimiter) 356 (make-local-variable 'page-delimiter)
365 (setq page-delimiter "^;;;" ; ^L not valid SGML char 357 (setq page-delimiter "^;;;" ; ^L not valid SGML char
366 major-mode 'dsssl-mode 358 major-mode 'dsssl-mode
367 mode-name "DSSSL") 359 mode-name "DSSSL")
368 ;; Insert a suitable SGML declaration into an empty buffer. 360 ;; Insert a suitable SGML declaration into an empty buffer.
361 ;; FIXME: This should use `auto-insert-alist' instead.
369 (and (zerop (buffer-size)) 362 (and (zerop (buffer-size))
370 (stringp dsssl-sgml-declaration) 363 (stringp dsssl-sgml-declaration)
371 (not buffer-read-only) 364 (not buffer-read-only)
372 (insert dsssl-sgml-declaration)) 365 (insert dsssl-sgml-declaration))
373 (scheme-mode-variables)
374 (setq font-lock-defaults '(dsssl-font-lock-keywords 366 (setq font-lock-defaults '(dsssl-font-lock-keywords
375 nil t (("+-*/.<>=?$%_&~^:" . "w")) 367 nil t (("+-*/.<>=?$%_&~^:" . "w"))
376 beginning-of-defun 368 beginning-of-defun
@@ -378,9 +370,7 @@ that variable's value is a string."
378 (set (make-local-variable 'imenu-case-fold-search) nil) 370 (set (make-local-variable 'imenu-case-fold-search) nil)
379 (setq imenu-generic-expression dsssl-imenu-generic-expression) 371 (setq imenu-generic-expression dsssl-imenu-generic-expression)
380 (set (make-local-variable 'imenu-syntax-alist) 372 (set (make-local-variable 'imenu-syntax-alist)
381 '(("+-*/.<>=?$%_&~^:" . "w"))) 373 '(("+-*/.<>=?$%_&~^:" . "w"))))
382 (run-hooks 'scheme-mode-hook)
383 (run-hooks 'dsssl-mode-hook))
384 374
385;; Extra syntax for DSSSL. This isn't separated from Scheme, but 375;; Extra syntax for DSSSL. This isn't separated from Scheme, but
386;; shouldn't cause much trouble in scheme-mode. 376;; shouldn't cause much trouble in scheme-mode.
@@ -558,5 +548,5 @@ that variable's value is a string."
558 548
559(provide 'scheme) 549(provide 'scheme)
560 550
561;;; arch-tag: a8f06bc1-ad11-42d2-9e36-ce651df37a90 551;; arch-tag: a8f06bc1-ad11-42d2-9e36-ce651df37a90
562;;; scheme.el ends here 552;;; scheme.el ends here
diff --git a/lisp/speedbar.el b/lisp/speedbar.el
index c182dffdba7..a8f74de0b11 100644
--- a/lisp/speedbar.el
+++ b/lisp/speedbar.el
@@ -1,6 +1,7 @@
1;;; speedbar.el --- quick access to files and tags in a frame 1;;; speedbar.el --- quick access to files and tags in a frame
2 2
3;;; Copyright (C) 1996, 97, 98, 99, 2000, 01 Free Software Foundation 3;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2005
4;; Free Software Foundation
4 5
5;; Author: Eric M. Ludlam <zappo@gnu.org> 6;; Author: Eric M. Ludlam <zappo@gnu.org>
6;; Version: 0.11a 7;; Version: 0.11a
@@ -170,6 +171,8 @@
170;; - More functions to create buttons and options 171;; - More functions to create buttons and options
171;; - Timeout directories we haven't visited in a while. 172;; - Timeout directories we haven't visited in a while.
172 173
174;;; Code:
175
173(require 'assoc) 176(require 'assoc)
174(require 'easymenu) 177(require 'easymenu)
175 178
@@ -201,7 +204,6 @@
201 :prefix "speedbar-" 204 :prefix "speedbar-"
202 :group 'speedbar) 205 :group 'speedbar)
203 206
204;;; Code:
205(defvar speedbar-initial-expansion-mode-alist 207(defvar speedbar-initial-expansion-mode-alist
206 '(("buffers" speedbar-buffer-easymenu-definition speedbar-buffers-key-map 208 '(("buffers" speedbar-buffer-easymenu-definition speedbar-buffers-key-map
207 speedbar-buffer-buttons) 209 speedbar-buffer-buttons)
@@ -373,7 +375,7 @@ is attached to."
373 (symbol :tag "Property") 375 (symbol :tag "Property")
374 (sexp :tag "Value")))) 376 (sexp :tag "Value"))))
375 377
376(defcustom speedbar-use-imenu-flag (stringp (locate-library "imenu")) 378(defcustom speedbar-use-imenu-flag (fboundp 'imenu)
377 "*Non-nil means use imenu for file parsing. nil to use etags. 379 "*Non-nil means use imenu for file parsing. nil to use etags.
378XEmacs prior to 20.4 doesn't support imenu, therefore the default is to 380XEmacs prior to 20.4 doesn't support imenu, therefore the default is to
379use etags instead. Etags support is not as robust as imenu support." 381use etags instead. Etags support is not as robust as imenu support."
@@ -3749,7 +3751,7 @@ functions to do caching and flushing if appropriate."
3749 3751
3750 nil 3752 nil
3751 3753
3752(eval-when-compile (if (locate-library "imenu") (require 'imenu))) 3754(eval-when-compile (condition-case nil (require 'imenu) (error nil)))
3753 3755
3754(defun speedbar-fetch-dynamic-imenu (file) 3756(defun speedbar-fetch-dynamic-imenu (file)
3755 "Load FILE into a buffer, and generate tags using Imenu. 3757 "Load FILE into a buffer, and generate tags using Imenu.
@@ -4359,5 +4361,5 @@ If we have an image associated with it, use that image."
4359;; run load-time hooks 4361;; run load-time hooks
4360(run-hooks 'speedbar-load-hook) 4362(run-hooks 'speedbar-load-hook)
4361 4363
4362;;; arch-tag: 4477e6d1-f78c-48b9-a503-387d3c9767d5 4364;; arch-tag: 4477e6d1-f78c-48b9-a503-387d3c9767d5
4363;;; speedbar.el ends here 4365;;; speedbar.el ends here
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el
index c5209456f83..fc677b3de44 100644
--- a/lisp/textmodes/bibtex.el
+++ b/lisp/textmodes/bibtex.el
@@ -173,7 +173,7 @@ See also `bibtex-sort-ignore-string-entries'."
173If value of `bibtex-maintain-sorted-entries' is `entry-class' 173If value of `bibtex-maintain-sorted-entries' is `entry-class'
174entries are ordered according to the classes they belong to. Each 174entries are ordered according to the classes they belong to. Each
175class contains a list of entry names. An entry `catch-all' applies 175class contains a list of entry names. An entry `catch-all' applies
176to all entries not explicitely mentioned." 176to all entries not explicitly mentioned."
177 :group 'BibTeX 177 :group 'BibTeX
178 :type '(repeat (choice :tag "Class" 178 :type '(repeat (choice :tag "Class"
179 (const :tag "catch-all" (catch-all)) 179 (const :tag "catch-all" (catch-all))
@@ -654,7 +654,7 @@ See `bibtex-generate-autokey' for details."
654 '("A" "An" "On" "The" "Eine?" "Der" "Die" "Das" 654 '("A" "An" "On" "The" "Eine?" "Der" "Die" "Das"
655 "[^A-Z].*" ".*[^A-Z0-9].*") 655 "[^A-Z].*" ".*[^A-Z0-9].*")
656 "Determines words from the title that are not to be used in the key. 656 "Determines words from the title that are not to be used in the key.
657Each item of the list is a regexp. If a word of the title matchs a 657Each item of the list is a regexp. If a word of the title matches a
658regexp from that list, it is not included in the title part of the key. 658regexp from that list, it is not included in the title part of the key.
659See `bibtex-generate-autokey' for details." 659See `bibtex-generate-autokey' for details."
660 :group 'bibtex-autokey 660 :group 'bibtex-autokey
@@ -730,7 +730,7 @@ and must return a string (the key to use)."
730 730
731(defcustom bibtex-entry-offset 0 731(defcustom bibtex-entry-offset 0
732 "Offset for BibTeX entries. 732 "Offset for BibTeX entries.
733Added to the value of all other variables which determine colums." 733Added to the value of all other variables which determine columns."
734 :group 'bibtex 734 :group 'bibtex
735 :type 'integer) 735 :type 'integer)
736 736
@@ -1115,9 +1115,8 @@ The CDRs of the elements are t for header keys and nil for crossref keys.")
1115 t)) 1115 t))
1116 "Regexp matching the name of any valid BibTeX entry (including string).") 1116 "Regexp matching the name of any valid BibTeX entry (including string).")
1117 1117
1118 1118(defconst bibtex-empty-field-re "\\`\\(\"\"\\|{}\\)\\'"
1119(defconst bibtex-empty-field-re "\"\"\\|{}" 1119 "Regexp matching the text part (as a string) of an empty field.")
1120 "Regexp matching an empty field.")
1121 1120
1122(defconst bibtex-font-lock-syntactic-keywords 1121(defconst bibtex-font-lock-syntactic-keywords
1123 `((,(concat "^[ \t]*\\(" (substring bibtex-comment-start 0 1) "\\)" 1122 `((,(concat "^[ \t]*\\(" (substring bibtex-comment-start 0 1) "\\)"
@@ -1179,7 +1178,7 @@ ARG is ignored."
1179 "Parse a string of the format <left-hand-side = right-hand-side>. 1178 "Parse a string of the format <left-hand-side = right-hand-side>.
1180The functions PARSE-LHS and PARSE-RHS are used to parse the corresponding 1179The functions PARSE-LHS and PARSE-RHS are used to parse the corresponding
1181substrings. These functions are expected to return nil if parsing is not 1180substrings. These functions are expected to return nil if parsing is not
1182successfull. If both functions return non-nil, a pair containing the returned 1181successful. If both functions return non-nil, a pair containing the returned
1183values of the functions PARSE-LHS and PARSE-RHS is returned." 1182values of the functions PARSE-LHS and PARSE-RHS is returned."
1184 (save-match-data 1183 (save-match-data
1185 (save-excursion 1184 (save-excursion
@@ -1196,7 +1195,7 @@ values of the functions PARSE-LHS and PARSE-RHS is returned."
1196If the field name is found, return a triple consisting of the position of the 1195If the field name is found, return a triple consisting of the position of the
1197very first character of the match, the actual starting position of the name 1196very first character of the match, the actual starting position of the name
1198part and end position of the match. Move point to end of field name. 1197part and end position of the match. Move point to end of field name.
1199If `bibtex-autoadd-commas' is non-nil add missing comma at end of preceeding 1198If `bibtex-autoadd-commas' is non-nil add missing comma at end of preceding
1200BibTeX field as necessary." 1199BibTeX field as necessary."
1201 (cond ((looking-at ",[ \t\n]*") 1200 (cond ((looking-at ",[ \t\n]*")
1202 (let ((start (point))) 1201 (let ((start (point)))
@@ -1875,7 +1874,7 @@ Formats current entry according to variable `bibtex-entry-format'."
1875 (if opt-alt (+ beg-name 3) beg-name) end-name)) 1874 (if opt-alt (+ beg-name 3) beg-name) end-name))
1876 (empty-field (string-match bibtex-empty-field-re 1875 (empty-field (string-match bibtex-empty-field-re
1877 (buffer-substring-no-properties 1876 (buffer-substring-no-properties
1878 beg-field end-field))) 1877 beg-text end-text)))
1879 deleted) 1878 deleted)
1880 1879
1881 ;; We have more elegant high-level functions for several 1880 ;; We have more elegant high-level functions for several
@@ -2824,7 +2823,7 @@ and `bibtex-user-optional-fields'."
2824 (let ((e (assoc-string entry-type bibtex-entry-field-alist t)) 2823 (let ((e (assoc-string entry-type bibtex-entry-field-alist t))
2825 required optional) 2824 required optional)
2826 (unless e 2825 (unless e
2827 (error "Bibtex entry type %s not defined" entry-type)) 2826 (error "BibTeX entry type %s not defined" entry-type))
2828 (if (and (member-ignore-case entry-type bibtex-include-OPTcrossref) 2827 (if (and (member-ignore-case entry-type bibtex-include-OPTcrossref)
2829 (nth 2 e)) 2828 (nth 2 e))
2830 (setq required (nth 0 (nth 2 e)) 2829 (setq required (nth 0 (nth 2 e))
@@ -2960,9 +2959,13 @@ entry (for example, the year parts of the keys)."
2960 (while (setq bounds (bibtex-parse-field bibtex-field-name)) 2959 (while (setq bounds (bibtex-parse-field bibtex-field-name))
2961 (let ((text (assoc-string (bibtex-name-in-field bounds t) 2960 (let ((text (assoc-string (bibtex-name-in-field bounds t)
2962 other t))) 2961 other t)))
2963 (goto-char (bibtex-start-of-text-in-field bounds)) 2962 (if (not (and text
2964 (if (not (and (looking-at bibtex-empty-field-re) text)) 2963 (string-match bibtex-empty-field-re
2964 (buffer-substring-no-properties
2965 (bibtex-start-of-text-in-field bounds)
2966 (bibtex-end-of-text-in-field bounds)))))
2965 (goto-char (bibtex-end-of-field bounds)) 2967 (goto-char (bibtex-end-of-field bounds))
2968 (goto-char (bibtex-start-of-text-in-field bounds))
2966 (delete-region (point) (bibtex-end-of-text-in-field bounds)) 2969 (delete-region (point) (bibtex-end-of-text-in-field bounds))
2967 (insert (cdr text))))) 2970 (insert (cdr text)))))
2968 ;; Finally try to update the text based on the difference between 2971 ;; Finally try to update the text based on the difference between
@@ -3269,7 +3272,7 @@ entry and SPLIT is t."
3269 (bibtex-reposition-window) 3272 (bibtex-reposition-window)
3270 (beginning-of-line) 3273 (beginning-of-line)
3271 (if (and eqb (> pnt pos)) 3274 (if (and eqb (> pnt pos))
3272 (error "The referencing entry must preceed the crossrefed entry!"))) 3275 (error "The referencing entry must precede the crossrefed entry!")))
3273 ;; `bibtex-find-crossref' is called noninteractively during 3276 ;; `bibtex-find-crossref' is called noninteractively during
3274 ;; clean-up of an entry. Then it is not possible to check 3277 ;; clean-up of an entry. Then it is not possible to check
3275 ;; whether the current entry and the crossrefed entry have 3278 ;; whether the current entry and the crossrefed entry have
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 13eda06c892..c554b74cf0c 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -591,12 +591,12 @@ and then re-start emacs."
591 "[^A-Z\300\301\310\311\314\315\322\323\331\332a-z\340\341\350\351\354\355\363\371\372]" 591 "[^A-Z\300\301\310\311\314\315\322\323\331\332a-z\340\341\350\351\354\355\363\371\372]"
592 "[-]" nil ("-B" "-d" "italian") "~tex" iso-8859-1) 592 "[-]" nil ("-B" "-d" "italian") "~tex" iso-8859-1)
593 ("nederlands" ; Nederlands.aff 593 ("nederlands" ; Nederlands.aff
594 "[A-Za-z\300-\305\307\310-\317\322-\326\331-\334\340-\345\347\350-\357\361\362-\366\371-\374]" 594 "[A-Za-z\300\301\302\303\304\305\307\310\311\312\313\314\315\316\317\322\323\324\325\326\331\332\333\334\340\341\342\343\344\345\347\350\351\352\353\354\355\356\357\361\362\363\364\365\366\371\372\373\374]"
595 "[^A-Za-z\300-\305\307\310-\317\322-\326\331-\334\340-\345\347\350-\357\361\362-\366\371-\374]" 595 "[^A-Za-z\300\301\302\303\304\305\307\310\311\312\313\314\315\316\317\322\323\324\325\326\331\332\333\334\340\341\342\343\344\345\347\350\351\352\353\354\355\356\357\361\362\363\364\365\366\371\372\373\374]"
596 "[']" t ("-C") nil iso-8859-1) 596 "[']" t ("-C") nil iso-8859-1)
597 ("nederlands8" ; Dutch8.aff 597 ("nederlands8" ; Dutch8.aff
598 "[A-Za-z\300-\305\307\310-\317\322-\326\331-\334\340-\345\347\350-\357\361\362-\366\371-\374]" 598 "[A-Za-z\300\301\302\303\304\305\307\310\311\312\313\314\315\316\317\322\323\324\325\326\331\332\333\334\340\341\342\343\344\345\347\350\351\352\353\354\355\356\357\361\362\363\364\365\366\371\372\373\374]"
599 "[^A-Za-z\300-\305\307\310-\317\322-\326\331-\334\340-\345\347\350-\357\361\362-\366\371-\374]" 599 "[^A-Za-z\300\301\302\303\304\305\307\310\311\312\313\314\315\316\317\322\323\324\325\326\331\332\333\334\340\341\342\343\344\345\347\350\351\352\353\354\355\356\357\361\362\363\364\365\366\371\372\373\374]"
600 "[']" t ("-C") nil iso-8859-1))) 600 "[']" t ("-C") nil iso-8859-1)))
601 601
602 602
diff --git a/lisp/textmodes/reftex-global.el b/lisp/textmodes/reftex-global.el
index d4d91b476e9..d3ef2dcb788 100644
--- a/lisp/textmodes/reftex-global.el
+++ b/lisp/textmodes/reftex-global.el
@@ -338,5 +338,131 @@ Also checks if buffers visiting the files are in read-only mode."
338 (buffer-name buf))) 338 (buffer-name buf)))
339 (error "Abort")))))) 339 (error "Abort"))))))
340 340
341(defun reftex-isearch-wrap-function ()
342 (if (not isearch-word)
343 (switch-to-buffer
344 (funcall isearch-next-buffer-function (current-buffer) t)))
345 (goto-char (if isearch-forward (point-min) (point-max))))
346
347(defun reftex-isearch-push-state-function ()
348 `(lambda (cmd)
349 (reftex-isearch-pop-state-function cmd ,(current-buffer))))
350
351(defun reftex-isearch-pop-state-function (cmd buffer)
352 (switch-to-buffer buffer))
353
354(defun reftex-isearch-isearch-search (string bound noerror)
355 (let ((nxt-buff nil)
356 (search-fun
357 (cond
358 (isearch-word
359 (if isearch-forward 'word-search-forward 'word-search-backward))
360 (isearch-regexp
361 (if isearch-forward 're-search-forward 're-search-backward))
362 (t
363 (if isearch-forward 'search-forward 'search-backward)))))
364 (or
365 (funcall search-fun string bound noerror)
366 (unless bound
367 (condition-case nil
368 (when isearch-next-buffer-function
369 (while (not (funcall search-fun string bound noerror))
370 (cond
371 (isearch-forward
372 (setq nxt-buff
373 (funcall isearch-next-buffer-function
374 (current-buffer)))
375 (if (not nxt-buff)
376 (progn
377 (error "Wrap forward"))
378 (switch-to-buffer nxt-buff)
379 (goto-char (point-min))))
380 (t
381 (setq nxt-buff
382 (funcall isearch-next-buffer-function
383 (current-buffer)))
384 (if (not nxt-buff)
385 (progn
386 (error "Wrap backward"))
387 (switch-to-buffer nxt-buff)
388 (goto-char (point-max))))))
389 (point))
390 (error nil))))))
391
392;;; This function is called when isearch reaches the end of a
393;;; buffer. For reftex what we want to do is not wrap to the
394;;; beginning, but switch to the next buffer in the logical order of
395;;; the document. This function looks through list of files in the
396;;; document (reftex-all-document-files), searches for the current
397;;; buffer and switches to the next/previous one in the logical order
398;;; of the document. If WRAPP is true then wrap the search to the
399;;; beginning/end of the file list, depending of the search direction.
400(defun reftex-isearch-switch-to-next-file (crt-buf &optional wrapp)
401 (reftex-access-scan-info)
402 (let* ((cb (buffer-file-name crt-buf))
403 (flist (reftex-all-document-files))
404 (orig-flist flist))
405 (when flist
406 (if wrapp
407 (unless isearch-forward
408 (setq flist (last flist)))
409 (unless isearch-forward
410 (setq flist (nreverse (copy-list flist)))
411 (setq orig-flist flist))
412 (while (not (string= (car flist) cb))
413 (setq flist (cdr flist)))
414 (setq flist (cdr flist)))
415 (when flist
416 (find-file (car flist))))))
417
418;;;###autoload
419(defvar reftex-isearch-minor-mode nil)
420(make-variable-buffer-local 'reftex-isearch-minor-mode)
421
422;;;###autoload
423(defun reftex-isearch-minor-mode (&optional arg)
424 "When on, isearch searches the whole document, not only the current file.
425This minor mode allows isearch to search through all the files of
426the current TeX document.
427
428With no argument, this command toggles
429`reftex-isearch-minor-mode'. With a prefix argument ARG, turn
430`reftex-isearch-minor-mode' on iff ARG is positive."
431 (interactive "P")
432 (let ((old-reftex-isearch-minor-mode reftex-isearch-minor-mode))
433 (setq reftex-isearch-minor-mode
434 (not (or (and (null arg) reftex-isearch-minor-mode)
435 (<= (prefix-numeric-value arg) 0))))
436 (unless (eq reftex-isearch-minor-mode old-reftex-isearch-minor-mode)
437 (if reftex-isearch-minor-mode
438 (progn
439 (dolist (crt-buf (buffer-list))
440 (with-current-buffer crt-buf
441 (when reftex-mode
442 (set (make-local-variable 'isearch-wrap-function)
443 'reftex-isearch-wrap-function)
444 (set (make-local-variable 'isearch-search-fun-function)
445 (lambda () 'reftex-isearch-isearch-search))
446 (set (make-local-variable 'isearch-push-state-function)
447 'reftex-isearch-push-state-function)
448 (set (make-local-variable 'isearch-next-buffer-function)
449 'reftex-isearch-switch-to-next-file)
450 (setq reftex-isearch-minor-mode t))))
451 (add-hook 'reftex-mode-hook 'reftex-isearch-minor-mode))
452 (dolist (crt-buf (buffer-list))
453 (with-current-buffer crt-buf
454 (when reftex-mode
455 (kill-local-variable 'isearch-wrap-function)
456 (kill-local-variable 'isearch-search-fun-function)
457 (kill-local-variable 'isearch-push-state-function)
458 (kill-local-variable 'isearch-next-buffer-function)
459 (setq reftex-isearch-minor-mode nil))))
460 (remove-hook 'reftex-mode-hook 'reftex-isearch-minor-mode)))
461 ;; Force modeline redisplay.
462 (set-buffer-modified-p (buffer-modified-p))))
463
464(add-minor-mode 'reftex-isearch-minor-mode "/I" nil nil
465 'reftex-isearch-minor-mode)
466
341;;; arch-tag: 2dbf7633-92c8-4340-8656-7aa019d0f80d 467;;; arch-tag: 2dbf7633-92c8-4340-8656-7aa019d0f80d
342;;; reftex-global.el ends here 468;;; reftex-global.el ends here
diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el
index e177805e9c4..318279b1377 100644
--- a/lisp/textmodes/reftex.el
+++ b/lisp/textmodes/reftex.el
@@ -2487,7 +2487,9 @@ IGNORE-WORDS List of words which should be removed from the string."
2487 "--" 2487 "--"
2488 "MISC" 2488 "MISC"
2489 ["AUC TeX Interface" reftex-toggle-plug-into-AUCTeX 2489 ["AUC TeX Interface" reftex-toggle-plug-into-AUCTeX
2490 :style toggle :selected reftex-plug-into-AUCTeX]) 2490 :style toggle :selected reftex-plug-into-AUCTeX]
2491 ["isearch whole document" reftex-isearch-minor-mode
2492 :style toggle :selected reftex-isearch-minor-mode])
2491 ("Reference Style" 2493 ("Reference Style"
2492 ["Default" (setq reftex-vref-is-default nil 2494 ["Default" (setq reftex-vref-is-default nil
2493 reftex-fref-is-default nil) 2495 reftex-fref-is-default nil)
diff --git a/man/ChangeLog b/man/ChangeLog
index 63e3591265e..5f69fc7d856 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,16 @@
12005-01-28 Lars Magne Ingebrigtsen <larsi@gnus.org>
2
3 * gnus.texi: Some edits based on comments from David Abrahams.
4
52005-01-24 Katsumi Yamaoka <yamaoka@jpl.org>
6
7 * gnus.texi (RSS): Fix the keystroke.
8
92005-01-26 Lute Kamstra <lute@gnu.org>
10
11 * cmdargs.texi (Initial Options): Add a cross reference to `Init
12 File'. Mention the `-Q' option at the `--no-site-file' option.
13
12005-01-24 David Kastrup <dak@gnu.org> 142005-01-24 David Kastrup <dak@gnu.org>
2 15
3 * faq.texi: Update AUCTeX version info. 16 * faq.texi: Update AUCTeX version info.
diff --git a/man/cmdargs.texi b/man/cmdargs.texi
index b06aac4bdb6..960f2d0bd65 100644
--- a/man/cmdargs.texi
+++ b/man/cmdargs.texi
@@ -169,8 +169,9 @@ sections.
169 Some initial options affect the loading of init files. The normal 169 Some initial options affect the loading of init files. The normal
170actions of Emacs are to first load @file{site-start.el} if it exists, 170actions of Emacs are to first load @file{site-start.el} if it exists,
171then your own init file @file{~/.emacs} if it exists, and finally 171then your own init file @file{~/.emacs} if it exists, and finally
172@file{default.el} if it exists; certain options prevent loading of some 172@file{default.el} if it exists. @xref{Init File}. Certain options
173of these files or substitute other files for them. 173prevent loading of some of these files or substitute other files for
174them.
174 175
175@table @samp 176@table @samp
176@item -t @var{device} 177@item -t @var{device}
@@ -257,8 +258,8 @@ changed with the @kbd{M-x customize} command and its variants.
257@opindex --no-site-file 258@opindex --no-site-file
258@cindex @file{site-start.el} file, not loading 259@cindex @file{site-start.el} file, not loading
259Do not load @file{site-start.el}. The options @samp{-q}, @samp{-u} 260Do not load @file{site-start.el}. The options @samp{-q}, @samp{-u}
260and @samp{--batch} have no effect on the loading of this file---this is 261and @samp{--batch} have no effect on the loading of this file---this
261the only option that blocks it. 262option and @samp{-Q} are the only options that block it.
262 263
263@item -Q 264@item -Q
264@opindex -Q 265@opindex -Q
diff --git a/man/gnus.texi b/man/gnus.texi
index b0feef1bf25..d2812890a1c 100644
--- a/man/gnus.texi
+++ b/man/gnus.texi
@@ -391,25 +391,25 @@ the program.
391@end iftex 391@end iftex
392 392
393@menu 393@menu
394* Starting Up:: Finding news can be a pain. 394* Starting Up:: Finding news can be a pain.
395* Group Buffer:: Selecting, subscribing and killing groups. 395* Group Buffer:: Selecting, subscribing and killing groups.
396* Summary Buffer:: Reading, saving and posting articles. 396* Summary Buffer:: Reading, saving and posting articles.
397* Article Buffer:: Displaying and handling articles. 397* Article Buffer:: Displaying and handling articles.
398* Composing Messages:: Information on sending mail and news. 398* Composing Messages:: Information on sending mail and news.
399* Select Methods:: Gnus reads all messages from various select methods. 399* Select Methods:: Gnus reads all messages from various select methods.
400* Scoring:: Assigning values to articles. 400* Scoring:: Assigning values to articles.
401* Various:: General purpose settings. 401* Various:: General purpose settings.
402* The End:: Farewell and goodbye. 402* The End:: Farewell and goodbye.
403* Appendices:: Terminology, Emacs intro, @acronym{FAQ}, History, Internals. 403* Appendices:: Terminology, Emacs intro, @acronym{FAQ}, History, Internals.
404* Index:: Variable, function and concept index. 404* Index:: Variable, function and concept index.
405* Key Index:: Key Index. 405* Key Index:: Key Index.
406 406
407Other related manuals 407Other related manuals
408 408
409* Message:(message). Composing messages. 409* Message:(message). Composing messages.
410* Emacs-MIME:(emacs-mime). Composing messages; @acronym{MIME}-specific parts. 410* Emacs-MIME:(emacs-mime). Composing messages; @acronym{MIME}-specific parts.
411* Sieve:(sieve). Managing Sieve scripts in Emacs. 411* Sieve:(sieve). Managing Sieve scripts in Emacs.
412* PGG:(pgg). @acronym{PGP/MIME} with Gnus. 412* PGG:(pgg). @acronym{PGP/MIME} with Gnus.
413 413
414@detailmenu 414@detailmenu
415 --- The Detailed Node Listing --- 415 --- The Detailed Node Listing ---
@@ -951,17 +951,16 @@ If you puzzle at any terms used in this manual, please refer to the
951terminology section (@pxref{Terminology}). 951terminology section (@pxref{Terminology}).
952 952
953@menu 953@menu
954* Finding the News:: Choosing a method for getting news. 954* Finding the News:: Choosing a method for getting news.
955* The First Time:: What does Gnus do the first time you start it? 955* The First Time:: What does Gnus do the first time you start it?
956* The Server is Down:: How can I read my mail then? 956* The Server is Down:: How can I read my mail then?
957* Slave Gnusae:: You can have more than one Gnus active at a time. 957* Slave Gnusae:: You can have more than one Gnus active at a time.
958* Fetching a Group:: Starting Gnus just to read a group. 958* New Groups:: What is Gnus supposed to do with new groups?
959* New Groups:: What is Gnus supposed to do with new groups? 959* Changing Servers:: You may want to move from one server to another.
960* Changing Servers:: You may want to move from one server to another. 960* Startup Files:: Those pesky startup files---@file{.newsrc}.
961* Startup Files:: Those pesky startup files---@file{.newsrc}. 961* Auto Save:: Recovering from a crash.
962* Auto Save:: Recovering from a crash. 962* The Active File:: Reading the active file over a slow line Takes Time.
963* The Active File:: Reading the active file over a slow line Takes Time. 963* Startup Variables:: Other variables you might change.
964* Startup Variables:: Other variables you might change.
965@end menu 964@end menu
966 965
967 966
@@ -992,7 +991,8 @@ If you want to read directly from the local spool, say:
992 991
993If you can use a local spool, you probably should, as it will almost 992If you can use a local spool, you probably should, as it will almost
994certainly be much faster. But do not use the local spool if your 993certainly be much faster. But do not use the local spool if your
995server is running Leafnode; in this case, use @code{(nntp "localhost")}. 994server is running Leafnode (which is a simple, standalone private news
995server); in this case, use @code{(nntp "localhost")}.
996 996
997@vindex gnus-nntpserver-file 997@vindex gnus-nntpserver-file
998@cindex NNTPSERVER 998@cindex NNTPSERVER
@@ -1051,8 +1051,8 @@ you would typically set this variable to
1051@section The First Time 1051@section The First Time
1052@cindex first time usage 1052@cindex first time usage
1053 1053
1054If no startup files exist, Gnus will try to determine what groups should 1054If no startup files exist (@pxref{Startup Files}), Gnus will try to
1055be subscribed by default. 1055determine what groups should be subscribed by default.
1056 1056
1057@vindex gnus-default-subscribed-newsgroups 1057@vindex gnus-default-subscribed-newsgroups
1058If the variable @code{gnus-default-subscribed-newsgroups} is set, Gnus 1058If the variable @code{gnus-default-subscribed-newsgroups} is set, Gnus
@@ -1139,16 +1139,6 @@ file. If you answer ``yes'', the unsaved changes to the master will be
1139incorporated into the slave. If you answer ``no'', the slave may see some 1139incorporated into the slave. If you answer ``no'', the slave may see some
1140messages as unread that have been read in the master. 1140messages as unread that have been read in the master.
1141 1141
1142@node Fetching a Group
1143@section Fetching a Group
1144@cindex fetching a group
1145
1146@findex gnus-fetch-group
1147It is sometimes convenient to be able to just say ``I want to read this
1148group and I don't care whether Gnus has been started or not''. This is
1149perhaps more useful for people who write code than for users, but the
1150command @code{gnus-fetch-group} provides this functionality in any case.
1151It takes the group name as a parameter.
1152 1142
1153 1143
1154@node New Groups 1144@node New Groups
@@ -1400,8 +1390,10 @@ cache for all groups).
1400@cindex .newsrc.el 1390@cindex .newsrc.el
1401@cindex .newsrc.eld 1391@cindex .newsrc.eld
1402 1392
1403Now, you all know about the @file{.newsrc} file. All subscription 1393Most common Unix news readers use a shared startup file called
1404information is traditionally stored in this file. 1394@file{.newsrc}. This file contains all the information about what
1395groups are subscribed, and which articles in these groups have been
1396read.
1405 1397
1406Things got a bit more complicated with @sc{gnus}. In addition to 1398Things got a bit more complicated with @sc{gnus}. In addition to
1407keeping the @file{.newsrc} file updated, it also used a file called 1399keeping the @file{.newsrc} file updated, it also used a file called
@@ -1426,8 +1418,10 @@ the file and save some space, as well as exiting from Gnus faster.
1426However, this will make it impossible to use other newsreaders than 1418However, this will make it impossible to use other newsreaders than
1427Gnus. But hey, who would want to, right? Similarly, setting 1419Gnus. But hey, who would want to, right? Similarly, setting
1428@code{gnus-read-newsrc-file} to @code{nil} makes Gnus ignore the 1420@code{gnus-read-newsrc-file} to @code{nil} makes Gnus ignore the
1429@file{.newsrc} file and any @file{.newsrc-SERVER} files, which is 1421@file{.newsrc} file and any @file{.newsrc-SERVER} files, which can be
1430convenient if you have a tendency to use Netscape once in a while. 1422convenient if you use a different news reader occasionally, and you
1423want to read a different subset of the available groups with that
1424news reader.
1431 1425
1432@vindex gnus-save-killed-list 1426@vindex gnus-save-killed-list
1433If @code{gnus-save-killed-list} (default @code{t}) is @code{nil}, Gnus 1427If @code{gnus-save-killed-list} (default @code{t}) is @code{nil}, Gnus
@@ -15884,7 +15878,7 @@ Use @kbd{G R} from the summary buffer to subscribe to a feed---you
15884will be prompted for the location of the feed. 15878will be prompted for the location of the feed.
15885 15879
15886An easy way to get started with @code{nnrss} is to say something like 15880An easy way to get started with @code{nnrss} is to say something like
15887the following in the group buffer: @kbd{B nnrss RET y}, then 15881the following in the group buffer: @kbd{B nnrss RET RET y}, then
15888subscribe to groups. 15882subscribe to groups.
15889 15883
15890The following @code{nnrss} variables can be altered: 15884The following @code{nnrss} variables can be altered:
@@ -20607,6 +20601,7 @@ four days, Gnus will decay the scores four times, for instance.
20607* Undo:: Some actions can be undone. 20601* Undo:: Some actions can be undone.
20608* Predicate Specifiers:: Specifying predicates. 20602* Predicate Specifiers:: Specifying predicates.
20609* Moderation:: What to do if you're a moderator. 20603* Moderation:: What to do if you're a moderator.
20604* Fetching a Group:: Starting Gnus just to read a group.
20610* Image Enhancements:: Modern versions of Emacs/XEmacs can display images. 20605* Image Enhancements:: Modern versions of Emacs/XEmacs can display images.
20611* Fuzzy Matching:: What's the big fuzz? 20606* Fuzzy Matching:: What's the big fuzz?
20612* Thwarting Email Spam:: A how-to on avoiding unsolicited commercial email. 20607* Thwarting Email Spam:: A how-to on avoiding unsolicited commercial email.
@@ -21878,6 +21873,18 @@ To use moderation mode in these two groups, say:
21878@end lisp 21873@end lisp
21879 21874
21880 21875
21876@node Fetching a Group
21877@section Fetching a Group
21878@cindex fetching a group
21879
21880@findex gnus-fetch-group
21881It is sometimes convenient to be able to just say ``I want to read this
21882group and I don't care whether Gnus has been started or not''. This is
21883perhaps more useful for people who write code than for users, but the
21884command @code{gnus-fetch-group} provides this functionality in any case.
21885It takes the group name as a parameter.
21886
21887
21881@node Image Enhancements 21888@node Image Enhancements
21882@section Image Enhancements 21889@section Image Enhancements
21883 21890
@@ -26575,6 +26582,12 @@ The act of asking the server for info on a group and computing the
26575number of unread articles is called @dfn{activating the group}. 26582number of unread articles is called @dfn{activating the group}.
26576Un-activated groups are listed with @samp{*} in the group buffer. 26583Un-activated groups are listed with @samp{*} in the group buffer.
26577 26584
26585@item spool
26586@cindex spool
26587News servers store their articles locally in one fashion or other.
26588One old-fashioned storage method is to have just one file per
26589article. That's called a ``traditional spool''.
26590
26578@item server 26591@item server
26579@cindex server 26592@cindex server
26580A machine one can connect to and get news (or mail) from. 26593A machine one can connect to and get news (or mail) from.
diff --git a/man/reftex.texi b/man/reftex.texi
index 21090caf2ea..7de16dcb0e1 100644
--- a/man/reftex.texi
+++ b/man/reftex.texi
@@ -3520,13 +3520,15 @@ this manual.
3520 3520
3521Thanks to the people on the Net who have used @b{Ref@TeX{}} and helped 3521Thanks to the people on the Net who have used @b{Ref@TeX{}} and helped
3522developing it with their reports. In particular thanks to @i{Fran 3522developing it with their reports. In particular thanks to @i{Fran
3523Burstall, Alastair Burt, Lars Clausen, Soren Dayton, Stephen Eglen, Karl 3523Burstall, Alastair Burt, Lars Clausen, Soren Dayton, Stephen Eglen,
3524Eichwalder, Erik Frisk, Peter Galbraith, Kai Grossjohann, Frank Harrell, 3524Karl Eichwalder, Erik Frisk, Peter Galbraith, Kai Grossjohann, Frank
3525Peter Heslin, Stephan Heuel, Alan Ho, Lute Kamstra, Dieter Kraft, David 3525Harrell, Peter Heslin, Stephan Heuel, Alan Ho, Lute Kamstra, Dieter
3526Kastrup, Adrian Lanz, Rory Molinari, Stefan Monnier, Laurent Mugnier, 3526Kraft, David Kastrup, Adrian Lanz, Juri Linkov, Rory Molinari, Stefan
3527Sudeep Kumar Palat, Daniel Polani, Alan Shutko, Robin Socha, Richard 3527Monnier, Laurent Mugnier, Dan Nicolaescu, Sudeep Kumar Palat, Daniel
3528Stanton, Allan Strand, Jan Vroonhof, Christoph Wedler, Alan Williams, 3528Polani, Alan Shutko, Robin Socha, Richard Stanton, Allan Strand, Jan
3529Roland Winkler, Hans-Christoph Wirth, Eli Zaretskii}. 3529Vroonhof, Christoph Wedler, Alan Williams, Roland Winkler,
3530Hans-Christoph Wirth, Eli Zaretskii}.
3531
3530 3532
3531The @code{view-crossref} feature was inspired by @i{Peter Galbraith's} 3533The @code{view-crossref} feature was inspired by @i{Peter Galbraith's}
3532@file{bib-cite.el}. 3534@file{bib-cite.el}.
@@ -3668,6 +3670,12 @@ document. With prefix arg, replace only word-delimited matches. No
3668active TAGS table is required. 3670active TAGS table is required.
3669@end deffn 3671@end deffn
3670 3672
3673@deffn Command reftex-isearch-minor-mode
3674Toggle a minor mode which enables incremental search to work globally
3675on the entire multifile document. Files will be searched in th
3676sequence they appear in the document.
3677@end deffn
3678
3671@deffn Command reftex-goto-label 3679@deffn Command reftex-goto-label
3672Prompt for a label (with completion) and jump to the location of this 3680Prompt for a label (with completion) and jump to the location of this
3673label. Optional prefix argument @var{other-window} goes to the label in 3681label. Optional prefix argument @var{other-window} goes to the label in
diff --git a/src/ChangeLog b/src/ChangeLog
index e9a38a7d64c..3bb83dc10e2 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,38 @@
12005-01-28 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * keymap.c (access_keymap): YAILOM.
4
52005-01-27 Kim F. Storm <storm@cua.dk>
6
7 * xdisp.c (get_phys_cursor_geometry): New function to calculate
8 phys cursor position and size for hollow cursor. Position is
9 aligned with get_glyph_string_clip_rect and ensures that a hollow
10 cursor is shown, even when the actual glyph is not visible.
11
12 * dispextern.h (get_phys_cursor_geometry): Add prototype.
13
14 * xterm.c (x_clip_to_row): Ensure y >= 0.
15 (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
16
17 * w32term.c (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
18
19 * macterm.c (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
20
212005-01-27 Stefan Monnier <monnier@iro.umontreal.ca>
22
23 * xterm.c (x_error_quitter): Add a prototype. Make it static again.
24
252005-01-27 Kim F. Storm <storm@cua.dk>
26
27 * xdisp.c (get_glyph_string_clip_rect): Always show a cursor
28 glyph, even when row is only partially visible and actual cursor
29 position is not visible.
30
312005-01-24 Richard M. Stallman <rms@gnu.org>
32
33 * xterm.c (x_error_quitter): No longer static, and moved after
34 x_error_handler.
35
12005-01-24 Kim F. Storm <storm@cua.dk> 362005-01-24 Kim F. Storm <storm@cua.dk>
2 37
3 * xdisp.c (move_it_by_lines): If we move forward after going too 38 * xdisp.c (move_it_by_lines): If we move forward after going too
@@ -51,7 +86,7 @@
512005-01-22 Steven Tamm <steventamm@mac.com> 862005-01-22 Steven Tamm <steventamm@mac.com>
52 87
53 * s/darwin.h: Removed PTY_ITERATION from here. 88 * s/darwin.h: Removed PTY_ITERATION from here.
54 (DARWIN): Defined. 89 (DARWIN): Define.
55 * process.c (init_process): Default process-connection-type to 90 * process.c (init_process): Default process-connection-type to
56 nil on darwin 6 or less, t if it is 7 or higher. This way the 91 nil on darwin 6 or less, t if it is 7 or higher. This way the
57 broken pty behavior is still allowed on darwin 6 for interactive 92 broken pty behavior is still allowed on darwin 6 for interactive
@@ -94,17 +129,16 @@
94 129
952005-01-20 Steven Tamm <steventamm@mac.com> 1302005-01-20 Steven Tamm <steventamm@mac.com>
96 131
97 * editfns.c (Voperating_system_release): Added. 132 * editfns.c (Voperating_system_release): Add.
98 (init_editfns): Assign new variable operating-system-release 133 (init_editfns): Assign new variable operating-system-release
99 based on call to uname if available. 134 based on call to uname if available.
100 (get_operating_system_release): Added function to 135 (get_operating_system_release): Add function to
101 allow c-level access to operating system release. 136 allow c-level access to operating system release.
102 137
103 * config.h: Regenerated. 138 * config.h: Regenerated.
104 139
105 * s/darwin.h (PTY_ITERATION): Don't allow PTYs on darwin 6 or 140 * s/darwin.h (PTY_ITERATION): Don't allow PTYs on darwin 6 or less.
106 less. 141 (MIN_PTY_KERNEL_VERSION): Define minimum kernel version for
107 (MIN_PTY_KERNEL_VERSION): Defined minimum kernel version for
108 using ptys as '7'. 142 using ptys as '7'.
109 143
1102005-01-20 Kim F. Storm <storm@cua.dk> 1442005-01-20 Kim F. Storm <storm@cua.dk>
@@ -146,8 +180,8 @@
146 180
1472005-01-17 Kim F. Storm <storm@cua.dk> 1812005-01-17 Kim F. Storm <storm@cua.dk>
148 182
149 * dispnew.c (mode_line_string, marginal_area_string): Fix 183 * dispnew.c (mode_line_string, marginal_area_string):
150 off-by-one error in search for glyph. 184 Fix off-by-one error in search for glyph.
151 185
1522005-01-16 Kim F. Storm <storm@cua.dk> 1862005-01-16 Kim F. Storm <storm@cua.dk>
153 187
@@ -155,7 +189,7 @@
155 189
1562005-01-16 Steven Tamm <steventamm@mac.com> 1902005-01-16 Steven Tamm <steventamm@mac.com>
157 191
158 * macterm.c (mac_to_x_fontname): Removed spurious argument. 192 * macterm.c (mac_to_x_fontname): Remove spurious argument.
159 193
1602005-01-16 Andreas Schwab <schwab@suse.de> 1942005-01-16 Andreas Schwab <schwab@suse.de>
161 195
@@ -171,7 +205,7 @@
171 * keyboard.c (READABLE_EVENTS_DO_TIMERS_NOW) 205 * keyboard.c (READABLE_EVENTS_DO_TIMERS_NOW)
172 (READABLE_EVENTS_FILTER_EVENTS, READABLE_EVENTS_IGNORE_SQUEEZABLES): 206 (READABLE_EVENTS_FILTER_EVENTS, READABLE_EVENTS_IGNORE_SQUEEZABLES):
173 New flags for readable_events. 207 New flags for readable_events.
174 (get_filtered_input_pending, readable_filtered_events): Removed. 208 (get_filtered_input_pending, readable_filtered_events): Remove.
175 (tracking_off): Call readable_events and get_input_pending with 209 (tracking_off): Call readable_events and get_input_pending with
176 flag READABLE_EVENTS_DO_TIMERS_NOW. 210 flag READABLE_EVENTS_DO_TIMERS_NOW.
177 (readable_events): Move code from old readable_filtered_events here, 211 (readable_events): Move code from old readable_filtered_events here,
@@ -211,8 +245,8 @@
211 245
2122005-01-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 2462005-01-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
213 247
214 * macfns.c (x_set_foreground_color, x_set_background_color): Sync 248 * macfns.c (x_set_foreground_color, x_set_background_color):
215 with xfns.c. 249 Sync with xfns.c.
216 (mac_window, x_create_tip_frame): Use XSetWindowBackground. 250 (mac_window, x_create_tip_frame): Use XSetWindowBackground.
217 * macterm.c (XSetBackground, XSetWindowBackground): New functions. 251 * macterm.c (XSetBackground, XSetWindowBackground): New functions.
218 * macterm.h (XSetBackground, XSetWindowBackground): Add externs. 252 * macterm.h (XSetBackground, XSetWindowBackground): Add externs.
@@ -269,8 +303,8 @@
269 (get_next_display_element): Test Vshow_nonbreak_escape. 303 (get_next_display_element): Test Vshow_nonbreak_escape.
270 Do not setup escape_glyph_face. 304 Do not setup escape_glyph_face.
271 Properly merge escape-glyph face or face from display table with 305 Properly merge escape-glyph face or face from display table with
272 current face for escape and control characters. Set 306 current face for escape and control characters.
273 it->dpvec_face_id to relevant face id instead of adding it to each 307 Set it->dpvec_face_id to relevant face id instead of adding it to each
274 element of display vector. 308 element of display vector.
275 (next_element_from_display_vector): If it->dpvec_face_id is set, 309 (next_element_from_display_vector): If it->dpvec_face_id is set,
276 use that instead of lface_id from glyph itself. 310 use that instead of lface_id from glyph itself.
@@ -294,8 +328,7 @@
294 328
295 * gtkutil.c (xg_gtk_scroll_destroy, xg_create_scroll_bar) 329 * gtkutil.c (xg_gtk_scroll_destroy, xg_create_scroll_bar)
296 (xg_tool_bar_callback, xg_tool_bar_help_callback) 330 (xg_tool_bar_callback, xg_tool_bar_help_callback)
297 (update_frame_tool_bar): Cast to EMACS_INT to avoid compiler 331 (update_frame_tool_bar): Cast to EMACS_INT to avoid compiler warning.
298 warning.
299 332
300 * xselect.c (x_get_foreign_selection, x_fill_property_data) 333 * xselect.c (x_get_foreign_selection, x_fill_property_data)
301 (Fx_get_atom_name, Fx_send_client_event): Replace XFLOAT with 334 (Fx_get_atom_name, Fx_send_client_event): Replace XFLOAT with
@@ -353,8 +386,8 @@
353 [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Likewise. 386 [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Likewise.
354 [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Return error when a 387 [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Return error when a
355 file dialog is in action. 388 file dialog is in action.
356 [TARGET_API_MAC_CARBON] (mac_do_track_drag): Likewise. Reject 389 [TARGET_API_MAC_CARBON] (mac_do_track_drag): Likewise.
357 only when there are no filename items. Set background color 390 Reject only when there are no filename items. Set background color
358 before (un)highlighting the window below the dragged items. 391 before (un)highlighting the window below the dragged items.
359 (XTread_socket) [!USE_CARBON_EVENTS]: Don't call do_window_update. 392 (XTread_socket) [!USE_CARBON_EVENTS]: Don't call do_window_update.
360 393
@@ -438,8 +471,7 @@
438 471
439 * fileio.c (Finsert_file_contents): Don't use 472 * fileio.c (Finsert_file_contents): Don't use
440 current_buffer->buffer_file_coding_system even if REPLACE is 473 current_buffer->buffer_file_coding_system even if REPLACE is
441 non-nil. Call Qafter_insert_file_set_coding with the second arg 474 non-nil. Call Qafter_insert_file_set_coding with the second arg VISIT.
442 VISIT.
443 475
444 * fontset.h (struct font_info): New members space_width and 476 * fontset.h (struct font_info): New members space_width and
445 average_width. 477 average_width.
@@ -452,8 +484,7 @@
452 * xterm.c (x_new_font): Set FRAME_COLUMN_WIDTH to 484 * xterm.c (x_new_font): Set FRAME_COLUMN_WIDTH to
453 fontp->average_width, not FONT_WIDTH. Set FRAME_SPACE_WIDTH to 485 fontp->average_width, not FONT_WIDTH. Set FRAME_SPACE_WIDTH to
454 fontp->space_width. 486 fontp->space_width.
455 (x_load_font): Calculate fontp->space_width and 487 (x_load_font): Calculate fontp->space_width and fontp->average_width.
456 fontp->average_width.
457 (x_term_init): Initialize dpyinfo->Xatom_AVERAGE_WIDTH. 488 (x_term_init): Initialize dpyinfo->Xatom_AVERAGE_WIDTH.
458 489
459 * xdisp.c (x_produce_glyphs): Calculate tab width by 490 * xdisp.c (x_produce_glyphs): Calculate tab width by
@@ -462,8 +493,7 @@
4622004-12-29 Sanghyuk Suh <han9kin@mac.com> 4932004-12-29 Sanghyuk Suh <han9kin@mac.com>
463 494
464 * macterm.c (SelectionRange): Add Xcode position apple event struct. 495 * macterm.c (SelectionRange): Add Xcode position apple event struct.
465 (do_ae_open_documents): Handle Xcode-style file position open 496 (do_ae_open_documents): Handle Xcode-style file position open events.
466 events.
467 497
4682004-12-29 Luc Teirlinck <teirllm@auburn.edu> 4982004-12-29 Luc Teirlinck <teirllm@auburn.edu>
469 499
@@ -489,11 +519,16 @@
489 init_mac_drag_n_drop. 519 init_mac_drag_n_drop.
490 (mac_do_track_drag): New function and declaration. 520 (mac_do_track_drag): New function and declaration.
491 (install_window_handler): Return OSErr value. 521 (install_window_handler): Return OSErr value.
492 (install_window_handler) [TARGET_API_MAC_CARBON]: Register 522 (install_window_handler) [TARGET_API_MAC_CARBON]:
493 handlers for tracking/receiving drag-and-drop items. 523 Register handlers for tracking/receiving drag-and-drop items.
494 (do_ae_open_documents): Generate unibyte strings for filenames. 524 (do_ae_open_documents): Generate unibyte strings for filenames.
495 (mac_do_receive_drag) [TARGET_API_MAC_CARBON] : Likewise. Reject 525<<<<<<< ChangeLog
496 only non-filename items. Set event modifiers. Set return value. 526 (mac_do_receive_drag) [TARGET_API_MAC_CARBON] : Likewise.
527 Reject only non-filename items. Set event modifiers and return value.
528=======
529 (mac_do_receive_drag) [TARGET_API_MAC_CARBON] : Likewise.
530 Reject only non-filename items. Set event modifiers, and return value.
531>>>>>>> 1.4187
497 532
4982004-12-28 Dan Nicolaescu <dann@ics.uci.edu> 5332004-12-28 Dan Nicolaescu <dann@ics.uci.edu>
499 534
@@ -517,8 +552,8 @@
517 * xmenu.c (popup_get_selection): Only pop down dialogs 552 * xmenu.c (popup_get_selection): Only pop down dialogs
518 on C-g and Escape. 553 on C-g and Escape.
519 (popup_get_selection): Remove parameter down_on_keypress. 554 (popup_get_selection): Remove parameter down_on_keypress.
520 (create_and_show_popup_menu, create_and_show_dialog): Remove 555 (create_and_show_popup_menu, create_and_show_dialog):
521 parameter down_on_keypress to popup_get_selection. 556 Remove parameter down_on_keypress to popup_get_selection.
522 557
5232004-12-27 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 5582004-12-27 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
524 559
@@ -535,8 +570,8 @@
535 570
536 * frame.c (x_set_frame_parameters, x_report_frame_params) 571 * frame.c (x_set_frame_parameters, x_report_frame_params)
537 (x_set_fullscreen): Remove #ifndef HAVE_CARBON. 572 (x_set_fullscreen): Remove #ifndef HAVE_CARBON.
538 (x_set_border_width, Vdefault_frame_scroll_bars): Change 573 (x_set_border_width, Vdefault_frame_scroll_bars):
539 HAVE_CARBON to MAC_OS. 574 Change HAVE_CARBON to MAC_OS.
540 575
541 * image.c [MAC_OS]: Include sys/stat.h. 576 * image.c [MAC_OS]: Include sys/stat.h.
542 [MAC_OS && !MAC_OSX]: Include sys/param.h, ImageCompression.h, and 577 [MAC_OS && !MAC_OSX]: Include sys/param.h, ImageCompression.h, and
@@ -544,8 +579,7 @@
544 579
545 * mac.c [!MAC_OSX] (mac_wait_next_event): Add extern. 580 * mac.c [!MAC_OSX] (mac_wait_next_event): Add extern.
546 [!MAC_OSX] (select): Use mac_wait_next_event. 581 [!MAC_OSX] (select): Use mac_wait_next_event.
547 [!MAC_OSX] (run_mac_command): Change EXEC_SUFFIXES to 582 [!MAC_OSX] (run_mac_command): Change EXEC_SUFFIXES to Vexec_suffixes.
548 Vexec_suffixes.
549 [!MAC_OSX] (select, run_mac_command): Change `#ifdef 583 [!MAC_OSX] (select, run_mac_command): Change `#ifdef
550 TARGET_API_MAC_CARBON' to `#if TARGET_API_MAC_CARBON'. 584 TARGET_API_MAC_CARBON' to `#if TARGET_API_MAC_CARBON'.
551 (mac_clear_font_name_table): Add extern. 585 (mac_clear_font_name_table): Add extern.
@@ -564,21 +598,19 @@
564 * macfns.c (mac_initialized): Remove extern. 598 * macfns.c (mac_initialized): Remove extern.
565 (stricmp): Put in #if 0. All callers changed to use xstricmp in 599 (stricmp): Put in #if 0. All callers changed to use xstricmp in
566 xfaces.c. 600 xfaces.c.
567 (strnicmp): Decrement `n' at the end of each loop, not the 601 (strnicmp): Decrement `n' at the end of each loop, not the beginning.
568 beginning. 602 (check_mac): Use the term "Mac native windows" instead of "Mac OS".
569 (check_mac): Use the term "Mac native windows" instead of "Mac
570 OS".
571 (check_x_display_info, x_display_info_for_name): Sync with xfns.c. 603 (check_x_display_info, x_display_info_for_name): Sync with xfns.c.
572 (mac_get_rdb_resource): New function (from w32reg.c). 604 (mac_get_rdb_resource): New function (from w32reg.c).
573 (x_get_string_resource): Use it. 605 (x_get_string_resource): Use it.
574 (install_window_handler): Add extern. 606 (install_window_handler): Add extern.
575 (mac_window): New function. 607 (mac_window): New function.
576 (Fx_create_frame): Use it instead of make_mac_frame. Set 608 (Fx_create_frame): Use it instead of make_mac_frame.
577 parameter for Qfullscreen. Call x_wm_set_size_hint. 609 Set parameter for Qfullscreen. Call x_wm_set_size_hint.
578 (Fx_open_connection, Fx_close_connection): New defuns. 610 (Fx_open_connection, Fx_close_connection): New defuns.
579 (syms_of_macfns): Defsubr them. 611 (syms_of_macfns): Defsubr them.
580 (x_create_tip_frame) [TARGET_API_MAC_CARBON]: Add 612 (x_create_tip_frame) [TARGET_API_MAC_CARBON]:
581 kWindowNoUpdatesAttribute to the window attribute. 613 Add kWindowNoUpdatesAttribute to the window attribute.
582 (x_create_tip_frame) [!TARGET_API_MAC_CARBON]: Use NewCWindow. 614 (x_create_tip_frame) [!TARGET_API_MAC_CARBON]: Use NewCWindow.
583 (x_create_tip_frame): Don't call ShowWindow. 615 (x_create_tip_frame): Don't call ShowWindow.
584 (Fx_show_tip): Call ShowWindow. 616 (Fx_show_tip): Call ShowWindow.
@@ -587,8 +619,7 @@
587 (mac_frame_parm_handlers): Set handlers for Qfullscreen. 619 (mac_frame_parm_handlers): Set handlers for Qfullscreen.
588 (syms_of_macfns) [MAC_OSX]: Initialize mac_in_use to 0. 620 (syms_of_macfns) [MAC_OSX]: Initialize mac_in_use to 0.
589 621
590 * macgui.h [!MAC_OSX]: Don't include Controls.h. Include 622 * macgui.h [!MAC_OSX]: Don't include Controls.h. Include Windows.h.
591 Windows.h.
592 (Window): Typedef to WindowPtr and move outside `#if 623 (Window): Typedef to WindowPtr and move outside `#if
593 TARGET_API_MAC_CARBON'. 624 TARGET_API_MAC_CARBON'.
594 (XSizeHints): New struct. 625 (XSizeHints): New struct.
@@ -607,8 +638,12 @@
607 (x_make_frame_visible) [TARGET_API_MAC_CARBON]: Reposition window 638 (x_make_frame_visible) [TARGET_API_MAC_CARBON]: Reposition window
608 if the position is neither user-specified nor program-specified. 639 if the position is neither user-specified nor program-specified.
609 (x_free_frame_resources): Free size_hints. 640 (x_free_frame_resources): Free size_hints.
610 (x_wm_set_size_hint): Allocate size_hints if needed. Set 641<<<<<<< ChangeLog
611 size_hints. 642 (x_wm_set_size_hint): Allocate size_hints if needed.
643 Set size_hints.
644=======
645 (x_wm_set_size_hint): Allocate size_hints if needed. Set size_hints.
646>>>>>>> 1.4187
612 (mac_clear_font_name_table): New function. 647 (mac_clear_font_name_table): New function.
613 (mac_do_list_fonts): Initialize font_name_table if needed. 648 (mac_do_list_fonts): Initialize font_name_table if needed.
614 (x_list_fonts): Don't initialize font_name_table. Add BLOCK_INPUT 649 (x_list_fonts): Don't initialize font_name_table. Add BLOCK_INPUT
@@ -622,8 +657,7 @@
622 (do_window_update): Add BeginUpdate/EndUpdate for the tooltip 657 (do_window_update): Add BeginUpdate/EndUpdate for the tooltip
623 window. Use UpdateControls. Get the rectangle that should be 658 window. Use UpdateControls. Get the rectangle that should be
624 updated and restrict the target of expose_frame to it. 659 updated and restrict the target of expose_frame to it.
625 (do_grow_window): Set minimum height/width according to 660 (do_grow_window): Set minimum height/width according to size_hints.
626 size_hints.
627 (do_grow_window) [TARGET_API_MAC_CARBON]: Use ResizeWindow. 661 (do_grow_window) [TARGET_API_MAC_CARBON]: Use ResizeWindow.
628 (do_zoom_window): Don't use x_set_window_size. 662 (do_zoom_window): Don't use x_set_window_size.
629 [USE_CARBON_EVENTS] (mac_handle_window_event): New function. 663 [USE_CARBON_EVENTS] (mac_handle_window_event): New function.
@@ -635,10 +669,10 @@
635 (XTread_socket) [!USE_CARBON_EVENTS]: Use mac_wait_next_event. 669 (XTread_socket) [!USE_CARBON_EVENTS]: Use mac_wait_next_event.
636 Update mouse_region when mouse is moved. 670 Update mouse_region when mouse is moved.
637 (make_mac_frame): Remove. 671 (make_mac_frame): Remove.
638 (make_mac_terminal_frame): Put in #ifdef MAC_OS8. Initialize 672 (make_mac_terminal_frame): Put in #ifdef MAC_OS8.
639 mouse pointer shapes. Change values of f->left_pos and 673 Initialize mouse pointer shapes. Change values of f->left_pos and
640 f->top_pos. Don't use make_mac_frame. Use NewCWindow. Don't 674 f->top_pos. Don't use make_mac_frame. Use NewCWindow.
641 call ShowWindow. 675 Don't call ShowWindow.
642 (mac_initialize_display_info) [MAC_OSX]: Create mac_id_name from 676 (mac_initialize_display_info) [MAC_OSX]: Create mac_id_name from
643 Vinvocation_name and Vsystem_name. 677 Vinvocation_name and Vsystem_name.
644 (mac_make_rdb): New function (from w32term.c). 678 (mac_make_rdb): New function (from w32term.c).
@@ -661,17 +695,21 @@
661 695
6622004-12-27 Richard M. Stallman <rms@gnu.org> 6962004-12-27 Richard M. Stallman <rms@gnu.org>
663 697
664 * buffer.c (Fbuffer_disable_undo): Deleted (moved to simple.el). 698<<<<<<< ChangeLog
699 * buffer.c (Fbuffer_disable_undo): Delete (moved to simple.el).
700=======
701 * buffer.c (Fbuffer_disable_undo): Delete (move to simple.el).
702>>>>>>> 1.4187
665 (syms_of_buffer): Don't defsubr it. 703 (syms_of_buffer): Don't defsubr it.
666 704
667 * process.c (list_processes_1): Set undo_list instead 705 * process.c (list_processes_1): Set undo_list instead
668 of calling Fbuffer_disable_undo. 706 of calling Fbuffer_disable_undo.
669 707
670 * xdisp.c (single_display_spec_string_p): Renamed from 708 * xdisp.c (single_display_spec_string_p): Rename from
671 single_display_prop_string_p. 709 single_display_prop_string_p.
672 (single_display_spec_intangible_p): Renamed from 710 (single_display_spec_intangible_p): Rename from
673 single_display_prop_intangible_p. 711 single_display_prop_intangible_p.
674 (handle_single_display_spec): Renamed from handle_single_display_prop. 712 (handle_single_display_spec): Rename from handle_single_display_prop.
675 Rewritten to be easier to understand. 713 Rewritten to be easier to understand.
676 714
677 Change in load-history format. Functions now get (defun . NAME), 715 Change in load-history format. Functions now get (defun . NAME),
@@ -755,7 +793,7 @@
755 793
756 * alloc.c (Fgarbage_collect): Update call to truncate_undo_list. 794 * alloc.c (Fgarbage_collect): Update call to truncate_undo_list.
757 Call that at the very start. 795 Call that at the very start.
758 (undo_limit, undo_strong_limit, undo_outer_limit): Moved to undo.c. 796 (undo_limit, undo_strong_limit, undo_outer_limit): Move to undo.c.
759 (syms_of_alloc): Don't define undo-limit, 797 (syms_of_alloc): Don't define undo-limit,
760 undo-strong-limit and undo-outer-limit here. 798 undo-strong-limit and undo-outer-limit here.
761 799
@@ -790,8 +828,8 @@
790 828
7912004-12-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 8292004-12-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
792 830
793 * macterm.c (endif, x_font_name_to_mac_font_name): Use 831 * macterm.c (endif, x_font_name_to_mac_font_name):
794 maccentraleurroman instead of maccentraleuropean 832 Use maccentraleurroman instead of maccentraleuropean
795 (mac_c_string_match, mac_do_list_fonts): Speed up font search by 833 (mac_c_string_match, mac_do_list_fonts): Speed up font search by
796 quickly finding a specific font without needing regexps. 834 quickly finding a specific font without needing regexps.
797 835
@@ -817,8 +855,8 @@
817 855
818 * sysdep.c (select_alarm): Call SIGNAL_THREAD_CHECK. 856 * sysdep.c (select_alarm): Call SIGNAL_THREAD_CHECK.
819 857
820 * process.c (send_process_trap, sigchld_handler): Call 858 * process.c (send_process_trap, sigchld_handler):
821 SIGNAL_THREAD_CHECK. 859 Call SIGNAL_THREAD_CHECK.
822 860
823 * data.c (arith_error): Call SIGNAL_THREAD_CHECK. 861 * data.c (arith_error): Call SIGNAL_THREAD_CHECK.
824 862
@@ -908,7 +946,7 @@
908 946
909 * alloc.c: Add comment about the reason for (UN)BLOCK_INPUT_ALLOC. 947 * alloc.c: Add comment about the reason for (UN)BLOCK_INPUT_ALLOC.
910 948
9112004-12-07 Stefan <monnier@iro.umontreal.ca> 9492004-12-07 Stefan Monnier <monnier@iro.umontreal.ca>
912 950
913 * eval.c (init_eval_once): Increase max_specpdl_size to 1000. 951 * eval.c (init_eval_once): Increase max_specpdl_size to 1000.
914 952
@@ -2056,7 +2094,7 @@
2056 2094
2057 * window.c (Fspecial_display_p): Doc fix. 2095 * window.c (Fspecial_display_p): Doc fix.
2058 2096
20592004-10-15 Stefan <monnier@iro.umontreal.ca> 20972004-10-15 Stefan Monnier <monnier@iro.umontreal.ca>
2060 2098
2061 * doc.c (Fsubstitute_command_keys): Fix remap-handling. 2099 * doc.c (Fsubstitute_command_keys): Fix remap-handling.
2062 Don't ignore menus, because where-is-internal already does it for us. 2100 Don't ignore menus, because where-is-internal already does it for us.
diff --git a/src/dispextern.h b/src/dispextern.h
index ac56cdd31f2..5edc213fba1 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -2640,6 +2640,8 @@ extern void x_fix_overlapping_area P_ ((struct window *, struct glyph_row *,
2640extern void draw_phys_cursor_glyph P_ ((struct window *, 2640extern void draw_phys_cursor_glyph P_ ((struct window *,
2641 struct glyph_row *, 2641 struct glyph_row *,
2642 enum draw_glyphs_face)); 2642 enum draw_glyphs_face));
2643extern int get_phys_cursor_geometry P_ ((struct window *, struct glyph_row *,
2644 struct glyph *, int *));
2643extern void erase_phys_cursor P_ ((struct window *)); 2645extern void erase_phys_cursor P_ ((struct window *));
2644extern void display_and_set_cursor P_ ((struct window *, 2646extern void display_and_set_cursor P_ ((struct window *,
2645 int, int, int, int, int)); 2647 int, int, int, int, int));
diff --git a/src/keymap.c b/src/keymap.c
index 074cc1706bf..2977b4dec09 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -1,6 +1,6 @@
1/* Manipulation of keymaps 1/* Manipulation of keymaps
2 Copyright (C) 1985, 86,87,88,93,94,95,98,99, 2000, 01, 2004 2 Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1998, 1999, 2000,
3 Free Software Foundation, Inc. 3 2001, 2004, 2005 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -527,7 +527,7 @@ access_keymap (map, idx, t_ok, noinherit, autoload)
527 GCPRO1 (map); 527 GCPRO1 (map);
528 /* A strange value in which Meta is set would cause 528 /* A strange value in which Meta is set would cause
529 infinite recursion. Protect against that. */ 529 infinite recursion. Protect against that. */
530 if (meta_prefix_char & CHAR_META) 530 if (XINT (meta_prefix_char) & CHAR_META)
531 meta_prefix_char = make_number (27); 531 meta_prefix_char = make_number (27);
532 meta_map = get_keymap (access_keymap (map, meta_prefix_char, 532 meta_map = get_keymap (access_keymap (map, meta_prefix_char,
533 t_ok, noinherit, autoload), 533 t_ok, noinherit, autoload),
diff --git a/src/macterm.c b/src/macterm.c
index 9a1ee834ce5..aeed88013e5 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -4737,29 +4737,10 @@ x_draw_hollow_cursor (w, row)
4737 if (cursor_glyph == NULL) 4737 if (cursor_glyph == NULL)
4738 return; 4738 return;
4739 4739
4740 /* Compute the width of the rectangle to draw. If on a stretch 4740 /* Compute frame-relative coordinates for phys cursor. */
4741 glyph, and `x-stretch-block-cursor' is nil, don't draw a
4742 rectangle as wide as the glyph, but use a canonical character
4743 width instead. */
4744 wd = cursor_glyph->pixel_width - 1;
4745 if (cursor_glyph->type == STRETCH_GLYPH
4746 && !x_stretch_cursor_p)
4747 wd = min (FRAME_COLUMN_WIDTH (f), wd);
4748 w->phys_cursor_width = wd;
4749
4750 /* Compute frame-relative coordinates from window-relative
4751 coordinates. */
4752 x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x); 4741 x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x);
4753 y = WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y); 4742 y = get_phys_cursor_geometry (w, row, cursor_glyph, &h);
4754 4743 wd = w->phys_cursor_width;
4755 /* Compute the proper height and ascent of the rectangle, based
4756 on the actual glyph. Using the full height of the row looks
4757 bad when there are tall images on that row. */
4758 h = max (min (FRAME_LINE_HEIGHT (f), row->height),
4759 cursor_glyph->ascent + cursor_glyph->descent);
4760 if (h < row->height)
4761 y += row->ascent /* - w->phys_cursor_ascent */ + cursor_glyph->descent - h;
4762 h--;
4763 4744
4764 /* The foreground of cursor_gc is typically the same as the normal 4745 /* The foreground of cursor_gc is typically the same as the normal
4765 background color, which can cause the cursor box to be invisible. */ 4746 background color, which can cause the cursor box to be invisible. */
diff --git a/src/w32term.c b/src/w32term.c
index bffdd8f2565..151afb7e841 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -5088,7 +5088,7 @@ x_draw_hollow_cursor (w, row)
5088 struct frame *f = XFRAME (WINDOW_FRAME (w)); 5088 struct frame *f = XFRAME (WINDOW_FRAME (w));
5089 HDC hdc; 5089 HDC hdc;
5090 RECT rect; 5090 RECT rect;
5091 int wd, h; 5091 int h;
5092 struct glyph *cursor_glyph; 5092 struct glyph *cursor_glyph;
5093 HBRUSH hb = CreateSolidBrush (f->output_data.w32->cursor_pixel); 5093 HBRUSH hb = CreateSolidBrush (f->output_data.w32->cursor_pixel);
5094 5094
@@ -5098,34 +5098,12 @@ x_draw_hollow_cursor (w, row)
5098 if (cursor_glyph == NULL) 5098 if (cursor_glyph == NULL)
5099 return; 5099 return;
5100 5100
5101 /* Compute frame-relative coordinates from window-relative 5101 /* Compute frame-relative coordinates for phys cursor. */
5102 coordinates. */
5103 rect.left = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x); 5102 rect.left = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x);
5104 rect.top = (WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y) 5103 rect.top = get_phys_cursor_geometry (w, row, cursor_glyph, &h);
5105 + row->ascent - w->phys_cursor_ascent);
5106
5107 /* Compute the proper height and ascent of the rectangle, based
5108 on the actual glyph. Using the full height of the row looks
5109 bad when there are tall images on that row. */
5110 h = max (min (FRAME_LINE_HEIGHT (f), row->height),
5111 cursor_glyph->ascent + cursor_glyph->descent);
5112 if (h < row->height)
5113 rect.top += row->ascent /* - w->phys_cursor_ascent */ + cursor_glyph->descent - h;
5114 h--;
5115
5116 rect.bottom = rect.top + h; 5104 rect.bottom = rect.top + h;
5105 rect.right = rect.left + w->phys_cursor_width;
5117 5106
5118 /* Compute the width of the rectangle to draw. If on a stretch
5119 glyph, and `x-stretch-block-cursor' is nil, don't draw a
5120 rectangle as wide as the glyph, but use a canonical character
5121 width instead. */
5122 wd = cursor_glyph->pixel_width; /* TODO: Why off by one compared with X? */
5123 if (cursor_glyph->type == STRETCH_GLYPH
5124 && !x_stretch_cursor_p)
5125 wd = min (FRAME_COLUMN_WIDTH (f), wd);
5126 w->phys_cursor_width = wd;
5127
5128 rect.right = rect.left + wd;
5129 hdc = get_frame_dc (f); 5107 hdc = get_frame_dc (f);
5130 /* Set clipping, draw the rectangle, and reset clipping again. */ 5108 /* Set clipping, draw the rectangle, and reset clipping again. */
5131 w32_clip_to_row (w, row, TEXT_AREA, hdc); 5109 w32_clip_to_row (w, row, TEXT_AREA, hdc);
diff --git a/src/xdisp.c b/src/xdisp.c
index a8f36e04e38..7d7e510892b 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -1840,7 +1840,7 @@ get_glyph_string_clip_rect (s, nr)
1840 if (s->hl == DRAW_CURSOR) 1840 if (s->hl == DRAW_CURSOR)
1841 { 1841 {
1842 struct glyph *glyph = s->first_glyph; 1842 struct glyph *glyph = s->first_glyph;
1843 int height; 1843 int height, max_y;
1844 1844
1845 if (s->x > r.x) 1845 if (s->x > r.x)
1846 { 1846 {
@@ -1849,13 +1849,26 @@ get_glyph_string_clip_rect (s, nr)
1849 } 1849 }
1850 r.width = min (r.width, glyph->pixel_width); 1850 r.width = min (r.width, glyph->pixel_width);
1851 1851
1852 /* Don't draw cursor glyph taller than our actual glyph. */ 1852 /* If r.y is below window bottom, ensure that we still see a cursor. */
1853 height = max (FRAME_LINE_HEIGHT (s->f), glyph->ascent + glyph->descent); 1853 height = min (glyph->ascent + glyph->descent,
1854 if (height < r.height) 1854 min (FRAME_LINE_HEIGHT (s->f), s->row->visible_height));
1855 max_y = window_text_bottom_y (s->w) - height;
1856 max_y = WINDOW_TO_FRAME_PIXEL_Y (s->w, max_y);
1857 if (s->ybase - glyph->ascent > max_y)
1855 { 1858 {
1856 int max_y = r.y + r.height; 1859 r.y = max_y;
1857 r.y = min (max_y, s->ybase + glyph->descent - height); 1860 r.height = height;
1858 r.height = min (max_y - r.y, height); 1861 }
1862 else
1863 {
1864 /* Don't draw cursor glyph taller than our actual glyph. */
1865 height = max (FRAME_LINE_HEIGHT (s->f), glyph->ascent + glyph->descent);
1866 if (height < r.height)
1867 {
1868 max_y = r.y + r.height;
1869 r.y = min (max_y, max (r.y, s->ybase + glyph->descent - height));
1870 r.height = min (max_y - r.y, height);
1871 }
1859 } 1872 }
1860 } 1873 }
1861 1874
@@ -1866,6 +1879,64 @@ get_glyph_string_clip_rect (s, nr)
1866#endif 1879#endif
1867} 1880}
1868 1881
1882
1883/* EXPORT:
1884 Return the position and height of the phys cursor in window W.
1885 Set w->phys_cursor_width to width of phys cursor.
1886*/
1887
1888int
1889get_phys_cursor_geometry (w, row, glyph, heightp)
1890 struct window *w;
1891 struct glyph_row *row;
1892 struct glyph *glyph;
1893 int *heightp;
1894{
1895 struct frame *f = XFRAME (WINDOW_FRAME (w));
1896 int x, y, wd, h, h0, y0;
1897
1898 /* Compute the width of the rectangle to draw. If on a stretch
1899 glyph, and `x-stretch-block-cursor' is nil, don't draw a
1900 rectangle as wide as the glyph, but use a canonical character
1901 width instead. */
1902 wd = glyph->pixel_width - 1;
1903#ifdef HAVE_NTGUI
1904 wd++; /* Why? */
1905#endif
1906 if (glyph->type == STRETCH_GLYPH
1907 && !x_stretch_cursor_p)
1908 wd = min (FRAME_COLUMN_WIDTH (f), wd);
1909 w->phys_cursor_width = wd;
1910
1911 y = w->phys_cursor.y + row->ascent - glyph->ascent;
1912
1913 /* If y is below window bottom, ensure that we still see a cursor. */
1914 h0 = min (FRAME_LINE_HEIGHT (f), row->visible_height);
1915
1916 h = max (h0, glyph->ascent + glyph->descent);
1917 h0 = min (h0, glyph->ascent + glyph->descent);
1918
1919 y0 = WINDOW_HEADER_LINE_HEIGHT (w);
1920 if (y < y0)
1921 {
1922 h = max (h - (y0 - y) + 1, h0);
1923 y = y0 - 1;
1924 }
1925 else
1926 {
1927 y0 = window_text_bottom_y (w) - h0;
1928 if (y > y0)
1929 {
1930 h += y - y0;
1931 y = y0;
1932 }
1933 }
1934
1935 *heightp = h - 1;
1936 return WINDOW_TO_FRAME_PIXEL_Y (w, y);
1937}
1938
1939
1869#endif /* HAVE_WINDOW_SYSTEM */ 1940#endif /* HAVE_WINDOW_SYSTEM */
1870 1941
1871 1942
diff --git a/src/xterm.c b/src/xterm.c
index a68725a463c..c54b96a19b7 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -1,6 +1,6 @@
1/* X Communication module for terminals which understand the X protocol. 1/* X Communication module for terminals which understand the X protocol.
2 Copyright (C) 1989, 93, 94, 95, 96, 97, 98, 1999, 2000,01,02,03,04 2 Copyright (C) 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
3 Free Software Foundation, Inc. 3 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -7157,7 +7157,7 @@ x_clip_to_row (w, row, area, gc)
7157 window_box (w, area, &window_x, &window_y, &window_width, 0); 7157 window_box (w, area, &window_x, &window_y, &window_width, 0);
7158 7158
7159 clip_rect.x = window_x; 7159 clip_rect.x = window_x;
7160 clip_rect.y = WINDOW_TO_FRAME_PIXEL_Y (w, row->y); 7160 clip_rect.y = WINDOW_TO_FRAME_PIXEL_Y (w, max (0, row->y));
7161 clip_rect.y = max (clip_rect.y, window_y); 7161 clip_rect.y = max (clip_rect.y, window_y);
7162 clip_rect.width = window_width; 7162 clip_rect.width = window_width;
7163 clip_rect.height = row->visible_height; 7163 clip_rect.height = row->visible_height;
@@ -7187,29 +7187,10 @@ x_draw_hollow_cursor (w, row)
7187 if (cursor_glyph == NULL) 7187 if (cursor_glyph == NULL)
7188 return; 7188 return;
7189 7189
7190 /* Compute the width of the rectangle to draw. If on a stretch 7190 /* Compute frame-relative coordinates for phys cursor. */
7191 glyph, and `x-stretch-block-cursor' is nil, don't draw a
7192 rectangle as wide as the glyph, but use a canonical character
7193 width instead. */
7194 wd = cursor_glyph->pixel_width - 1;
7195 if (cursor_glyph->type == STRETCH_GLYPH
7196 && !x_stretch_cursor_p)
7197 wd = min (FRAME_COLUMN_WIDTH (f), wd);
7198 w->phys_cursor_width = wd;
7199
7200 /* Compute frame-relative coordinates from window-relative
7201 coordinates. */
7202 x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x); 7191 x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x);
7203 y = WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y); 7192 y = get_phys_cursor_geometry (w, row, cursor_glyph, &h);
7204 7193 wd = w->phys_cursor_width;
7205 /* Compute the proper height and ascent of the rectangle, based
7206 on the actual glyph. Using the full height of the row looks
7207 bad when there are tall images on that row. */
7208 h = max (min (FRAME_LINE_HEIGHT (f), row->height),
7209 cursor_glyph->ascent + cursor_glyph->descent);
7210 if (h < row->height)
7211 y += row->ascent /* - w->phys_cursor_ascent */ + cursor_glyph->descent - h;
7212 h--;
7213 7194
7214 /* The foreground of cursor_gc is typically the same as the normal 7195 /* The foreground of cursor_gc is typically the same as the normal
7215 background color, which can cause the cursor box to be invisible. */ 7196 background color, which can cause the cursor box to be invisible. */
@@ -7773,11 +7754,32 @@ x_connection_closed (dpy, error_message)
7773 error ("%s", error_msg); 7754 error ("%s", error_msg);
7774} 7755}
7775 7756
7757/* We specifically use it before defining it, so that gcc doesn't inline it,
7758 otherwise gdb doesn't know how to properly put a breakpoint on it. */
7759static void x_error_quitter (Display *display, XErrorEvent *error);
7760
7761/* This is the first-level handler for X protocol errors.
7762 It calls x_error_quitter or x_error_catcher. */
7763
7764static int
7765x_error_handler (display, error)
7766 Display *display;
7767 XErrorEvent *error;
7768{
7769 if (! NILP (x_error_message_string))
7770 x_error_catcher (display, error);
7771 else
7772 x_error_quitter (display, error);
7773 return 0;
7774}
7776 7775
7777/* This is the usual handler for X protocol errors. 7776/* This is the usual handler for X protocol errors.
7778 It kills all frames on the display that we got the error for. 7777 It kills all frames on the display that we got the error for.
7779 If that was the only one, it prints an error message and kills Emacs. */ 7778 If that was the only one, it prints an error message and kills Emacs. */
7780 7779
7780/* It is after x_error_handler so that it won't get inlined in
7781 x_error_handler. */
7782
7781static void 7783static void
7782x_error_quitter (display, error) 7784x_error_quitter (display, error)
7783 Display *display; 7785 Display *display;
@@ -7795,21 +7797,6 @@ x_error_quitter (display, error)
7795} 7797}
7796 7798
7797 7799
7798/* This is the first-level handler for X protocol errors.
7799 It calls x_error_quitter or x_error_catcher. */
7800
7801static int
7802x_error_handler (display, error)
7803 Display *display;
7804 XErrorEvent *error;
7805{
7806 if (! NILP (x_error_message_string))
7807 x_error_catcher (display, error);
7808 else
7809 x_error_quitter (display, error);
7810 return 0;
7811}
7812
7813/* This is the handler for X IO errors, always. 7800/* This is the handler for X IO errors, always.
7814 It kills all frames on the display that we lost touch with. 7801 It kills all frames on the display that we lost touch with.
7815 If that was the only one, it prints an error message and kills Emacs. */ 7802 If that was the only one, it prints an error message and kills Emacs. */