*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 07:59:16 +0000 (07:59 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 07:59:16 +0000 (07:59 +0000)
lisp/ChangeLog
lisp/gnus-msg.el
lisp/gnus-score.el
lisp/gnus-uu.el
lisp/gnus-vis.el
lisp/gnus.el
lisp/nnfolder.el
lisp/nnvirtual.el
texi/gnus.texi

index ad2ea2a..b07c6ad 100644 (file)
@@ -1,5 +1,38 @@
+Thu Feb 29 09:15:05 1996  Lars Ingebrigtsen  <lars@eyesore.no>
+
+       * nnvirtual.el (nnvirtual-create-mapping): Copy article marks.
+
+       * gnus.el (gnus-add-marked-articles): Would corrupt the
+       .newsrc.eld file.
+
+       * gnus-vis.el (gnus-group-highlight-line): Make sure `level' and
+       `score' are numbers.
+
+       * gnus-msg.el (gnus-inews-insert-archive-gcc): Group would be nil
+       when posting from the group buffer.
+
+       * gnus.el (gnus-fetch-group): Really fetch the group.
+       (gnus-summary-recenter): Respect `vertical'.
+       (gnus-recenter): Heed the prefix.
+
+Thu Feb 29 08:58:59 1996  Roderick Schertler  <roderick@gate.net>
+
+       * gnus-score.el (gnus-score-after-write-file-function): New
+       variable. 
+
+Thu Feb 29 08:00:08 1996  Lars Ingebrigtsen  <lars@eyesore.no>
+
+       * gnus.el (gnus-after-getting-new-news-hook): New hook.
+
+       * gnus-uu.el (gnus-uu-digest-mail-forward): Use normal
+       process/prefix convetions.
+
+       * nnfolder.el (nnfolder-request-scan): Kill buffers after saving.
+
 Wed Feb 28 04:39:49 1996  Lars Ingebrigtsen  <lars@eyesore.no>
 
+       * gnus.el: 0.46 is released.
+
        * gnus.el (gnus-read-active-file): Don't try to retrieve groups
        when no can be found.
        (gnus-find-method-for-group): Return "cleaner" select methods.
index f4f43f5..4d27451 100644 (file)
@@ -1960,7 +1960,7 @@ mailer."
 
        (auto-save-mode auto-save-default)
        (gnus-inews-insert-gcc)
-       (gnus-inews-insert-archive-gcc)
+       (gnus-inews-insert-archive-gcc group)
 
        (when (and follow-to (listp follow-to))
          (let (beg)
@@ -2086,7 +2086,7 @@ If INHIBIT-PROMPT, never prompt for a Subject."
 
     (gnus-inews-insert-bfcc)
     (gnus-inews-insert-gcc)
-    (gnus-inews-insert-archive-gcc)
+    (gnus-inews-insert-archive-gcc group)
     (gnus-inews-insert-signature)
     (and gnus-post-prepare-function
         (gnus-functionp gnus-post-prepare-function)
@@ -2256,7 +2256,7 @@ If INHIBIT-PROMPT, never prompt for a Subject."
 
          (gnus-inews-insert-bfcc)
          (gnus-inews-insert-gcc)
-         (gnus-inews-insert-archive-gcc)
+         (gnus-inews-insert-archive-gcc group)
 
          ;; Now the headers should be ok, so we do the yanking.
          (goto-char (point-min))
@@ -2800,9 +2800,10 @@ Headers will be generated before sending."
                    (mapconcat 'identity gcc " "))
                  "\n"))))))
 
-(defun gnus-inews-insert-archive-gcc ()
+(defun gnus-inews-insert-archive-gcc (&optional group)
   "Insert the Gcc to say where the article is to be archived."
   (let* ((var gnus-message-archive-group)
+        (group (or group gnus-newsgroup-name ""))
         result
         (groups
          (cond 
@@ -2820,7 +2821,7 @@ Headers will be generated before sending."
            var)
           ((gnus-functionp var)
            ;; A function.
-           (funcall var gnus-newsgroup-name))
+           (funcall var group))
           (t
            ;; An alist of regexps/functions/forms.
            (while (and var
@@ -2829,12 +2830,11 @@ Headers will be generated before sending."
                               (cond 
                                ((stringp (caar var))
                                 ;; Regexp.
-                                (when (string-match (caar var)
-                                                    gnus-newsgroup-name)
+                                (when (string-match (caar var) group)
                                   (cdar var)))
                                ((gnus-functionp (car var))
                                 ;; Function.
-                                (funcall (car var) gnus-newsgroup-name))
+                                (funcall (car var) group))
                                (t
                                 (eval (car var)))))))
              (setq var (cdr var)))
index ef66cb0..c399e04 100644 (file)
@@ -183,6 +183,9 @@ Should be one of the following symbols.
 
 If nil, the user will be asked for a duration.")
 
+(defvar gnus-score-after-write-file-function nil
+  "*Function called with the name of the score file just written to disk.")
+
 \f
 
 ;; Internal variables.
@@ -1002,9 +1005,10 @@ SCORE is the score to add."
              (if (zerop (buffer-size))
                  (delete-file file)
                ;; There are scores, so we write the file. 
-               (and (file-writable-p file)
-                    (write-region (point-min) (point-max) 
-                                  file nil 'silent))))
+               (when (file-writable-p file)
+                 (write-region (point-min) (point-max) file nil 'silent)
+                 (and gnus-score-after-write-file-function
+                      (funcall gnus-score-after-write-file-function file)))))
            (and gnus-score-uncacheable-files
                 (string-match gnus-score-uncacheable-files file)
                 (gnus-score-remove-from-cache file)))))
index bce3739..4bf4219 100644 (file)
@@ -441,8 +441,10 @@ The headers will be included in the sequence they are matched.")
   (let ((gnus-uu-save-in-digest t)
        (file (make-temp-name (concat gnus-uu-tmp-dir "forward")))
        buf subject from)
+    (setq gnus-newsgroup-processable
+         (gnus-summary-work-articles n))
     (setq gnus-uu-digest-from-subject nil)
-    (gnus-uu-decode-save n file)
+    (gnus-uu-decode-save nil file)
     (gnus-uu-add-file file)
     (setq buf (switch-to-buffer (get-buffer-create " *gnus-uu-forward*")))
     (gnus-add-current-to-buffer-list)
index 4efa4ad..fa7e7be 100644 (file)
@@ -994,8 +994,8 @@ ticked: The number of ticked articles in the group.
         (mailp (memq 'mail (assoc (symbol-name
                                    (car (or method gnus-select-method)))
                                   gnus-valid-select-methods)))
-        (level (gnus-info-level info))
-        (score (gnus-info-score info))
+        (level (or (gnus-info-level info) 9))
+        (score (or (gnus-info-score info) 0))
         (ticked (gnus-range-length (cdr (assq 'tick marked))))
         (inhibit-read-only t))
     ;; Eval the cars of the lists until we find a match.
index acb0a6b..d260d2d 100644 (file)
@@ -1384,6 +1384,9 @@ This hook is called after Gnus is connected to the NNTP server.")
 (defvar gnus-get-new-news-hook nil
   "*A hook run just before Gnus checks for new news.")
 
+(defvar gnus-after-getting-new-news-hook nil
+  "*A hook run after Gnus checks for new news.")
+
 (defvar gnus-group-prepare-function 'gnus-group-prepare-flat
   "*A function that is called to generate the group buffer.
 The function is called with three arguments: The first is a number;
@@ -1705,7 +1708,7 @@ variable (string, integer, character, etc).")
   "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
   "The mail address of the Gnus maintainers.")
 
-(defconst gnus-version "September Gnus v0.46"
+(defconst gnus-version "September Gnus v0.47"
   "Version number for this version of Gnus.")
 
 (defvar gnus-info-nodes
@@ -5151,7 +5154,7 @@ Returns whether the fetching was successful or not."
   (interactive "sGroup name: ")
   (or (get-buffer gnus-group-buffer)
       (gnus))
-  (gnus-group-select-group))
+  (gnus-group-read-group nil nil group))
 
 ;; Enter a group that is not in the group buffer.  Non-nil is returned
 ;; if selection was successful.
@@ -6245,6 +6248,7 @@ re-scanning.  If ARG is non-nil and not a number, this will force
        (gnus-get-unread-articles arg))
     (let ((gnus-read-active-file (if arg nil gnus-read-active-file)))
       (gnus-get-unread-articles arg)))
+  (run-hooks 'gnus-after-getting-new-news-hook)
   (gnus-group-list-groups))
 
 (defun gnus-group-get-new-news-this-group (&optional n)
@@ -8673,7 +8677,7 @@ If READ-ALL is non-nil, all articles in the group are selected."
        (if force
            (if (null articles)
                (setcar (nthcdr 3 info)
-                       (delq (assq type marked) marked))
+                       (delq (assq type (car marked)) (car marked)))
              (setcdr m (gnus-compress-sequence articles t)))
          (setcdr m (gnus-compress-sequence
                     (sort (nconc (gnus-uncompress-range m)
@@ -9313,7 +9317,7 @@ articles with that subject.  If BACKWARD, search backward instead."
 (defun gnus-recenter (&optional n)
   "Center point in window and redisplay frame.
 Also do horizontal recentering."
-  (interactive)
+  (interactive "P")
   (when (and gnus-auto-center-summary
             (not (eq gnus-auto-center-summary 'vertical)))
     (gnus-horizontal-recenter))
@@ -9344,7 +9348,8 @@ displayed, no centering will be performed."
        window (min bottom (save-excursion 
                             (forward-line (- top)) (point)))))
       ;; Do horizontal recentering while we're at it.
-      (when (get-buffer-window (current-buffer) t)
+      (when (and (get-buffer-window (current-buffer) t)
+                (not (eq gnus-auto-center-summary 'vertical)))
        (let ((selected (selected-window)))
          (select-window (get-buffer-window (current-buffer) t))
          (gnus-summary-position-point)
index 95488d2..8686dd2 100644 (file)
@@ -248,7 +248,8 @@ it.")
               (setq nnfolder-buffer-alist 
                     (delq (car bufs) nnfolder-buffer-alist))
             (set-buffer (nth 1 (car bufs)))
-            (and (buffer-modified-p) (save-buffer)))
+            (and (buffer-modified-p) (save-buffer))
+            (kill-buffer (current-buffer)))
           (setq bufs (cdr bufs))))))
    nnfolder-directory
    group))
index 4feb737..4d74334 100644 (file)
@@ -375,7 +375,7 @@ virtual group.")
 
 (defun nnvirtual-create-mapping ()
   "Create an article mapping for the current group."
-  (let* (div
+  (let* (div m marks article list
         (map (sort
               (apply 
                'nconc
@@ -398,14 +398,24 @@ virtual group.")
                                   (list (* div (- n (car active)))
                                         g n (and (memq n unreads) t)
                                         (nnvirtual-marks n marks)))
-                                (gnus-uncompress-range active))))))
-                nnvirtual-component-groups))
+                                (gnus-uncompress-range active))))))    
+        nnvirtual-component-groups))
               (lambda (m1 m2)
                 (< (car m1) (car m2)))))
         (i 0))
     (setq nnvirtual-mapping map)
-    (while map
-      (setcar (pop map) (incf i)))))
+    (while (setq m (pop map))
+      (setcar m (setq article (incf i)))
+      (when (setq marks (nth 4 m))
+       (while marks
+         (set (setq list
+                    (intern (concat "gnus-newsgroup-" 
+                                    (symbol-name 
+                                     (car (rassq (pop marks)
+                                                 gnus-article-mark-lists))))))
+              (cons article (symbol-value list))))))))
+                    
+              
 
 (provide 'nnvirtual)
 
index 9b02cd6..c9b2555 100644 (file)
@@ -2444,6 +2444,10 @@ Restart Gnus (@code{gnus-group-restart}).
 @vindex gnus-get-new-news-hook
 @code{gnus-get-new-news-hook} is run just before checking for new news. 
 
+@vindex gnus-after-getting-new-news-hook
+@code{gnus-after-getting-new-news-hook} is run after checking for new
+news.
+
 
 @node Group Information
 @subsection Group Information
@@ -9731,6 +9735,10 @@ stay fresh and young.)  However, if you set this variable to @code{nil},
 even matching entries will grow old and will have to face that oh-so
 grim reaper.  
 
+@item gnus-score-after-write-file-function
+@vindex gnus-score-after-write-file-function
+Function called with the name of the score file just written.
+
 @end table
 
 
@@ -11205,7 +11213,7 @@ but at the common table.@*
 * Terminology::                    We use really difficult, like, words here.
 * Customization::                  Tailoring Gnus to your needs.
 * Troubleshooting::                What you might try if things do not work.
-* A Programmer@'s Guide to Gnus::   Rilly, rilly technical stuff.
+* A Programmers Guide to Gnus::    Rilly, rilly technical stuff.
 * Emacs for Heathens::             A short introduction to Emacsian terms.
 * Frequently Asked Questions::     A question-and-answer session.
 @end menu
@@ -12008,7 +12016,7 @@ You can also ask on the ding mailing list---@samp{ding@@ifi.uio.no}.
 Write to @samp{ding-request@@ifi.uio.no} to subscribe.
 
 
-@node A Programmer@'s Guide to Gnus
+@node A Programmers Guide to Gnus
 @section A Programmer's Guide to Gnus
 
 It is my hope that other people will figure out smart stuff that Gnus