*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Wed, 5 Mar 1997 00:23:16 +0000 (00:23 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Wed, 5 Mar 1997 00:23:16 +0000 (00:23 +0000)
17 files changed:
lisp/ChangeLog
lisp/article.el
lisp/dgnushack.el
lisp/gnus-art.el
lisp/gnus-gl.el
lisp/gnus-group.el
lisp/gnus-nocem.el
lisp/gnus-start.el
lisp/gnus-sum.el
lisp/gnus-topic.el
lisp/gnus-util.el
lisp/gnus-win.el
lisp/gnus.el
lisp/message.el
lisp/nnmail.el
lisp/nntp.el
texi/gnus.texi

index 17d1de9..63ec8c0 100644 (file)
@@ -1,5 +1,97 @@
+Thu Nov 14 12:25:23 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus.el (gnus-article-display-hook): Add
+       `gnus-article-de-quoted-unreadable' to default value.
+
+       * gnus-art.el (gnus-summary-article-menu): Dummy define.
+
+       * article.el (custom): Require first.
+
+       * dgnushack.el (require): New implementation.
+
+       * article.el (gnus-emphasis-alist): Recognize emphasis inside
+       quotes. 
+
+Thu Nov 14 10:20:44 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+       * nnmail.el (nnmail-split-abbrev-alist): Added `uucp' to `mail'. 
+
+Thu Nov 14 11:25:51 1996  Samuel Tardieu  <sam@inf.enst.fr>
+
+       * nnmail.el (nnmail-search-unix-mail-delim): Skip past ">From "
+       after "From ".
+
+Thu Nov 14 10:08:27 1996  Raja R. Harinath  <harinath@cs.umn.edu>
+
+       * gnus-gl.el (bbb-connect-to-bbbd): Only connect if we have the
+       token. 
+
+Thu Nov 14 08:46:31 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * message.el (message-insert-to): Deny with "never"
+       courtesy-copies-to header.
+
+       * dgnushack.el (require): Try both the uncompiled and the compiled
+       versions.
+
+       * nntp.el (nntp-send-authinfo): Hide password.
+
+Wed Nov 13 12:00:43 1996  David Moore  <dmoore@ucsd.edu>
+
+       * gnus-start.el (gnus-parse-active): Correct range parsing
+       restored.
+
+Tue Nov 12 14:09:15 1996  David Moore  <dmoore@ucsd.edu>
+
+       * gnus-nocem.el (gnus-nocem-enter-article): Don't store the same
+       message id in the cache twice.
+       (gnus-nocem-liberal-fetch): 
+
+       * gnus-nocem.el (gnus-nocem-liberal-fetch): New Variable.
+
+       * gnus-nocem.el (gnus-nocem-check-article,
+       gnus-nocem-scan-groups): Don't re-fetch a crossposted @@NCM
+       posting that we've alread verified and scanned.
+
+Wed Nov 13 23:38:00 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus-start.el (gnus-parse-active): Gave wrong results.
+
+       * gnus-win.el (gnus-buffer-configuration): Doc fix.
+
+Wed Nov 13 13:52:20 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+       * gnus-topic.el: Added customize support.
+
+       * gnus-group.el (gnus-group-mode-hook): Added `gnus-topic-mode'
+       option.
+
+       * gnus-util.el (gnus-verbose): Made customizable.
+
+       * gnus.el (gnus-summary-line-format): Customize.
+
+       * gnus-sum.el (gnus-summary-respool-default-method): Customize.
+
+       * gnus.el (gnus-select-method-name): New widget.
+       (gnus-select-method): Use it.
+
+Wed Nov 13 14:19:48 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus-group.el (gnus-info-clear-data): Quote lists.
+
+       * nntp.el (nntp-send-authinfo): Prompt right.
+
+Tue Nov 12 19:33:00 1996  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Red Gnus v0.61 is released.
+
 Tue Nov 12 17:55:17 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
+       * nnmail.el (nnmail-move-inbox): Delete empty crash box.
+
+       * gnus-art.el (gnus-article-make-menu-bar): Define summary article
+       map.
+
        * gnus-group.el (gnus-group-set-timestamp): Removed reference to
        free variable `group'.
 
index 4730abb..0950d93 100644 (file)
 
 ;;; Code:
 
+(require 'custom)
 (require 'nnheader)
 (require 'gnus-util)
 (require 'message)
-(require 'custom)
 
 (defgroup article nil
   "Article display."
@@ -120,7 +120,7 @@ asynchronously.      The compressed face will be piped to this command."
 
 (defcustom gnus-emphasis-alist
   (let ((format
-        "\\(\\s-\\|^\\)\\(%s\\(\\w+\\(\\s-+\\w+\\)*\\)%s\\)\\(\\s-\\|[?!.,;:\")]\\)")
+        "\\(\\s-\\|^\\|[\"\(]\\)\\(%s\\(\\w+\\(\\s-+\\w+\\)*\\)%s\\)\\(\\s-\\|[?!.,;:\"\)]\\)")
        (types
         '(("_" "_" underline)
           ("/" "/" italic)
index 2f71ea3..ac4ef67 100644 (file)
 (defalias 'efs-re-read-dir 'ignore)
 (defalias 'ange-ftp-re-read-dir 'ignore)
 
-(defadvice require (before require-avoid-compiled activate)
-  ;; (feature filename)
+(fset 'orig-require (symbol-function 'require))
+
+(defun require (package &optional file)
   "Avoid loading .elc files."
-  ;; Ensure a second argument to require is supplied that explicitly
-  ;; specifies loading the .el version of the file.
-  (let ((filename (ad-get-arg 1)))
-    (or filename (setq filename (symbol-name (ad-get-arg 0))))
-    (save-match-data
-      (cond ((string-match "\\.el\\'" filename)
-             nil)
-            ((string-match "\\.elc\\'" filename)
-             (setq filename (replace-match ".el" t t filename)))
-            (t
-             (setq filename (concat filename ".el")))))
-    (ad-set-arg 1 filename)))
+  (let ((filename (concat (symbol-name package) ".el")))
+    (condition-case err
+       (orig-require package filename)
+      (error
+       (orig-require package)))))
 
 (eval-and-compile
   (unless (string-match "XEmacs" emacs-version)
@@ -65,7 +59,7 @@
   (let ((files (directory-files "." nil ".el$"))
        (xemacs (string-match "XEmacs" emacs-version))
        ;;(byte-compile-generate-call-tree t)
-       byte-compile-warnings file)
+       byte-compile-warnings file elc)
     (condition-case ()
        (require 'w3-forms)
       (error (setq files (delete "nnweb.el" files))))
                                    "messagexmas.el" "nnheaderxm.el"
                                    "smiley.el")))
                xemacs)
-       (when (or (not (file-exists-p (concat file "c")))
-                 (file-newer-than-file-p file (concat file "c")))
-         (condition-case ()
-             (byte-compile-file file)
-           (error nil)))))))
+       (when (or (not (file-exists-p (setq elc (concat file "c"))))
+                 (file-newer-than-file-p file elc))
+         (ignore-errors
+           (byte-compile-file file)))))))
 
 (defun dgnushack-recompile ()
   (require 'gnus)
index 7acd3b9..46247fe 100644 (file)
@@ -286,6 +286,8 @@ displayed by the first non-nil matching CONTENT face."
                               (item :tag "skip" nil)
                               (face :value default)))))
 
+;;; Internal variables
+
 (defvar gnus-article-mode-syntax-table
   (let ((table (copy-syntax-table text-mode-syntax-table)))
     ;;(modify-syntax-entry ?_ "w" table)
@@ -293,8 +295,6 @@ displayed by the first non-nil matching CONTENT face."
   "Syntax table used in article mode buffers.
 Initialized from `text-mode-syntax-table.")
 
-;;; Internal variables
-
 (defvar gnus-save-article-buffer nil)
 
 (defvar gnus-article-mode-line-format-alist
@@ -346,6 +346,8 @@ Initialized from `text-mode-syntax-table.")
 
 (defalias 'gnus-decode-rfc1522 'article-decode-rfc1522)
 
+(defvar gnus-summary-article-menu)
+
 ;;; Saving functions.
 
 (defun gnus-article-save (save-buffer file &optional num)
@@ -675,10 +677,7 @@ If variable `gnus-use-long-file-name' is non-nil, it is
        ["Remove carriage return" gnus-article-remove-cr t]
        ["Remove quoted-unreadable" gnus-article-de-quoted-unreadable t]))
 
-    (when nil
-    (define-key gnus-article-mode-map 
-      (vector 'menu-bar (car gnus-summary-article-menu))
-      gnus-summary-article-menu))
+    (define-key gnus-article-mode-map [Article] gnus-summary-article-menu)
 
     (run-hooks 'gnus-article-menu-hook)))
 
index 2b7aa3e..a961126 100644 (file)
@@ -242,11 +242,10 @@ If this times out we give up and assume that something has died..." )
 
   ;; if an old process is still running for some reason, kill it
   (when grouplens-bbb-process
-    (condition-case ()
-       (when (eq 'open (process-status grouplens-bbb-process))
-         (set-process-buffer grouplens-bbb-process nil)
-         (delete-process grouplens-bbb-process))
-      (error nil)))
+    (ignore-errors
+      (when (eq 'open (process-status grouplens-bbb-process))
+       (set-process-buffer grouplens-bbb-process nil)
+       (delete-process grouplens-bbb-process))))
 
   ;; clear the trace buffer of old output
   (save-excursion
@@ -325,14 +324,14 @@ If this times out we give up and assume that something has died..." )
 
 (defun bbb-logout ()
   "logout of bbb session"
-  (let ((bbb-process
-        (bbb-connect-to-bbbd grouplens-bbb-host grouplens-bbb-port)))
-    (if bbb-process
+  (when grouplens-bbb-token
+    (let ((bbb-process
+          (bbb-connect-to-bbbd grouplens-bbb-host grouplens-bbb-port)))
+      (when bbb-process
        (save-excursion
          (set-buffer (process-buffer bbb-process))
          (bbb-send-command bbb-process (concat "logout " grouplens-bbb-token))
-         (bbb-read-response bbb-process))
-      nil)))
+         (bbb-read-response bbb-process))))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;       Get Predictions
@@ -612,7 +611,8 @@ recommend using both scores and grouplens predictions together."
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defun bbb-put-ratings ()
-  (if (and grouplens-rating-alist 
+  (if (and grouplens-bbb-token
+          grouplens-rating-alist 
           (member gnus-newsgroup-name grouplens-newsgroups))
       (let ((bbb-process (bbb-connect-to-bbbd grouplens-bbb-host 
                                              grouplens-bbb-port))
index 783b13d..a91e7b3 100644 (file)
@@ -195,6 +195,7 @@ with some simple extensions:
 (defcustom gnus-group-mode-hook nil
   "Hook for Gnus group mode."
   :group 'gnus-group
+  :options '(gnus-topic-mode)
   :type 'hook)
 
 (defcustom gnus-group-menu-hook nil
@@ -2485,8 +2486,8 @@ If REVERSE, sort in reverse order."
   (let ((group (gnus-info-group info)))
     (gnus-undo-register
       `(progn
-        (gnus-info-set-marks ,info ,(gnus-info-marks info))
-        (gnus-info-set-read ,info ,(gnus-info-read info))
+        (gnus-info-set-marks ',info ',(gnus-info-marks info))
+        (gnus-info-set-read ',info ',(gnus-info-read info))
         (when (gnus-group-goto-group ,group)
           (gnus-group-update-group-line))))
     (gnus-info-set-read info nil)
index 348e011..d01f2eb 100644 (file)
@@ -72,12 +72,20 @@ isn't bound, the message will be used unconditionally."
   :type '(radio (function-item mc-verify)
                (function :tag "other")))
 
+(defcustom gnus-nocem-liberal-fetch nil
+  "*If t try to fetch all messages which have @@NCM in the subject.
+Otherwise don't fetch messages which have references or whose messsage-id
+matches an previously scanned and verified nocem message."
+  :group 'gnus-nocem
+  :type 'boolean)
+
 ;;; Internal variables
 
 (defvar gnus-nocem-active nil)
 (defvar gnus-nocem-alist nil)
 (defvar gnus-nocem-touched-alist nil)
 (defvar gnus-nocem-hashtb nil)
+(defvar gnus-nocem-seen-message-ids nil)
 
 ;;; Functions
 
@@ -113,7 +121,7 @@ isn't bound, the message will be used unconditionally."
          ;; headers.
          (save-excursion
            (let ((dependencies (make-vector 10 nil))
-                 headers)
+                 headers header)
              (nnheader-temp-write nil
                (setq headers
                      (if (eq 'nov
@@ -128,13 +136,18 @@ isn't bound, the message will be used unconditionally."
                          (gnus-get-newsgroup-headers-xover 
                           articles nil dependencies)
                        (gnus-get-newsgroup-headers dependencies)))
-               (while headers
+               (while (setq header (pop headers))
                  ;; We take a closer look on all articles that have
-                 ;; "@@NCM" in the subject.  
-                 (when (string-match "@@NCM"
-                                     (mail-header-subject (car headers)))
-                   (gnus-nocem-check-article group (car headers)))
-                 (setq headers (cdr headers)))))))
+                 ;; "@@NCM" in the subject.  Unless we already read
+                 ;; this cross posted message.  Nocem messages
+                 ;; are not allowed to have references, so we can
+                 ;; ignore scanning followups.
+                 (and (string-match "@@NCM" (mail-header-subject header))
+                      (or gnus-nocem-liberal-fetch
+                          (and (string= "" (mail-header-references header))
+                               (not (member (mail-header-message-id header)
+                                            gnus-nocem-seen-message-ids))))
+                      (gnus-nocem-check-article group header)))))))
        (setq gnus-nocem-active
              (cons (list group gactive)
                    (delq (assoc group gnus-nocem-active)
@@ -168,9 +181,12 @@ isn't bound, the message will be used unconditionally."
        (narrow-to-region b e)
        (setq issuer (mail-fetch-field "issuer"))
        (widen)
-       (and (member issuer gnus-nocem-issuers) ; We like her...
-            (gnus-nocem-verify-issuer issuer) ; She is who she says she is..
-            (gnus-nocem-enter-article)))))) ; We gobble the message.
+       (and (member issuer gnus-nocem-issuers) ; We like her....
+            (gnus-nocem-verify-issuer issuer) ; She is who she says she is...
+            (gnus-nocem-enter-article) ; We gobble the message..
+            (push (mail-header-message-id header) ; But don't come back for
+                  gnus-nocem-seen-message-ids)))))) ; second helpings.
+
   
 (defun gnus-nocem-verify-issuer (person)
   "Verify using PGP that the canceler is who she says she is."
@@ -201,8 +217,10 @@ isn't bound, the message will be used unconditionally."
                (while (= (following-char) ?\t)
                  (forward-line -1))
                (setq id (buffer-substring (point) (1- (search-forward "\t"))))
-               (push id ncm)
-               (gnus-sethash id t gnus-nocem-hashtb)
+               (unless (gnus-gethash id gnus-nocem-hashtb)
+                 ;; only store if not already present
+                 (gnus-sethash id t gnus-nocem-hashtb)
+                 (push id ncm))
                (forward-line 1)
                (while (= (following-char) ?\t)
                  (forward-line 1))))))
@@ -210,7 +228,8 @@ isn't bound, the message will be used unconditionally."
        (setq gnus-nocem-touched-alist t)
        (push (cons (let ((time (current-time))) (setcdr (cdr time) nil) time)
                    ncm)
-             gnus-nocem-alist)))))
+             gnus-nocem-alist))
+      t)))
 
 (defun gnus-nocem-load-cache ()
   "Load the NoCeM cache."
@@ -261,7 +280,8 @@ isn't bound, the message will be used unconditionally."
   (setq gnus-nocem-alist nil
        gnus-nocem-hashtb nil
        gnus-nocem-active nil
-       gnus-nocem-touched-alist nil))
+       gnus-nocem-touched-alist nil
+       gnus-nocem-seen-message-ids nil))
 
 (defun gnus-nocem-unwanted-article-p (id)
   "Say whether article ID in the current group is wanted."
index 61f35dc..2f3dc6a 100644 (file)
@@ -1462,7 +1462,7 @@ newsgroup."
     ;; Parse the result we got from `gnus-request-group'.
     (when (looking-at "[0-9]+ [0-9]+ \\([0-9]+\\) [0-9]+")
       (goto-char (match-beginning 1))
-      (cons (1+ (read (current-buffer)))
+      (cons (read (current-buffer))
            (read (current-buffer))))))
 
 (defun gnus-make-articles-unread (group articles)
index 092372c..e2b586d 100644 (file)
@@ -6634,9 +6634,11 @@ re-spool using this method."
   (interactive "P")
   (gnus-summary-move-article n nil nil 'crosspost))
 
-(defvar gnus-summary-respool-default-method nil
+(defcustom gnus-summary-respool-default-method nil
   "Default method for respooling an article.  
-If nil, use to the current newsgroup method.")
+If nil, use to the current newsgroup method."
+  :type 'gnus-select-method-name
+  :group 'gnus-summary)
 
 (defun gnus-summary-respool-article (&optional n method)
   "Respool the current article.
index cf4f601..ffccff0 100644 (file)
 (require 'gnus-group)
 (require 'gnus-start)
 
+(defgroup gnus-topic nil
+  "Group topics."
+  :group 'gnus-group)
+
 (defvar gnus-topic-mode nil
   "Minor mode for Gnus group buffers.")
 
-(defvar gnus-topic-mode-hook nil
-  "Hook run in topic mode buffers.")
+(defcustom gnus-topic-mode-hook nil
+  "Hook run in topic mode buffers."
+  :type 'hook
+  :group 'gnus-topic)
 
 (defvar gnus-topic-line-format "%i[ %(%{%n%}%) -- %A ]%v\n"
   "Format of topic lines.
@@ -49,11 +55,15 @@ with some simple extensions.
 %A  Number of unread articles in the groups in the topic and its subtopics.
 ")
 
-(defvar gnus-topic-indent-level 2
-  "*How much each subtopic should be indented.")
+(defcustom gnus-topic-indent-level 2
+  "*How much each subtopic should be indented."
+  :type 'integer
+  :group 'gnus-topic)
 
-(defvar gnus-topic-display-empty-topics t
-  "*If non-nil, display the topic lines even of topics that have no unread articles.")
+(defcustom gnus-topic-display-empty-topics t
+  "*If non-nil, display the topic lines even of topics that have no unread articles."
+  :type 'boolean
+  :group 'gnus-topic)
 
 ;; Internal variables.
 
index 6841dd9..8c96631 100644 (file)
@@ -30,6 +30,7 @@
 
 ;;; Code:
 
+(require 'custom)
 (require 'cl)
 (require 'nnheader)
 (require 'timezone)
@@ -390,12 +391,14 @@ Cache the result as a text property stored in DATE."
       (setq i (* 2 i)))
     (1- i)))
 
-(defvar gnus-verbose 7
+(defcustom gnus-verbose 7
   "*Integer that says how verbose Gnus should be.
 The higher the number, the more messages Gnus will flash to say what
 it's doing.  At zero, Gnus will be totally mute; at five, Gnus will
 display most important messages; and at ten, Gnus will keep on
-jabbering all the time.")
+jabbering all the time."
+  :group 'gnus-start
+  :type 'integer)
 
 ;; Show message if message has a lower level than `gnus-verbose'.
 ;; Guideline for numbers:
index 77c0a6c..489898c 100644 (file)
               (article 0.5)
               (message 1.0 point))))
   "Window configuration for all possible Gnus buffers.
-This variable is a list of lists.  Each of these lists has a NAME and
-a RULE.         The NAMEs are commonsense names like `group', which names a
-rule used when displaying the group buffer; `summary', which names a
-rule for what happens when you enter a group and do not display an
-article buffer; and so on.  See the value of this variable for a
-complete list of NAMEs.
-
-Each RULE is a list of vectors.         The first element in this vector is
-the name of the buffer to be displayed; the second element is the
-percentage of the screen this buffer is to occupy (a number in the
-0.0-0.99 range); the optional third element is `point', which should
-be present to denote which buffer point is to go to after making this
-buffer configuration.")
+See the Gnus manual for an explanation of the syntax used.")
 
 (defvar gnus-window-to-buffer
   '((group . gnus-group-buffer)
index 3678eaf..886ee54 100644 (file)
@@ -42,7 +42,7 @@
   "Score and kill file handling."
   :group 'gnus )
 
-(defconst gnus-version-number "0.61"
+(defconst gnus-version-number "0.62"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Red Gnus v%s" gnus-version-number)
@@ -284,17 +284,18 @@ used to 899, you would say something along these lines:
                 (kill-buffer (current-buffer))))))))
 
 (defcustom gnus-select-method
-  (nconc
-   (list 'nntp (or (ignore-errors
-                    (gnus-getenv-nntpserver))
-                  (when (and gnus-default-nntp-server
-                             (not (string= gnus-default-nntp-server "")))
-                    gnus-default-nntp-server)
-                  (system-name)))
-   (if (or (null gnus-nntp-service)
-          (equal gnus-nntp-service "nntp"))
-       nil
-     (list gnus-nntp-service)))
+  (ignore-errors
+    (nconc
+     (list 'nntp (or (ignore-errors
+                      (gnus-getenv-nntpserver))
+                    (when (and gnus-default-nntp-server
+                               (not (string= gnus-default-nntp-server "")))
+                      gnus-default-nntp-server)
+                    (system-name)))
+     (if (or (null gnus-nntp-service)
+            (equal gnus-nntp-service "nntp"))
+        nil
+       (list gnus-nntp-service))))
   "Default method for selecting a newsgroup.
 This variable should be a list, where the first element is how the
 news is to be fetched, the second is the address.
@@ -836,10 +837,12 @@ face."
        gnus-article-hide-boring-headers
        gnus-article-treat-overstrike
        gnus-article-maybe-highlight
+       gnus-article-de-quoted-unreadable
        gnus-article-display-x-face)
     '(gnus-article-hide-headers-if-wanted
       gnus-article-hide-boring-headers
       gnus-article-treat-overstrike
+      gnus-article-de-quoted-unreadable
       gnus-article-maybe-highlight))
   "Controls how the article buffer will look.
 
@@ -1047,6 +1050,7 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.")
      ("rmailout" rmail-output)
      ("rmail" rmail-insert-rmail-file-header rmail-count-new-messages
       rmail-show-message)
+     ("gnus-audio" :interactive t gnus-audio-play)
      ("gnus-xmas" gnus-xmas-splash)
      ("gnus-soup" :interactive t
       gnus-group-brew-soup gnus-brew-soup gnus-soup-add-article
@@ -1178,7 +1182,7 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.")
 ;;; gnus-sum.el thingies
 
 
-(defvar gnus-summary-line-format "%U\%R\%z\%I\%(%[%4L: %-20,20n%]%) %s\n"
+(defcustom gnus-summary-line-format "%U\%R\%z\%I\%(%[%4L: %-20,20n%]%) %s\n"
   "*The format specification of the lines in the summary buffer.
 
 It works along the same lines as a normal formatting string,
@@ -1234,7 +1238,9 @@ which is bad enough.
 The smart choice is to have these specs as for to the left as
 possible.
 
-This restriction may disappear in later versions of Gnus.")
+This restriction may disappear in later versions of Gnus."
+  :type 'string
+  :group 'gnus-summary)
 
 ;;;
 ;;; Skeleton keymaps
index 8bf8446..51209e1 100644 (file)
@@ -944,6 +944,10 @@ C-c C-r  message-caesar-buffer-body (rot13 the message body)."
 (defun message-insert-to ()
   "Insert a To header that points to the author of the article being replied to."
   (interactive)
+  (let ((co (message-fetch-field "courtesy-copies-to")))
+    (when (and co 
+              (equal (downcase co) "never"))
+      (error "The user has requested not to have copies sent via mail")))
   (when (and (message-position-on-field "To")
             (mail-fetch-field "to")
             (not (string-match "\\` *\\'" (mail-fetch-field "to"))))
index e840e23..718ac09 100644 (file)
@@ -273,7 +273,7 @@ Example:
 
 (defvar nnmail-split-abbrev-alist
   '((any . "from\\|to\\|cc\\|sender\\|apparently-to\\|resent-from\\|resent-to\\|resent-cc")
-    (mail . "mailer-daemon\\|postmaster"))
+    (mail . "mailer-daemon\\|postmaster\\|uucp"))
   "*Alist of abbreviations allowed in `nnmail-split-fancy'.")
 
 (defvar nnmail-delete-incoming nil
@@ -401,6 +401,10 @@ parameter.  It should return nil, `warn' or `delete'.")
   (if (not (file-writable-p nnmail-crash-box))
       (gnus-error 1 "Can't write to crash box %s.  Not moving mail."
                  nnmail-crash-box)
+    ;; If the crash box exists and is empty, we delete it.
+    (when (and (file-exists-p nnmail-crash-box)
+              (zerop (nnheader-file-size (file-truename nnmail-crash-box))))
+      (delete-file nnmail-crash-box))
     (let ((inbox (file-truename (expand-file-name inbox)))
          (tofile (file-truename (expand-file-name nnmail-crash-box)))
          movemail popmail errors)
@@ -639,6 +643,8 @@ is a spool.  If not using procmail, return GROUP."
                           (= (following-char) ?\n)))
                     (save-excursion
                       (forward-line 1)
+                      (while (looking-at ">From ")
+                        (forward-line 1))
                       (looking-at "[^ \t:]+[ \t]*:")))
            (setq found 'yes)))))
     (beginning-of-line)
index dabf743..2fdbfcb 100644 (file)
@@ -447,7 +447,7 @@ This function is supposed to be called from `nntp-server-opened-hook'.
 It will prompt for a password."
   (nntp-send-command 
    "^.*\r?\n" "AUTHINFO USER"
-   (read-string "NNTP (%s) user name: " nntp-address))
+   (read-string (format "NNTP (%s) user name: " nntp-address)))
   (nntp-send-command 
    "^.*\r?\n" "AUTHINFO PASS" 
    (nnmail-read-passwd "NNTP (%s) password: " nntp-address)))
@@ -459,7 +459,7 @@ It will prompt for a password."
   (nntp-send-command "^.*\r?\n" "AUTHINFO USER" (user-login-name))
   (nntp-send-command
    "^.*\r?\n" "AUTHINFO PASS" 
-   (read-string "NNTP (%s) password: " nntp-address)))
+   (nnmail-read-passwd (format "NNTP (%s) password: " nntp-address))))
 
 (defun nntp-send-authinfo-from-file ()
   "Send the AUTHINFO to the nntp server.
index b6a8065..d03f8ad 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Red Gnus 0.61 Manual
+@settitle Red Gnus 0.62 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -287,7 +287,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Red Gnus 0.61 Manual
+@title Red Gnus 0.62 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page