changeset 90108:bbc2e661b93c

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-18 Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0 (patch 125-128) - Update from CVS - Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/gnus--rel--5.10 (patch 28-30) - Update from CVS
author Miles Bader <miles@gnu.org>
date Fri, 25 Feb 2005 06:44:33 +0000
parents 02eaf6dd9258 (current diff) bbe4bd573f0c (diff)
children 790c49ba39db
files admin/FOR-RELEASE etc/NEWS lisp/ChangeLog lisp/calendar/appt.el lisp/cus-edit.el lisp/frame.el lisp/gnus/ChangeLog lisp/gnus/gnus-art.el lisp/gnus/gnus-group.el lisp/gnus/gnus-sum.el lisp/gnus/nnfolder.el lisp/gnus/nnheader.el lisp/info.el lisp/international/iso-acc.el lisp/subr.el lisp/textmodes/tex-mode.el lispref/ChangeLog lispref/display.texi lispref/modes.texi man/ChangeLog man/cmdargs.texi src/ChangeLog src/buffer.c
diffstat 25 files changed, 267 insertions(+), 114 deletions(-) [+]
line wrap: on
line diff
--- a/admin/FOR-RELEASE	Thu Feb 24 01:36:41 2005 +0000
+++ b/admin/FOR-RELEASE	Fri Feb 25 06:44:33 2005 +0000
@@ -195,7 +195,7 @@
 man/emacs.texi      "Luc Teirlinck"
 man/entering.texi   "Luc Teirlinck"  Chong Yidong
 man/files.texi      "Luc Teirlinck"  Chong Yidong
-man/fixit.texi      "Luc Teirlinck"
+man/fixit.texi      "Luc Teirlinck"  Chong Yidong
 man/frames.texi     "Luc Teirlinck"  Chong Yidong
 man/glossary.texi
 man/help.texi       "Luc Teirlinck"  Chong Yidong
@@ -205,17 +205,17 @@
 man/macos.texi
 man/maintaining.texi
 man/major.texi      "Luc Teirlinck"  Chong Yidong
-man/mark.texi       "Luc Teirlinck"
-man/mini.texi       "Luc Teirlinck"
+man/mark.texi       "Luc Teirlinck"  Chong Yidong
+man/mini.texi       "Luc Teirlinck"  Chong Yidong
 man/misc.texi
 man/msdog.texi      Chong Yidong
 man/mule.texi       "Luc Teirlinck"
-man/m-x.texi        "Luc Teirlinck"
+man/m-x.texi        "Luc Teirlinck"  Chong Yidong
 man/picture.texi    Joakim Verona <joakim@verona.se>
 man/programs.texi   "Stephen Eglen"  Chong Yidong
 man/regs.texi       "Luc Teirlinck"   Chong Yidong
 man/rmail.texi
-man/screen.texi     "Luc Teirlinck"
+man/screen.texi     "Luc Teirlinck"  Chong Yidong
 man/search.texi     "Luc Teirlinck"
 man/sending.texi
 man/text.texi       "Luc Teirlinck"   Chong Yidong
@@ -235,7 +235,7 @@
 lispref/abbrevs.texi     "Luc Teirlinck"
 lispref/advice.texi	 Joakim Verona <joakim@verona.se>
 lispref/anti.texi
-lispref/backups.texi     "Luc Teirlinck"
+lispref/backups.texi     "Luc Teirlinck"  Chong Yidong
 lispref/buffers.texi     "Luc Teirlinck"   Chong Yidong
 lispref/calendar.texi    Joakim Verona <joakim@verona.se>
 lispref/commands.texi    "Luc Teirlinck"
@@ -268,17 +268,17 @@
 lispref/nonascii.texi    "Luc Teirlinck"
 lispref/numbers.texi	 "Luc Teirlinck"   Chong Yidong
 lispref/objects.texi	 "Luc Teirlinck"   Chong Yidong
-lispref/os.texi		 "Luc Teirlinck"
+lispref/os.texi		 "Luc Teirlinck"   Chong Yidong
 lispref/positions.texi	 "Luc Teirlinck"   Chong Yidong
 lispref/processes.texi
 lispref/searching.texi	 "Luc Teirlinck"
-lispref/sequences.texi	 "Luc Teirlinck"
+lispref/sequences.texi	 "Luc Teirlinck"   Chong Yidong
 lispref/streams.texi	 "Luc Teirlinck"   Chong Yidong
 lispref/strings.texi	 "Luc Teirlinck"   Chong Yidong
 lispref/symbols.texi	 "Luc Teirlinck"   Chong Yidong
-lispref/syntax.texi	 "Luc Teirlinck"
+lispref/syntax.texi	 "Luc Teirlinck"   Chong Yidong
 lispref/text.texi        Chong Yidong
-lispref/tips.texi	 "Luc Teirlinck"
+lispref/tips.texi	 "Luc Teirlinck"   Chong Yidong
 lispref/variables.texi	 "Luc Teirlinck"   Chong Yidong
 lispref/windows.texi     "Luc Teirlinck"   Chong Yidong
 
--- a/etc/NEWS	Thu Feb 24 01:36:41 2005 +0000
+++ b/etc/NEWS	Fri Feb 25 06:44:33 2005 +0000
@@ -774,8 +774,10 @@
 *** A numeric prefix argument of `info' selects an Info buffer
 with the number appended to the *info* buffer name (e.g. "*info*<2>").
 
-*** Regexp isearch (C-M-s and C-M-r) can search through multiple nodes.
-Failed isearch wraps to the top/final node.
+*** isearch in Info uses Info-search and searches through multiple nodes.
+Failed isearch wraps to the top/final node.  The user option
+`Info-isearch-search' controls whether to use Info-search or the
+default isearch search function.
 
 *** New search commands: `Info-search-case-sensitively' (bound to S),
 `Info-search-backward', and `Info-search-next' which repeats the last
--- a/lisp/ChangeLog	Thu Feb 24 01:36:41 2005 +0000
+++ b/lisp/ChangeLog	Fri Feb 25 06:44:33 2005 +0000
@@ -1,12 +1,54 @@
+2005-02-24  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* frame.el (blink-cursor-mode): Add :group keyword.
+
+2005-02-24  Ulf Jasper  <ulf.jasper@web.de>
+
+	* calendar/icalendar.el (icalendar--decode-isodatetime): New
+	optional argument DAY-SHIFT.
+	(icalendar-export-region): Fix coding-system-for-write.
+	(icalendar--convert-ical-to-diary): Shift end-day of all-day
+	events by one.
+
+2005-02-24  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* textmodes/tex-mode.el (tex-font-lock-keywords-3): #n is atomic.
+
+2005-02-24  Kim F. Storm  <storm@cua.dk>
+
+	* international/iso-acc.el (iso-accents-compose): Fix crash
+	during redisplay.  Call force-window-update after read-event
+	and delete-region to signal that window is not accurate.
+
+2005-02-23  Richard M. Stallman  <rms@gnu.org>
+
+	* calendar/appt.el (appt-time-msg-list): 3rd elt of each
+	appointment says it was explicitly made.
+	(appt-add): Set the 3rd element.
+	(appt-make-list): Preserve explicit appointments.
+
+	* subr.el (find-tag-default): Catch errors in forward-sexp.
+
+2005-02-23  Juri Linkov  <juri@jurta.org>
+
+	* info.el (Info-isearch-search): New defcustom.
+	(Info-isearch-search): Call the default isearch function
+	when Info-isearch-search is nil.
+	(Info-isearch-wrap): Use variable Info-isearch-search.
+
+2005-02-22  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* cus-edit.el: Comment change.
+
 2005-02-22  Kim F. Storm  <storm@cua.dk>
 
-	* progmodes/hideif.el (hide-ifdef-use-define-alist): Use
-	completing-read.  Suggested by Juan-Leon Lahoz Garcia.
+	* progmodes/hideif.el (hide-ifdef-use-define-alist):
+	Use completing-read.  Suggested by Juan-Leon Lahoz Garcia.
 
 2005-02-22  Simon Josefsson  <jas@extundo.com>
 
-	* net/browse-url.el (browse-url-netscape-new-window-is-tab): New
-	variable.
+	* net/browse-url.el (browse-url-netscape-new-window-is-tab):
+	New variable.
 	(browse-url-netscape): Use it.  Suggested by "Johann 'Myrkraverk'
 	Oskarsson" <myrkraverk@users.sourceforget.net>.
 
--- a/lisp/calendar/appt.el	Thu Feb 24 01:36:41 2005 +0000
+++ b/lisp/calendar/appt.el	Fri Feb 25 06:44:33 2005 +0000
@@ -189,9 +189,11 @@
 Use `appt-add' and `appt-delete' to add and delete appointments.
 The original list is generated from today's `diary-entries-list', and
 can be regenerated using the function `appt-check'.
-Each element of the generated list has the form (MINUTES) STRING; where
+Each element of the generated list has the form (MINUTES STRING [FLAG]); where
 MINUTES is the time in minutes of the appointment after midnight, and
-STRING is the description of the appointment.")
+STRING is the description of the appointment.
+FLAG, if non-nil, says that the element was made with `appt-add'
+so calling `appt-make-list' again should preserve it.")
 
 (defconst appt-max-time 1439
   "11:59pm in minutes - number of minutes in a day minus 1.")
@@ -493,7 +495,7 @@
     (error "Unacceptable time-string"))
   (let* ((appt-time-string (concat new-appt-time " " new-appt-msg))
          (appt-time (list (appt-convert-time new-appt-time)))
-         (time-msg (cons appt-time (list appt-time-string))))
+         (time-msg (list appt-time appt-time-string t)))
     (setq appt-time-msg-list (nconc appt-time-msg-list (list time-msg)))
     (setq appt-time-msg-list (appt-sort-list appt-time-msg-list))))
 
@@ -525,12 +527,15 @@
 		   (defvar diary-entries-list))
 ;;;###autoload
 (defun appt-make-list ()
-  "Create the appointments list from today's diary buffer.
+  "Update the appointments list from today's diary buffer.
 The time must be at the beginning of a line for it to be
 put in the appointments list (see examples in documentation of
 the function `appt-check').  We assume that the variables DATE and
 NUMBER hold the arguments that `list-diary-entries' received.
-They specify the range of dates that the diary is being processed for."
+They specify the range of dates that the diary is being processed for.
+
+Any appointments made with `appt-add' are not affected by this
+function."
 
   ;; We have something to do if the range of dates that the diary is
   ;; considering includes the current date.
@@ -544,7 +549,11 @@
 		      number)))))
       (save-excursion
 	;; Clear the appointments list, then fill it in from the diary.
-	(setq appt-time-msg-list nil)
+	(dolist (elt appt-time-msg-list)
+	  ;; Delete any entries that were not made with appt-add.
+	  (unless (nth 2 elt)
+	    (setq appt-time-msg-list
+		  (delq elt appt-time-msg-list))))
 	(if diary-entries-list
 
 	    ;; Cycle through the entry-list (diary-entries-list)
--- a/lisp/calendar/icalendar.el	Thu Feb 24 01:36:41 2005 +0000
+++ b/lisp/calendar/icalendar.el	Fri Feb 25 06:44:33 2005 +0000
@@ -90,7 +90,7 @@
 
 ;;; Code:
 
-(defconst icalendar-version 0.09
+(defconst icalendar-version 0.10
   "Version number of icalendar.el.")
 
 ;; ======================================================================
@@ -360,12 +360,16 @@
                 (append result (list (list param-name param-value)))))))
     result))
 
-(defun icalendar--decode-isodatetime (isodatetimestring)
+(defun icalendar--decode-isodatetime (isodatetimestring &optional day-shift)
   "Return ISODATETIMESTRING in format like `decode-time'.
-Converts from ISO-8601 to Emacs representation.  If ISODATETIMESTRING
-specifies UTC time (trailing letter Z) the decoded time is given in
-the local time zone! FIXME: TZID-attributes are ignored....! FIXME:
-multiple comma-separated values should be allowed!"
+Converts from ISO-8601 to Emacs representation.  If
+ISODATETIMESTRING specifies UTC time (trailing letter Z) the
+decoded time is given in the local time zone!  If optional
+parameter DAY-SHIFT is non-nil the result is shifted by DAY-SHIFT
+days.
+
+FIXME: TZID-attributes are ignored....!
+FIXME: multiple comma-separated values should be allowed!"
   (icalendar--dmsg isodatetimestring)
   (if isodatetimestring
       ;; day/month/year must be present
@@ -387,6 +391,15 @@
                    (char-equal ?Z (aref isodatetimestring 15)))
           ;; if not UTC add current-time-zone offset
           (setq second (+ (car (current-time-zone)) second)))
+        ;; shift if necessary
+        (if day-shift
+            (let ((mdy (calendar-gregorian-from-absolute
+                        (+ (calendar-absolute-from-gregorian
+                            (list month day year))
+                           day-shift))))
+              (setq month (nth 0 mdy))
+              (setq day   (nth 1 mdy))
+              (setq year  (nth 2 mdy))))
         ;; create the decoded date-time
         ;; FIXME!?!
         (condition-case nil
@@ -1083,7 +1096,7 @@
 
       ;; we're done, insert everything into the file
       (save-current-buffer
-        (let ((coding-system-for-write 'utf8))
+        (let ((coding-system-for-write 'utf-8))
           (set-buffer (find-file ical-filename))
           (goto-char (point-max))
           (insert "BEGIN:VCALENDAR")
@@ -1284,7 +1297,7 @@
                                        (unt
                                         (icalendar--datetime-to-diary-date
                                          (icalendar--decode-isodatetime
-                                          until))))
+                                          until -1))))
                              (setq diary-string
                                    (format
                                     (concat "%%%%(and "
@@ -1297,7 +1310,7 @@
                                      dtstart)
                                     (icalendar--datetime-to-diary-date
                                      (icalendar--decode-isodatetime
-                                      until)))))
+                                      until -1)))))
                                (setq diary-string
                                      (format "%%%%(and (diary-cyclic %d %s))"
                                              (* interval 7)
@@ -1369,7 +1382,7 @@
                                     e 'DTSTART))))
                              (de (icalendar--datetime-to-diary-date
                                   (icalendar--decode-isodatetime
-                                   until))))
+                                   until -1))))
                          (setq diary-string
                                (format
                                 "%%%%(and (diary-block %s %s))"
@@ -1406,11 +1419,14 @@
                                       (format "......"))))
                       (icalendar--split-value rdate)))
              ;; non-recurring event
-             ;; long event
+             ;; all-day event
              ((not (string= start-d end-d))
               (icalendar--dmsg "non-recurring event")
               (let ((ds (icalendar--datetime-to-diary-date dtstart))
-                    (de (icalendar--datetime-to-diary-date dtend)))
+                    (de (icalendar--datetime-to-diary-date
+                         (icalendar--decode-isodatetime
+                          (icalendar--get-event-property e 'DTEND)
+                          -1))))
                 (setq diary-string
                       (format "%%%%(and (diary-block %s %s))"
                               ds de)))
--- a/lisp/cus-edit.el	Thu Feb 24 01:36:41 2005 +0000
+++ b/lisp/cus-edit.el	Fri Feb 25 06:44:33 2005 +0000
@@ -35,7 +35,7 @@
 ;; that the user will run with M-x, and `Custom-' for interactive commands.
 
 ;; The identity of a customize option is represented by a Lisp symbol.
-;; There is the following values associated with an option.  
+;; The following values are associated with an option.
 
 ;; 0. The current value.
 
@@ -48,42 +48,42 @@
 
 ;; 1. The widget value.
 
-;;    This is the value shown in the widget in a customize buffer.  
+;;    This is the value shown in the widget in a customize buffer.
 
 ;; 2. The customized value.
 
 ;;    This is the last value given to the option through customize.
 
 ;;    It is stored in the 'customized-value' property of the option, in a
-;;    cons-cell whose car evaluate to the customized value.   
+;;    cons-cell whose car evaluates to the customized value.
 
 ;; 3. The saved value.
 
 ;;    This is last value saved from customize.
 
 ;;    It is stored in the 'saved-value' property of the option, in a
-;;    cons-cell whose car evaluate to the saved value.   
+;;    cons-cell whose car evaluates to the saved value.
 
 ;; 4. The standard value.
 
 ;;    This is the value given in the 'defcustom' declaration.
 
 ;;    It is stored in the 'standard-value' property of the option, in a
-;;    cons-cell whose car evaluate to the standard value.   
+;;    cons-cell whose car evaluates to the standard value.
 
 ;; 5. The "think" value.
-   
-;;    This is what customize think the current value should be.
-   
-;;    This is the customize value, if any such value exists, otherwise
+
+;;    This is what customize thinks the current value should be.
+
+;;    This is the customized value, if any such value exists, otherwise
 ;;    the saved value, if that exists, and as a last resort the standard
-;;    value. 
+;;    value.
 
 ;; The reason for storing values unevaluated: This is so you can have
 ;; values that depend on the environment.  For example, you can have a
-;; valiable that has one value when Emacs is running under a window
+;; variable that has one value when Emacs is running under a window
 ;; system, and another value on a tty.  Since the evaluation is only done
-;; when the variable is firsty initialized, this is only relevant for the
+;; when the variable is first initialized, this is only relevant for the
 ;; saved (and standard) values, but affect others values for
 ;; compatibility.
 
@@ -103,8 +103,8 @@
 ;;    The widget value is different from the current value.
 
 ;; 2. changed
-   
-;;    The current value is different from the "think" value.   
+
+;;    The current value is different from the "think" value.
 
 ;; 3. set
 
@@ -120,7 +120,11 @@
 
 ;; 6. rogue
 
-;;    There are no standard value.
+;;    There is no standard value.  This means that the variable was
+;;    not defined with defcustom.  You can not create a Custom buffer
+;;    for such variables using the normal interactive Custom commands.
+;;    However, such Custom buffers can be created in other ways, for
+;;    instance, by calling `customize-option' non-interactively.
 
 ;; 7. hidden
 
@@ -129,7 +133,7 @@
 ;; 8. mismatch
 
 ;;    The widget value is not valid member of the :type specified for the
-;;    option. 
+;;    option.
 
 ;;; Code:
 
--- a/lisp/frame.el	Thu Feb 24 01:36:41 2005 +0000
+++ b/lisp/frame.el	Fri Feb 25 06:44:33 2005 +0000
@@ -1273,6 +1273,7 @@
 		       emacs-quick-startup
 		       (eq system-type 'ms-dos)
 		       (not (memq window-system '(x w32)))))
+  :group 'cursor
   :global t
   (if blink-cursor-idle-timer (cancel-timer blink-cursor-idle-timer))
   (if blink-cursor-timer (cancel-timer blink-cursor-timer))
--- a/lisp/gnus/ChangeLog	Thu Feb 24 01:36:41 2005 +0000
+++ b/lisp/gnus/ChangeLog	Fri Feb 25 06:44:33 2005 +0000
@@ -1,3 +1,24 @@
+2005-02-24  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* nnheader.el (nnheader-find-file-noselect): Added doc string.
+
+	* nnfolder.el (nnfolder-read-folder): Use RAWFILE for
+	`nnheader-find-file-noselect' to avoid
+	`large-file-warning-threshold'.
+
+	* gnus-sum.el (gnus-summary-caesar-message): Apply
+	`gnus-treat-article' after rotation.
+
+	* gnus-group.el (gnus-group-clear-data): Mention process/prefix in
+	doc string.
+
+2005-02-22  Arne J,Ax(Brgensen  <arne@arnested.dk>
+
+	* smime.el (smime-sign-buffer): Signal an error if
+	`smime-sign-region' fails.
+	(smime-encrypt-buffer): Signal an error if `smime-encrypt-region'
+	fails.
+
 2005-02-21  Reiner Steib  <Reiner.Steib@gmx.de>
 
 	* gnus-art.el (gnus-parse-news-url, gnus-button-handle-news):
@@ -12,8 +33,8 @@
 
 	* mml.el (mime-to-mml): Ditto.
 
-	* rfc2047.el (rfc2047-encode-parameter): Use ietf-drums-tspecials.
-	(rfc2047-quote-decoded-words-containing-tspecials): New variable.
+	* rfc2047.el (rfc2047-quote-decoded-words-containing-tspecials):
+	New variable.
 	(rfc2047-decode-region): Quote decoded words containing special
 	characters when rfc2047-quote-decoded-words-containing-tspecials
 	is non-nil.
@@ -146,7 +167,7 @@
 
 	* gnus-start.el (gnus-setup-news): Honor user's setting to
 	gnus-message-archive-method.  Suggested by Lute Kamstra
-	<Lute.Kamstra@xs4all.nl>.
+	<lute@gnu.org>.
 
 2004-12-02  Katsumi Yamaoka  <yamaoka@jpl.org>
 
--- a/lisp/gnus/gnus-art.el	Thu Feb 24 01:36:41 2005 +0000
+++ b/lisp/gnus/gnus-art.el	Fri Feb 25 06:44:33 2005 +0000
@@ -6683,8 +6683,12 @@
       (save-excursion
 	(set-buffer gnus-summary-buffer)
 	(if server
-	    (let ((gnus-refer-article-method (list (list 'nntp server)))
+	    (let ((gnus-refer-article-method
+		   (nconc (list (list 'nntp server))
+			  gnus-refer-article-method))
 		  (nntp-port-number (or port "nntp")))
+	      (gnus-message 7 "Fetching %s with %s"
+			    message-id gnus-refer-article-method)
 	      (gnus-summary-refer-article message-id))
 	  (gnus-summary-refer-article message-id))))
      (group
--- a/lisp/gnus/gnus-group.el	Thu Feb 24 01:36:41 2005 +0000
+++ b/lisp/gnus/gnus-group.el	Fri Feb 25 06:44:33 2005 +0000
@@ -3028,7 +3028,8 @@
 ;;; Clearing data
 
 (defun gnus-group-clear-data (&optional arg)
-  "Clear all marks and read ranges from the current group."
+  "Clear all marks and read ranges from the current group.
+Obeys the process/prefix convention."
   (interactive "P")
   (gnus-group-iterate arg
     (lambda (group)
--- a/lisp/gnus/gnus-sum.el	Thu Feb 24 01:36:41 2005 +0000
+++ b/lisp/gnus/gnus-sum.el	Fri Feb 25 06:44:33 2005 +0000
@@ -8859,7 +8859,9 @@
 	(let ((start (window-start))
 	      buffer-read-only)
 	  (message-caesar-buffer-body arg)
-	  (set-window-start (get-buffer-window (current-buffer)) start))))))
+	  (set-window-start (get-buffer-window (current-buffer)) start)))))
+  ;; Create buttons and stuff...
+  (gnus-treat-article nil))
 
 (autoload 'unmorse-region "morse"
   "Convert morse coded text in region to ordinary ASCII text."
--- a/lisp/gnus/nnfolder.el	Thu Feb 24 01:36:41 2005 +0000
+++ b/lisp/gnus/nnfolder.el	Fri Feb 25 06:44:33 2005 +0000
@@ -873,7 +873,7 @@
 	 (buffer (set-buffer
 		  (let ((nnheader-file-coding-system
 			 nnfolder-file-coding-system))
-		    (nnheader-find-file-noselect file)))))
+		    (nnheader-find-file-noselect file t)))))
     (mm-enable-multibyte) ;; Use multibyte buffer for future copying.
     (if (equal (cadr (assoc group nnfolder-scantime-alist))
 	       (nth 5 (file-attributes file)))
--- a/lisp/gnus/nnheader.el	Thu Feb 24 01:36:41 2005 +0000
+++ b/lisp/gnus/nnheader.el	Fri Feb 25 06:44:33 2005 +0000
@@ -951,6 +951,8 @@
             (nnheader-insert-file-contents file)))))))
 
 (defun nnheader-find-file-noselect (&rest args)
+  "Open a file with some variables bound.
+See `find-file-noselect' for the arguments."
   (let ((format-alist nil)
 	(auto-mode-alist (mm-auto-mode-alist))
 	(default-major-mode 'fundamental-mode)
--- a/lisp/gnus/smime.el	Thu Feb 24 01:36:41 2005 +0000
+++ b/lisp/gnus/smime.el	Fri Feb 25 06:44:33 2005 +0000
@@ -332,16 +332,17 @@
 KEYFILE should contain a PEM encoded key and certificate."
   (interactive)
   (with-current-buffer (or buffer (current-buffer))
-    (smime-sign-region
-     (point-min) (point-max)
-     (if keyfile
-	 keyfile
-       (smime-get-key-with-certs-by-email
-	(completing-read
-	 (concat "Sign using which key? "
-		 (if smime-keys (concat "(default " (caar smime-keys) ") ")
-		   ""))
-	 smime-keys nil nil (car-safe (car-safe smime-keys))))))))
+    (unless (smime-sign-region
+	     (point-min) (point-max)
+	     (if keyfile
+		 keyfile
+	       (smime-get-key-with-certs-by-email
+		(completing-read
+		 (concat "Sign using which key? "
+			 (if smime-keys (concat "(default " (caar smime-keys) ") ")
+			   ""))
+		 smime-keys nil nil (car-safe (car-safe smime-keys))))))
+      (error "Signing failed"))))
 
 (defun smime-encrypt-buffer (&optional certfiles buffer)
   "S/MIME encrypt BUFFER for recipients specified in CERTFILES.
@@ -350,11 +351,12 @@
 nil."
   (interactive)
   (with-current-buffer (or buffer (current-buffer))
-    (smime-encrypt-region
-     (point-min) (point-max)
-     (or certfiles
-	 (list (read-file-name "Recipient's S/MIME certificate: "
-			       smime-certificate-directory nil))))))
+    (unless (smime-encrypt-region
+	     (point-min) (point-max)
+	     (or certfiles
+		 (list (read-file-name "Recipient's S/MIME certificate: "
+				       smime-certificate-directory nil))))
+      (error "Encryption failed"))))
 
 ;; Verify+decrypt region
 
--- a/lisp/info.el	Thu Feb 24 01:36:41 2005 +0000
+++ b/lisp/info.el	Fri Feb 25 06:44:33 2005 +0000
@@ -201,6 +201,15 @@
   :type 'regexp
   :group 'info)
 
+(defcustom Info-isearch-search t
+  "*If non-nil, isearch invoked in Info mode uses `Info-search' function.
+This allows isearch to search through multiple nodes.
+When isearch fails, it wraps and restarts the search from the
+top/final node depending on search direction."
+  :version "22.1"
+  :type 'boolean
+  :group 'info)
+
 (defcustom Info-mode-hook
   ;; Try to obey obsolete Info-fontify settings.
   (unless (and (boundp 'Info-fontify) (null Info-fontify))
@@ -1637,23 +1646,21 @@
   (Info-search regexp bound noerror count 'backward))
 
 (defun Info-isearch-search ()
-  (cond
-   (isearch-word
-    (if isearch-forward 'word-search-forward 'word-search-backward))
-   (isearch-regexp
-    (lambda (regexp bound noerror)
-      (condition-case nil
-          (progn
-            (Info-search regexp bound noerror nil
-                         (unless isearch-forward 'backward))
-            (point))
-        (error nil))))
-   (t
-    (if isearch-forward 'search-forward 'search-backward))))
+  (if (and Info-isearch-search (not isearch-word))
+      (lambda (string &optional bound noerror count)
+	(condition-case nil
+	    (progn
+	      (Info-search (if isearch-regexp string (regexp-quote string))
+			   bound noerror count
+			   (unless isearch-forward 'backward))
+	      (point))
+	  (error nil)))
+    (let ((isearch-search-fun-function nil))
+      (isearch-search-fun))))
 
 (defun Info-isearch-wrap ()
-  (if isearch-regexp
-      (if isearch-forward (Info-top-node) (Info-final-node))
+  (when (and Info-isearch-search (not isearch-word))
+    (if isearch-forward (Info-top-node) (Info-final-node))
     (goto-char (if isearch-forward (point-min) (point-max)))))
 
 (defun Info-isearch-push-state ()
--- a/lisp/international/iso-acc.el	Thu Feb 24 01:36:41 2005 +0000
+++ b/lisp/international/iso-acc.el	Fri Feb 25 06:44:33 2005 +0000
@@ -290,6 +290,16 @@
       (iso-accents-compose prompt)
     (vector last-input-char)))
 
+
+;; The iso-accents-compose function is called deep inside Emacs' read
+;; key sequence machinery, so the call to read-event below actually
+;; recurses into that machinery.  Doing that does not cause any
+;; problem on its own, but read-event will have marked the window's
+;; display matrix to be accurate -- which is broken by the subsequent
+;; call to delete-region.  Therefore, we must call force-window-update
+;; after delete-region to explicitly clear the accurate state of the
+;; window's display matrix.
+
 (defun iso-accents-compose (prompt)
   (let* ((first-char last-input-char)
 	 (list (assq first-char iso-accents-list))
@@ -308,7 +318,9 @@
 			    (read-event))
 			(insert first-char)
 			(prog1 (read-event)
-			  (delete-region (1- (point)) (point)))))
+			  (delete-region (1- (point)) (point))
+			  ;; Display is no longer up-to-date.
+			  (force-window-update (selected-window)))))
 	 (entry (cdr (assq second-char list))))
     (if entry
 	;; Found it: return the mapped char
--- a/lisp/subr.el	Thu Feb 24 01:36:41 2005 +0000
+++ b/lisp/subr.el	Fri Feb 25 06:44:33 2005 +0000
@@ -1969,13 +1969,16 @@
 	    (re-search-forward "\\(\\sw\\|\\s_\\)+"
 			       (save-excursion (end-of-line) (point))
 			       t))
-	(progn (goto-char (match-end 0))
-	       (buffer-substring-no-properties
-                (point)
-                (progn (forward-sexp -1)
-                       (while (looking-at "\\s'")
-                         (forward-char 1))
-                       (point))))
+	(progn
+	  (goto-char (match-end 0))
+	  (condition-case nil
+	      (buffer-substring-no-properties
+	       (point)
+	       (progn (forward-sexp -1)
+		      (while (looking-at "\\s'")
+			(forward-char 1))
+		      (point)))
+	    (error nil)))
       nil)))
 
 (defmacro with-syntax-table (table &rest body)
--- a/lisp/textmodes/tex-mode.el	Thu Feb 24 01:36:41 2005 +0000
+++ b/lisp/textmodes/tex-mode.el	Fri Feb 25 06:44:33 2005 +0000
@@ -1,7 +1,7 @@
 ;;; tex-mode.el --- TeX, LaTeX, and SliTeX mode commands -*- coding: utf-8 -*-
 
 ;; Copyright (C) 1985, 1986, 1989, 1992, 1994, 1995, 1996, 1997, 1998, 1999,
-;;   2002, 2003, 2004  Free Software Foundation, Inc.
+;;   2002, 2003, 2004, 2005  Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 ;; Keywords: tex
@@ -602,7 +602,7 @@
 	   ;; degenerate to nasty complexity (because we try to match the
 	   ;; closing brace, which forces trying all matching combinations).
 	   (arg "{\\(?:[^{}\\]\\|\\\\.\\|{[^}]*}\\)*"))
-       `((,(concat "[_^] *\\([^\n\\{}]\\|" slash general "\\|" arg "}\\)")
+       `((,(concat "[_^] *\\([^\n\\{}#]\\|" slash general "\\|#[0-9]\\|" arg "}\\)")
 	  (1 (tex-font-lock-suscript (match-beginning 0))
 	     append))))))
   "Experimental expressions to highlight in TeX modes.")
@@ -1027,10 +1027,8 @@
        'tex-categorize-whitespace)
   (set (make-local-variable 'facemenu-add-face-function)
        (lambda (face end)
-	 (let ((face-text (cdr (assq face tex-face-alist))))
-	   (if face-text
-	       face-text
-	     (error "Face %s not configured for %s mode" face mode-name)))))
+	 (or (cdr (assq face tex-face-alist))
+	     (error "Face %s not configured for %s mode" face mode-name))))
   (set (make-local-variable 'facemenu-end-add-face) "}")
   (set (make-local-variable 'facemenu-remove-face-function) t)
   (set (make-local-variable 'font-lock-defaults)
--- a/lispref/ChangeLog	Thu Feb 24 01:36:41 2005 +0000
+++ b/lispref/ChangeLog	Fri Feb 25 06:44:33 2005 +0000
@@ -1,3 +1,16 @@
+2005-02-24  Lute Kamstra  <lute@gnu.org>
+
+	* modes.texi (Defining Minor Modes): Explain that INIT-VALUE,
+	LIGHTER, and KEYMAP can be omitted when KEYWORD-ARGS are used.
+
+2005-02-23  Lute Kamstra  <lute@gnu.org>
+
+	* modes.texi (Defining Minor Modes): define-minor-mode can be used
+	to define global minor modes as well.
+
+	* display.texi (Managing Overlays): overlay-buffer returns nil for
+	deleted overlays.
+
 2005-02-22  Kim F. Storm  <storm@cua.dk>
 
 	* minibuf.texi (Basic Completion): Allow symbols in addition to
--- a/lispref/display.texi	Thu Feb 24 01:36:41 2005 +0000
+++ b/lispref/display.texi	Fri Feb 25 06:44:33 2005 +0000
@@ -1339,7 +1339,8 @@
 @end defun
 
 @defun overlay-buffer overlay
-This function returns the buffer that @var{overlay} belongs to.
+This function returns the buffer that @var{overlay} belongs to.  It
+returns @code{nil}, if @var{overlay} has been deleted.
 @end defun
 
 @defun delete-overlay overlay
--- a/lispref/modes.texi	Thu Feb 24 01:36:41 2005 +0000
+++ b/lispref/modes.texi	Fri Feb 25 06:44:33 2005 +0000
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003, 2004
-@c   Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 
+@c   2003, 2004, 2005 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/modes
 @node Modes, Documentation, Keymaps, Top
@@ -1098,10 +1098,9 @@
 @subsection Defining Minor Modes
 
   The macro @code{define-minor-mode} offers a convenient way of
-implementing a mode in one self-contained definition.  It supports only
-buffer-local minor modes, not global ones.
-
-@defmac define-minor-mode mode doc [init-value [lighter [keymap keyword-args... body...]]]
+implementing a mode in one self-contained definition.
+
+@defmac define-minor-mode mode doc [init-value [lighter [keymap]]] keyword-args... body...
 @tindex define-minor-mode
 This macro defines a new minor mode whose name is @var{mode} (a
 symbol).  It defines a command named @var{mode} to toggle the minor
@@ -1122,8 +1121,10 @@
 (@var{key-sequence} . @var{definition})
 @end example
 
-The @var{keyword-args} consist of keywords followed by corresponding
-values.  A few keywords have special meanings:
+The above three arguments @var{init-value}, @var{lighter}, and
+@var{keymap} can be (partially) omitted when @var{keyword-args} are
+used.  The @var{keyword-args} consist of keywords followed by
+corresponding values.  A few keywords have special meanings:
 
 @table @code
 @item :global @var{global}
--- a/man/ChangeLog	Thu Feb 24 01:36:41 2005 +0000
+++ b/man/ChangeLog	Fri Feb 25 06:44:33 2005 +0000
@@ -1,3 +1,7 @@
+2005-02-23  Lute Kamstra  <lute@gnu.org>
+
+	* cmdargs.texi (Initial Options): Add cross reference.
+
 2005-02-18  Jonathan Yavner  <jyavner@member.fsf.org>
 
 	* ses.texi: Add concept/function/variable indices (this work was
--- a/man/cmdargs.texi	Thu Feb 24 01:36:41 2005 +0000
+++ b/man/cmdargs.texi	Fri Feb 25 06:44:33 2005 +0000
@@ -1,5 +1,6 @@
 @c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,97,2001,03,2004 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97,
+@c   2001, 03, 04, 2005 Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Emacs Invocation, X Resources, GNU Free Documentation License, Top
 @appendix Command Line Arguments for Emacs Invocation
@@ -293,6 +294,8 @@
 @opindex --debug-init
 @cindex errors in init file
 Enable the Emacs Lisp debugger for errors in the init file.
+@xref{Error Debugging,, Entering the Debugger on an Error, elisp, The
+GNU Emacs Lisp Reference Manual}.
 
 @item --unibyte
 @opindex --unibyte
--- a/src/ChangeLog	Thu Feb 24 01:36:41 2005 +0000
+++ b/src/ChangeLog	Fri Feb 25 06:44:33 2005 +0000
@@ -1,3 +1,7 @@
+2005-02-23  Lute Kamstra  <lute@gnu.org>
+
+	* buffer.c (Foverlay_buffer): Doc fix.
+
 2005-02-22  Kim F. Storm  <storm@cua.dk>
 
 	* minibuf.c (Ftry_completion, Fall_completions): Allow both string
--- a/src/buffer.c	Thu Feb 24 01:36:41 2005 +0000
+++ b/src/buffer.c	Fri Feb 25 06:44:33 2005 +0000
@@ -1,6 +1,6 @@
 /* Buffer manipulation primitives for GNU Emacs.
-   Copyright (C) 1985,86,87,88,89,93,94,95,97,98, 1999, 2000, 2001, 02, 03, 2004
-	Free Software Foundation, Inc.
+   Copyright (C) 1985, 86, 87, 88, 89, 93, 94, 95, 97, 98, 99, 
+     2000, 01, 02, 03, 04, 2005 Free Software Foundation, Inc. 
 
 This file is part of GNU Emacs.
 
@@ -3846,7 +3846,8 @@
 }
 
 DEFUN ("overlay-buffer", Foverlay_buffer, Soverlay_buffer, 1, 1, 0,
-       doc: /* Return the buffer OVERLAY belongs to.  */)
+       doc: /* Return the buffer OVERLAY belongs to.
+Return nil if OVERLAY has been deleted.  */)
      (overlay)
        Lisp_Object overlay;
 {