summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>2005-01-29 00:06:24 +0000
committerMiles Bader <miles@gnu.org>2005-01-29 00:06:24 +0000
commit5f85994ad17fbe952504bfafb49fbef4ded186af (patch)
tree33522e4a7a8ddc7c7efa704bd6264f9722ad4ce8
parent87795686a9e8ea51ec492d01d7dce4698b14f3af (diff)
parentaba1948af5107ad44c467e4f97792af5ce75a7d7 (diff)
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 d6d9060dbf..22d36fe42f 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -4,9 +4,6 @@ Tasks needed before the next release.
** Face remapping.
-** Make Rmail find the best version of movemail.
-To be done by Sergey Poznyakoff <gray@Mirddin.farlep.net>.
-
** Make VC-over-Tramp work where possible, or at least fail
gracefully if something isn't supported over Tramp.
To be done by Andre Spiegel <spiegel@gnu.org>.
@@ -14,6 +11,8 @@ To be done by Andre Spiegel <spiegel@gnu.org>.
** define-minor-mode should not put :require into defcustom.
See msg from rms to emacs-devel on 21 Dec.
+** Update Speedbar.
+
* FATAL ERRORS
** Investigate face cache related crash.
@@ -184,7 +183,7 @@ man/anti.texi
man/basic.texi "Luc Teirlinck"
man/buffers.texi "Luc Teirlinck"
man/building.texi "Ted Zlatanov" <tzz@lifelogs.com>
-man/calendar.texi
+man/calendar.texi Joakim Verona <joakim@verona.se>
man/cmdargs.texi
man/commands.texi "Luc Teirlinck"
man/custom.texi
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index c70fd38ecd..6a70d138b0 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,65 @@
+2005-01-29 Nick Roberts <nickrob@snap.net.nz>
+
+ * progmodes/gdb-ui.el (gdb-info-breakpoints-custom)
+ (gdb-goto-breakpoint): Make breakpoint handling work on template
+ functions in C++. Reported by Martin Reed <mjreed@essex.ac.uk>
+
+2005-01-28 Eli Zaretskii <eliz@gnu.org>
+
+ * descr-text.el: Add more keywords.
+
+2005-01-27 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * speedbar.el: Avoid unnecessary use of locate-library.
+
+ * international/mule-cmds.el (standard-display-european-internal):
+ Don't fiddle with latin-1 non-break space any more since it's now
+ special cased in the C code.
+ Don't "do&undo" setting for 160 (especially, don't undo incorrectly).
+
+2005-01-26 Luc Teirlinck <teirllm@auburn.edu>
+
+ * cus-start.el (all): Add `undo-outer-limit'.
+
+2005-01-25 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
+
+ * textmodes/bibtex.el (bibtex-format-entry):
+ Use `bibtex-empty-field-re' only on the text of fields, not on entire
+ field lines.
+ (bibtex-autofill-entry): Use `bibtex-empty-field-re' on a string,
+ not on part of a buffer.
+
+2005-01-25 Lute Kamstra <lute@gnu.org>
+
+ * textmodes/bibtex.el (bibtex-empty-field-re): Don't match
+ nonempty field text strings like "{letters\\macro{}more letters}".
+ Clarify docstring.
+ (bibtex-sort-entry-class, bibtex-autokey-titleword-ignore)
+ (bibtex-entry-offset, bibtex-parse-association)
+ (bibtex-parse-field-name): Fix typos in docstrings.
+ (bibtex-field-list, bibtex-find-crossref): Fix typos in error messages.
+
+2005-01-24 Carsten Dominik <dominik@science.uva.nl>
+
+ * textmodes/reftex-global.el (reftex-isearch-push-state-function)
+ (reftex-isearch-pop-state-function, reftex-isearch-isearch-search)
+ (reftex-isearch-switch-to-next-file, reftex-isearch-turn-off)
+ (reftex-isearch-turn-on, reftex-isearch-minor-mode): New functions.
+
+ * textmodes/reftex.el (reftex-mode-menu): Add entry for reftex
+ isearch minor mode.
+
+2005-01-24 Luc Teirlinck <teirllm@auburn.edu>
+
+ * help-at-pt.el (help-at-pt-display-when-idle): Add autoload cookie.
+
+2005-01-24 Lute Kamstra <lute@gnu.org>
+
+ * textmodes/ispell.el (ispell-dictionary-alist-4): Rewrite the
+ CASECHARS and NOT-CASECHARS regular expressions of the
+ "nederlands" and "nederlands8" dictionaries to prevent a "Range
+ striding over charsets" error.
+
2005-01-24 Jay Belanger <belanger@truman.edu>
* calc/calc-store.el (calc-declare-variable): Use calc-var-name to
@@ -76,7 +138,7 @@
2005-01-20 Steven Tamm <steventamm@mac.com>
- * term/mac-win.el (process-connection-type): Removed.
+ * term/mac-win.el (process-connection-type): Remove.
Controlled now by s/darwin.h:PTY_ITERATION.
2005-01-20 Stefan Monnier <monnier@iro.umontreal.ca>
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 8a60163181..989a9f1684 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -1,6 +1,7 @@
;;; cus-edit.el --- tools for customizing Emacs and Lisp packages
;;
-;; Copyright (C) 1996,97,1999,2000,01,02,03,2004 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;;
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Maintainer: FSF
@@ -898,8 +899,6 @@ then prompt for the MODE to customize."
(let (
;; Copied from `custom-buffer-create-other-window'.
(pop-up-windows t)
- (special-display-buffer-names nil)
- (special-display-regexps nil)
(same-window-buffer-names nil)
(same-window-regexps nil))
(pop-to-buffer name))
@@ -1246,8 +1245,6 @@ SYMBOL is a customization option, and WIDGET is a widget for editing
that option."
(unless name (setq name "*Customization*"))
(let ((pop-up-windows t)
- (special-display-buffer-names nil)
- (special-display-regexps nil)
(same-window-buffer-names nil)
(same-window-regexps nil))
(pop-to-buffer (custom-get-fresh-buffer name))
@@ -4072,23 +4069,23 @@ The format is suitable for use with `easy-menu-define'."
;;; The Custom Mode.
-(defvar custom-mode-map nil
- "Keymap for `custom-mode'.")
-
-(unless custom-mode-map
+(defvar custom-mode-map
;; This keymap should be dense, but a dense keymap would prevent inheriting
;; "\r" bindings from the parent map.
- (setq custom-mode-map (make-sparse-keymap))
- (set-keymap-parent custom-mode-map widget-keymap)
- (suppress-keymap custom-mode-map)
- (define-key custom-mode-map " " 'scroll-up)
- (define-key custom-mode-map "\177" 'scroll-down)
- (define-key custom-mode-map "\C-x\C-s" 'Custom-save)
- (define-key custom-mode-map "q" 'Custom-buffer-done)
- (define-key custom-mode-map "u" 'Custom-goto-parent)
- (define-key custom-mode-map "n" 'widget-forward)
- (define-key custom-mode-map "p" 'widget-backward)
- (define-key custom-mode-map [mouse-1] 'Custom-move-and-invoke))
+ ;; Actually, this misfeature of dense keymaps was fixed on 2001-11-26.
+ (let ((map (make-keymap)))
+ (set-keymap-parent map widget-keymap)
+ (suppress-keymap map)
+ (define-key map " " 'scroll-up)
+ (define-key map "\177" 'scroll-down)
+ (define-key map "\C-x\C-s" 'Custom-save)
+ (define-key map "q" 'Custom-buffer-done)
+ (define-key map "u" 'Custom-goto-parent)
+ (define-key map "n" 'widget-forward)
+ (define-key map "p" 'widget-backward)
+ (define-key map [mouse-1] 'Custom-move-and-invoke)
+ map)
+ "Keymap for `custom-mode'.")
(defun Custom-move-and-invoke (event)
"Move to where you click, and if it is an active field, invoke it."
@@ -4187,5 +4184,5 @@ if that value is non-nil."
(provide 'cus-edit)
-;;; arch-tag: 64533aa4-1b1a-48c3-8812-f9dc718e8a6f
+;; arch-tag: 64533aa4-1b1a-48c3-8812-f9dc718e8a6f
;;; cus-edit.el ends here
diff --git a/lisp/cus-start.el b/lisp/cus-start.el
index 607c1cfd01..a7df119e49 100644
--- a/lisp/cus-start.el
+++ b/lisp/cus-start.el
@@ -41,6 +41,17 @@
(gc-cons-threshold alloc integer)
(undo-limit undo integer)
(undo-strong-limit undo integer)
+ (undo-outer-limit undo
+ (choice integer
+ (const :tag "No limit"
+ :format "%t\n%d"
+ :doc
+ "With this choice, \
+the undo info for the current command never gets discarded.
+This should only be chosen under exceptional circumstances,
+since it could result in memory overflow and make Emacs crash."
+ nil))
+ "21.4")
(garbage-collection-messages alloc boolean)
;; buffer.c
(mode-line-format modeline sexp) ;Hard to do right.
diff --git a/lisp/descr-text.el b/lisp/descr-text.el
index 4b41c2501e..d7079bcf44 100644
--- a/lisp/descr-text.el
+++ b/lisp/descr-text.el
@@ -1,10 +1,10 @@
;;; descr-text.el --- describe text mode
-;; Copyright (c) 1994, 1995, 1996, 2001, 2002, 2003, 2004
+;; Copyright (c) 1994, 1995, 1996, 2001, 2002, 2003, 2004, 2005
;; Free Software Foundation, Inc.
;; Author: Boris Goldowsky <boris@gnu.org>
-;; Keywords: faces
+;; Keywords: faces, i18n, Unicode, multilingual
;; This file is part of GNU Emacs.
@@ -217,7 +217,7 @@ otherwise."
(defcustom describe-char-unicodedata-file nil
"Location of Unicode data file.
This is the UnicodeData.txt file from the Unicode consortium, used for
-diagnostics. If it is non-nil `describe-char-after' will print data
+diagnostics. If it is non-nil `describe-char' will print data
looked up from it. This facility is mostly of use to people doing
multilingual development.
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index f181f3683f..86c3ac1bab 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -1,6 +1,6 @@
;;; lisp-mode.el --- Lisp mode, and its idiosyncratic commands
-;; Copyright (C) 1985, 1986, 1999, 2000, 2001, 2003, 2004
+;; Copyright (C) 1985, 1986, 1999, 2000, 2001, 2003, 2004, 2005
;; Free Software Foundation, Inc.
;; Maintainer: FSF
@@ -602,7 +602,7 @@ Reinitialize the face according to the `defface' specification."
(boundp (cadr form)))
;; Force variable to be re-set.
`(progn (defvar ,(nth 1 form) nil ,@(nthcdr 3 form))
- (setq ,(nth 1 form) ,(nth 2 form))))
+ (setq-default ,(nth 1 form) ,(nth 2 form))))
;; `defcustom' is now macroexpanded to
;; `custom-declare-variable' with a quoted value arg.
((and (eq (car form) 'custom-declare-variable)
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 77a600427e..2fbab6bea5 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,24 @@
+2005-01-28 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * message.el (message-beginning-of-line): Change the behavior when
+ invoked between BOL and : so that it first moves backward.
+
+2005-01-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus-art.el (gnus-article-setup-buffer): Kill and re-create the
+ article buffer when editing of the article is discarded.
+ (gnus-article-prepare): Revert.
+
+2005-01-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus-art.el (gnus-article-prepare): Remove
+ message-strip-forbidden-properties from the local hook.
+
+2005-01-24 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * mml.el (mml-generate-mime-1): Convert string into unibyte when
+ inserting " *mml*" buffer's contents into a unibyte temp buffer.
+
2005-01-20 Katsumi Yamaoka <yamaoka@jpl.org>
* mm-decode.el (mm-insert-part): Switch the multibyteness of data
@@ -14,8 +35,7 @@
* mm-bodies.el (mm-body-encoding): Don't permit 7-bit to be used
when mm-use-ultra-safe-encoding is enabled (e.g., for PGP/MIME)
- and we have trailing white space. Reported by Werner Koch
- <wk@gnupg.org>.
+ and we have trailing white space. Reported by Werner Koch <wk@gnupg.org>.
2004-12-17 Kim F. Storm <storm@cua.dk>
@@ -58,8 +78,8 @@
2004-12-13 Katsumi Yamaoka <yamaoka@jpl.org>
- * gnus-group.el (gnus-group-make-rss-group): Use
- gnus-group-make-group instead of gnus-group-unsubscribe-group.
+ * gnus-group.el (gnus-group-make-rss-group):
+ Use gnus-group-make-group instead of gnus-group-unsubscribe-group.
* gnus-start.el (gnus-setup-news): Honor user's setting to
gnus-message-archive-method. Suggested by Lute Kamstra
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 7450fee69e..8a81176a5f 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -1,5 +1,5 @@
;;; gnus-art.el --- article mode commands for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
;; Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -3743,14 +3743,19 @@ commands:
(mm-enable-multibyte)
(setq major-mode 'gnus-original-article-mode)
(make-local-variable 'gnus-original-article))
- (if (get-buffer name)
+ (if (and (get-buffer name)
+ (with-current-buffer name
+ (if gnus-article-edit-mode
+ (if (y-or-n-p "Article mode edit in progress; discard? ")
+ (progn
+ (set-buffer-modified-p nil)
+ (gnus-kill-buffer name)
+ (message "")
+ nil)
+ (error "Action aborted"))
+ t)))
(save-excursion
(set-buffer name)
- (when (and gnus-article-edit-mode
- (buffer-modified-p)
- (not
- (y-or-n-p "Article mode edit in progress; discard? ")))
- (error "Action aborted"))
(set (make-local-variable 'gnus-article-edit-mode) nil)
(when gnus-article-mime-handles
(mm-destroy-parts gnus-article-mime-handles)
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 113547741c..d88fd54b14 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -1,5 +1,5 @@
;;; message.el --- composing mail and news messages
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
;; Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -800,7 +800,7 @@ variable isn't used."
;; is nil. See: http://article.gmane.org/gmane.emacs.gnus.general/51138
(defcustom message-generate-headers-first '(references)
"Which headers should be generated before starting to compose a message.
-If `t', generate all required headers. This can also be a list of headers to
+If t, generate all required headers. This can also be a list of headers to
generate. The variables `message-required-news-headers' and
`message-required-mail-headers' specify which headers to generate.
@@ -5295,10 +5295,10 @@ outside the message header or if the option `message-beginning-of-line'
is nil.
If point is in the message header and on a (non-continued) header
-line, move point to the beginning of the header value. If point
-is already there, move point to beginning of line. Therefore,
-repeated calls will toggle point between beginning of field and
-beginning of line."
+line, move point to the beginning of the header value or the beginning of line,
+whichever is closer. If point is already at beginning of line, move point to
+beginning of header value. Therefore, repeated calls will toggle point
+between beginning of field and beginning of line."
(interactive "p")
(let ((zrs 'zmacs-region-stays))
(when (and (interactive-p) (boundp zrs))
@@ -5309,9 +5309,9 @@ beginning of line."
(bol (progn (beginning-of-line n) (point)))
(eol (gnus-point-at-eol))
(eoh (re-search-forward ": *" eol t)))
- (if (or (not eoh) (equal here eoh))
- (goto-char bol)
- (goto-char eoh)))
+ (goto-char
+ (if (and eoh (or (< eoh here) (= bol here)))
+ eoh bol)))
(beginning-of-line n)))
(defun message-buffer-name (type &optional to group)
@@ -6880,5 +6880,5 @@ regexp VARSTR."
;; coding: iso-8859-1
;; End:
-;;; arch-tag: 94b32cac-4504-4b6c-8181-030ebf380ee0
+;; arch-tag: 94b32cac-4504-4b6c-8181-030ebf380ee0
;;; message.el ends here
diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el
index d88f631815..c4c4ccdbd8 100644
--- a/lisp/gnus/mml.el
+++ b/lisp/gnus/mml.el
@@ -1,5 +1,5 @@
;;; mml.el --- A package for parsing and validating MML documents
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
;; Free Software Foundation, Inc.
;; 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."
(mm-with-unibyte-buffer
(cond
((cdr (assq 'buffer cont))
- (insert-buffer-substring (cdr (assq 'buffer cont))))
+ (insert (with-current-buffer (cdr (assq 'buffer cont))
+ (mm-with-unibyte-current-buffer
+ (buffer-string)))))
((and (setq filename (cdr (assq 'filename cont)))
(not (equal (cdr (assq 'nofile cont)) "yes")))
(let ((coding-system-for-read mm-binary-coding-system))
diff --git a/lisp/help-at-pt.el b/lisp/help-at-pt.el
index 2266c8d5a2..53af1bdd57 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."
(run-with-idle-timer
help-at-pt-timer-delay t #'help-at-pt-maybe-display))))
+;;;###autoload
(defcustom help-at-pt-display-when-idle 'never
"*Automatically show local help on point-over.
If 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 3de363a596..573481d71d 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -1,6 +1,6 @@
;;; mule-cmds.el --- commands for mulitilingual environment -*-coding: iso-2022-7bit -*-
-;; Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Copyright (C) 1995, 2003 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; Copyright (C) 2003
@@ -1839,12 +1839,14 @@ Setting this variable directly does not take effect. See
;; different there.
(or (and (eq window-system 'pc) (not default-enable-multibyte-characters))
(progn
- ;; Make non-line-break space display as a plain space.
- ;; Most X fonts do the wrong thing for code 160.
- (aset standard-display-table 160 [32])
- ;; With luck, non-Latin-1 fonts are more recent and so don't
- ;; have this bug.
- (aset standard-display-table (make-char 'latin-iso8859-1 160) [32])
+ ;; Most X fonts used to do the wrong thing for latin-1 code 160.
+ (unless (and (eq window-system 'x)
+ ;; XFree86 4 has fixed the fonts.
+ (string= "The XFree86 Project, Inc" (x-server-vendor))
+ (> (aref (number-to-string (nth 2 (x-server-version))) 0)
+ ?3))
+ ;; Make non-line-break space display as a plain space.
+ (aset standard-display-table 160 [32]))
;; Most Windows programs send out apostrophes as \222. Most X fonts
;; don't contain a character at that position. Map it to the ASCII
;; apostrophe. [This is actually RIGHT SINGLE QUOTATION MARK,
@@ -1852,23 +1854,7 @@ Setting this variable directly does not take effect. See
;; fonts probably have the appropriate glyph at this position,
;; so they could use standard-display-8bit. It's better to use a
;; proper windows-1252 coding system. --fx]
- (aset standard-display-table 146 [39])
- ;; XFree86 4 has changed most of the fonts from their designed
- ;; versions such that `' no longer appears as balanced quotes.
- ;; Assume it has iso10646 fonts installed, so we can display
- ;; balanced quotes.
- (when (and (eq window-system 'x)
- (string= "The XFree86 Project, Inc" (x-server-vendor))
- (> (aref (number-to-string (nth 2 (x-server-version))) 0)
- ?3))
- ;; We suppress these setting for the moment because the
- ;; above assumption is wrong.
- ;; (aset standard-display-table ?' [?,F"(B])
- ;; (aset standard-display-table ?` [?,F!(B])
- ;; The fonts don't have the relevant bug.
- (aset standard-display-table 160 nil)
- (aset standard-display-table (make-char 'latin-iso8859-1 160)
- nil)))))
+ (aset standard-display-table 146 [39]))))
(defun set-language-environment-coding-systems (language-name
&optional eol-type)
@@ -1924,8 +1910,7 @@ of `buffer-file-coding-system' set by this function."
(setq language-name (symbol-name language-name)))
(dolist (feature (get-language-info language-name 'features))
(require feature))
- (let ((doc (get-language-info language-name 'documentation))
- pos)
+ (let ((doc (get-language-info language-name 'documentation)))
(help-setup-xref (list #'describe-language-environment language-name)
(interactive-p))
(with-output-to-temp-buffer (help-buffer)
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index 1827589387..a89f4b1694 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -1143,7 +1143,7 @@ static char *magick[] = {
(setq bptno (match-string 1))
(setq flag (char-after (match-beginning 2)))
(beginning-of-line)
- (if (re-search-forward "in\\s-+\\S-+\\s-+at\\s-+" nil t)
+ (if (re-search-forward "in.*at\\s-+" nil t)
(progn
(looking-at "\\(\\S-+\\):\\([0-9]+\\)")
(let ((line (match-string 2)) (buffer-read-only nil)
@@ -1298,7 +1298,7 @@ static char *magick[] = {
(save-excursion
(beginning-of-line 1)
(if (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
- (looking-at ".*in\\s-+\\S-+\\s-+at\\s-+\\(\\S-*\\):\\([0-9]+\\)")
+ (looking-at ".*in.*at\\s-+\\(\\S-*\\):\\([0-9]+\\)")
(looking-at
"[0-9]+\\s-*\\S-*\\s-*\\S-*\\s-*.\\s-*\\S-*\\s-*\\(\\S-*\\):\\([0-9]+\\)"))
(let ((line (match-string 2))
diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el
index 13dd790b6a..bf0f18d5bb 100644
--- a/lisp/progmodes/scheme.el
+++ b/lisp/progmodes/scheme.el
@@ -1,6 +1,7 @@
;;; scheme.el --- Scheme (and DSSSL) editing mode
-;; Copyright (C) 1986, 87, 88, 97, 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1987, 1988, 1997, 1998, 2005
+;; Free Software Foundation, Inc.
;; Author: Bill Rozas <jinx@martigny.ai.mit.edu>
;; Adapted-by: Dave Love <d.love@dl.ac.uk>
@@ -144,6 +145,7 @@
(setq outline-regexp ";;; \\|(....")
(make-local-variable 'comment-start)
(setq comment-start ";")
+ (set (make-local-variable 'comment-add) 1)
(make-local-variable 'comment-start-skip)
;; Look within the line for a ; following an even number of backslashes
;; after either a non-backslash or the line beginning.
@@ -171,17 +173,11 @@
(defvar scheme-mode-line-process "")
-(defvar scheme-mode-map nil
- "Keymap for Scheme mode.
-All commands in `lisp-mode-shared-map' are inherited by this map.")
-
-(unless scheme-mode-map
- (let ((map (make-sparse-keymap "Scheme")))
- (setq scheme-mode-map (make-sparse-keymap))
- (set-keymap-parent scheme-mode-map lisp-mode-shared-map)
- (define-key scheme-mode-map [menu-bar] (make-sparse-keymap))
- (define-key scheme-mode-map [menu-bar scheme]
- (cons "Scheme" map))
+(defvar scheme-mode-map
+ (let ((smap (make-sparse-keymap))
+ (map (make-sparse-keymap "Scheme")))
+ (set-keymap-parent smap lisp-mode-shared-map)
+ (define-key smap [menu-bar scheme] (cons "Scheme" map))
(define-key map [run-scheme] '("Run Inferior Scheme" . run-scheme))
(define-key map [uncomment-region]
'("Uncomment Out Region" . (lambda (beg end)
@@ -192,7 +188,10 @@ All commands in `lisp-mode-shared-map' are inherited by this map.")
(define-key map [indent-line] '("Indent Line" . lisp-indent-line))
(put 'comment-region 'menu-enable 'mark-active)
(put 'uncomment-region 'menu-enable 'mark-active)
- (put 'indent-region 'menu-enable 'mark-active)))
+ (put 'indent-region 'menu-enable 'mark-active)
+ smap)
+ "Keymap for Scheme mode.
+All commands in `lisp-mode-shared-map' are inherited by this map.")
;; Used by cmuscheme
(defun scheme-mode-commands (map)
@@ -222,14 +221,11 @@ Entry to this mode calls the value of `scheme-mode-hook'
if that value is non-nil."
(interactive)
(kill-all-local-variables)
- (scheme-mode-initialize)
- (scheme-mode-variables)
- (run-hooks 'scheme-mode-hook))
-
-(defun scheme-mode-initialize ()
(use-local-map scheme-mode-map)
(setq major-mode 'scheme-mode)
- (setq mode-name "Scheme"))
+ (setq mode-name "Scheme")
+ (scheme-mode-variables)
+ (run-mode-hooks 'scheme-mode-hook))
(defgroup scheme nil
"Editing Scheme code"
@@ -346,7 +342,7 @@ See `run-hooks'."
"Default expressions to highlight in Scheme modes.")
;;;###autoload
-(defun dsssl-mode ()
+(define-derived-mode dsssl-mode scheme-mode "DSSSL"
"Major mode for editing DSSSL code.
Editing commands are similar to those of `lisp-mode'.
@@ -357,20 +353,16 @@ Blank lines separate paragraphs. Semicolons start comments.
Entering this mode runs the hooks `scheme-mode-hook' and then
`dsssl-mode-hook' and inserts the value of `dsssl-sgml-declaration' if
that variable's value is a string."
- (interactive)
- (kill-all-local-variables)
- (use-local-map scheme-mode-map)
- (scheme-mode-initialize)
(make-local-variable 'page-delimiter)
(setq page-delimiter "^;;;" ; ^L not valid SGML char
major-mode 'dsssl-mode
mode-name "DSSSL")
;; Insert a suitable SGML declaration into an empty buffer.
+ ;; FIXME: This should use `auto-insert-alist' instead.
(and (zerop (buffer-size))
(stringp dsssl-sgml-declaration)
(not buffer-read-only)
(insert dsssl-sgml-declaration))
- (scheme-mode-variables)
(setq font-lock-defaults '(dsssl-font-lock-keywords
nil t (("+-*/.<>=?$%_&~^:" . "w"))
beginning-of-defun
@@ -378,9 +370,7 @@ that variable's value is a string."
(set (make-local-variable 'imenu-case-fold-search) nil)
(setq imenu-generic-expression dsssl-imenu-generic-expression)
(set (make-local-variable 'imenu-syntax-alist)
- '(("+-*/.<>=?$%_&~^:" . "w")))
- (run-hooks 'scheme-mode-hook)
- (run-hooks 'dsssl-mode-hook))
+ '(("+-*/.<>=?$%_&~^:" . "w"))))
;; Extra syntax for DSSSL. This isn't separated from Scheme, but
;; shouldn't cause much trouble in scheme-mode.
@@ -558,5 +548,5 @@ that variable's value is a string."
(provide 'scheme)
-;;; arch-tag: a8f06bc1-ad11-42d2-9e36-ce651df37a90
+;; arch-tag: a8f06bc1-ad11-42d2-9e36-ce651df37a90
;;; scheme.el ends here
diff --git a/lisp/speedbar.el b/lisp/speedbar.el
index c182dffdba..a8f74de0b1 100644
--- a/lisp/speedbar.el
+++ b/lisp/speedbar.el
@@ -1,6 +1,7 @@
;;; speedbar.el --- quick access to files and tags in a frame
-;;; Copyright (C) 1996, 97, 98, 99, 2000, 01 Free Software Foundation
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2005
+;; Free Software Foundation
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; Version: 0.11a
@@ -170,6 +171,8 @@
;; - More functions to create buttons and options
;; - Timeout directories we haven't visited in a while.
+;;; Code:
+
(require 'assoc)
(require 'easymenu)
@@ -201,7 +204,6 @@
:prefix "speedbar-"
:group 'speedbar)
-;;; Code:
(defvar speedbar-initial-expansion-mode-alist
'(("buffers" speedbar-buffer-easymenu-definition speedbar-buffers-key-map
speedbar-buffer-buttons)
@@ -373,7 +375,7 @@ is attached to."
(symbol :tag "Property")
(sexp :tag "Value"))))
-(defcustom speedbar-use-imenu-flag (stringp (locate-library "imenu"))
+(defcustom speedbar-use-imenu-flag (fboundp 'imenu)
"*Non-nil means use imenu for file parsing. nil to use etags.
XEmacs prior to 20.4 doesn't support imenu, therefore the default is to
use etags instead. Etags support is not as robust as imenu support."
@@ -3749,7 +3751,7 @@ functions to do caching and flushing if appropriate."
nil
-(eval-when-compile (if (locate-library "imenu") (require 'imenu)))
+(eval-when-compile (condition-case nil (require 'imenu) (error nil)))
(defun speedbar-fetch-dynamic-imenu (file)
"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."
;; run load-time hooks
(run-hooks 'speedbar-load-hook)
-;;; arch-tag: 4477e6d1-f78c-48b9-a503-387d3c9767d5
+;; arch-tag: 4477e6d1-f78c-48b9-a503-387d3c9767d5
;;; speedbar.el ends here
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el
index c5209456f8..fc677b3de4 100644
--- a/lisp/textmodes/bibtex.el
+++ b/lisp/textmodes/bibtex.el
@@ -173,7 +173,7 @@ See also `bibtex-sort-ignore-string-entries'."
If value of `bibtex-maintain-sorted-entries' is `entry-class'
entries are ordered according to the classes they belong to. Each
class contains a list of entry names. An entry `catch-all' applies
-to all entries not explicitely mentioned."
+to all entries not explicitly mentioned."
:group 'BibTeX
:type '(repeat (choice :tag "Class"
(const :tag "catch-all" (catch-all))
@@ -654,7 +654,7 @@ See `bibtex-generate-autokey' for details."
'("A" "An" "On" "The" "Eine?" "Der" "Die" "Das"
"[^A-Z].*" ".*[^A-Z0-9].*")
"Determines words from the title that are not to be used in the key.
-Each item of the list is a regexp. If a word of the title matchs a
+Each item of the list is a regexp. If a word of the title matches a
regexp from that list, it is not included in the title part of the key.
See `bibtex-generate-autokey' for details."
:group 'bibtex-autokey
@@ -730,7 +730,7 @@ and must return a string (the key to use)."
(defcustom bibtex-entry-offset 0
"Offset for BibTeX entries.
-Added to the value of all other variables which determine colums."
+Added to the value of all other variables which determine columns."
:group 'bibtex
:type 'integer)
@@ -1115,9 +1115,8 @@ The CDRs of the elements are t for header keys and nil for crossref keys.")
t))
"Regexp matching the name of any valid BibTeX entry (including string).")
-
-(defconst bibtex-empty-field-re "\"\"\\|{}"
- "Regexp matching an empty field.")
+(defconst bibtex-empty-field-re "\\`\\(\"\"\\|{}\\)\\'"
+ "Regexp matching the text part (as a string) of an empty field.")
(defconst bibtex-font-lock-syntactic-keywords
`((,(concat "^[ \t]*\\(" (substring bibtex-comment-start 0 1) "\\)"
@@ -1179,7 +1178,7 @@ ARG is ignored."
"Parse a string of the format <left-hand-side = right-hand-side>.
The functions PARSE-LHS and PARSE-RHS are used to parse the corresponding
substrings. These functions are expected to return nil if parsing is not
-successfull. If both functions return non-nil, a pair containing the returned
+successful. If both functions return non-nil, a pair containing the returned
values of the functions PARSE-LHS and PARSE-RHS is returned."
(save-match-data
(save-excursion
@@ -1196,7 +1195,7 @@ values of the functions PARSE-LHS and PARSE-RHS is returned."
If the field name is found, return a triple consisting of the position of the
very first character of the match, the actual starting position of the name
part and end position of the match. Move point to end of field name.
-If `bibtex-autoadd-commas' is non-nil add missing comma at end of preceeding
+If `bibtex-autoadd-commas' is non-nil add missing comma at end of preceding
BibTeX field as necessary."
(cond ((looking-at ",[ \t\n]*")
(let ((start (point)))
@@ -1875,7 +1874,7 @@ Formats current entry according to variable `bibtex-entry-format'."
(if opt-alt (+ beg-name 3) beg-name) end-name))
(empty-field (string-match bibtex-empty-field-re
(buffer-substring-no-properties
- beg-field end-field)))
+ beg-text end-text)))
deleted)
;; We have more elegant high-level functions for several
@@ -2824,7 +2823,7 @@ and `bibtex-user-optional-fields'."
(let ((e (assoc-string entry-type bibtex-entry-field-alist t))
required optional)
(unless e
- (error "Bibtex entry type %s not defined" entry-type))
+ (error "BibTeX entry type %s not defined" entry-type))
(if (and (member-ignore-case entry-type bibtex-include-OPTcrossref)
(nth 2 e))
(setq required (nth 0 (nth 2 e))
@@ -2960,9 +2959,13 @@ entry (for example, the year parts of the keys)."
(while (setq bounds (bibtex-parse-field bibtex-field-name))
(let ((text (assoc-string (bibtex-name-in-field bounds t)
other t)))
- (goto-char (bibtex-start-of-text-in-field bounds))
- (if (not (and (looking-at bibtex-empty-field-re) text))
+ (if (not (and text
+ (string-match bibtex-empty-field-re
+ (buffer-substring-no-properties
+ (bibtex-start-of-text-in-field bounds)
+ (bibtex-end-of-text-in-field bounds)))))
(goto-char (bibtex-end-of-field bounds))
+ (goto-char (bibtex-start-of-text-in-field bounds))
(delete-region (point) (bibtex-end-of-text-in-field bounds))
(insert (cdr text)))))
;; Finally try to update the text based on the difference between
@@ -3269,7 +3272,7 @@ entry and SPLIT is t."
(bibtex-reposition-window)
(beginning-of-line)
(if (and eqb (> pnt pos))
- (error "The referencing entry must preceed the crossrefed entry!")))
+ (error "The referencing entry must precede the crossrefed entry!")))
;; `bibtex-find-crossref' is called noninteractively during
;; clean-up of an entry. Then it is not possible to check
;; whether the current entry and the crossrefed entry have
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 13eda06c89..c554b74cf0 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -591,12 +591,12 @@ and then re-start emacs."
"[^A-Z\300\301\310\311\314\315\322\323\331\332a-z\340\341\350\351\354\355\363\371\372]"
"[-]" nil ("-B" "-d" "italian") "~tex" iso-8859-1)
("nederlands" ; Nederlands.aff
- "[A-Za-z\300-\305\307\310-\317\322-\326\331-\334\340-\345\347\350-\357\361\362-\366\371-\374]"
- "[^A-Za-z\300-\305\307\310-\317\322-\326\331-\334\340-\345\347\350-\357\361\362-\366\371-\374]"
+ "[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]"
+ "[^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]"
"[']" t ("-C") nil iso-8859-1)
("nederlands8" ; Dutch8.aff
- "[A-Za-z\300-\305\307\310-\317\322-\326\331-\334\340-\345\347\350-\357\361\362-\366\371-\374]"
- "[^A-Za-z\300-\305\307\310-\317\322-\326\331-\334\340-\345\347\350-\357\361\362-\366\371-\374]"
+ "[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]"
+ "[^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]"
"[']" t ("-C") nil iso-8859-1)))
diff --git a/lisp/textmodes/reftex-global.el b/lisp/textmodes/reftex-global.el
index d4d91b476e..d3ef2dcb78 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."
(buffer-name buf)))
(error "Abort"))))))
+(defun reftex-isearch-wrap-function ()
+ (if (not isearch-word)
+ (switch-to-buffer
+ (funcall isearch-next-buffer-function (current-buffer) t)))
+ (goto-char (if isearch-forward (point-min) (point-max))))
+
+(defun reftex-isearch-push-state-function ()
+ `(lambda (cmd)
+ (reftex-isearch-pop-state-function cmd ,(current-buffer))))
+
+(defun reftex-isearch-pop-state-function (cmd buffer)
+ (switch-to-buffer buffer))
+
+(defun reftex-isearch-isearch-search (string bound noerror)
+ (let ((nxt-buff nil)
+ (search-fun
+ (cond
+ (isearch-word
+ (if isearch-forward 'word-search-forward 'word-search-backward))
+ (isearch-regexp
+ (if isearch-forward 're-search-forward 're-search-backward))
+ (t
+ (if isearch-forward 'search-forward 'search-backward)))))
+ (or
+ (funcall search-fun string bound noerror)
+ (unless bound
+ (condition-case nil
+ (when isearch-next-buffer-function
+ (while (not (funcall search-fun string bound noerror))
+ (cond
+ (isearch-forward
+ (setq nxt-buff
+ (funcall isearch-next-buffer-function
+ (current-buffer)))
+ (if (not nxt-buff)
+ (progn
+ (error "Wrap forward"))
+ (switch-to-buffer nxt-buff)
+ (goto-char (point-min))))
+ (t
+ (setq nxt-buff
+ (funcall isearch-next-buffer-function
+ (current-buffer)))
+ (if (not nxt-buff)
+ (progn
+ (error "Wrap backward"))
+ (switch-to-buffer nxt-buff)
+ (goto-char (point-max))))))
+ (point))
+ (error nil))))))
+
+;;; This function is called when isearch reaches the end of a
+;;; buffer. For reftex what we want to do is not wrap to the
+;;; beginning, but switch to the next buffer in the logical order of
+;;; the document. This function looks through list of files in the
+;;; document (reftex-all-document-files), searches for the current
+;;; buffer and switches to the next/previous one in the logical order
+;;; of the document. If WRAPP is true then wrap the search to the
+;;; beginning/end of the file list, depending of the search direction.
+(defun reftex-isearch-switch-to-next-file (crt-buf &optional wrapp)
+ (reftex-access-scan-info)
+ (let* ((cb (buffer-file-name crt-buf))
+ (flist (reftex-all-document-files))
+ (orig-flist flist))
+ (when flist
+ (if wrapp
+ (unless isearch-forward
+ (setq flist (last flist)))
+ (unless isearch-forward
+ (setq flist (nreverse (copy-list flist)))
+ (setq orig-flist flist))
+ (while (not (string= (car flist) cb))
+ (setq flist (cdr flist)))
+ (setq flist (cdr flist)))
+ (when flist
+ (find-file (car flist))))))
+
+;;;###autoload
+(defvar reftex-isearch-minor-mode nil)
+(make-variable-buffer-local 'reftex-isearch-minor-mode)
+
+;;;###autoload
+(defun reftex-isearch-minor-mode (&optional arg)
+ "When on, isearch searches the whole document, not only the current file.
+This minor mode allows isearch to search through all the files of
+the current TeX document.
+
+With no argument, this command toggles
+`reftex-isearch-minor-mode'. With a prefix argument ARG, turn
+`reftex-isearch-minor-mode' on iff ARG is positive."
+ (interactive "P")
+ (let ((old-reftex-isearch-minor-mode reftex-isearch-minor-mode))
+ (setq reftex-isearch-minor-mode
+ (not (or (and (null arg) reftex-isearch-minor-mode)
+ (<= (prefix-numeric-value arg) 0))))
+ (unless (eq reftex-isearch-minor-mode old-reftex-isearch-minor-mode)
+ (if reftex-isearch-minor-mode
+ (progn
+ (dolist (crt-buf (buffer-list))
+ (with-current-buffer crt-buf
+ (when reftex-mode
+ (set (make-local-variable 'isearch-wrap-function)
+ 'reftex-isearch-wrap-function)
+ (set (make-local-variable 'isearch-search-fun-function)
+ (lambda () 'reftex-isearch-isearch-search))
+ (set (make-local-variable 'isearch-push-state-function)
+ 'reftex-isearch-push-state-function)
+ (set (make-local-variable 'isearch-next-buffer-function)
+ 'reftex-isearch-switch-to-next-file)
+ (setq reftex-isearch-minor-mode t))))
+ (add-hook 'reftex-mode-hook 'reftex-isearch-minor-mode))
+ (dolist (crt-buf (buffer-list))
+ (with-current-buffer crt-buf
+ (when reftex-mode
+ (kill-local-variable 'isearch-wrap-function)
+ (kill-local-variable 'isearch-search-fun-function)
+ (kill-local-variable 'isearch-push-state-function)
+ (kill-local-variable 'isearch-next-buffer-function)
+ (setq reftex-isearch-minor-mode nil))))
+ (remove-hook 'reftex-mode-hook 'reftex-isearch-minor-mode)))
+ ;; Force modeline redisplay.
+ (set-buffer-modified-p (buffer-modified-p))))
+
+(add-minor-mode 'reftex-isearch-minor-mode "/I" nil nil
+ 'reftex-isearch-minor-mode)
+
;;; arch-tag: 2dbf7633-92c8-4340-8656-7aa019d0f80d
;;; reftex-global.el ends here
diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el
index e177805e9c..318279b137 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."
"--"
"MISC"
["AUC TeX Interface" reftex-toggle-plug-into-AUCTeX
- :style toggle :selected reftex-plug-into-AUCTeX])
+ :style toggle :selected reftex-plug-into-AUCTeX]
+ ["isearch whole document" reftex-isearch-minor-mode
+ :style toggle :selected reftex-isearch-minor-mode])
("Reference Style"
["Default" (setq reftex-vref-is-default nil
reftex-fref-is-default nil)
diff --git a/man/ChangeLog b/man/ChangeLog
index 63e3591265..5f69fc7d85 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,16 @@
+2005-01-28 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi: Some edits based on comments from David Abrahams.
+
+2005-01-24 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (RSS): Fix the keystroke.
+
+2005-01-26 Lute Kamstra <lute@gnu.org>
+
+ * cmdargs.texi (Initial Options): Add a cross reference to `Init
+ File'. Mention the `-Q' option at the `--no-site-file' option.
+
2005-01-24 David Kastrup <dak@gnu.org>
* faq.texi: Update AUCTeX version info.
diff --git a/man/cmdargs.texi b/man/cmdargs.texi
index b06aac4bdb..960f2d0bd6 100644
--- a/man/cmdargs.texi
+++ b/man/cmdargs.texi
@@ -169,8 +169,9 @@ sections.
Some initial options affect the loading of init files. The normal
actions of Emacs are to first load @file{site-start.el} if it exists,
then your own init file @file{~/.emacs} if it exists, and finally
-@file{default.el} if it exists; certain options prevent loading of some
-of these files or substitute other files for them.
+@file{default.el} if it exists. @xref{Init File}. Certain options
+prevent loading of some of these files or substitute other files for
+them.
@table @samp
@item -t @var{device}
@@ -257,8 +258,8 @@ changed with the @kbd{M-x customize} command and its variants.
@opindex --no-site-file
@cindex @file{site-start.el} file, not loading
Do not load @file{site-start.el}. The options @samp{-q}, @samp{-u}
-and @samp{--batch} have no effect on the loading of this file---this is
-the only option that blocks it.
+and @samp{--batch} have no effect on the loading of this file---this
+option and @samp{-Q} are the only options that block it.
@item -Q
@opindex -Q
diff --git a/man/gnus.texi b/man/gnus.texi
index b0feef1bf2..d2812890a1 100644
--- a/man/gnus.texi
+++ b/man/gnus.texi
@@ -391,25 +391,25 @@ the program.
@end iftex
@menu
-* Starting Up:: Finding news can be a pain.
-* Group Buffer:: Selecting, subscribing and killing groups.
-* Summary Buffer:: Reading, saving and posting articles.
-* Article Buffer:: Displaying and handling articles.
-* Composing Messages:: Information on sending mail and news.
-* Select Methods:: Gnus reads all messages from various select methods.
-* Scoring:: Assigning values to articles.
-* Various:: General purpose settings.
-* The End:: Farewell and goodbye.
-* Appendices:: Terminology, Emacs intro, @acronym{FAQ}, History, Internals.
-* Index:: Variable, function and concept index.
-* Key Index:: Key Index.
+* Starting Up:: Finding news can be a pain.
+* Group Buffer:: Selecting, subscribing and killing groups.
+* Summary Buffer:: Reading, saving and posting articles.
+* Article Buffer:: Displaying and handling articles.
+* Composing Messages:: Information on sending mail and news.
+* Select Methods:: Gnus reads all messages from various select methods.
+* Scoring:: Assigning values to articles.
+* Various:: General purpose settings.
+* The End:: Farewell and goodbye.
+* Appendices:: Terminology, Emacs intro, @acronym{FAQ}, History, Internals.
+* Index:: Variable, function and concept index.
+* Key Index:: Key Index.
Other related manuals
-* Message:(message). Composing messages.
-* Emacs-MIME:(emacs-mime). Composing messages; @acronym{MIME}-specific parts.
-* Sieve:(sieve). Managing Sieve scripts in Emacs.
-* PGG:(pgg). @acronym{PGP/MIME} with Gnus.
+* Message:(message). Composing messages.
+* Emacs-MIME:(emacs-mime). Composing messages; @acronym{MIME}-specific parts.
+* Sieve:(sieve). Managing Sieve scripts in Emacs.
+* PGG:(pgg). @acronym{PGP/MIME} with Gnus.
@detailmenu
--- The Detailed Node Listing ---
@@ -951,17 +951,16 @@ If you puzzle at any terms used in this manual, please refer to the
terminology section (@pxref{Terminology}).
@menu
-* Finding the News:: Choosing a method for getting news.
-* The First Time:: What does Gnus do the first time you start it?
-* The Server is Down:: How can I read my mail then?
-* Slave Gnusae:: You can have more than one Gnus active at a time.
-* Fetching a Group:: Starting Gnus just to read a group.
-* New Groups:: What is Gnus supposed to do with new groups?
-* Changing Servers:: You may want to move from one server to another.
-* Startup Files:: Those pesky startup files---@file{.newsrc}.
-* Auto Save:: Recovering from a crash.
-* The Active File:: Reading the active file over a slow line Takes Time.
-* Startup Variables:: Other variables you might change.
+* Finding the News:: Choosing a method for getting news.
+* The First Time:: What does Gnus do the first time you start it?
+* The Server is Down:: How can I read my mail then?
+* Slave Gnusae:: You can have more than one Gnus active at a time.
+* New Groups:: What is Gnus supposed to do with new groups?
+* Changing Servers:: You may want to move from one server to another.
+* Startup Files:: Those pesky startup files---@file{.newsrc}.
+* Auto Save:: Recovering from a crash.
+* The Active File:: Reading the active file over a slow line Takes Time.
+* Startup Variables:: Other variables you might change.
@end menu
@@ -992,7 +991,8 @@ If you want to read directly from the local spool, say:
If you can use a local spool, you probably should, as it will almost
certainly be much faster. But do not use the local spool if your
-server is running Leafnode; in this case, use @code{(nntp "localhost")}.
+server is running Leafnode (which is a simple, standalone private news
+server); in this case, use @code{(nntp "localhost")}.
@vindex gnus-nntpserver-file
@cindex NNTPSERVER
@@ -1051,8 +1051,8 @@ you would typically set this variable to
@section The First Time
@cindex first time usage
-If no startup files exist, Gnus will try to determine what groups should
-be subscribed by default.
+If no startup files exist (@pxref{Startup Files}), Gnus will try to
+determine what groups should be subscribed by default.
@vindex gnus-default-subscribed-newsgroups
If 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
incorporated into the slave. If you answer ``no'', the slave may see some
messages as unread that have been read in the master.
-@node Fetching a Group
-@section Fetching a Group
-@cindex fetching a group
-
-@findex gnus-fetch-group
-It is sometimes convenient to be able to just say ``I want to read this
-group and I don't care whether Gnus has been started or not''. This is
-perhaps more useful for people who write code than for users, but the
-command @code{gnus-fetch-group} provides this functionality in any case.
-It takes the group name as a parameter.
@node New Groups
@@ -1400,8 +1390,10 @@ cache for all groups).
@cindex .newsrc.el
@cindex .newsrc.eld
-Now, you all know about the @file{.newsrc} file. All subscription
-information is traditionally stored in this file.
+Most common Unix news readers use a shared startup file called
+@file{.newsrc}. This file contains all the information about what
+groups are subscribed, and which articles in these groups have been
+read.
Things got a bit more complicated with @sc{gnus}. In addition to
keeping 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.
However, this will make it impossible to use other newsreaders than
Gnus. But hey, who would want to, right? Similarly, setting
@code{gnus-read-newsrc-file} to @code{nil} makes Gnus ignore the
-@file{.newsrc} file and any @file{.newsrc-SERVER} files, which is
-convenient if you have a tendency to use Netscape once in a while.
+@file{.newsrc} file and any @file{.newsrc-SERVER} files, which can be
+convenient if you use a different news reader occasionally, and you
+want to read a different subset of the available groups with that
+news reader.
@vindex gnus-save-killed-list
If @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
will be prompted for the location of the feed.
An easy way to get started with @code{nnrss} is to say something like
-the following in the group buffer: @kbd{B nnrss RET y}, then
+the following in the group buffer: @kbd{B nnrss RET RET y}, then
subscribe to groups.
The following @code{nnrss} variables can be altered:
@@ -20607,6 +20601,7 @@ four days, Gnus will decay the scores four times, for instance.
* Undo:: Some actions can be undone.
* Predicate Specifiers:: Specifying predicates.
* Moderation:: What to do if you're a moderator.
+* Fetching a Group:: Starting Gnus just to read a group.
* Image Enhancements:: Modern versions of Emacs/XEmacs can display images.
* Fuzzy Matching:: What's the big fuzz?
* Thwarting Email Spam:: A how-to on avoiding unsolicited commercial email.
@@ -21878,6 +21873,18 @@ To use moderation mode in these two groups, say:
@end lisp
+@node Fetching a Group
+@section Fetching a Group
+@cindex fetching a group
+
+@findex gnus-fetch-group
+It is sometimes convenient to be able to just say ``I want to read this
+group and I don't care whether Gnus has been started or not''. This is
+perhaps more useful for people who write code than for users, but the
+command @code{gnus-fetch-group} provides this functionality in any case.
+It takes the group name as a parameter.
+
+
@node Image Enhancements
@section Image Enhancements
@@ -26575,6 +26582,12 @@ The act of asking the server for info on a group and computing the
number of unread articles is called @dfn{activating the group}.
Un-activated groups are listed with @samp{*} in the group buffer.
+@item spool
+@cindex spool
+News servers store their articles locally in one fashion or other.
+One old-fashioned storage method is to have just one file per
+article. That's called a ``traditional spool''.
+
@item server
@cindex server
A machine one can connect to and get news (or mail) from.
diff --git a/man/reftex.texi b/man/reftex.texi
index 21090caf2e..7de16dcb0e 100644
--- a/man/reftex.texi
+++ b/man/reftex.texi
@@ -3520,13 +3520,15 @@ this manual.
Thanks to the people on the Net who have used @b{Ref@TeX{}} and helped
developing it with their reports. In particular thanks to @i{Fran
-Burstall, Alastair Burt, Lars Clausen, Soren Dayton, Stephen Eglen, Karl
-Eichwalder, Erik Frisk, Peter Galbraith, Kai Grossjohann, Frank Harrell,
-Peter Heslin, Stephan Heuel, Alan Ho, Lute Kamstra, Dieter Kraft, David
-Kastrup, Adrian Lanz, Rory Molinari, Stefan Monnier, Laurent Mugnier,
-Sudeep Kumar Palat, Daniel Polani, Alan Shutko, Robin Socha, Richard
-Stanton, Allan Strand, Jan Vroonhof, Christoph Wedler, Alan Williams,
-Roland Winkler, Hans-Christoph Wirth, Eli Zaretskii}.
+Burstall, Alastair Burt, Lars Clausen, Soren Dayton, Stephen Eglen,
+Karl Eichwalder, Erik Frisk, Peter Galbraith, Kai Grossjohann, Frank
+Harrell, Peter Heslin, Stephan Heuel, Alan Ho, Lute Kamstra, Dieter
+Kraft, David Kastrup, Adrian Lanz, Juri Linkov, Rory Molinari, Stefan
+Monnier, Laurent Mugnier, Dan Nicolaescu, Sudeep Kumar Palat, Daniel
+Polani, Alan Shutko, Robin Socha, Richard Stanton, Allan Strand, Jan
+Vroonhof, Christoph Wedler, Alan Williams, Roland Winkler,
+Hans-Christoph Wirth, Eli Zaretskii}.
+
The @code{view-crossref} feature was inspired by @i{Peter Galbraith's}
@file{bib-cite.el}.
@@ -3668,6 +3670,12 @@ document. With prefix arg, replace only word-delimited matches. No
active TAGS table is required.
@end deffn
+@deffn Command reftex-isearch-minor-mode
+Toggle a minor mode which enables incremental search to work globally
+on the entire multifile document. Files will be searched in th
+sequence they appear in the document.
+@end deffn
+
@deffn Command reftex-goto-label
Prompt for a label (with completion) and jump to the location of this
label. Optional prefix argument @var{other-window} goes to the label in
diff --git a/src/ChangeLog b/src/ChangeLog
index e9a38a7d64..3bb83dc10e 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,38 @@
+2005-01-28 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * keymap.c (access_keymap): YAILOM.
+
+2005-01-27 Kim F. Storm <storm@cua.dk>
+
+ * xdisp.c (get_phys_cursor_geometry): New function to calculate
+ phys cursor position and size for hollow cursor. Position is
+ aligned with get_glyph_string_clip_rect and ensures that a hollow
+ cursor is shown, even when the actual glyph is not visible.
+
+ * dispextern.h (get_phys_cursor_geometry): Add prototype.
+
+ * xterm.c (x_clip_to_row): Ensure y >= 0.
+ (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
+
+ * w32term.c (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
+
+ * macterm.c (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
+
+2005-01-27 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * xterm.c (x_error_quitter): Add a prototype. Make it static again.
+
+2005-01-27 Kim F. Storm <storm@cua.dk>
+
+ * xdisp.c (get_glyph_string_clip_rect): Always show a cursor
+ glyph, even when row is only partially visible and actual cursor
+ position is not visible.
+
+2005-01-24 Richard M. Stallman <rms@gnu.org>
+
+ * xterm.c (x_error_quitter): No longer static, and moved after
+ x_error_handler.
+
2005-01-24 Kim F. Storm <storm@cua.dk>
* xdisp.c (move_it_by_lines): If we move forward after going too
@@ -51,7 +86,7 @@
2005-01-22 Steven Tamm <steventamm@mac.com>
* s/darwin.h: Removed PTY_ITERATION from here.
- (DARWIN): Defined.
+ (DARWIN): Define.
* process.c (init_process): Default process-connection-type to
nil on darwin 6 or less, t if it is 7 or higher. This way the
broken pty behavior is still allowed on darwin 6 for interactive
@@ -94,17 +129,16 @@
2005-01-20 Steven Tamm <steventamm@mac.com>
- * editfns.c (Voperating_system_release): Added.
+ * editfns.c (Voperating_system_release): Add.
(init_editfns): Assign new variable operating-system-release
based on call to uname if available.
- (get_operating_system_release): Added function to
+ (get_operating_system_release): Add function to
allow c-level access to operating system release.
* config.h: Regenerated.
- * s/darwin.h (PTY_ITERATION): Don't allow PTYs on darwin 6 or
- less.
- (MIN_PTY_KERNEL_VERSION): Defined minimum kernel version for
+ * s/darwin.h (PTY_ITERATION): Don't allow PTYs on darwin 6 or less.
+ (MIN_PTY_KERNEL_VERSION): Define minimum kernel version for
using ptys as '7'.
2005-01-20 Kim F. Storm <storm@cua.dk>
@@ -146,8 +180,8 @@
2005-01-17 Kim F. Storm <storm@cua.dk>
- * dispnew.c (mode_line_string, marginal_area_string): Fix
- off-by-one error in search for glyph.
+ * dispnew.c (mode_line_string, marginal_area_string):
+ Fix off-by-one error in search for glyph.
2005-01-16 Kim F. Storm <storm@cua.dk>
@@ -155,7 +189,7 @@
2005-01-16 Steven Tamm <steventamm@mac.com>
- * macterm.c (mac_to_x_fontname): Removed spurious argument.
+ * macterm.c (mac_to_x_fontname): Remove spurious argument.
2005-01-16 Andreas Schwab <schwab@suse.de>
@@ -171,7 +205,7 @@
* keyboard.c (READABLE_EVENTS_DO_TIMERS_NOW)
(READABLE_EVENTS_FILTER_EVENTS, READABLE_EVENTS_IGNORE_SQUEEZABLES):
New flags for readable_events.
- (get_filtered_input_pending, readable_filtered_events): Removed.
+ (get_filtered_input_pending, readable_filtered_events): Remove.
(tracking_off): Call readable_events and get_input_pending with
flag READABLE_EVENTS_DO_TIMERS_NOW.
(readable_events): Move code from old readable_filtered_events here,
@@ -211,8 +245,8 @@
2005-01-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * macfns.c (x_set_foreground_color, x_set_background_color): Sync
- with xfns.c.
+ * macfns.c (x_set_foreground_color, x_set_background_color):
+ Sync with xfns.c.
(mac_window, x_create_tip_frame): Use XSetWindowBackground.
* macterm.c (XSetBackground, XSetWindowBackground): New functions.
* macterm.h (XSetBackground, XSetWindowBackground): Add externs.
@@ -269,8 +303,8 @@
(get_next_display_element): Test Vshow_nonbreak_escape.
Do not setup escape_glyph_face.
Properly merge escape-glyph face or face from display table with
- current face for escape and control characters. Set
- it->dpvec_face_id to relevant face id instead of adding it to each
+ current face for escape and control characters.
+ Set it->dpvec_face_id to relevant face id instead of adding it to each
element of display vector.
(next_element_from_display_vector): If it->dpvec_face_id is set,
use that instead of lface_id from glyph itself.
@@ -294,8 +328,7 @@
* gtkutil.c (xg_gtk_scroll_destroy, xg_create_scroll_bar)
(xg_tool_bar_callback, xg_tool_bar_help_callback)
- (update_frame_tool_bar): Cast to EMACS_INT to avoid compiler
- warning.
+ (update_frame_tool_bar): Cast to EMACS_INT to avoid compiler warning.
* xselect.c (x_get_foreign_selection, x_fill_property_data)
(Fx_get_atom_name, Fx_send_client_event): Replace XFLOAT with
@@ -353,8 +386,8 @@
[TARGET_API_MAC_CARBON] (mac_do_receive_drag): Likewise.
[TARGET_API_MAC_CARBON] (mac_do_receive_drag): Return error when a
file dialog is in action.
- [TARGET_API_MAC_CARBON] (mac_do_track_drag): Likewise. Reject
- only when there are no filename items. Set background color
+ [TARGET_API_MAC_CARBON] (mac_do_track_drag): Likewise.
+ Reject only when there are no filename items. Set background color
before (un)highlighting the window below the dragged items.
(XTread_socket) [!USE_CARBON_EVENTS]: Don't call do_window_update.
@@ -438,8 +471,7 @@
* fileio.c (Finsert_file_contents): Don't use
current_buffer->buffer_file_coding_system even if REPLACE is
- non-nil. Call Qafter_insert_file_set_coding with the second arg
- VISIT.
+ non-nil. Call Qafter_insert_file_set_coding with the second arg VISIT.
* fontset.h (struct font_info): New members space_width and
average_width.
@@ -452,8 +484,7 @@
* xterm.c (x_new_font): Set FRAME_COLUMN_WIDTH to
fontp->average_width, not FONT_WIDTH. Set FRAME_SPACE_WIDTH to
fontp->space_width.
- (x_load_font): Calculate fontp->space_width and
- fontp->average_width.
+ (x_load_font): Calculate fontp->space_width and fontp->average_width.
(x_term_init): Initialize dpyinfo->Xatom_AVERAGE_WIDTH.
* xdisp.c (x_produce_glyphs): Calculate tab width by
@@ -462,8 +493,7 @@
2004-12-29 Sanghyuk Suh <han9kin@mac.com>
* macterm.c (SelectionRange): Add Xcode position apple event struct.
- (do_ae_open_documents): Handle Xcode-style file position open
- events.
+ (do_ae_open_documents): Handle Xcode-style file position open events.
2004-12-29 Luc Teirlinck <teirllm@auburn.edu>
@@ -489,11 +519,16 @@
init_mac_drag_n_drop.
(mac_do_track_drag): New function and declaration.
(install_window_handler): Return OSErr value.
- (install_window_handler) [TARGET_API_MAC_CARBON]: Register
- handlers for tracking/receiving drag-and-drop items.
+ (install_window_handler) [TARGET_API_MAC_CARBON]:
+ Register handlers for tracking/receiving drag-and-drop items.
(do_ae_open_documents): Generate unibyte strings for filenames.
- (mac_do_receive_drag) [TARGET_API_MAC_CARBON] : Likewise. Reject
- only non-filename items. Set event modifiers. Set return value.
+<<<<<<< ChangeLog
+ (mac_do_receive_drag) [TARGET_API_MAC_CARBON] : Likewise.
+ Reject only non-filename items. Set event modifiers and return value.
+=======
+ (mac_do_receive_drag) [TARGET_API_MAC_CARBON] : Likewise.
+ Reject only non-filename items. Set event modifiers, and return value.
+>>>>>>> 1.4187
2004-12-28 Dan Nicolaescu <dann@ics.uci.edu>
@@ -517,8 +552,8 @@
* xmenu.c (popup_get_selection): Only pop down dialogs
on C-g and Escape.
(popup_get_selection): Remove parameter down_on_keypress.
- (create_and_show_popup_menu, create_and_show_dialog): Remove
- parameter down_on_keypress to popup_get_selection.
+ (create_and_show_popup_menu, create_and_show_dialog):
+ Remove parameter down_on_keypress to popup_get_selection.
2004-12-27 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
@@ -535,8 +570,8 @@
* frame.c (x_set_frame_parameters, x_report_frame_params)
(x_set_fullscreen): Remove #ifndef HAVE_CARBON.
- (x_set_border_width, Vdefault_frame_scroll_bars): Change
- HAVE_CARBON to MAC_OS.
+ (x_set_border_width, Vdefault_frame_scroll_bars):
+ Change HAVE_CARBON to MAC_OS.
* image.c [MAC_OS]: Include sys/stat.h.
[MAC_OS && !MAC_OSX]: Include sys/param.h, ImageCompression.h, and
@@ -544,8 +579,7 @@
* mac.c [!MAC_OSX] (mac_wait_next_event): Add extern.
[!MAC_OSX] (select): Use mac_wait_next_event.
- [!MAC_OSX] (run_mac_command): Change EXEC_SUFFIXES to
- Vexec_suffixes.
+ [!MAC_OSX] (run_mac_command): Change EXEC_SUFFIXES to Vexec_suffixes.
[!MAC_OSX] (select, run_mac_command): Change `#ifdef
TARGET_API_MAC_CARBON' to `#if TARGET_API_MAC_CARBON'.
(mac_clear_font_name_table): Add extern.
@@ -564,21 +598,19 @@
* macfns.c (mac_initialized): Remove extern.
(stricmp): Put in #if 0. All callers changed to use xstricmp in
xfaces.c.
- (strnicmp): Decrement `n' at the end of each loop, not the
- beginning.
- (check_mac): Use the term "Mac native windows" instead of "Mac
- OS".
+ (strnicmp): Decrement `n' at the end of each loop, not the beginning.
+ (check_mac): Use the term "Mac native windows" instead of "Mac OS".
(check_x_display_info, x_display_info_for_name): Sync with xfns.c.
(mac_get_rdb_resource): New function (from w32reg.c).
(x_get_string_resource): Use it.
(install_window_handler): Add extern.
(mac_window): New function.
- (Fx_create_frame): Use it instead of make_mac_frame. Set
- parameter for Qfullscreen. Call x_wm_set_size_hint.
+ (Fx_create_frame): Use it instead of make_mac_frame.
+ Set parameter for Qfullscreen. Call x_wm_set_size_hint.
(Fx_open_connection, Fx_close_connection): New defuns.
(syms_of_macfns): Defsubr them.
- (x_create_tip_frame) [TARGET_API_MAC_CARBON]: Add
- kWindowNoUpdatesAttribute to the window attribute.
+ (x_create_tip_frame) [TARGET_API_MAC_CARBON]:
+ Add kWindowNoUpdatesAttribute to the window attribute.
(x_create_tip_frame) [!TARGET_API_MAC_CARBON]: Use NewCWindow.
(x_create_tip_frame): Don't call ShowWindow.
(Fx_show_tip): Call ShowWindow.
@@ -587,8 +619,7 @@
(mac_frame_parm_handlers): Set handlers for Qfullscreen.
(syms_of_macfns) [MAC_OSX]: Initialize mac_in_use to 0.
- * macgui.h [!MAC_OSX]: Don't include Controls.h. Include
- Windows.h.
+ * macgui.h [!MAC_OSX]: Don't include Controls.h. Include Windows.h.
(Window): Typedef to WindowPtr and move outside `#if
TARGET_API_MAC_CARBON'.
(XSizeHints): New struct.
@@ -607,8 +638,12 @@
(x_make_frame_visible) [TARGET_API_MAC_CARBON]: Reposition window
if the position is neither user-specified nor program-specified.
(x_free_frame_resources): Free size_hints.
- (x_wm_set_size_hint): Allocate size_hints if needed. Set
- size_hints.
+<<<<<<< ChangeLog
+ (x_wm_set_size_hint): Allocate size_hints if needed.
+ Set size_hints.
+=======
+ (x_wm_set_size_hint): Allocate size_hints if needed. Set size_hints.
+>>>>>>> 1.4187
(mac_clear_font_name_table): New function.
(mac_do_list_fonts): Initialize font_name_table if needed.
(x_list_fonts): Don't initialize font_name_table. Add BLOCK_INPUT
@@ -622,8 +657,7 @@
(do_window_update): Add BeginUpdate/EndUpdate for the tooltip
window. Use UpdateControls. Get the rectangle that should be
updated and restrict the target of expose_frame to it.
- (do_grow_window): Set minimum height/width according to
- size_hints.
+ (do_grow_window): Set minimum height/width according to size_hints.
(do_grow_window) [TARGET_API_MAC_CARBON]: Use ResizeWindow.
(do_zoom_window): Don't use x_set_window_size.
[USE_CARBON_EVENTS] (mac_handle_window_event): New function.
@@ -635,10 +669,10 @@
(XTread_socket) [!USE_CARBON_EVENTS]: Use mac_wait_next_event.
Update mouse_region when mouse is moved.
(make_mac_frame): Remove.
- (make_mac_terminal_frame): Put in #ifdef MAC_OS8. Initialize
- mouse pointer shapes. Change values of f->left_pos and
- f->top_pos. Don't use make_mac_frame. Use NewCWindow. Don't
- call ShowWindow.
+ (make_mac_terminal_frame): Put in #ifdef MAC_OS8.
+ Initialize mouse pointer shapes. Change values of f->left_pos and
+ f->top_pos. Don't use make_mac_frame. Use NewCWindow.
+ Don't call ShowWindow.
(mac_initialize_display_info) [MAC_OSX]: Create mac_id_name from
Vinvocation_name and Vsystem_name.
(mac_make_rdb): New function (from w32term.c).
@@ -661,17 +695,21 @@
2004-12-27 Richard M. Stallman <rms@gnu.org>
- * buffer.c (Fbuffer_disable_undo): Deleted (moved to simple.el).
+<<<<<<< ChangeLog
+ * buffer.c (Fbuffer_disable_undo): Delete (moved to simple.el).
+=======
+ * buffer.c (Fbuffer_disable_undo): Delete (move to simple.el).
+>>>>>>> 1.4187
(syms_of_buffer): Don't defsubr it.
* process.c (list_processes_1): Set undo_list instead
of calling Fbuffer_disable_undo.
- * xdisp.c (single_display_spec_string_p): Renamed from
+ * xdisp.c (single_display_spec_string_p): Rename from
single_display_prop_string_p.
- (single_display_spec_intangible_p): Renamed from
+ (single_display_spec_intangible_p): Rename from
single_display_prop_intangible_p.
- (handle_single_display_spec): Renamed from handle_single_display_prop.
+ (handle_single_display_spec): Rename from handle_single_display_prop.
Rewritten to be easier to understand.
Change in load-history format. Functions now get (defun . NAME),
@@ -755,7 +793,7 @@
* alloc.c (Fgarbage_collect): Update call to truncate_undo_list.
Call that at the very start.
- (undo_limit, undo_strong_limit, undo_outer_limit): Moved to undo.c.
+ (undo_limit, undo_strong_limit, undo_outer_limit): Move to undo.c.
(syms_of_alloc): Don't define undo-limit,
undo-strong-limit and undo-outer-limit here.
@@ -790,8 +828,8 @@
2004-12-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
- * macterm.c (endif, x_font_name_to_mac_font_name): Use
- maccentraleurroman instead of maccentraleuropean
+ * macterm.c (endif, x_font_name_to_mac_font_name):
+ Use maccentraleurroman instead of maccentraleuropean
(mac_c_string_match, mac_do_list_fonts): Speed up font search by
quickly finding a specific font without needing regexps.
@@ -817,8 +855,8 @@
* sysdep.c (select_alarm): Call SIGNAL_THREAD_CHECK.
- * process.c (send_process_trap, sigchld_handler): Call
- SIGNAL_THREAD_CHECK.
+ * process.c (send_process_trap, sigchld_handler):
+ Call SIGNAL_THREAD_CHECK.
* data.c (arith_error): Call SIGNAL_THREAD_CHECK.
@@ -908,7 +946,7 @@
* alloc.c: Add comment about the reason for (UN)BLOCK_INPUT_ALLOC.
-2004-12-07 Stefan <monnier@iro.umontreal.ca>
+2004-12-07 Stefan Monnier <monnier@iro.umontreal.ca>
* eval.c (init_eval_once): Increase max_specpdl_size to 1000.
@@ -2056,7 +2094,7 @@
* window.c (Fspecial_display_p): Doc fix.
-2004-10-15 Stefan <monnier@iro.umontreal.ca>
+2004-10-15 Stefan Monnier <monnier@iro.umontreal.ca>
* doc.c (Fsubstitute_command_keys): Fix remap-handling.
Don't ignore menus, because where-is-internal already does it for us.
diff --git a/src/dispextern.h b/src/dispextern.h
index ac56cdd31f..5edc213fba 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 *,
extern void draw_phys_cursor_glyph P_ ((struct window *,
struct glyph_row *,
enum draw_glyphs_face));
+extern int get_phys_cursor_geometry P_ ((struct window *, struct glyph_row *,
+ struct glyph *, int *));
extern void erase_phys_cursor P_ ((struct window *));
extern void display_and_set_cursor P_ ((struct window *,
int, int, int, int, int));
diff --git a/src/keymap.c b/src/keymap.c
index 074cc1706b..2977b4dec0 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -1,6 +1,6 @@
/* Manipulation of keymaps
- Copyright (C) 1985, 86,87,88,93,94,95,98,99, 2000, 01, 2004
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1998, 1999, 2000,
+ 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -527,7 +527,7 @@ access_keymap (map, idx, t_ok, noinherit, autoload)
GCPRO1 (map);
/* A strange value in which Meta is set would cause
infinite recursion. Protect against that. */
- if (meta_prefix_char & CHAR_META)
+ if (XINT (meta_prefix_char) & CHAR_META)
meta_prefix_char = make_number (27);
meta_map = get_keymap (access_keymap (map, meta_prefix_char,
t_ok, noinherit, autoload),
diff --git a/src/macterm.c b/src/macterm.c
index 9a1ee834ce..aeed88013e 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -4737,29 +4737,10 @@ x_draw_hollow_cursor (w, row)
if (cursor_glyph == NULL)
return;
- /* Compute the width of the rectangle to draw. If on a stretch
- glyph, and `x-stretch-block-cursor' is nil, don't draw a
- rectangle as wide as the glyph, but use a canonical character
- width instead. */
- wd = cursor_glyph->pixel_width - 1;
- if (cursor_glyph->type == STRETCH_GLYPH
- && !x_stretch_cursor_p)
- wd = min (FRAME_COLUMN_WIDTH (f), wd);
- w->phys_cursor_width = wd;
-
- /* Compute frame-relative coordinates from window-relative
- coordinates. */
+ /* Compute frame-relative coordinates for phys cursor. */
x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x);
- y = WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y);
-
- /* Compute the proper height and ascent of the rectangle, based
- on the actual glyph. Using the full height of the row looks
- bad when there are tall images on that row. */
- h = max (min (FRAME_LINE_HEIGHT (f), row->height),
- cursor_glyph->ascent + cursor_glyph->descent);
- if (h < row->height)
- y += row->ascent /* - w->phys_cursor_ascent */ + cursor_glyph->descent - h;
- h--;
+ y = get_phys_cursor_geometry (w, row, cursor_glyph, &h);
+ wd = w->phys_cursor_width;
/* The foreground of cursor_gc is typically the same as the normal
background color, which can cause the cursor box to be invisible. */
diff --git a/src/w32term.c b/src/w32term.c
index bffdd8f256..151afb7e84 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -5088,7 +5088,7 @@ x_draw_hollow_cursor (w, row)
struct frame *f = XFRAME (WINDOW_FRAME (w));
HDC hdc;
RECT rect;
- int wd, h;
+ int h;
struct glyph *cursor_glyph;
HBRUSH hb = CreateSolidBrush (f->output_data.w32->cursor_pixel);
@@ -5098,34 +5098,12 @@ x_draw_hollow_cursor (w, row)
if (cursor_glyph == NULL)
return;
- /* Compute frame-relative coordinates from window-relative
- coordinates. */
+ /* Compute frame-relative coordinates for phys cursor. */
rect.left = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x);
- rect.top = (WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y)
- + row->ascent - w->phys_cursor_ascent);
-
- /* Compute the proper height and ascent of the rectangle, based
- on the actual glyph. Using the full height of the row looks
- bad when there are tall images on that row. */
- h = max (min (FRAME_LINE_HEIGHT (f), row->height),
- cursor_glyph->ascent + cursor_glyph->descent);
- if (h < row->height)
- rect.top += row->ascent /* - w->phys_cursor_ascent */ + cursor_glyph->descent - h;
- h--;
-
+ rect.top = get_phys_cursor_geometry (w, row, cursor_glyph, &h);
rect.bottom = rect.top + h;
+ rect.right = rect.left + w->phys_cursor_width;
- /* Compute the width of the rectangle to draw. If on a stretch
- glyph, and `x-stretch-block-cursor' is nil, don't draw a
- rectangle as wide as the glyph, but use a canonical character
- width instead. */
- wd = cursor_glyph->pixel_width; /* TODO: Why off by one compared with X? */
- if (cursor_glyph->type == STRETCH_GLYPH
- && !x_stretch_cursor_p)
- wd = min (FRAME_COLUMN_WIDTH (f), wd);
- w->phys_cursor_width = wd;
-
- rect.right = rect.left + wd;
hdc = get_frame_dc (f);
/* Set clipping, draw the rectangle, and reset clipping again. */
w32_clip_to_row (w, row, TEXT_AREA, hdc);
diff --git a/src/xdisp.c b/src/xdisp.c
index a8f36e04e3..7d7e510892 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -1840,7 +1840,7 @@ get_glyph_string_clip_rect (s, nr)
if (s->hl == DRAW_CURSOR)
{
struct glyph *glyph = s->first_glyph;
- int height;
+ int height, max_y;
if (s->x > r.x)
{
@@ -1849,13 +1849,26 @@ get_glyph_string_clip_rect (s, nr)
}
r.width = min (r.width, glyph->pixel_width);
- /* Don't draw cursor glyph taller than our actual glyph. */
- height = max (FRAME_LINE_HEIGHT (s->f), glyph->ascent + glyph->descent);
- if (height < r.height)
+ /* If r.y is below window bottom, ensure that we still see a cursor. */
+ height = min (glyph->ascent + glyph->descent,
+ min (FRAME_LINE_HEIGHT (s->f), s->row->visible_height));
+ max_y = window_text_bottom_y (s->w) - height;
+ max_y = WINDOW_TO_FRAME_PIXEL_Y (s->w, max_y);
+ if (s->ybase - glyph->ascent > max_y)
{
- int max_y = r.y + r.height;
- r.y = min (max_y, s->ybase + glyph->descent - height);
- r.height = min (max_y - r.y, height);
+ r.y = max_y;
+ r.height = height;
+ }
+ else
+ {
+ /* Don't draw cursor glyph taller than our actual glyph. */
+ height = max (FRAME_LINE_HEIGHT (s->f), glyph->ascent + glyph->descent);
+ if (height < r.height)
+ {
+ max_y = r.y + r.height;
+ r.y = min (max_y, max (r.y, s->ybase + glyph->descent - height));
+ r.height = min (max_y - r.y, height);
+ }
}
}
@@ -1866,6 +1879,64 @@ get_glyph_string_clip_rect (s, nr)
#endif
}
+
+/* EXPORT:
+ Return the position and height of the phys cursor in window W.
+ Set w->phys_cursor_width to width of phys cursor.
+*/
+
+int
+get_phys_cursor_geometry (w, row, glyph, heightp)
+ struct window *w;
+ struct glyph_row *row;
+ struct glyph *glyph;
+ int *heightp;
+{
+ struct frame *f = XFRAME (WINDOW_FRAME (w));
+ int x, y, wd, h, h0, y0;
+
+ /* Compute the width of the rectangle to draw. If on a stretch
+ glyph, and `x-stretch-block-cursor' is nil, don't draw a
+ rectangle as wide as the glyph, but use a canonical character
+ width instead. */
+ wd = glyph->pixel_width - 1;
+#ifdef HAVE_NTGUI
+ wd++; /* Why? */
+#endif
+ if (glyph->type == STRETCH_GLYPH
+ && !x_stretch_cursor_p)
+ wd = min (FRAME_COLUMN_WIDTH (f), wd);
+ w->phys_cursor_width = wd;
+
+ y = w->phys_cursor.y + row->ascent - glyph->ascent;
+
+ /* If y is below window bottom, ensure that we still see a cursor. */
+ h0 = min (FRAME_LINE_HEIGHT (f), row->visible_height);
+
+ h = max (h0, glyph->ascent + glyph->descent);
+ h0 = min (h0, glyph->ascent + glyph->descent);
+
+ y0 = WINDOW_HEADER_LINE_HEIGHT (w);
+ if (y < y0)
+ {
+ h = max (h - (y0 - y) + 1, h0);
+ y = y0 - 1;
+ }
+ else
+ {
+ y0 = window_text_bottom_y (w) - h0;
+ if (y > y0)
+ {
+ h += y - y0;
+ y = y0;
+ }
+ }
+
+ *heightp = h - 1;
+ return WINDOW_TO_FRAME_PIXEL_Y (w, y);
+}
+
+
#endif /* HAVE_WINDOW_SYSTEM */
diff --git a/src/xterm.c b/src/xterm.c
index a68725a463..c54b96a19b 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -1,6 +1,6 @@
/* X Communication module for terminals which understand the X protocol.
- Copyright (C) 1989, 93, 94, 95, 96, 97, 98, 1999, 2000,01,02,03,04
- Free Software Foundation, Inc.
+ Copyright (C) 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -7157,7 +7157,7 @@ x_clip_to_row (w, row, area, gc)
window_box (w, area, &window_x, &window_y, &window_width, 0);
clip_rect.x = window_x;
- clip_rect.y = WINDOW_TO_FRAME_PIXEL_Y (w, row->y);
+ clip_rect.y = WINDOW_TO_FRAME_PIXEL_Y (w, max (0, row->y));
clip_rect.y = max (clip_rect.y, window_y);
clip_rect.width = window_width;
clip_rect.height = row->visible_height;
@@ -7187,29 +7187,10 @@ x_draw_hollow_cursor (w, row)
if (cursor_glyph == NULL)
return;
- /* Compute the width of the rectangle to draw. If on a stretch
- glyph, and `x-stretch-block-cursor' is nil, don't draw a
- rectangle as wide as the glyph, but use a canonical character
- width instead. */
- wd = cursor_glyph->pixel_width - 1;
- if (cursor_glyph->type == STRETCH_GLYPH
- && !x_stretch_cursor_p)
- wd = min (FRAME_COLUMN_WIDTH (f), wd);
- w->phys_cursor_width = wd;
-
- /* Compute frame-relative coordinates from window-relative
- coordinates. */
+ /* Compute frame-relative coordinates for phys cursor. */
x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x);
- y = WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y);
-
- /* Compute the proper height and ascent of the rectangle, based
- on the actual glyph. Using the full height of the row looks
- bad when there are tall images on that row. */
- h = max (min (FRAME_LINE_HEIGHT (f), row->height),
- cursor_glyph->ascent + cursor_glyph->descent);
- if (h < row->height)
- y += row->ascent /* - w->phys_cursor_ascent */ + cursor_glyph->descent - h;
- h--;
+ y = get_phys_cursor_geometry (w, row, cursor_glyph, &h);
+ wd = w->phys_cursor_width;
/* The foreground of cursor_gc is typically the same as the normal
background color, which can cause the cursor box to be invisible. */
@@ -7773,11 +7754,32 @@ x_connection_closed (dpy, error_message)
error ("%s", error_msg);
}
+/* We specifically use it before defining it, so that gcc doesn't inline it,
+ otherwise gdb doesn't know how to properly put a breakpoint on it. */
+static void x_error_quitter (Display *display, XErrorEvent *error);
+
+/* This is the first-level handler for X protocol errors.
+ It calls x_error_quitter or x_error_catcher. */
+
+static int
+x_error_handler (display, error)
+ Display *display;
+ XErrorEvent *error;
+{
+ if (! NILP (x_error_message_string))
+ x_error_catcher (display, error);
+ else
+ x_error_quitter (display, error);
+ return 0;
+}
/* This is the usual handler for X protocol errors.
It kills all frames on the display that we got the error for.
If that was the only one, it prints an error message and kills Emacs. */
+/* It is after x_error_handler so that it won't get inlined in
+ x_error_handler. */
+
static void
x_error_quitter (display, error)
Display *display;
@@ -7795,21 +7797,6 @@ x_error_quitter (display, error)
}
-/* This is the first-level handler for X protocol errors.
- It calls x_error_quitter or x_error_catcher. */
-
-static int
-x_error_handler (display, error)
- Display *display;
- XErrorEvent *error;
-{
- if (! NILP (x_error_message_string))
- x_error_catcher (display, error);
- else
- x_error_quitter (display, error);
- return 0;
-}
-
/* This is the handler for X IO errors, always.
It kills all frames on the display that we lost touch with.
If that was the only one, it prints an error message and kills Emacs. */