Mercurial > emacs
changeset 90085:f8a7a9ba3d08
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
author | Miles Bader <miles@gnu.org> |
---|---|
date | Sat, 29 Jan 2005 00:06:24 +0000 |
parents | befae6bafecb (current diff) 472e5513512f (diff) |
children | f16730ea4562 |
files | lisp/ChangeLog lisp/cus-edit.el lisp/cus-start.el lisp/descr-text.el lisp/emacs-lisp/lisp-mode.el lisp/gnus/ChangeLog lisp/gnus/gnus-art.el lisp/gnus/message.el lisp/gnus/mml.el lisp/help-at-pt.el lisp/international/mule-cmds.el lisp/progmodes/gdb-ui.el lisp/progmodes/scheme.el lisp/speedbar.el lisp/textmodes/bibtex.el lisp/textmodes/ispell.el lisp/textmodes/reftex-global.el lisp/textmodes/reftex.el man/ChangeLog man/cmdargs.texi man/gnus.texi man/reftex.texi src/ChangeLog src/dispextern.h src/keymap.c src/macterm.c src/w32term.c src/xdisp.c src/xterm.c |
diffstat | 30 files changed, 650 insertions(+), 353 deletions(-) [+] |
line wrap: on
line diff
--- a/admin/FOR-RELEASE Mon Jan 24 22:34:31 2005 +0000 +++ b/admin/FOR-RELEASE Sat Jan 29 00:06:24 2005 +0000 @@ -4,9 +4,6 @@ ** 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 @@ ** 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/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
--- a/lisp/ChangeLog Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/ChangeLog Sat Jan 29 00:06:24 2005 +0000 @@ -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>
--- a/lisp/cus-edit.el Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/cus-edit.el Sat Jan 29 00:06:24 2005 +0000 @@ -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 @@ (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 @@ 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 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 @@ (provide 'cus-edit) -;;; arch-tag: 64533aa4-1b1a-48c3-8812-f9dc718e8a6f +;; arch-tag: 64533aa4-1b1a-48c3-8812-f9dc718e8a6f ;;; cus-edit.el ends here
--- a/lisp/cus-start.el Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/cus-start.el Sat Jan 29 00:06:24 2005 +0000 @@ -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.
--- a/lisp/descr-text.el Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/descr-text.el Sat Jan 29 00:06:24 2005 +0000 @@ -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 @@ (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.
--- a/lisp/emacs-lisp/lisp-mode.el Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/emacs-lisp/lisp-mode.el Sat Jan 29 00:06:24 2005 +0000 @@ -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 @@ (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)
--- a/lisp/gnus/ChangeLog Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/gnus/ChangeLog Sat Jan 29 00:06:24 2005 +0000 @@ -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
--- a/lisp/gnus/gnus-art.el Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/gnus/gnus-art.el Sat Jan 29 00:06:24 2005 +0000 @@ -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 @@ (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)
--- a/lisp/gnus/message.el Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/gnus/message.el Sat Jan 29 00:06:24 2005 +0000 @@ -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 @@ ;; 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 @@ 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 @@ (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 @@ ;; coding: iso-8859-1 ;; End: -;;; arch-tag: 94b32cac-4504-4b6c-8181-030ebf380ee0 +;; arch-tag: 94b32cac-4504-4b6c-8181-030ebf380ee0 ;;; message.el ends here
--- a/lisp/gnus/mml.el Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/gnus/mml.el Sat Jan 29 00:06:24 2005 +0000 @@ -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 @@ (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))
--- a/lisp/help-at-pt.el Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/help-at-pt.el Sat Jan 29 00:06:24 2005 +0000 @@ -146,6 +146,7 @@ (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
--- a/lisp/international/mule-cmds.el Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/international/mule-cmds.el Sat Jan 29 00:06:24 2005 +0000 @@ -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 @@ ;; 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 @@ ;; 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 @@ (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)
--- a/lisp/progmodes/gdb-ui.el Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/progmodes/gdb-ui.el Sat Jan 29 00:06:24 2005 +0000 @@ -1143,7 +1143,7 @@ (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 @@ (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))
--- a/lisp/progmodes/scheme.el Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/progmodes/scheme.el Sat Jan 29 00:06:24 2005 +0000 @@ -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 @@ (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 @@ 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 @@ "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 @@ 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 @@ (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 @@ (provide 'scheme) -;;; arch-tag: a8f06bc1-ad11-42d2-9e36-ce651df37a90 +;; arch-tag: a8f06bc1-ad11-42d2-9e36-ce651df37a90 ;;; scheme.el ends here
--- a/lisp/speedbar.el Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/speedbar.el Sat Jan 29 00:06:24 2005 +0000 @@ -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 @@ (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 @@ 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 @@ ;; 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
--- a/lisp/textmodes/bibtex.el Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/textmodes/bibtex.el Sat Jan 29 00:06:24 2005 +0000 @@ -173,7 +173,7 @@ 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 @@ '("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 @@ (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 @@ 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 @@ "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 @@ 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 @@ (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 @@ (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 @@ (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 @@ (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
--- a/lisp/textmodes/ispell.el Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/textmodes/ispell.el Sat Jan 29 00:06:24 2005 +0000 @@ -591,12 +591,12 @@ "[^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)))
--- a/lisp/textmodes/reftex-global.el Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/textmodes/reftex-global.el Sat Jan 29 00:06:24 2005 +0000 @@ -338,5 +338,131 @@ (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
--- a/lisp/textmodes/reftex.el Mon Jan 24 22:34:31 2005 +0000 +++ b/lisp/textmodes/reftex.el Sat Jan 29 00:06:24 2005 +0000 @@ -2487,7 +2487,9 @@ "--" "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)
--- a/man/ChangeLog Mon Jan 24 22:34:31 2005 +0000 +++ b/man/ChangeLog Sat Jan 29 00:06:24 2005 +0000 @@ -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.
--- a/man/cmdargs.texi Mon Jan 24 22:34:31 2005 +0000 +++ b/man/cmdargs.texi Sat Jan 29 00:06:24 2005 +0000 @@ -169,8 +169,9 @@ 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 @@ @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
--- a/man/gnus.texi Mon Jan 24 22:34:31 2005 +0000 +++ b/man/gnus.texi Sat Jan 29 00:06:24 2005 +0000 @@ -391,25 +391,25 @@ @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 @@ 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 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 @@ @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 @@ 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 @@ @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 @@ 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 @@ 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 @@ * 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 @@ @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 @@ 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.
--- a/man/reftex.texi Mon Jan 24 22:34:31 2005 +0000 +++ b/man/reftex.texi Sat Jan 29 00:06:24 2005 +0000 @@ -3520,13 +3520,15 @@ 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 @@ 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
--- a/src/ChangeLog Mon Jan 24 22:34:31 2005 +0000 +++ b/src/ChangeLog Sat Jan 29 00:06:24 2005 +0000 @@ -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.
--- a/src/dispextern.h Mon Jan 24 22:34:31 2005 +0000 +++ b/src/dispextern.h Sat Jan 29 00:06:24 2005 +0000 @@ -2640,6 +2640,8 @@ 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));
--- a/src/keymap.c Mon Jan 24 22:34:31 2005 +0000 +++ b/src/keymap.c Sat Jan 29 00:06:24 2005 +0000 @@ -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 @@ 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),
--- a/src/macterm.c Mon Jan 24 22:34:31 2005 +0000 +++ b/src/macterm.c Sat Jan 29 00:06:24 2005 +0000 @@ -4737,29 +4737,10 @@ 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. */
--- a/src/w32term.c Mon Jan 24 22:34:31 2005 +0000 +++ b/src/w32term.c Sat Jan 29 00:06:24 2005 +0000 @@ -5088,7 +5088,7 @@ 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 @@ 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; - - /* 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; + rect.right = rect.left + w->phys_cursor_width; + hdc = get_frame_dc (f); /* Set clipping, draw the rectangle, and reset clipping again. */ w32_clip_to_row (w, row, TEXT_AREA, hdc);
--- a/src/xdisp.c Mon Jan 24 22:34:31 2005 +0000 +++ b/src/xdisp.c Sat Jan 29 00:06:24 2005 +0000 @@ -1840,7 +1840,7 @@ 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 @@ } 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) - { - 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); + /* 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) + { + 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 @@ #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 */
--- a/src/xterm.c Mon Jan 24 22:34:31 2005 +0000 +++ b/src/xterm.c Sat Jan 29 00:06:24 2005 +0000 @@ -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 @@ 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 @@ 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 @@ 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 @@ } -/* 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. */