changeset 83218:47f53c5c9620

Merged in changes from CVS trunk. Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-608 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-609 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-610 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-45 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-258
author Karoly Lorentey <lorentey@elte.hu>
date Tue, 12 Oct 2004 07:52:25 +0000
parents 8131adf4ac7b (current diff) 2d9a1d1ac73d (diff)
children e86fc76a45e4
files lisp/ChangeLog lisp/font-lock.el lisp/subr.el lisp/url/url-auth.el lisp/url/url-cache.el lisp/url/url-cookie.el lisp/url/url-dired.el lisp/url/url-file.el lisp/url/url-ftp.el lisp/url/url-handlers.el lisp/url/url-history.el lisp/url/url-irc.el lisp/url/url-mailto.el lisp/url/url-methods.el lisp/url/url-misc.el lisp/url/url-news.el lisp/url/url-nfs.el lisp/url/url-parse.el lisp/url/url-privacy.el lisp/url/url-util.el lisp/url/url-vars.el lisp/url/url.el lisp/vc.el man/ChangeLog src/keyboard.c src/keyboard.h src/macterm.c src/xfns.c
diffstat 55 files changed, 586 insertions(+), 409 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/ChangeLog	Tue Oct 12 07:52:25 2004 +0000
@@ -1,3 +1,45 @@
+2004-10-12  Kim F. Storm  <storm@cua.dk>
+
+	* kmacro.el (kmacro-insert-counter, kmacro-add-counter): Use and
+	reset kmacro-initial-counter-value if set.
+	(kmacro-set-counter): Only set kmacro-counter if defining or executing
+	macro.  Set kmacro-initial-counter-value otherwise. Never set both.
+	(kmacro-display): Show macro counter if non-zero.
+
+	* subr.el (substitute-key-definition): Mention command remapping
+	in doc string.
+
+2004-10-11  Simon Josefsson  <jas@extundo.com>
+
+	* mail/smtpmail.el (smtpmail-open-stream): Look for
+	starttls-gnutls-program instead of starttls-program iff
+	starttls-use-gnutls is non-nil.
+	(smtpmail-open-stream): Don't overwrite user settings of
+	starttls-extra-arguments and starttls-extra-args.
+
+2004-10-10  Kai Grossjohann  <kai.grossjohann@gmx.net>
+
+	* net/ange-ftp.el (ange-ftp-remote-shell): Remove variable.
+	(ange-ftp-call-chmod): Reference remote-shell-program instead of
+	ange-ftp-remote-shell.
+
+2004-10-10  Andreas Schwab  <schwab@suse.de>
+
+	* emacs-lisp/byte-opt.el (byte-optimize-backward-word): Optimize
+	`(backward-word)' to `(forward-word -1)', not `(forward-char -1)'.
+	Reported by <sri@asu.edu>.
+
+2004-10-10  Benjamin Rutt  <brutt@bloomington.in.us>
+
+	* vc.el (vc-annotate-mode): Remove variable.
+	(vc-annotate-display-select): Only call vc-annotate-mode
+	if we're not in that mode already.
+
+2004-10-09  Kim F. Storm  <storm@cua.dk>
+
+	* subr.el (progress-reporter-update): Define before first usage.
+	(make-progress-reporter): Doc fix.
+
 2004-10-09  Luc Teirlinck  <teirllm@auburn.edu>
 
 	* textmodes/paragraphs.el (sentence-end-double-space)
--- a/lisp/calc/calc-help.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/calc/calc-help.el	Tue Oct 12 07:52:25 2004 +0000
@@ -93,18 +93,15 @@
 
 (defun calc-describe-copying ()
   (interactive)
-  (calc-info)
-  (Info-goto-node "Copying"))
+  (calc-info-goto-node "Copying"))
 
 (defun calc-describe-distribution ()
   (interactive)
-  (calc-info)
-  (Info-goto-node "Reporting Bugs"))
+  (calc-info-goto-node "Reporting Bugs"))
 
 (defun calc-describe-no-warranty ()
   (interactive)
-  (calc-info)
-  (Info-goto-node "Copying")
+  (calc-info-goto-node "Copying")
   (let ((case-fold-search nil))
     (search-forward "     NO WARRANTY"))
   (beginning-of-line)
@@ -190,13 +187,13 @@
 			     (message "Reading Calc summary from manual...")
 			     (save-window-excursion
 			       (save-excursion
-				 (calc-info)
-				 (Info-goto-node "Summary")
+				 (calc-info-goto-node "Summary")
 				 (goto-char (point-min))
 				 (forward-line 1)
 				 (copy-to-buffer "*Calc Summary*"
 						 (point) (point-max))
-				 (Info-last)))
+                                 (if Info-history
+                                     (Info-last))))
 			     (setq case-fold-search nil)
 			     (re-search-forward "^\\(.*\\)\\[\\.\\. a b")
 			     (setq calc-summary-indentation
@@ -326,8 +323,7 @@
 (defun calc-describe-thing (thing where &optional target not-quoted)
   (message "Looking for `%s' in %s..." thing where)
   (let ((savewin (current-window-configuration)))
-    (calc-info)
-    (Info-goto-node where)
+    (calc-info-goto-node where)
     (or (let ((case-fold-search nil))
 	  (re-search-forward (format "\n\\* +%s: \\(.*\\)\\."
 				     (regexp-quote thing))
@@ -338,7 +334,8 @@
 				nil t)
 	     (setq thing (format "%s9" (substring thing 0 -1))))
 	(progn
-	  (Info-last)
+          (if Info-history
+              (Info-last))
 	  (set-window-configuration savewin)
 	  (error "Can't find `%s' in %s" thing where)))
     (let (Info-history)
--- a/lisp/calc/calc-misc.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/calc/calc-misc.el	Tue Oct 12 07:52:25 2004 +0000
@@ -160,21 +160,25 @@
   (select-window (get-largest-window))
   (info "Calc"))
 
+(defun calc-info-goto-node (node)
+  "Go to a node in the Calculator info documentation."
+  (interactive)
+  (select-window (get-largest-window))
+  (Info-goto-node (concat "(Calc)" node)))
+
 (defun calc-tutorial ()
   "Run the Emacs Info system on the Calculator Tutorial."
   (interactive)
   (if (get-buffer-window "*Calculator*")
       (calc-quit))
-  (calc-info)
-  (Info-goto-node "Interactive Tutorial")
+  (calc-info-goto-node "Interactive Tutorial")
   (calc-other-window)
   (message "Welcome to the Calc Tutorial!"))
 
 (defun calc-info-summary ()
   "Run the Emacs Info system on the Calculator Summary."
   (interactive)
-  (calc-info)
-  (Info-goto-node "Summary"))
+  (calc-info-goto-node "Summary"))
 
 (defun calc-help ()
   (interactive)
--- a/lisp/calc/calc.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/calc/calc.el	Tue Oct 12 07:52:25 2004 +0000
@@ -942,7 +942,8 @@
     calcDigit-algebraic calcDigit-edit)
 
  ("calc-misc" another-calc calc-big-or-small calc-dispatch-help
-    calc-help calc-info calc-info-summary calc-inv calc-last-args-stub
+    calc-help calc-info calc-info-goto-node calc-info-summary calc-inv 
+    calc-last-args-stub
     calc-missing-key calc-mod calc-other-window calc-over calc-percent
     calc-pop-above calc-power calc-roll-down calc-roll-up
     calc-shift-Y-prefix-help calc-tutorial calcDigit-letter
--- a/lisp/comint.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/comint.el	Tue Oct 12 07:52:25 2004 +0000
@@ -1,7 +1,7 @@
 ;;; comint.el --- general command interpreter in a window stuff
 
-;; Copyright (C) 1988,90,92,93,94,95,96,97,98,99,2000,01,02,03,2004
-;;	Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1990, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+;;   2000, 2001, 2002, 2003, 2004  Free Software Foundation, Inc.
 
 ;; Author: Olin Shivers <shivers@cs.cmu.edu>
 ;;	Simon Marshall <simon@gnu.org>
@@ -185,10 +185,10 @@
 wish to put something like the following in your `.emacs' file:
 
 \(add-hook 'comint-mode-hook
-	  '(lambda ()
-	     (define-key comint-mode-map \"\C-w\" 'comint-kill-region)
-	     (define-key comint-mode-map [C-S-backspace]
-	       'comint-kill-whole-line)))
+	  (lambda ()
+	    (define-key comint-mode-map \"\C-w\" 'comint-kill-region)
+	    (define-key comint-mode-map [C-S-backspace]
+	      'comint-kill-whole-line)))
 
 If you sometimes use comint-mode on text-only terminals or with `emacs-nw',
 you might wish to use another binding for `comint-kill-whole-line'."
@@ -369,11 +369,8 @@
 history list.  Default is to save anything that isn't all whitespace.")
 
 (defvar comint-input-filter-functions '()
-  "Functions to call before input is sent to the process.
-These functions get one argument, a string containing the text to send.
-
-You can use `add-hook' to add functions to this list
-either globally or locally.")
+  "Special hook run before input is sent to the process.
+These functions get one argument, a string containing the text to send.")
 
 (defvar comint-output-filter-functions '(comint-postoutput-scroll-to-bottom)
   "Functions to call after output is inserted into the buffer.
@@ -411,7 +408,7 @@
 (defcustom comint-use-prompt-regexp-instead-of-fields nil
   "*If non-nil, use `comint-prompt-regexp' to distinguish prompts from user-input.
 If nil, then program output and user-input are given different `field'
-properties, which emacs commands can use to distinguish them (in
+properties, which Emacs commands can use to distinguish them (in
 particular, common movement commands such as begining-of-line respect
 field boundaries in a natural way)."
   :type 'boolean
@@ -432,7 +429,106 @@
   :type 'hook
   :group 'comint)
 
-(defvar comint-mode-map nil)
+(defvar comint-mode-map
+  (let ((map (make-sparse-keymap)))
+    ;; Keys:
+    (define-key map "\ep" 	  'comint-previous-input)
+    (define-key map "\en" 	  'comint-next-input)
+    (define-key map [C-up] 	  'comint-previous-input)
+    (define-key map [C-down] 	  'comint-next-input)
+    (define-key map "\er" 	  'comint-previous-matching-input)
+    (define-key map "\es" 	  'comint-next-matching-input)
+    (define-key map [?\C-c ?\M-r] 'comint-previous-matching-input-from-input)
+    (define-key map [?\C-c ?\M-s] 'comint-next-matching-input-from-input)
+    (define-key map "\e\C-l" 	  'comint-show-output)
+    (define-key map "\C-m" 	  'comint-send-input)
+    (define-key map "\C-d" 	  'comint-delchar-or-maybe-eof)
+    (define-key map "\C-c " 	  'comint-accumulate)
+    (define-key map "\C-c\C-x" 	  'comint-get-next-from-history)
+    (define-key map "\C-c\C-a" 	  'comint-bol-or-process-mark)
+    (define-key map "\C-c\C-u" 	  'comint-kill-input)
+    (define-key map "\C-c\C-w" 	  'backward-kill-word)
+    (define-key map "\C-c\C-c" 	  'comint-interrupt-subjob)
+    (define-key map "\C-c\C-z" 	  'comint-stop-subjob)
+    (define-key map "\C-c\C-\\"   'comint-quit-subjob)
+    (define-key map "\C-c\C-m" 	  'comint-insert-input)
+    (define-key map "\C-c\C-o" 	  'comint-delete-output)
+    (define-key map "\C-c\C-r" 	  'comint-show-output)
+    (define-key map "\C-c\C-e" 	  'comint-show-maximum-output)
+    (define-key map "\C-c\C-l" 	  'comint-dynamic-list-input-ring)
+    (define-key map "\C-c\C-n" 	  'comint-next-prompt)
+    (define-key map "\C-c\C-p" 	  'comint-previous-prompt)
+    (define-key map "\C-c\C-d" 	  'comint-send-eof)
+    (define-key map "\C-c\C-s" 	  'comint-write-output)
+    (define-key map "\C-c." 	  'comint-insert-previous-argument)
+    ;; Mouse Buttons:
+    (define-key map [mouse-2]     'comint-insert-input)
+    ;; Menu bars:
+    ;; completion:
+    (define-key map [menu-bar completion]
+      (cons "Complete" (make-sparse-keymap "Complete")))
+    (define-key map [menu-bar completion complete-expand]
+      '("Expand File Name" . comint-replace-by-expanded-filename))
+    (define-key map [menu-bar completion complete-listing]
+      '("File Completion Listing" . comint-dynamic-list-filename-completions))
+    (define-key map [menu-bar completion complete-file]
+      '("Complete File Name" . comint-dynamic-complete-filename))
+    (define-key map [menu-bar completion complete]
+      '("Complete Before Point" . comint-dynamic-complete))
+    ;; Input history:
+    (define-key map [menu-bar inout]
+      (cons "In/Out" (make-sparse-keymap "In/Out")))
+    (define-key map [menu-bar inout delete-output]
+      '("Delete Current Output Group" . comint-delete-output))
+    (define-key map [menu-bar inout append-output-to-file]
+      '("Append Current Output Group to File" . comint-append-output-to-file))
+    (define-key map [menu-bar inout write-output]
+      '("Write Current Output Group to File" . comint-write-output))
+    (define-key map [menu-bar inout next-prompt]
+      '("Forward Output Group" . comint-next-prompt))
+    (define-key map [menu-bar inout previous-prompt]
+      '("Backward Output Group" . comint-previous-prompt))
+    (define-key map [menu-bar inout show-maximum-output]
+      '("Show Maximum Output" . comint-show-maximum-output))
+    (define-key map [menu-bar inout show-output]
+      '("Show Current Output Group" . comint-show-output))
+    (define-key map [menu-bar inout kill-input]
+      '("Kill Current Input" . comint-kill-input))
+    (define-key map [menu-bar inout copy-input]
+      '("Copy Old Input" . comint-insert-input))
+    (define-key map [menu-bar inout forward-matching-history]
+      '("Forward Matching Input..." . comint-forward-matching-input))
+    (define-key map [menu-bar inout backward-matching-history]
+      '("Backward Matching Input..." . comint-backward-matching-input))
+    (define-key map [menu-bar inout next-matching-history]
+      '("Next Matching Input..." . comint-next-matching-input))
+    (define-key map [menu-bar inout previous-matching-history]
+      '("Previous Matching Input..." . comint-previous-matching-input))
+    (define-key map [menu-bar inout next-matching-history-from-input]
+      '("Next Matching Current Input" . comint-next-matching-input-from-input))
+    (define-key map [menu-bar inout previous-matching-history-from-input]
+      '("Previous Matching Current Input" . comint-previous-matching-input-from-input))
+    (define-key map [menu-bar inout next-history]
+      '("Next Input" . comint-next-input))
+    (define-key map [menu-bar inout previous-history]
+      '("Previous Input" . comint-previous-input))
+    (define-key map [menu-bar inout list-history]
+      '("List Input History" . comint-dynamic-list-input-ring))
+    (define-key map [menu-bar inout expand-history]
+      '("Expand History Before Point" . comint-replace-by-expanded-history))
+    ;; Signals
+    (let ((signals-map (make-sparse-keymap "Signals")))
+      (define-key map [menu-bar signals] (cons "Signals" signals-map))
+      (define-key signals-map [eof]   '("EOF"   . comint-send-eof))
+      (define-key signals-map [kill]  '("KILL"  . comint-kill-subjob))
+      (define-key signals-map [quit]  '("QUIT"  . comint-quit-subjob))
+      (define-key signals-map [cont]  '("CONT"  . comint-continue-subjob))
+      (define-key signals-map [stop]  '("STOP"  . comint-stop-subjob))
+      (define-key signals-map [break] '("BREAK" . comint-interrupt-subjob)))
+    ;; Put them in the menu bar:
+    (setq menu-bar-final-items (append '(completion inout signals)
+				       menu-bar-final-items))
+    map))
 
 ;; Fixme: Is this still relevant?
 (defvar comint-ptyp t
@@ -548,114 +644,6 @@
   ;; This behavior is not useful in comint buffers, and is annoying
   (set (make-local-variable 'next-line-add-newlines) nil))
 
-(if comint-mode-map
-    nil
-  ;; Keys:
-  (setq comint-mode-map (make-sparse-keymap))
-  (define-key comint-mode-map "\ep" 'comint-previous-input)
-  (define-key comint-mode-map "\en" 'comint-next-input)
-  (define-key comint-mode-map [C-up] 'comint-previous-input)
-  (define-key comint-mode-map [C-down] 'comint-next-input)
-  (define-key comint-mode-map "\er" 'comint-previous-matching-input)
-  (define-key comint-mode-map "\es" 'comint-next-matching-input)
-  (define-key comint-mode-map [?\C-c ?\M-r] 'comint-previous-matching-input-from-input)
-  (define-key comint-mode-map [?\C-c ?\M-s] 'comint-next-matching-input-from-input)
-  (define-key comint-mode-map "\e\C-l" 'comint-show-output)
-  (define-key comint-mode-map "\C-m" 'comint-send-input)
-  (define-key comint-mode-map "\C-d" 'comint-delchar-or-maybe-eof)
-  (define-key comint-mode-map "\C-c " 'comint-accumulate)
-  (define-key comint-mode-map "\C-c\C-x" 'comint-get-next-from-history)
-  (define-key comint-mode-map "\C-c\C-a" 'comint-bol-or-process-mark)
-  (define-key comint-mode-map "\C-c\C-u" 'comint-kill-input)
-  (define-key comint-mode-map "\C-c\C-w" 'backward-kill-word)
-  (define-key comint-mode-map "\C-c\C-c" 'comint-interrupt-subjob)
-  (define-key comint-mode-map "\C-c\C-z" 'comint-stop-subjob)
-  (define-key comint-mode-map "\C-c\C-\\" 'comint-quit-subjob)
-  (define-key comint-mode-map "\C-c\C-m" 'comint-insert-input)
-  (define-key comint-mode-map "\C-c\C-o" 'comint-delete-output)
-  (define-key comint-mode-map "\C-c\C-r" 'comint-show-output)
-  (define-key comint-mode-map "\C-c\C-e" 'comint-show-maximum-output)
-  (define-key comint-mode-map "\C-c\C-l" 'comint-dynamic-list-input-ring)
-  (define-key comint-mode-map "\C-c\C-n" 'comint-next-prompt)
-  (define-key comint-mode-map "\C-c\C-p" 'comint-previous-prompt)
-  (define-key comint-mode-map "\C-c\C-d" 'comint-send-eof)
-  (define-key comint-mode-map "\C-c\C-s" 'comint-write-output)
-  (define-key comint-mode-map "\C-c." 'comint-insert-previous-argument)
-  ;; Mouse Buttons:
-  (define-key comint-mode-map [mouse-2] 'comint-mouse-insert-input)
-  ;; Menu bars:
-  ;; completion:
-  (define-key comint-mode-map [menu-bar completion]
-    (cons "Complete" (make-sparse-keymap "Complete")))
-  (define-key comint-mode-map [menu-bar completion complete-expand]
-    '("Expand File Name" . comint-replace-by-expanded-filename))
-  (define-key comint-mode-map [menu-bar completion complete-listing]
-    '("File Completion Listing" . comint-dynamic-list-filename-completions))
-  (define-key comint-mode-map [menu-bar completion complete-file]
-    '("Complete File Name" . comint-dynamic-complete-filename))
-  (define-key comint-mode-map [menu-bar completion complete]
-    '("Complete Before Point" . comint-dynamic-complete))
-  ;; Input history:
-  (define-key comint-mode-map [menu-bar inout]
-    (cons "In/Out" (make-sparse-keymap "In/Out")))
-  (define-key comint-mode-map [menu-bar inout delete-output]
-    '("Delete Current Output Group" . comint-delete-output))
-  (define-key comint-mode-map [menu-bar inout append-output-to-file]
-    '("Append Current Output Group to File" . comint-append-output-to-file))
-  (define-key comint-mode-map [menu-bar inout write-output]
-    '("Write Current Output Group to File" . comint-write-output))
-  (define-key comint-mode-map [menu-bar inout next-prompt]
-    '("Forward Output Group" . comint-next-prompt))
-  (define-key comint-mode-map [menu-bar inout previous-prompt]
-    '("Backward Output Group" . comint-previous-prompt))
-  (define-key comint-mode-map [menu-bar inout show-maximum-output]
-    '("Show Maximum Output" . comint-show-maximum-output))
-  (define-key comint-mode-map [menu-bar inout show-output]
-    '("Show Current Output Group" . comint-show-output))
-  (define-key comint-mode-map [menu-bar inout kill-input]
-    '("Kill Current Input" . comint-kill-input))
-  (define-key comint-mode-map [menu-bar inout copy-input]
-    '("Copy Old Input" . comint-insert-input))
-  (define-key comint-mode-map [menu-bar inout forward-matching-history]
-    '("Forward Matching Input..." . comint-forward-matching-input))
-  (define-key comint-mode-map [menu-bar inout backward-matching-history]
-    '("Backward Matching Input..." . comint-backward-matching-input))
-  (define-key comint-mode-map [menu-bar inout next-matching-history]
-    '("Next Matching Input..." . comint-next-matching-input))
-  (define-key comint-mode-map [menu-bar inout previous-matching-history]
-    '("Previous Matching Input..." . comint-previous-matching-input))
-  (define-key comint-mode-map [menu-bar inout next-matching-history-from-input]
-    '("Next Matching Current Input" . comint-next-matching-input-from-input))
-  (define-key comint-mode-map [menu-bar inout previous-matching-history-from-input]
-    '("Previous Matching Current Input" . comint-previous-matching-input-from-input))
-  (define-key comint-mode-map [menu-bar inout next-history]
-    '("Next Input" . comint-next-input))
-  (define-key comint-mode-map [menu-bar inout previous-history]
-    '("Previous Input" . comint-previous-input))
-  (define-key comint-mode-map [menu-bar inout list-history]
-    '("List Input History" . comint-dynamic-list-input-ring))
-  (define-key comint-mode-map [menu-bar inout expand-history]
-    '("Expand History Before Point" . comint-replace-by-expanded-history))
-  ;; Signals
-  (define-key comint-mode-map [menu-bar signals]
-    (cons "Signals" (make-sparse-keymap "Signals")))
-  (define-key comint-mode-map [menu-bar signals eof]
-    '("EOF" . comint-send-eof))
-  (define-key comint-mode-map [menu-bar signals kill]
-    '("KILL" . comint-kill-subjob))
-  (define-key comint-mode-map [menu-bar signals quit]
-    '("QUIT" . comint-quit-subjob))
-  (define-key comint-mode-map [menu-bar signals cont]
-    '("CONT" . comint-continue-subjob))
-  (define-key comint-mode-map [menu-bar signals stop]
-    '("STOP" . comint-stop-subjob))
-  (define-key comint-mode-map [menu-bar signals break]
-    '("BREAK" . comint-interrupt-subjob))
-  ;; Put them in the menu bar:
-  (setq menu-bar-final-items (append '(completion inout signals)
-				     menu-bar-final-items))
-  )
-
 (defun comint-check-proc (buffer)
   "Return t if there is a living process associated w/buffer BUFFER.
 Living means the status is `open', `run', or `stop'.
@@ -798,9 +786,10 @@
 	(set-process-coding-system proc decoding encoding))
     proc))
 
-(defun comint-insert-input ()
+(defun comint-insert-input (&optional event)
   "In a Comint buffer, set the current input to the previous input at point."
-  (interactive)
+  (interactive (list last-input-event))
+  (if event (mouse-set-point event))
   (let ((pos (point)))
     (if (not (eq (get-char-property pos 'field) 'input))
 	;; No input at POS, fall back to the global definition.
@@ -818,13 +807,7 @@
       ;; Insert the input at point
       (insert (buffer-substring-no-properties
 	       (previous-single-char-property-change (1+ pos) 'field)
-	       (next-single-char-property-change pos 'field))))))
-
-(defun comint-mouse-insert-input (event)
-  "In a Comint buffer, set the current input to the previous input you click on."
-  (interactive "e")
-  (mouse-set-point event)
-  (comint-insert-input)) 
+	       (next-single-char-property-change pos 'field)))))) 
 
 
 ;; Input history processing in a buffer
@@ -1734,7 +1717,7 @@
 		     (1- prompt-start) prompt-start 'read-only 'fence))
 		(add-text-properties
 		 prompt-start (point)
-		 '(read-only t rear-non-sticky t front-sticky (read-only))))
+		 '(read-only t rear-nonsticky t front-sticky (read-only))))
 	      (unless (and (bolp) (null comint-last-prompt-overlay))
 		;; Need to create or move the prompt overlay (in the case
 		;; where there is no prompt ((bolp) == t), we still do
@@ -2136,8 +2119,8 @@
 between the process mark and point.
 
 WARNING: if there is no current subjob, you can end up suspending
-the top-level process running in the buffer. If you accidentally do
-this, use \\[comint-continue-subjob] to resume the process. (This
+the top-level process running in the buffer.  If you accidentally do
+this, use \\[comint-continue-subjob] to resume the process.  (This
 is not a problem with most shells, since they ignore this signal.)"
   (interactive)
   (comint-skip-input)
@@ -2357,9 +2340,9 @@
 
 (defun comint-kill-whole-line (&optional arg)
   "Kill current line, ignoring read-only and field properties.
-With prefix arg, kill that many lines starting from the current line.
+With prefix ARG, kill that many lines starting from the current line.
 If arg is negative, kill backward.  Also kill the preceding newline,
-instead of the trailing one.  \(This is meant to make C-x z work well
+instead of the trailing one.  \(This is meant to make \\[repeat] work well
 with negative arguments.)
 If arg is zero, kill current line but exclude the trailing newline.
 The read-only status of newlines is updated with `comint-update-fence',
@@ -2505,7 +2488,7 @@
 
 See `comint-source-default' for more on determining defaults.
 
-PROMPT is the prompt string. PREV-DIR/FILE is the (directory . file) pair
+PROMPT is the prompt string.  PREV-DIR/FILE is the (directory . file) pair
 from the last source processing command.  SOURCE-MODES is a list of major
 modes used to determine what file buffers contain source files.  (These
 two arguments are used for determining defaults).  If MUSTMATCH-P is true,
@@ -3503,5 +3486,5 @@
 
 (provide 'comint)
 
-;;; arch-tag: 1793314c-09db-40be-9549-9aeae3e75164
+;; arch-tag: 1793314c-09db-40be-9549-9aeae3e75164
 ;;; comint.el ends here
--- a/lisp/diff-mode.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/diff-mode.el	Tue Oct 12 07:52:25 2004 +0000
@@ -1,6 +1,7 @@
 ;;; diff-mode.el --- a mode for viewing/editing context diffs
 
-;; Copyright (C) 1998,1999,2000,01,02,03,2004  Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;;           Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <monnier@cs.yale.edu>
 ;; Keywords: convenience patch diff
@@ -171,75 +172,73 @@
 
 (defface diff-header-face
   '((((class color) (min-colors 88) (background light))
-     (:background "grey85"))
+     :background "grey85")
     (((class color) (min-colors 88) (background dark))
-     (:background "grey45"))
+     :background "grey45")
     (((class color) (background light))
-     (:foreground "blue1" :weight bold))
+     :foreground "blue1" :weight bold)
     (((class color) (background dark))
-     (:foreground "green" :weight bold))
-    (t (:weight bold)))
+     :foreground "green" :weight bold)
+    (t :weight bold))
   "`diff-mode' face inherited by hunk and index header faces.")
 (defvar diff-header-face 'diff-header-face)
 
 (defface diff-file-header-face
   '((((class color) (min-colors 88) (background light))
-     (:background "grey70" :weight bold))
+     :background "grey70" :weight bold)
     (((class color) (min-colors 88) (background dark))
-     (:background "grey60" :weight bold))
+     :background "grey60" :weight bold)
     (((class color) (background light))
-     (:foreground "yellow" :weight bold))
+     :foreground "yellow" :weight bold)
     (((class color) (background dark))
-     (:foreground "cyan" :weight bold))
-    (t (:weight bold)))			; :height 1.3
+     :foreground "cyan" :weight bold)
+    (t :weight bold))			; :height 1.3
   "`diff-mode' face used to highlight file header lines.")
 (defvar diff-file-header-face 'diff-file-header-face)
 
 (defface diff-index-face
-  '((t (:inherit diff-file-header-face)))
+  '((t :inherit diff-file-header-face))
   "`diff-mode' face used to highlight index header lines.")
 (defvar diff-index-face 'diff-index-face)
 
 (defface diff-hunk-header-face
-  '((t (:inherit diff-header-face)))
+  '((t :inherit diff-header-face))
   "`diff-mode' face used to highlight hunk header lines.")
 (defvar diff-hunk-header-face 'diff-hunk-header-face)
 
 (defface diff-removed-face
-  '((t (:inherit diff-changed-face)))
+  '((t :inherit diff-changed-face))
   "`diff-mode' face used to highlight removed lines.")
 (defvar diff-removed-face 'diff-removed-face)
 
 (defface diff-added-face
-  '((t (:inherit diff-changed-face)))
+  '((t :inherit diff-changed-face))
   "`diff-mode' face used to highlight added lines.")
 (defvar diff-added-face 'diff-added-face)
 
 (defface diff-changed-face
   '((((type tty pc) (class color) (background light))
-     (:foreground "magenta" :weight bold :slant italic))
+     :foreground "magenta" :weight bold :slant italic)
     (((type tty pc) (class color) (background dark))
-     (:foreground "yellow" :weight bold :slant italic))
-    (t ()))
+     :foreground "yellow" :weight bold :slant italic))
   "`diff-mode' face used to highlight changed lines.")
 (defvar diff-changed-face 'diff-changed-face)
 
 (defface diff-function-face
-  '((t (:inherit diff-context-face)))
+  '((t :inherit diff-context-face))
   "`diff-mode' face used to highlight function names produced by \"diff -p\".")
 (defvar diff-function-face 'diff-function-face)
 
 (defface diff-context-face
   '((((class color) (background light))
-     (:foreground "grey50"))
+     :foreground "grey50")
     (((class color) (background dark))
-     (:foreground "grey70"))
-    (t ))
+     :foreground "grey70"))
   "`diff-mode' face used to highlight context and other side-information.")
 (defvar diff-context-face 'diff-context-face)
 
 (defface diff-nonexistent-face
-  '((t (:inherit diff-file-header-face)))
+  '((t :inherit diff-file-header-face))
   "`diff-mode' face used to highlight nonexistent files in recursive diffs.")
 (defvar diff-nonexistent-face 'diff-nonexistent-face)
 
@@ -1255,7 +1254,7 @@
   (save-excursion
     (when (looking-at diff-hunk-header-re)
       (forward-line 1)
-      (while (and (looking-at " ") (not (zerop (forward-line 1))))))
+      (re-search-forward "^[^ ]" nil t))
     (destructuring-bind (buf line-offset pos src dst &optional switched)
 	(diff-find-source-location)
       (beginning-of-line)
@@ -1355,5 +1354,5 @@
 ;; use `combine-after-change-calls' to minimize the slowdown of font-lock.
 ;;
 
-;;; arch-tag: 2571d7ff-bc28-4cf9-8585-42e21890be66
+;; arch-tag: 2571d7ff-bc28-4cf9-8585-42e21890be66
 ;;; diff-mode.el ends here
--- a/lisp/emacs-lisp/byte-opt.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/emacs-lisp/byte-opt.el	Tue Oct 12 07:52:25 2004 +0000
@@ -1152,7 +1152,7 @@
 	      (numberp (nth 1 form)))
 	 (list 'forward-word (eval (- (nth 1 form)))))
 	((= 1 (safe-length form))
-	 '(forward-char -1))
+	 '(forward-word -1))
 	(t form)))
 
 (put 'char-before 'byte-optimizer 'byte-optimize-char-before)
--- a/lisp/font-lock.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/font-lock.el	Tue Oct 12 07:52:25 2004 +0000
@@ -1324,6 +1324,12 @@
 	  (add-text-properties start end (cddr val))
 	  (setq val (cadr val)))
 	(cond
+	 ((not (or val (eq override t)))
+	  ;; If `val' is nil, don't do anything.  It is important to do it
+	  ;; explicitly, because when adding nil via things like
+	  ;; font-lock-append-text-property, the property is actually
+	  ;; changed from <face> to (<face>) which is undesirable.  --Stef
+	  nil)
 	 ((not override)
 	  ;; Cannot override existing fontification.
 	  (or (text-property-not-all start end 'face nil)
--- a/lisp/gnus/ChangeLog	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/gnus/ChangeLog	Tue Oct 12 07:52:25 2004 +0000
@@ -1,3 +1,26 @@
+2004-10-10  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-sum.el: Mention that multibyte characters don't work as marks.
+
+	* gnus.el (message-y-or-n-p): Autoload.
+
+	* pop3.el (pop3-maildrop, pop3-mailhost, pop3-port)
+	(pop3-password-required, pop3-authentication-scheme)
+	(pop3-leave-mail-on-server): Made customizable.
+	(pop3): New custom group.
+	(pop3-retr): Remove `sleep-for' statements.
+	Suggested by Dave Love <fx@gnu.org>.
+
+	* nnheader.el (nnheader-read-timeout): Explain 1.0 timeout for
+	Windows/DOS.
+
+	* imap.el (imap-parse-flag-list, imap-parse-body-extension)
+	(imap-parse-body): Fix incorrect use of `assert'.  Suggested by
+	Dave Love <fx@gnu.org>.
+
+	* mml.el (mml-minibuffer-read-disposition): Require match.
+	Suggested by Dave Love <fx@gnu.org>.
+
 2004-10-06  Katsumi Yamaoka  <yamaoka@jpl.org>
 
 	* gnus-group.el (gnus-update-group-mark-positions):
--- a/lisp/gnus/gnus-sum.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/gnus/gnus-sum.el	Tue Oct 12 07:52:25 2004 +0000
@@ -428,6 +428,9 @@
 			 (cons :value ("" "") regexp (repeat string))
 			 (sexp :value nil))))
 
+;; FIXME: Although the custom type is `character' for the following variables,
+;; using multibyte characters (Latin-1, UTF-8) doesn't work.  -- rs
+
 (defcustom gnus-unread-mark ?           ;Whitespace
   "*Mark used for unread articles."
   :group 'gnus-summary-marks
--- a/lisp/gnus/gnus.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/gnus/gnus.el	Tue Oct 12 07:52:25 2004 +0000
@@ -34,6 +34,7 @@
 (require 'wid-edit)
 (require 'mm-util)
 (require 'nnheader)
+(autoload 'message-y-or-n-p "message" nil nil 'macro)
 
 (defgroup gnus nil
   "The coffee-brewing, all singing, all dancing, kitchen sink newsreader."
--- a/lisp/gnus/imap.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/gnus/imap.el	Tue Oct 12 07:52:25 2004 +0000
@@ -2421,7 +2421,7 @@
 
 (defun imap-parse-flag-list ()
   (let (flag-list start)
-    (assert (eq (char-after) ?\() t "In imap-parse-flag-list")
+    (assert (eq (char-after) ?\() nil "In imap-parse-flag-list")
     (while (and (not (eq (char-after) ?\)))
 		(setq start (progn
 			      (imap-forward)
@@ -2430,7 +2430,7 @@
 			      (point)))
 		(> (skip-chars-forward "^ )" (imap-point-at-eol)) 0))
       (push (buffer-substring start (point)) flag-list))
-    (assert (eq (char-after) ?\)) t "In imap-parse-flag-list")
+    (assert (eq (char-after) ?\)) nil "In imap-parse-flag-list")
     (imap-forward)
     (nreverse flag-list)))
 
@@ -2515,7 +2515,7 @@
 	(while (eq (char-after) ?\ )
 	  (imap-forward)
 	  (push (imap-parse-body-extension) b-e))
-	(assert (eq (char-after) ?\)) t "In imap-parse-body-extension")
+	(assert (eq (char-after) ?\)) nil "In imap-parse-body-extension")
 	(imap-forward)
 	(nreverse b-e))
     (or (imap-parse-number)
@@ -2641,7 +2641,7 @@
 		(push (and (imap-parse-nil) nil) body))
 	      (setq body
 		    (append (imap-parse-body-ext) body))) ;; body-ext-...
-	    (assert (eq (char-after) ?\)) t "In imap-parse-body")
+	    (assert (eq (char-after) ?\)) nil "In imap-parse-body")
 	    (imap-forward)
 	    (nreverse body))
 
@@ -2701,7 +2701,7 @@
 	  (push (imap-parse-nstring) body) ;; body-fld-md5
 	  (setq body (append (imap-parse-body-ext) body))) ;; body-ext-1part..
 
-	(assert (eq (char-after) ?\)) t "In imap-parse-body 2")
+	(assert (eq (char-after) ?\)) nil "In imap-parse-body 2")
 	(imap-forward)
 	(nreverse body)))))
 
--- a/lisp/gnus/mml.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/gnus/mml.el	Tue Oct 12 07:52:25 2004 +0000
@@ -946,8 +946,7 @@
 			"attachment")))
 	 (disposition (completing-read "Disposition: "
 				       '(("attachment") ("inline") (""))
-				       nil
-				       nil)))
+				       nil t)))
     (if (not (equal disposition ""))
 	disposition
       default)))
--- a/lisp/gnus/nnheader.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/gnus/nnheader.el	Tue Oct 12 07:52:25 2004 +0000
@@ -74,7 +74,15 @@
 (defvar nnheader-read-timeout
   (if (string-match "windows-nt\\|os/2\\|emx\\|cygwin"
 		    (symbol-name system-type))
-      1.0				; why?
+      ;; http://thread.gmane.org/v9655t3pjo.fsf@marauder.physik.uni-ulm.de
+      ;;
+      ;; IIRC, values lower than 1.0 didn't/don't work on Windows/DOS.
+      ;;
+      ;; There should probably be a runtime test to determine the timing
+      ;; resolution, or a primitive to report it.  I don't know off-hand
+      ;; what's possible.  Perhaps better, maybe the Windows/DOS primitive
+      ;; could round up non-zero timeouts to a minimum of 1.0?
+      1.0
     0.1)
   "How long nntp should wait between checking for the end of output.
 Shorter values mean quicker response, but are more CPU intensive.")
--- a/lisp/gnus/pop3.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/gnus/pop3.el	Tue Oct 12 07:52:25 2004 +0000
@@ -37,25 +37,56 @@
 
 (require 'mail-utils)
 
-(defvar pop3-maildrop (or (user-login-name) (getenv "LOGNAME") (getenv "USER") nil)
-  "*POP3 maildrop.")
-(defvar pop3-mailhost (or (getenv "MAILHOST") nil)
-  "*POP3 mailhost.")
-(defvar pop3-port 110
-  "*POP3 port.")
+(defgroup pop3 nil
+  "Post Office Protocol"
+  :group 'mail
+  :group 'mail-source)
+
+(defcustom pop3-maildrop (or (user-login-name)
+			     (getenv "LOGNAME")
+			     (getenv "USER"))
+  "*POP3 maildrop."
+  :version "21.4" ;; Oort Gnus
+  :type 'string
+  :group 'pop3)
 
-(defvar pop3-password-required t
-  "*Non-nil if a password is required when connecting to POP server.")
+(defcustom pop3-mailhost (or (getenv "MAILHOST") ;; nil -> mismatch
+			     "pop3")
+  "*POP3 mailhost."
+  :version "21.4" ;; Oort Gnus
+  :type 'string
+  :group 'pop3)
+
+(defcustom pop3-port 110
+  "*POP3 port."
+  :version "21.4" ;; Oort Gnus
+  :type 'number
+  :group 'pop3)
+
+(defcustom pop3-password-required t
+  "*Non-nil if a password is required when connecting to POP server."
+  :version "21.4" ;; Oort Gnus
+  :type 'boolean
+  :group 'pop3)
+
+;; Should this be customizable?
 (defvar pop3-password nil
   "*Password to use when connecting to POP server.")
 
-(defvar pop3-authentication-scheme 'pass
+(defcustom pop3-authentication-scheme 'pass
   "*POP3 authentication scheme.
 Defaults to 'pass, for the standard USER/PASS authentication.  Other valid
-values are 'apop.")
+values are 'apop."
+  :version "21.4" ;; Oort Gnus
+  :type '(choice (const :tag "USER/PASS" pass)
+		 (const :tag "APOP" apop))
+  :group 'pop3)
 
-(defvar pop3-leave-mail-on-server nil
-  "*Non-nil if the mail is to be left on the POP server after fetching.")
+(defcustom pop3-leave-mail-on-server nil
+  "*Non-nil if the mail is to be left on the POP server after fetching."
+  :version "21.4" ;; Oort Gnus
+  :type 'boolean
+  :group 'pop3)
 
 (defvar pop3-timestamp nil
   "Timestamp returned when initially connected to the POP server.
@@ -71,8 +102,7 @@
 	 (crashbuf (get-buffer-create " *pop3-retr*"))
 	 (n 1)
 	 message-count
-	 (pop3-password pop3-password)
-	 )
+	 (pop3-password pop3-password))
     ;; for debugging only
     (if pop3-debug (switch-to-buffer (process-buffer process)))
     ;; query for password
@@ -114,8 +144,7 @@
   "Return the number of messages in the maildrop."
   (let* ((process (pop3-open-server pop3-mailhost pop3-port))
 	 message-count
-	 (pop3-password pop3-password)
-	 )
+	 (pop3-password pop3-password))
     ;; for debugging only
     (if pop3-debug (switch-to-buffer (process-buffer process)))
     ;; query for password
@@ -159,15 +188,14 @@
     (insert output)))
 
 (defun pop3-send-command (process command)
-    (set-buffer (process-buffer process))
-    (goto-char (point-max))
-;;    (if (= (aref command 0) ?P)
-;;	(insert "PASS <omitted>\r\n")
-;;      (insert command "\r\n"))
-    (setq pop3-read-point (point))
-    (goto-char (point-max))
-    (process-send-string process (concat command "\r\n"))
-    )
+  (set-buffer (process-buffer process))
+  (goto-char (point-max))
+  ;; (if (= (aref command 0) ?P)
+  ;;     (insert "PASS <omitted>\r\n")
+  ;;   (insert command "\r\n"))
+  (setq pop3-read-point (point))
+  (goto-char (point-max))
+  (process-send-string process (concat command "\r\n")))
 
 (defun pop3-read-response (process &optional return)
   "Read the response from the server.
@@ -355,27 +383,15 @@
       (while (not (re-search-forward "^\\.\r\n" nil t))
 	;; Fixme: Shouldn't depend on nnheader.
 	(nnheader-accept-process-output process)
-	;; bill@att.com ... to save wear and tear on the heap
-	;; uncommented because the condensed version below is a problem for
-	;; some.
-	(if (> (buffer-size)  20000) (sleep-for 1))
-	(if (> (buffer-size)  50000) (sleep-for 1))
-	(if (> (buffer-size) 100000) (sleep-for 1))
-	(if (> (buffer-size) 200000) (sleep-for 1))
-	(if (> (buffer-size) 500000) (sleep-for 1))
-	;; bill@att.com
-	;; condensed into:
-	;; (sometimes causes problems for really large messages.)
-;	(if (> (buffer-size) 20000) (sleep-for (/ (buffer-size) 20000)))
 	(goto-char start))
       (setq pop3-read-point (point-marker))
-;; this code does not seem to work for some POP servers...
-;; and I cannot figure out why not.
-;      (goto-char (match-beginning 0))
-;      (backward-char 2)
-;      (if (not (looking-at "\r\n"))
-;	  (insert "\r\n"))
-;      (re-search-forward "\\.\r\n")
+      ;; this code does not seem to work for some POP servers...
+      ;; and I cannot figure out why not.
+      ;;      (goto-char (match-beginning 0))
+      ;;      (backward-char 2)
+      ;;      (if (not (looking-at "\r\n"))
+      ;;	  (insert "\r\n"))
+      ;;      (re-search-forward "\\.\r\n")
       (goto-char (match-beginning 0))
       (setq end (point-marker))
       (pop3-clean-region start end)
--- a/lisp/imenu.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/imenu.el	Tue Oct 12 07:52:25 2004 +0000
@@ -317,9 +317,12 @@
 ;;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-;; Return the current/previous sexp and the location of the sexp (its
-;; beginning) without moving the point.
+;; FIXME: This is the only imenu-example-* definition that's actually used,
+;; and it seems to only be used by cperl-mode.el.  We should just move it to
+;; cperl-mode.el and remove the rest.
 (defun imenu-example--name-and-position ()
+  "Return the current/previous sexp and its (beginning) location.
+Don't move point."
   (save-excursion
     (forward-sexp -1)
     ;; [ydi] modified for imenu-use-markers
@@ -549,12 +552,10 @@
 	     (cond
 	      ((consp (cdr item))
 	       (imenu--truncate-items (cdr item)))
-	      (t
-	       ;; truncate if necessary
-	       (if (and (numberp imenu-max-item-length)
-			(> (length (car item)) imenu-max-item-length))
-		   (setcar item (substring (car item) 0
-					   imenu-max-item-length)))))))
+	      ;; truncate if necessary
+	      ((and (numberp imenu-max-item-length)
+		    (> (length (car item)) imenu-max-item-length))
+	       (setcar item (substring (car item) 0 imenu-max-item-length))))))
 	  menulist))
 
 
@@ -854,7 +855,7 @@
 (defun imenu--completion-buffer (index-alist &optional prompt)
   "Let the user select from INDEX-ALIST in a completion buffer with PROMPT.
 
-Returns t for rescan and otherwise a position number."
+Return one of the entries in index-alist or nil."
   ;; Create a list for this buffer only when needed.
   (let ((name (thing-at-point 'symbol))
 	choice
@@ -880,13 +881,11 @@
 				  prepared-index-alist
 				  nil t nil 'imenu--history-list name)))
 
-    (cond ((not (stringp name)) nil)
-	  ((string= name (car imenu--rescan-item)) t)
-	  (t
-	   (setq choice (assoc name prepared-index-alist))
-	   (if (imenu--subalist-p choice)
-	       (imenu--completion-buffer (cdr choice) prompt)
-	     choice)))))
+    (when (stringp name)
+      (setq choice (assoc name prepared-index-alist))
+      (if (imenu--subalist-p choice)
+	  (imenu--completion-buffer (cdr choice) prompt)
+	choice))))
 
 (defun imenu--mouse-menu (index-alist event &optional title)
   "Let the user select from a buffer index from a mouse menu.
@@ -937,9 +936,9 @@
 		     (or (eq imenu-use-popup-menu t) mouse-triggered))
 		(imenu--mouse-menu index-alist last-nonmenu-event)
 	      (imenu--completion-buffer index-alist prompt)))
-      (and (eq result t)
+      (and (equal result imenu--rescan-item)
 	   (imenu--cleanup)
-	   (setq imenu--index-alist nil)))
+	   (setq result t imenu--index-alist nil)))
     result))
 
 ;;;###autoload
@@ -1014,7 +1013,7 @@
     nil))
 
 (defun imenu-default-goto-function (name position &optional rest)
-  "Move the point to the given position.
+  "Move to the given position.
 
 NAME is ignored.  POSITION is where to move.  REST is also ignored.
 The ignored args just make this function have the same interface as a
@@ -1054,5 +1053,5 @@
 
 (provide 'imenu)
 
-;;; arch-tag: 98a2f5f5-4b91-4704-b18c-3aacf77d77a7
+;; arch-tag: 98a2f5f5-4b91-4704-b18c-3aacf77d77a7
 ;;; imenu.el ends here
--- a/lisp/kmacro.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/kmacro.el	Tue Oct 12 07:52:25 2004 +0000
@@ -248,7 +248,9 @@
   "Insert macro counter and increment with ARG or 1 if missing.
 With \\[universal-argument], insert previous kmacro-counter (but do not modify counter)."
   (interactive "P")
-  (setq kmacro-initial-counter-value nil)
+  (if kmacro-initial-counter-value
+      (setq kmacro-counter kmacro-initial-counter-value
+	    kmacro-initial-counter-value nil))
   (if (and arg (listp arg))
       (insert (format kmacro-counter-format kmacro-last-counter))
     (insert (format kmacro-counter-format kmacro-counter))
@@ -275,23 +277,23 @@
   "Set kmacro-counter to ARG or prompt if missing.
 With \\[universal-argument] prefix, reset counter to its value prior to this iteration of the macro."
   (interactive "NMacro counter value: ")
-  (setq kmacro-last-counter kmacro-counter
-	kmacro-counter (if (and current-prefix-arg (listp current-prefix-arg))
-			   kmacro-counter-value-start
-			 arg))
-  ;; setup initial macro counter value if we are not executing a macro.
-  (setq kmacro-initial-counter-value
-	(and (not (or defining-kbd-macro executing-kbd-macro))
-	     kmacro-counter))
-  (unless executing-kbd-macro
-    (kmacro-display-counter)))
+  (if (not (or defining-kbd-macro executing-kbd-macro))
+      (kmacro-display-counter (setq kmacro-initial-counter-value arg))
+    (setq kmacro-last-counter kmacro-counter
+	  kmacro-counter (if (and current-prefix-arg (listp current-prefix-arg))
+			     kmacro-counter-value-start
+			   arg))
+    (unless executing-kbd-macro
+      (kmacro-display-counter))))
 
 
 (defun kmacro-add-counter (arg)
   "Add numeric prefix arg (prompt if missing) to macro counter.
 With \\[universal-argument], restore previous counter value."
   (interactive "NAdd to macro counter: ")
-  (setq kmacro-initial-counter-value nil)
+  (if kmacro-initial-counter-value
+      (setq kmacro-counter kmacro-initial-counter-value
+	    kmacro-initial-counter-value nil))
   (let ((last kmacro-last-counter))
     (setq kmacro-last-counter kmacro-counter
 	  kmacro-counter (if (and current-prefix-arg (listp current-prefix-arg))
@@ -394,7 +396,10 @@
 	     (m (format-kbd-macro macro))
 	     (l (length m))
 	     (z (and nil trunc (> l x))))
-	(message (format "%s: %s%s" (or descr "Macro")
+	(message (format "%s%s: %s%s" (or descr "Macro")
+			 (if (= kmacro-counter 0) ""
+			   (format " [%s]"
+				   (format kmacro-counter-format-start kmacro-counter)))
 			 (if z (substring m 0 (1- x)) m) (if z "..." ""))))
     (message (or empty "No keyboard macros defined"))))
 
--- a/lisp/mail/smtpmail.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/mail/smtpmail.el	Tue Oct 12 07:52:25 2004 +0000
@@ -471,26 +471,32 @@
     (if (null (and cred (condition-case ()
 			    (progn
 			      (require 'starttls)
-			      (call-process starttls-program))
+			      (call-process (if starttls-use-gnutls
+						starttls-gnutls-program
+					      starttls-program)))
 			  (error nil))))
 	;; The normal case.
 	(open-network-stream "SMTP" process-buffer host port)
       (let* ((cred-key (smtpmail-cred-key cred))
 	     (cred-cert (smtpmail-cred-cert cred))
 	     (starttls-extra-args
-	      (when (and (stringp cred-key) (stringp cred-cert)
-			 (file-regular-p
-			  (setq cred-key (expand-file-name cred-key)))
-			 (file-regular-p
-			  (setq cred-cert (expand-file-name cred-cert))))
-		(list "--key-file" cred-key "--cert-file" cred-cert)))
+	      (append
+	       starttls-extra-args
+	       (when (and (stringp cred-key) (stringp cred-cert)
+			  (file-regular-p
+			   (setq cred-key (expand-file-name cred-key)))
+			  (file-regular-p
+			   (setq cred-cert (expand-file-name cred-cert))))
+		 (list "--key-file" cred-key "--cert-file" cred-cert))))
 	     (starttls-extra-arguments
-	      (when (and (stringp cred-key) (stringp cred-cert)
-			 (file-regular-p
-			  (setq cred-key (expand-file-name cred-key)))
-			 (file-regular-p
-			  (setq cred-cert (expand-file-name cred-cert))))
-		(list "--x509keyfile" cred-key "--x509certfile" cred-cert))))
+	      (append
+	       starttls-extra-arguments
+	       (when (and (stringp cred-key) (stringp cred-cert)
+			  (file-regular-p
+			   (setq cred-key (expand-file-name cred-key)))
+			  (file-regular-p
+			   (setq cred-cert (expand-file-name cred-cert))))
+		 (list "--x509keyfile" cred-key "--x509certfile" cred-cert)))))
 	(starttls-open-stream "SMTP" process-buffer host port)))))
 
 (defun smtpmail-try-auth-methods (process supported-extensions host port)
--- a/lisp/net/ange-ftp.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/net/ange-ftp.el	Tue Oct 12 07:52:25 2004 +0000
@@ -4514,9 +4514,6 @@
 	       1))
     (apply 'call-process program nil (not discard) nil arguments)))
 
-(defvar ange-ftp-remote-shell "rsh"
-  "Remote shell to use for chmod, if FTP server rejects the `chmod' command.")
-
 ;; Handle an attempt to run chmod on a remote file
 ;; by using the ftp chmod command.
 (defun ange-ftp-call-chmod (args)
@@ -4541,7 +4538,7 @@
                                                        abbr))))
                (or (car result)
                    (call-process
-                    ange-ftp-remote-shell
+                    remote-shell-program
                     nil t nil host dired-chmod-program mode name))))))
      rest))
   (setq ange-ftp-ls-cache-file nil)	;Stop confusing Dired.
--- a/lisp/pcvs-defs.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/pcvs-defs.el	Tue Oct 12 07:52:25 2004 +0000
@@ -1,7 +1,7 @@
 ;;; pcvs-defs.el --- variable definitions for PCL-CVS
 
-;; Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 03, 2004
-;;           Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+;;   2000, 2003, 2004  Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <monnier@cs.yale.edu>
 ;; Keywords: pcl-cvs
@@ -249,9 +249,6 @@
   :type '(choice (const :tag "Ediff" (cvs-ediff-diff . cvs-ediff-merge))
 		 (const :tag "Emerge" (cvs-emerge-diff . cvs-emerge-merge))))
 
-(defvar pcl-cvs-load-hook nil
-  "Run after loading pcl-cvs.")
-
 (defvar cvs-mode-hook nil
   "Run after `cvs-mode' was setup.")
 
@@ -510,5 +507,5 @@
 ;;
 (provide 'pcvs-defs)
 
-;;; arch-tag: c7c701d0-d1d4-4aa9-a302-007bb03aca5e
+;; arch-tag: c7c701d0-d1d4-4aa9-a302-007bb03aca5e
 ;;; pcvs-defs.el ends here
--- a/lisp/subr.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/subr.el	Tue Oct 12 07:52:25 2004 +0000
@@ -383,7 +383,10 @@
   "Replace OLDDEF with NEWDEF for any keys in KEYMAP now defined as OLDDEF.
 In other words, OLDDEF is replaced with NEWDEF where ever it appears.
 Alternatively, if optional fourth argument OLDMAP is specified, we redefine
-in KEYMAP as NEWDEF those keys which are defined as OLDDEF in OLDMAP."
+in KEYMAP as NEWDEF those keys which are defined as OLDDEF in OLDMAP.
+
+For most uses, it is simpler and safer to use command remappping like this:
+  \(define-key KEYMAP [remap OLDDEF] NEWDEF)"
   ;; Don't document PREFIX in the doc string because we don't want to
   ;; advertise it.  It's meant for recursive calls only.  Here's its
   ;; meaning
@@ -2683,10 +2686,26 @@
 ;; digits of precision, it doesn't really matter here.  On the other
 ;; hand, it greatly simplifies the code.
 
+(defsubst progress-reporter-update (reporter value)
+  "Report progress of an operation in the echo area.
+However, if the change since last echo area update is too small
+or not enough time has passed, then do nothing (see
+`make-progress-reporter' for details).
+
+First parameter, REPORTER, should be the result of a call to
+`make-progress-reporter'.  Second, VALUE, determines the actual
+progress of operation; it must be between MIN-VALUE and MAX-VALUE
+as passed to `make-progress-reporter'.
+
+This function is very inexpensive, you may not bother how often
+you call it."
+  (when (>= value (car reporter))
+    (progress-reporter-do-update reporter value)))
+
 (defun make-progress-reporter (message min-value max-value
 				       &optional current-value
 				       min-change min-time)
-  "Return an object suitable for reporting operation progress with `progress-reporter-update'.
+  "Return progress reporter object usage with `progress-reporter-update'.
 
 MESSAGE is shown in the echo area.  When at least 1% of operation
 is complete, the exact percentage will be appended to the
@@ -2723,22 +2742,6 @@
     (progress-reporter-update reporter (or current-value min-value))
     reporter))
 
-(defsubst progress-reporter-update (reporter value)
-  "Report progress of an operation in the echo area.
-However, if the change since last echo area update is too small
-or not enough time has passed, then do nothing (see
-`make-progress-reporter' for details).
-
-First parameter, REPORTER, should be the result of a call to
-`make-progress-reporter'.  Second, VALUE, determines the actual
-progress of operation; it must be between MIN-VALUE and MAX-VALUE
-as passed to `make-progress-reporter'.
-
-This function is very inexpensive, you may not bother how often
-you call it."
-  (when (>= value (car reporter))
-    (progress-reporter-do-update reporter value)))
-
 (defun progress-reporter-force-update (reporter value &optional new-message)
   "Report progress of an operation in the echo area unconditionally.
 
--- a/lisp/textmodes/tex-mode.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/textmodes/tex-mode.el	Tue Oct 12 07:52:25 2004 +0000
@@ -500,6 +500,11 @@
 	 1 font-lock-function-name-face))))
   "Subdued expressions to highlight in TeX modes.")
 
+(defun tex-font-lock-append-prop (prop)
+  (unless (memq (get-text-property (match-end 1) 'face)
+		'(font-lock-comment-face tex-verbatim-face))
+    prop))
+
 (defconst tex-font-lock-keywords-2
   (append tex-font-lock-keywords-1
    (eval-when-compile
@@ -553,16 +558,19 @@
 	;;
 	;; Font environments.  It seems a bit dubious to use `bold' etc. faces
 	;; since we might not be able to display those fonts.
-	(list (concat slash bold " *" arg) 2 '(quote bold) 'append)
-	(list (concat slash italic " *" arg) 2 '(quote italic) 'append)
+	(list (concat slash bold " *" arg) 2
+	      '(tex-font-lock-append-prop 'bold) 'append)
+	(list (concat slash italic " *" arg) 2
+	      '(tex-font-lock-append-prop 'italic) 'append)
 	;; (list (concat slash type arg) 2 '(quote bold-italic) 'append)
 	;;
 	;; Old-style bf/em/it/sl.  Stop at `\\' and un-escaped `&', for tables.
 	(list (concat "\\\\\\(em\\|it\\|sl\\)\\>" args)
-	      2 '(quote italic) 'append)
+	      2 '(tex-font-lock-append-prop 'italic) 'append)
 	;; This is separate from the previous one because of cases like
 	;; {\em foo {\bf bar} bla} where both match.
-	(list (concat "\\\\bf\\>" args) 1 '(quote bold) 'append)))))
+	(list (concat "\\\\\\(bf\\)\\>" args)
+	      2 '(tex-font-lock-append-prop 'bold) 'append)))))
    "Gaudy expressions to highlight in TeX modes.")
 
 (defun tex-font-lock-suscript (pos)
@@ -604,11 +612,14 @@
 (defvar tex-font-lock-syntactic-keywords
   (let ((verbs (regexp-opt tex-verbatim-environments t)))
     `((,(concat "^\\\\begin *{" verbs "}.*\\(\n\\)") 2 "|")
-      (,(concat "^\\\\end *{" verbs "}\\(.?\\)") 2
-       (unless (<= (match-beginning 0) (point-min))
-	 (put-text-property (1- (match-beginning 0)) (match-beginning 0)
-			    'syntax-table (string-to-syntax "|"))
-	 "<"))
+      ;; Technically, we'd like to put the "|" property on the \n preceding
+      ;; the \end, but this would have 2 disadvantages:
+      ;; 1 - it's wrong if the verbatim env is empty (the same \n is used to
+      ;;     start and end the fenced-string).
+      ;; 2 - font-lock considers the preceding \n as being part of the
+      ;;     preceding line, so things gets screwed every time the previous
+      ;;     line is re-font-locked on its own.
+      (,(concat "^\\(\\\\\\)end *{" verbs "}\\(.?\\)") (1 "|") (3 "<"))
       ;; ("^\\(\\\\\\)begin *{comment}" 1 "< b")
       ;; ("^\\\\end *{comment}.*\\(\n\\)" 1 "> b")
       ("\\\\verb\\**\\([^a-z@*]\\)" 1 "\""))))
--- a/lisp/url/ChangeLog	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/ChangeLog	Tue Oct 12 07:52:25 2004 +0000
@@ -1,3 +1,43 @@
+2004-10-10  Lars Hansen  <larsh@math.ku.dk>
+
+	* url-auth.el: Fix copyright notice.
+
+	* url-cache.el: Fix copyright notice.
+
+	* url-cookie.el: Fix copyright notice.
+
+	* url-dired.el: Fix copyright notice.
+
+	* url-file.el: Fix copyright notice.
+
+	* url-ftp.el: Fix copyright notice.
+
+	* url-handlers.el: Fix copyright notice.
+
+	* url-history.el: Fix copyright notice.
+
+	* url-irc.el: Fix copyright notice.
+
+	* url-mailto.el: Fix copyright notice.
+
+	* url-methods.el: Fix copyright notice.
+
+	* url-misc.el: Fix copyright notice.
+
+	* url-news.el: Fix copyright notice.
+
+	* url-nfs.el: Fix copyright notice.
+
+	* url-parse.el: Fix copyright notice.
+
+	* url-privacy.el: Fix copyright notice.
+
+	* url-vars.el: Fix copyright notice.
+
+	* url.el: Fix copyright notice.
+
+	* url-util.el: Fix copyright notice.
+
 2004-10-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* url-handlers.el (url-insert-file-contents): Use the URL to decide the
--- a/lisp/url/url-auth.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-auth.el	Tue Oct 12 07:52:25 2004 +0000
@@ -2,7 +2,6 @@
 ;; Keywords: comm, data, processes, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu>
 ;;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc.
 ;;;
 ;;; This file is part of GNU Emacs.
--- a/lisp/url/url-cache.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-cache.el	Tue Oct 12 07:52:25 2004 +0000
@@ -2,7 +2,6 @@
 ;; Keywords: comm, data, processes, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu>
 ;;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc.
 ;;;
 ;;; This file is part of GNU Emacs.
--- a/lisp/url/url-cookie.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-cookie.el	Tue Oct 12 07:52:25 2004 +0000
@@ -1,7 +1,6 @@
 ;;; url-cookie.el --- Netscape Cookie support
 
 ;; Copyright (c) 1996 - 1999,2004  Free Software Foundation, Inc.
-;; Copyright (c) 1996 by William M. Perry <wmperry@cs.indiana.edu>
 
 ;; Keywords: comm, data, processes, hypermedia
 
--- a/lisp/url/url-dired.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-dired.el	Tue Oct 12 07:52:25 2004 +0000
@@ -2,7 +2,6 @@
 ;; Keywords: comm, files
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu>
 ;;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc.
 ;;;
 ;;; This file is part of GNU Emacs.
--- a/lisp/url/url-file.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-file.el	Tue Oct 12 07:52:25 2004 +0000
@@ -1,7 +1,6 @@
 ;;; url-file.el --- File retrieval code
 
 ;; Copyright (c) 1996 - 1999,2004  Free Software Foundation, Inc.
-;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu>
 
 ;; Keywords: comm, data, processes
 
--- a/lisp/url/url-ftp.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-ftp.el	Tue Oct 12 07:52:25 2004 +0000
@@ -2,7 +2,6 @@
 ;; Keywords: comm, data, processes
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu>
 ;;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc.
 ;;;
 ;;; This file is part of GNU Emacs.
--- a/lisp/url/url-handlers.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-handlers.el	Tue Oct 12 07:52:25 2004 +0000
@@ -1,7 +1,6 @@
 ;;; url-handlers.el --- file-name-handler stuff for URL loading
 
 ;; Copyright (c) 1996, 1997, 1998, 1999, 2004  Free Software Foundation, Inc.
-;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu>
 
 ;; Keywords: comm, data, processes, hypermedia
 
--- a/lisp/url/url-history.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-history.el	Tue Oct 12 07:52:25 2004 +0000
@@ -1,7 +1,6 @@
 ;;; url-history.el --- Global history tracking for URL package
 
 ;; Copyright (c) 1996 - 1999,2004  Free Software Foundation, Inc.
-;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu>
 
 ;; Keywords: comm, data, processes, hypermedia
 
--- a/lisp/url/url-irc.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-irc.el	Tue Oct 12 07:52:25 2004 +0000
@@ -2,7 +2,6 @@
 ;; Keywords: comm, data, processes
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Copyright (c) 1996 by William M. Perry <wmperry@cs.indiana.edu>
 ;;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc.
 ;;;
 ;;; This file is part of GNU Emacs.
--- a/lisp/url/url-mailto.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-mailto.el	Tue Oct 12 07:52:25 2004 +0000
@@ -1,7 +1,6 @@
 ;;; url-mail.el --- Mail Uniform Resource Locator retrieval code
 
 ;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc.
-;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu>
 
 ;; Keywords: comm, data, processes
 
--- a/lisp/url/url-methods.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-methods.el	Tue Oct 12 07:52:25 2004 +0000
@@ -1,7 +1,6 @@
 ;;; url-methods.el --- Load URL schemes as needed
 
-;; Copyright (c) 1996,97,98,1999,2004  Free Software Foundation, Inc.
-;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu>
+;; Copyright (c) 1996,1997,1998,1999,2004  Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes, hypermedia
 
--- a/lisp/url/url-misc.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-misc.el	Tue Oct 12 07:52:25 2004 +0000
@@ -2,8 +2,7 @@
 ;; Keywords: comm, data, processes
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu>
-;;; Copyright (c) 1996, 97, 98, 99, 2002 Free Software Foundation, Inc.
+;;; Copyright (c) 1996,1997,1998,1999,2002 Free Software Foundation, Inc.
 ;;;
 ;;; This file is part of GNU Emacs.
 ;;;
--- a/lisp/url/url-news.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-news.el	Tue Oct 12 07:52:25 2004 +0000
@@ -2,7 +2,6 @@
 ;; Keywords: comm, data, processes
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu>
 ;;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc.
 ;;;
 ;;; This file is part of GNU Emacs.
--- a/lisp/url/url-nfs.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-nfs.el	Tue Oct 12 07:52:25 2004 +0000
@@ -1,7 +1,6 @@
 ;;; url-nfs.el --- NFS URL interface
 
-;; Copyright (c) 1996,97,98,1999,2004  Free Software Foundation, Inc.
-;; Copyright (c) 1996 by William M. Perry <wmperry@cs.indiana.edu>
+;; Copyright (c) 1996,1997,1998,1999,2004  Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes
 
--- a/lisp/url/url-parse.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-parse.el	Tue Oct 12 07:52:25 2004 +0000
@@ -1,7 +1,6 @@
 ;;; url-parse.el --- Uniform Resource Locator parser
 
-;; Copyright (c) 1996,97,98,1999,2004  Free Software Foundation, Inc.
-;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu>
+;; Copyright (c) 1996,1997,1998,1999,2004  Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes
 
--- a/lisp/url/url-privacy.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-privacy.el	Tue Oct 12 07:52:25 2004 +0000
@@ -2,7 +2,6 @@
 ;; Keywords: comm, data, processes, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu>
 ;;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc.
 ;;;
 ;;; This file is part of GNU Emacs.
--- a/lisp/url/url-util.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-util.el	Tue Oct 12 07:52:25 2004 +0000
@@ -1,7 +1,6 @@
 ;;; url-util.el --- Miscellaneous helper routines for URL library
 
-;; Copyright (c) 1996,97,98,99,2001,2004  Free Software Foundation, Inc.
-;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu>
+;; Copyright (c) 1996,1997,1998,1999,2001,2004  Free Software Foundation, Inc.
 
 ;; Author: Bill Perry <wmperry@gnu.org>
 ;; Keywords: comm, data, processes
--- a/lisp/url/url-vars.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url-vars.el	Tue Oct 12 07:52:25 2004 +0000
@@ -2,8 +2,7 @@
 ;; Keywords: comm, data, processes, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu>
-;;; Copyright (c) 1996, 97, 98, 99, 2001 Free Software Foundation, Inc.
+;;; Copyright (c) 1996,1997,1998,1999,2001 Free Software Foundation, Inc.
 ;;;
 ;;; This file is part of GNU Emacs.
 ;;;
--- a/lisp/url/url.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/url/url.el	Tue Oct 12 07:52:25 2004 +0000
@@ -1,7 +1,6 @@
 ;;; url.el --- Uniform Resource Locator retrieval tool
 
-;; Copyright (c) 1996,97,98,99,2001,2004  Free Software Foundation, Inc.
-;; Copyright (c) 1993 - 1996 by William M. Perry <wmperry@cs.indiana.edu>
+;; Copyright (c) 1996,1997,1998,1999,2001,2004  Free Software Foundation, Inc.
 
 ;; Author: Bill Perry <wmperry@gnu.org>
 ;; Keywords: comm, data, processes, hypermedia
--- a/lisp/vc.el	Sun Oct 10 18:11:21 2004 +0000
+++ b/lisp/vc.el	Tue Oct 12 07:52:25 2004 +0000
@@ -646,9 +646,6 @@
   :group 'vc)
 
 ;; vc-annotate functionality (CVS only).
-(defvar vc-annotate-mode nil
-  "Variable indicating if VC-Annotate mode is active.")
-
 (defvar vc-annotate-mode-map
   (let ((m (make-sparse-keymap)))
     (define-key m [menu-bar] (make-sparse-keymap "VC-Annotate"))
@@ -3004,7 +3001,7 @@
   (when buffer
     (set-buffer buffer)
     (display-buffer buffer))
-  (if (not vc-annotate-mode)		; Turn on vc-annotate-mode if not done
+  (if (not vc-annotate-parent-ref)
       (vc-annotate-mode))
   (cond ((null vc-annotate-display-mode)
 	 (vc-annotate-display-default vc-annotate-ratio))
--- a/man/ChangeLog	Sun Oct 10 18:11:21 2004 +0000
+++ b/man/ChangeLog	Tue Oct 12 07:52:25 2004 +0000
@@ -1,3 +1,8 @@
+2004-10-10  Juri Linkov  <juri@jurta.org>
+
+	* gnus.texi (Top, Marking Articles): Join two menus in one node
+	because a node can have only one menu.
+
 2004-10-09  Luc Teirlinck  <teirllm@auburn.edu>
 
 	* files.texi (Misc File Ops): View mode is a minor mode.
--- a/man/gnus.texi	Sun Oct 10 18:11:21 2004 +0000
+++ b/man/gnus.texi	Tue Oct 12 07:52:25 2004 +0000
@@ -535,12 +535,9 @@
 * Unread Articles::             Marks for unread articles.
 * Read Articles::               Marks for read articles.
 * Other Marks::                 Marks that do not affect readedness.
-
-Marking Articles
-
-* Setting Marks::             How to set and remove marks.
-* Generic Marking Commands::  How to customize the marking.
-* Setting Process Marks::     How to mark articles for later processing.
+* Setting Marks::               How to set and remove marks.
+* Generic Marking Commands::    How to customize the marking.
+* Setting Process Marks::       How to mark articles for later processing.
 
 Threading
 
@@ -5686,20 +5683,17 @@
 
 In addition, you also have marks that do not affect readedness.
 
+@ifinfo
+There's a plethora of commands for manipulating these marks.
+@end ifinfo
+
 @menu
 * Unread Articles::             Marks for unread articles.
 * Read Articles::               Marks for read articles.
 * Other Marks::                 Marks that do not affect readedness.
-@end menu
-
-@ifinfo
-There's a plethora of commands for manipulating these marks:
-@end ifinfo
-
-@menu
-* Setting Marks::             How to set and remove marks.
-* Generic Marking Commands::  How to customize the marking.
-* Setting Process Marks::     How to mark articles for later processing.
+* Setting Marks::               How to set and remove marks.
+* Generic Marking Commands::    How to customize the marking.
+* Setting Process Marks::       How to mark articles for later processing.
 @end menu
 
 
--- a/man/sc.texi	Sun Oct 10 18:11:21 2004 +0000
+++ b/man/sc.texi	Tue Oct 12 07:52:25 2004 +0000
@@ -1565,7 +1565,7 @@
 @vindex sc-use-only-preference-p
 @vindex use-only-preference-p (sc-)
 Also, if the preferred attribution, which you specified in your
-@code{sc-preferred-attribution-alist} variable cannot be found, a
+@code{sc-preferred-attribution-list} variable cannot be found, a
 secondary method can be employed to find a valid attribution string. The
 variable @code{sc-use-only-preference-p} controls what happens in this
 case.  If the variable's value is non-@code{nil}, then
--- a/src/ChangeLog	Sun Oct 10 18:11:21 2004 +0000
+++ b/src/ChangeLog	Tue Oct 12 07:52:25 2004 +0000
@@ -1,3 +1,37 @@
+2004-10-12  Kim F. Storm  <storm@cua.dk>
+
+	* doc.c (Fsubstitute_command_keys): Ignore remappings unless there
+	are no ordinary bindings.
+
+2004-10-11  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* xfns.c (syms_of_xfns): defsubr x-file-dialog for GTK also.
+
+2004-10-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
+	(x_lower_frame): Add BLOCK_INPUT around SendBehind
+	(make_mac_frame): Add BLOCK_INPUT around the making of a
+	terminal frame
+	(mac_initialize): Add BLOCK_INPUT around carbon initialization
+	* macgui.h (mktime): Use emacs_mktime
+	* macfns.c (Fx_file_dialog): Add BLOCK_INPUT around more code.
+	Make a cancel file-open dialog be like C-g.
+	* mac.c (mktime): Use emacs_mktime
+	(Fdo_applescript): Add BLOCK_INPUT around do_applescript
+	(Fmac_paste_function): Add better error handling for carbon
+	cut/paste
+
+2004-10-10  Kim F. Storm  <storm@cua.dk>
+
+	* keyboard.c (timer_resume_idle): New function to resume idle
+	timer without resetting timers on the idle list.
+	(read_char): Use timer_resume_idle. Remove local var last_idle_start.
+	(timer_start_idle, timer_stop_idle): Declare static.
+	(read_key_sequence): Use timer_resume_idle instead of timer_start_idle.
+
+	* keyboard.h (timer_start_idle, timer_stop_idle): Remove prototypes.
+
 2004-10-08  Steven Tamm  <steventamm@mac.com>
 
 	* config.in (HAVE_MALLOC_MALLOC_H): Regenerate
--- a/src/doc.c	Sun Oct 10 18:11:21 2004 +0000
+++ b/src/doc.c	Tue Oct 12 07:52:25 2004 +0000
@@ -776,9 +776,13 @@
 	  idx = strp - SDATA (string);
 	  tem = Fintern (make_string (start, length_byte), Qnil);
 
+	  /* Ignore remappings unless there are no ordinary bindings. */
+ 	  tem = Fwhere_is_internal (tem, keymap, Qt, Qnil, Qt);
+ 	  if (NILP (tem))
+	    tem = Fwhere_is_internal (tem, keymap, Qt, Qnil, Qnil);
+
 	  /* Note the Fwhere_is_internal can GC, so we have to take
 	     relocation of string contents into account.  */
-	  tem = Fwhere_is_internal (tem, keymap, Qt, Qnil, Qnil);
 	  strp = SDATA (string) + idx;
 	  start = SDATA (string) + start_idx;
 
--- a/src/keyboard.c	Sun Oct 10 18:11:21 2004 +0000
+++ b/src/keyboard.c	Tue Oct 12 07:52:25 2004 +0000
@@ -665,6 +665,9 @@
 static void any_kboard_state P_ ((void));
 static SIGTYPE interrupt_signal P_ ((int signalnum));
 static void handle_interrupt P_ ((void));
+static void timer_start_idle P_ ((void));
+static void timer_stop_idle P_ ((void));
+static void timer_resume_idle P_ ((void));
 
 /* Nonzero means don't try to suspend even if the operating system seems
    to support it.  */
@@ -2383,7 +2386,6 @@
   volatile Lisp_Object also_record;
   volatile int reread;
   struct gcpro gcpro1, gcpro2;
-  EMACS_TIME last_idle_start;
   int polling_stopped_here = 0;
 
   also_record = Qnil;
@@ -2890,9 +2892,6 @@
 
  non_reread:
 
-  /* Record the last idle start time so that we can reset it
-     should the next event read be a help-echo.  */
-  last_idle_start = timer_idleness_start_time;
   timer_stop_idle ();
   RESUME_POLLING;
 
@@ -2932,7 +2931,7 @@
 	   prevents automatic window selection (under
 	   mouse_autoselect_window from acting as a real input event, for
 	   example banishing the mouse under mouse-avoidance-mode.  */
-	timer_idleness_start_time = last_idle_start;
+	timer_resume_idle ();
 
       /* Resume allowing input from any kboard, if that was true before.  */
       if (!was_locked)
@@ -3131,7 +3130,7 @@
       show_help_echo (help, window, object, position, 0);
 
       /* We stopped being idle for this event; undo that.  */
-      timer_idleness_start_time = last_idle_start;
+      timer_resume_idle ();
       goto retry;
     }
 
@@ -4252,7 +4251,7 @@
 /* Record the start of when Emacs is idle,
    for the sake of running idle-time timers.  */
 
-void
+static void
 timer_start_idle ()
 {
   Lisp_Object timers;
@@ -4280,12 +4279,23 @@
 
 /* Record that Emacs is no longer idle, so stop running idle-time timers.  */
 
-void
+static void
 timer_stop_idle ()
 {
   EMACS_SET_SECS_USECS (timer_idleness_start_time, -1, -1);
 }
 
+/* Resume idle timer from last idle start time.  */
+
+static void
+timer_resume_idle ()
+{
+  if (! EMACS_TIME_NEG_P (timer_idleness_start_time))
+    return;
+
+  timer_idleness_start_time = timer_last_idleness_start_time;
+}
+
 /* This is only for debugging.  */
 struct input_event last_timer_event;
 
@@ -8918,14 +8928,7 @@
 	     keymap may have changed, so replay the sequence.  */
 	  if (BUFFERP (key))
 	    {
-	      EMACS_TIME initial_idleness_start_time;
-	      EMACS_SET_SECS_USECS (initial_idleness_start_time,
-				    EMACS_SECS (timer_last_idleness_start_time),
-				    EMACS_USECS (timer_last_idleness_start_time));
-
-	      /* Resume idle state, using the same start-time as before.  */
-	      timer_start_idle ();
-	      timer_idleness_start_time = initial_idleness_start_time;
+	      timer_resume_idle ();
 
 	      mock_input = t;
 	      /* Reset the current buffer from the selected window
--- a/src/keyboard.h	Sun Oct 10 18:11:21 2004 +0000
+++ b/src/keyboard.h	Tue Oct 12 07:52:25 2004 +0000
@@ -326,8 +326,6 @@
 extern int help_char_p P_ ((Lisp_Object));
 extern void quit_throw_to_read_char P_ ((void)) NO_RETURN;
 extern void cmd_error_internal P_ ((Lisp_Object, char *));
-extern void timer_start_idle P_ ((void));
-extern void timer_stop_idle P_ ((void));
 extern int lucid_event_type_list_p P_ ((Lisp_Object));
 extern void kbd_buffer_store_event P_ ((struct input_event *));
 extern void kbd_buffer_store_event_hold P_ ((struct input_event *,
--- a/src/mac.c	Sun Oct 10 18:11:21 2004 +0000
+++ b/src/mac.c	Tue Oct 12 07:52:25 2004 +0000
@@ -47,6 +47,8 @@
 #undef realloc
 #undef init_process
 #include <Carbon/Carbon.h>
+#undef mktime
+#define mktime emacs_mktime
 #undef free
 #define free unexec_free
 #undef malloc
@@ -73,6 +75,7 @@
 #include "process.h"
 #include "sysselect.h"
 #include "systime.h"
+#include "blockinput.h"
 
 Lisp_Object QCLIPBOARD;
 
@@ -2548,7 +2551,9 @@
 
   CHECK_STRING (script);
 
+  BLOCK_INPUT;
   status = do_applescript (SDATA (script), &result);
+  UNBLOCK_INPUT;
   if (status)
     {
       if (!result)
@@ -2618,26 +2623,23 @@
      ()
 {
 #if TARGET_API_MAC_CARBON
+  OSStatus err;
   ScrapRef scrap;
   ScrapFlavorFlags sff;
   Size s;
   int i;
   char *data;
 
-  if (GetCurrentScrap (&scrap) != noErr)
-    return Qnil;
-
-  if (GetScrapFlavorFlags (scrap, kScrapFlavorTypeText, &sff) != noErr)
-    return Qnil;
-
-  if (GetScrapFlavorSize (scrap, kScrapFlavorTypeText, &s) != noErr)
-    return Qnil;
-
-  if ((data = (char*) alloca (s)) == NULL)
-    return Qnil;
-
-  if (GetScrapFlavorData (scrap, kScrapFlavorTypeText, &s, data) != noErr
-      || s == 0)
+  BLOCK_INPUT;
+  err = GetCurrentScrap (&scrap);
+  if (err == noErr)
+    err = GetScrapFlavorFlags (scrap, kScrapFlavorTypeText, &sff);
+  if (err == noErr)
+    err = GetScrapFlavorSize (scrap, kScrapFlavorTypeText, &s);
+  if (err == noErr && (data = (char*) alloca (s)))
+    err = GetScrapFlavorData (scrap, kScrapFlavorTypeText, &s, data);
+  UNBLOCK_INPUT;
+  if (err != noErr || s == 0)
     return Qnil;
 
   /* Emacs expects clipboard contents have Unix-style eol's */
@@ -2702,13 +2704,22 @@
 #if TARGET_API_MAC_CARBON
   {
     ScrapRef scrap;
+
+    BLOCK_INPUT;
     ClearCurrentScrap ();
     if (GetCurrentScrap (&scrap) != noErr)
-      error ("cannot get current scrap");
+      {
+	UNBLOCK_INPUT;
+	error ("cannot get current scrap");
+      }
 
     if (PutScrapFlavor (scrap, kScrapFlavorTypeText, kScrapFlavorMaskNone, len,
 			buf) != noErr)
-      error ("cannot put to scrap");
+      {
+	UNBLOCK_INPUT;
+	error ("cannot put to scrap");
+      }
+    UNBLOCK_INPUT;
   }
 #else /* not TARGET_API_MAC_CARBON */
   ZeroScrap ();
@@ -2743,9 +2754,11 @@
       ScrapRef scrap;
       ScrapFlavorFlags sff;
 
+      BLOCK_INPUT;
       if (GetCurrentScrap (&scrap) == noErr)
         if (GetScrapFlavorFlags (scrap, kScrapFlavorTypeText, &sff) == noErr)
           val = Qt;
+      UNBLOCK_INPUT;
 #else /* not TARGET_API_MAC_CARBON */
       Handle my_handle;
       long rc, scrap_offset;
@@ -2770,8 +2783,6 @@
 extern int inhibit_window_system;
 extern int noninteractive;
 
-#include "blockinput.h"
-
 /* When Emacs is started from the Finder, SELECT always immediately
    returns as if input is present when file descriptor 0 is polled for
    input.  Strangely, when Emacs is run as a GUI application from the
--- a/src/macfns.c	Sun Oct 10 18:11:21 2004 +0000
+++ b/src/macfns.c	Tue Oct 12 07:52:25 2004 +0000
@@ -4247,6 +4247,7 @@
     NavUserAction userAction;
     CFStringRef message=NULL, client=NULL, saveName = NULL;
     
+    BLOCK_INPUT;
     /* No need for a callback function because we are modal */
     NavGetDefaultDialogCreationOptions(&options);
     options.modality = kWindowModalityAppModal;
@@ -4317,9 +4318,7 @@
 	AEDisposeDesc(&defLocAed);
       }
 
-      BLOCK_INPUT;
       status = NavDialogRun(dialogRef);
-      UNBLOCK_INPUT;
     }
 
     if (saveName) CFRelease(saveName);
@@ -4332,9 +4331,7 @@
 	{
 	case kNavUserActionNone:
 	case kNavUserActionCancel:
-	  NavDialogDispose(dialogRef);
-	  Fsignal (Qquit, Qnil);  /* Treat cancel like C-g */
-	  return;
+	  break;		/* Treat cancel like C-g */
 	case kNavUserActionOpen:
 	case kNavUserActionChoose:
 	case kNavUserActionSaveAs:
@@ -4369,6 +4366,7 @@
 			       dir, mustmatch, dir, Qfile_name_history,
 			       default_filename, Qnil);
     }
+    UNBLOCK_INPUT;
   }
 
   UNGCPRO;
--- a/src/macgui.h	Sun Oct 10 18:11:21 2004 +0000
+++ b/src/macgui.h	Tue Oct 12 07:52:25 2004 +0000
@@ -42,6 +42,8 @@
 #undef min
 #undef init_process
 #include <Carbon/Carbon.h>
+#undef mktime
+#define mktime emacs_mktime
 #undef Z
 #define Z (current_buffer->text->z)
 #undef free
--- a/src/macterm.c	Sun Oct 10 18:11:21 2004 +0000
+++ b/src/macterm.c	Tue Oct 12 07:52:25 2004 +0000
@@ -5317,7 +5317,11 @@
      struct frame *f;
 {
   if (f->async_visible)
-    SelectWindow (FRAME_MAC_WINDOW (f));
+    {
+      BLOCK_INPUT;
+      SelectWindow (FRAME_MAC_WINDOW (f));
+      UNBLOCK_INPUT;
+    }
 }
 
 /* Lower frame F.  */
@@ -5326,7 +5330,11 @@
      struct frame *f;
 {
   if (f->async_visible)
-    SendBehind (FRAME_MAC_WINDOW (f), nil);
+    {
+      BLOCK_INPUT;
+      SendBehind (FRAME_MAC_WINDOW (f), nil);
+      UNBLOCK_INPUT;
+    }
 }
 
 static void
@@ -8757,6 +8765,7 @@
 
   mwp = fp->output_data.mac;
 
+  BLOCK_INPUT;
   if (making_terminal_window)
     {
       if (!(mwp->mWP = GetNewCWindow (TERM_WINDOW_RESOURCE, NULL,
@@ -8784,9 +8793,8 @@
     /* so that update events can find this mac_output struct */
   mwp->mFP = fp;  /* point back to emacs frame */
 
-  SetPortWindowPort (mwp->mWP);
-
   SizeWindow (mwp->mWP, FRAME_PIXEL_WIDTH (fp), FRAME_PIXEL_HEIGHT (fp), false);
+  UNBLOCK_INPUT;
 }
 
 
@@ -9210,6 +9218,7 @@
   signal (SIGPIPE, x_connection_signal);
 #endif
 
+  BLOCK_INPUT;
   mac_initialize_display_info ();
 
 #if TARGET_API_MAC_CARBON
@@ -9228,6 +9237,7 @@
   if (!inhibit_window_system)
     MakeMeTheFrontProcess ();
 #endif
+  UNBLOCK_INPUT;
 }
 
 
--- a/src/xfns.c	Sun Oct 10 18:11:21 2004 +0000
+++ b/src/xfns.c	Tue Oct 12 07:52:25 2004 +0000
@@ -5590,7 +5590,7 @@
   last_show_tip_args = Qnil;
   staticpro (&last_show_tip_args);
 
-#ifdef USE_MOTIF
+#if defined (USE_MOTIF) || defined (USE_GTK)
   defsubr (&Sx_file_dialog);
 #endif
 }