*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 18 Mar 1997 16:59:15 +0000 (16:59 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 18 Mar 1997 16:59:15 +0000 (16:59 +0000)
14 files changed:
lisp/ChangeLog
lisp/gnus-art.el
lisp/gnus-group.el
lisp/gnus-msg.el
lisp/gnus-sum.el
lisp/gnus.el
lisp/nnbabyl.el
lisp/nnfolder.el
lisp/nnmbox.el
lisp/nnmh.el
lisp/nnml.el
texi/ChangeLog
texi/gnus.texi
todo

index c801f89..df13185 100644 (file)
@@ -1,3 +1,42 @@
+Tue Mar 18 17:56:26 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Gnus v5.4.29 is released.
+
+Tue Mar 18 14:29:49 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus-group.el (gnus-group-read-ephemeral-group): Would set virt
+       ser too much. 
+       (gnus-group-read-group): Return right value.
+
+       * nnml.el (nnml-generate-nov-databases-1): Save active.
+
+       * gnus-msg.el (gnus-summary-supersede-article): Place point in the
+       with buffer.
+       (gnus-inews-add-to-address): Prompt before adding.
+
+       * gnus-art.el (article-strip-leading-space): Not a new command
+       and keystroke (HTDW Jaari fix).
+
+       * nnfolder.el (nnfolder-close-group): Don't push bogus entries
+       onto alist.
+
+Tue Mar 18 14:28:27 1997  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+       * nnfolder.el (nnfolder-request-scan): Check whether buffer really
+       is live.
+
+Tue Mar 18 13:53:00 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus-group.el (gnus-group-read-group): Iterate instead of
+       recurse. 
+
+       * nnfolder.el (nnfolder-request-accept-article): Don't insert into
+       Message-ID cache.
+       * nnbabyl.el (nnbabyl-request-accept-article): Ditto.
+       * nnmbox.el (nnmbox-request-accept-article): Ditto.
+       * nnml.el (nnml-request-accept-article): Ditto.
+       * nnmh.el (nnmh-request-accept-article): Ditto.
+
 Tue Mar 18 00:35:06 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Gnus v5.4.28 is released.
index f80c78a..5b54196 100644 (file)
@@ -1018,6 +1018,17 @@ always hide."
       (while (re-search-forward "\n\n\n+" nil t)
        (replace-match "\n\n" t t)))))
 
+(defun article-strip-leading-space ()
+  "Remove all white space from the beginning of the lines in the article."
+  (interactive)
+  (save-excursion
+    (let ((inhibit-point-motion-hooks t)
+         buffer-read-only)
+      (goto-char (point-min))
+      (search-forward "\n\n" nil t)
+      (while (re-search-forward "^[ \t]+" nil t)
+       (replace-match "" t t)))))
+
 (defun article-strip-blank-lines ()
   "Strip leading, trailing and multiple blank lines."
   (interactive)
@@ -1669,6 +1680,7 @@ If variable `gnus-use-long-file-name' is non-nil, it is
      article-remove-trailing-blank-lines
      article-strip-leading-blank-lines
      article-strip-multiple-blank-lines
+     article-strip-leading-space
      article-strip-blank-lines
      article-date-local
      article-date-original
index 4955f3d..bb26a9c 100644 (file)
@@ -1454,6 +1454,7 @@ and with point over the group in question."
 
 ;; Selecting groups.
 
+(defvar gnus-auto-select-next)
 (defun gnus-group-read-group (&optional all no-article group)
   "Read news in this newsgroup.
 If the prefix argument ALL is non-nil, already read articles become
@@ -1464,28 +1465,41 @@ group."
   (interactive "P")
   (let ((no-display (eq all 0))
        (group (or group (gnus-group-group-name)))
-       number active marked entry)
+       number active marked entry selected did-select)
     (when (eq all 0)
       (setq all nil))
     (unless group
       (error "No group on current line"))
-    (setq marked (gnus-info-marks
-                 (nth 2 (setq entry (gnus-gethash
-                                     group gnus-newsrc-hashtb)))))
-    ;; This group might be a dead group.  In that case we have to get
-    ;; the number of unread articles from `gnus-active-hashtb'.
-    (setq number
-         (cond ((numberp all) all)
-               (entry (car entry))
-               ((setq active (gnus-active group))
-                (- (1+ (cdr active)) (car active)))))
-    (gnus-summary-read-group
-     group (or all (and (numberp number)
-                       (zerop (+ number (gnus-range-length
-                                         (cdr (assq 'tick marked)))
-                                 (gnus-range-length
-                                  (cdr (assq 'dormant marked)))))))
-     no-article nil no-display)))
+    ;; We loop here in case all articles in the group we try to select
+    ;; is scored out and we want to go to the next group.
+    (while (not selected)
+      (setq marked (gnus-info-marks
+                   (nth 2 (setq entry (gnus-gethash
+                                       group gnus-newsrc-hashtb)))))
+      ;; This group might be a dead group.  In that case we have to get
+      ;; the number of unread articles from `gnus-active-hashtb'.
+      (setq number
+           (cond ((numberp all) all)
+                 (entry (car entry))
+                 ((setq active (gnus-active group))
+                  (- (1+ (cdr active)) (car active)))))
+      (setq did-select
+           (let ((gnus-auto-select-next nil))
+             (gnus-summary-read-group
+              group
+              (or all (and (numberp number)
+                           (zerop
+                            (+ number
+                               (gnus-range-length
+                                (cdr (assq 'tick marked)))
+                               (gnus-range-length
+                                (cdr (assq 'dormant marked)))))))
+              no-article nil no-display)))
+      (if (and (not did-select)
+              (eq gnus-auto-select-next 'quietly))
+         (setq group (gnus-group-group-name))
+       (setq selected t)))
+    did-select))
 
 (defun gnus-group-select-group (&optional all)
   "Select this newsgroup.
@@ -1563,9 +1577,9 @@ Return the name of the group is selection was successful."
     (require (car method))
     (when (boundp saddr)
       (unless (assq saddr method)
-       (nconc method `((,saddr ,(cadr method)))))
-      (setf (cadr method) (format "%s-%d" (cadr method)
-                                 (incf gnus-ephemeral-group-server)))))
+       (nconc method `((,saddr ,(cadr method))))
+       (setf (cadr method) (format "%s-%d" (cadr method)
+                                   (incf gnus-ephemeral-group-server))))))
   (let ((group (if (gnus-group-foreign-p group) group
                 (gnus-group-prefixed-name group method))))
     (gnus-sethash
index 21ba0ff..38f99e8 100644 (file)
@@ -306,15 +306,12 @@ header line with the old Message-ID."
       (gnus-summary-select-article t)
       (set-buffer gnus-original-article-buffer)
       (message-supersede)
-      (push
-       `((lambda ()
-          (gnus-cache-possibly-remove-article ,article nil nil nil t)))
-       message-send-actions)
       (push
        `((lambda ()
           (when (buffer-name (get-buffer ,gnus-summary-buffer))
             (save-excursion
               (set-buffer (get-buffer ,gnus-summary-buffer))
+              (gnus-cache-possibly-remove-article ,article nil nil nil t)
               (gnus-summary-mark-as-read ,article gnus-canceled-mark)))))
        message-send-actions))))
 
@@ -726,7 +723,9 @@ The current group name will be inserted at \"%s\".")
               (gnus-alive-p))
       ;; This mail group doesn't have a `to-list', so we add one
       ;; here.  Magic!
-      (gnus-group-add-parameter group (cons 'to-list to-address)))))
+      (when (gnus-y-or-n-p
+            (format "Do you want to add this as `to-list': %s " to-address))
+       (gnus-group-add-parameter group (cons 'to-list to-address))))))
 
 (defun gnus-put-message ()
   "Put the current message in some group and return to Gnus."
index 38110ff..1ea7d13 100644 (file)
@@ -1312,7 +1312,8 @@ increase the score of each group you read."
     "t" gnus-article-remove-trailing-blank-lines
     "l" gnus-article-strip-leading-blank-lines
     "m" gnus-article-strip-multiple-blank-lines
-    "a" gnus-article-strip-blank-lines)
+    "a" gnus-article-strip-blank-lines
+    "s" gnus-article-strip-leading-space)
 
   (gnus-define-keys (gnus-summary-help-map "H" gnus-summary-mode-map)
     "v" gnus-version
@@ -1514,7 +1515,8 @@ increase the score of each group you read."
         ["Leading" gnus-article-strip-leading-blank-lines t]
         ["Multiple" gnus-article-strip-multiple-blank-lines t]
         ["Trailing" gnus-article-remove-trailing-blank-lines t]
-        ["All of the above" gnus-article-strip-blank-lines t])
+        ["All of the above" gnus-article-strip-blank-lines t]
+        ["Leading space" gnus-article-strip-leading-space t])
        ["Overstrike" gnus-article-treat-overstrike t]
        ["Emphasis" gnus-article-emphasize t]
        ["Word wrap" gnus-article-fill-cited-article t]
index 00d1edc..10cf215 100644 (file)
@@ -226,7 +226,7 @@ is restarted, and sometimes reloaded."
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "5.4.28"
+(defconst gnus-version-number "5.4.29"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Gnus v%s" gnus-version-number)
index 8f51c30..7334b94 100644 (file)
        (save-excursion
         (while (re-search-backward "^X-Gnus-Newsgroup: " beg t)
           (delete-region (point) (progn (forward-line 1) (point)))))
-       (nnmail-cache-insert (nnmail-fetch-field "message-id"))
        (setq result (car (nnbabyl-save-mail
                          (if (stringp group)
                              (list (cons group (nnbabyl-active-number group)))
        (goto-char (match-end 0))
        (insert-buffer-substring buf)
        (when last
-        (nnmail-cache-insert (nnmail-fetch-field "message-id"))
         (save-buffer)
         (nnmail-save-active nnbabyl-group-alist nnbabyl-active-file))
        result))))
index 811bb12..60ad428 100644 (file)
@@ -225,7 +225,7 @@ time saver for large mailboxes.")
        (let ((bufs nnfolder-buffer-alist))
         (save-excursion
           (while bufs
-            (if (not (buffer-name (nth 1 (car bufs))))
+            (if (not (buffer-live-p (nth 1 (car bufs))))
                 (setq nnfolder-buffer-alist
                       (delq (car bufs) nnfolder-buffer-alist))
               (set-buffer (nth 1 (car bufs)))
@@ -246,7 +246,8 @@ time saver for large mailboxes.")
            (equal group nnfolder-current-group))
     (let ((inf (assoc group nnfolder-buffer-alist)))
       (when inf
-       (when nnfolder-current-group
+       (when (and nnfolder-current-group
+                  nnfolder-current-buffer)
          (push (list nnfolder-current-group nnfolder-current-buffer)
                nnfolder-buffer-alist))
        (setq nnfolder-buffer-alist
@@ -374,7 +375,6 @@ time saver for large mailboxes.")
        (forward-line -1)
        (while (re-search-backward (concat "^" nnfolder-article-marker) nil t)
         (delete-region (point) (progn (forward-line 1) (point))))
-       (nnmail-cache-insert (nnmail-fetch-field "message-id"))
        (setq result
             (car (nnfolder-save-mail
                   (if (stringp group)
@@ -384,8 +384,7 @@ time saver for large mailboxes.")
      (when last
        (save-excursion
         (nnfolder-possibly-change-folder (or (caar art-group) group))
-        (nnfolder-save-buffer)
-        (nnmail-cache-close))))
+        (nnfolder-save-buffer))))
     (nnmail-save-active nnfolder-group-alist nnfolder-active-file)
     (unless result
       (nnheader-report 'nnfolder "Couldn't store article"))
index 6c8dd28..069ed7f 100644 (file)
        (forward-line -1)
        (while (re-search-backward "^X-Gnus-Newsgroup: " nil t)
         (delete-region (point) (progn (forward-line 1) (point))))
-       (nnmail-cache-insert (nnmail-fetch-field "message-id"))
        (setq result (nnmbox-save-mail
                     (if (stringp group)
                         (list (cons group (nnmbox-active-number group)))
        (goto-char (point-max))
        (insert-buffer-substring buf)
        (when last
-        (nnmail-cache-close)
         (nnmail-save-active nnmbox-group-alist nnmbox-active-file)
         (save-buffer))))
     (car result)))
index 7aeaf5b..cf0b6c5 100644 (file)
 (deffoo nnmh-request-accept-article (group &optional server last noinsert)
   (nnmh-possibly-change-directory group server)
   (nnmail-check-syntax)
-  (nnmail-cache-insert (nnmail-fetch-field "message-id"))
-  (prog1
-      (if (stringp group)
-         (and
-          (nnmail-activate 'nnmh)
-          (car (nnmh-save-mail
-                (list (cons group (nnmh-active-number group)))
-                noinsert)))
-       (and
-        (nnmail-activate 'nnmh)
-        (car (nnmh-save-mail (nnmail-article-group 'nnmh-active-number)
-                             noinsert))))
-    (when last
-      (nnmail-cache-close))))
+  (if (stringp group)
+      (and
+       (nnmail-activate 'nnmh)
+       (car (nnmh-save-mail
+            (list (cons group (nnmh-active-number group)))
+            noinsert)))
+    (and
+     (nnmail-activate 'nnmh)
+     (car (nnmh-save-mail (nnmail-article-group 'nnmh-active-number)
+                         noinsert)))))
 
 (deffoo nnmh-request-replace-article (article group buffer)
   (nnmh-possibly-change-directory group)
index dd6ba47..ed631eb 100644 (file)
@@ -313,7 +313,6 @@ all.  This may very well take some time.")
   (nnml-possibly-change-directory group server)
   (nnmail-check-syntax)
   (let (result)
-    (nnmail-cache-insert (nnmail-fetch-field "message-id"))
     (if (stringp group)
        (and
         (nnmail-activate 'nnml)
@@ -328,7 +327,6 @@ all.  This may very well take some time.")
                          (nnmail-article-group 'nnml-active-number))))
        (when last
         (nnmail-save-active nnml-group-alist nnml-active-file)
-        (nnmail-cache-close)
         (nnml-save-nov))))
     result))
 
@@ -682,11 +680,11 @@ all.  This may very well take some time.")
   (nnml-open-server (or (nnoo-current-server 'nnml) ""))
   (setq nnml-directory (expand-file-name nnml-directory))
   ;; Recurse down the directories.
-  (nnml-generate-nov-databases-1 nnml-directory)
+  (nnml-generate-nov-databases-1 nnml-directory nil t)
   ;; Save the active file.
   (nnmail-save-active nnml-group-alist nnml-active-file))
 
-(defun nnml-generate-nov-databases-1 (dir &optional seen)
+(defun nnml-generate-nov-databases-1 (dir &optional seen no-active)
   "Regenerate the NOV database in DIR."
   (interactive "DRegenerate NOV in: ")
   (setq dir (file-name-as-directory dir))
@@ -706,7 +704,9 @@ all.  This may very well take some time.")
       (when files
        (funcall nnml-generate-active-function dir)
        ;; Generate the nov file.
-       (nnml-generate-nov-file dir files)))))
+       (nnml-generate-nov-file dir files)
+       (unless no-active
+         (nnmail-save-active nnml-group-alist nnml-active-file))))))
 
 (defvar files)
 (defun nnml-generate-active-info (dir)
index da869cc..ef39dde 100644 (file)
@@ -1,3 +1,7 @@
+Tue Mar 18 14:43:32 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus.texi (Article Washing): Not addition.
+
 Mon Mar 17 16:15:54 1997  Philippe Schnoebelen  <Philippe.Schnoebelen@lsv.ens-cachan.fr>
 
        * Makefile (install): Install properly.
index 42523c4..cd692bb 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Gnus 5.4.28 Manual
+@settitle Gnus 5.4.29 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 Gnus 5.4.28 Manual
+@title Gnus 5.4.29 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -323,7 +323,7 @@ can be gotten by any nefarious means you can think of---@sc{nntp}, local
 spool or your mbox file.  All at the same time, if you want to push your
 luck.
 
-This manual corresponds to Gnus 5.4.28
+This manual corresponds to Gnus 5.4.29
 
 @end ifinfo
 
@@ -6030,6 +6030,12 @@ Remove all blank lines at the end of the article
 Do all the three commands above
 (@code{gnus-article-strip-blank-lines}).
 
+@item W E s
+@kindex W E s (Summary)
+@findex gnus-article-strip-leading-space
+Remove all white space from the beginning of all lines of the article
+body (@code{gnus-article-strip-leading-space}).
+
 @end table
 
 
diff --git a/todo b/todo
index 286f9d8..e119cfa 100644 (file)
--- a/todo
+++ b/todo
@@ -608,3 +608,12 @@ the header
 
 * point in the article buffer doesn't always go to the
 beginning of the buffer when selecting new articles.
+
+* a command to process mark all unread articles.
+
+* `gnus-gather-threads-by-references-and-subject' -- first
+do gathering by references, and then go through the dummy roots and
+do more gathering by subject.
+
+* gnus-uu-mark-in-numerical-order -- process mark articles in
+article numerical order.