*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 08:26:29 +0000 (08:26 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 08:26:29 +0000 (08:26 +0000)
lisp/ChangeLog
lisp/gnus-msg.el
lisp/gnus-topic.el
lisp/gnus.el
lisp/nnspool.el
texi/gnus.texi

index c3ab44e..31212f1 100644 (file)
@@ -1,5 +1,36 @@
+Sun Mar 24 00:00:33 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
+
+       * gnus-topic.el (gnus-topic-insert-topic-line): Would mess up the
+       `.' command.
+       (gnus-topic-mode-map): Moved `gnus-topic-indent' to `T TAB'.
+
+       * gnus-msg.el (gnus-summary-resend-bounced-mail): Would do odd
+       things. 
+
+       * gnus.el (gnus-buffer-configuration): Add compose-bounce.
+
+       * nnspool.el (nnspool-find-nov-line): Would cut off ends of NOV
+       files. 
+
+Fri Mar 22 21:46:18 1996  David Kågedal  <davidk@lysator.liu.se>
+
+       * gnus.el (gnus-group-best-unread-group): Didn't work with topics.
+
+Sat Mar 23 05:45:38 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
+
+       * gnus.el (gnus-get-unread-articles): Inline
+       `gnus-get-unread-articles-in-group'. 
+       (gnus-get-unread-articles-in-group): Inline
+       `gnus-cache-possibly-alter-active'. 
+
+Sat Mar 23 01:26:10 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
+
+       * gnus.el (gnus-summary-insert-pseudos): Would print out tabs.
+
 Sat Mar 23 00:01:56 1996  Lars Magne Ingebrigtsen  <larsi@aegir.ifi.uio.no>
 
+       * gnus.el: September Gnus v0.56 is released.
+
        * gnus.el (gnus-group-add-score): Would bug out on dead groups.
 
 Fri Mar 22 22:30:32 1996  Lars Magne Ingebrigtsen  <larsi@aegir.ifi.uio.no>
index 54bf7ca..e6e39da 100644 (file)
@@ -2678,9 +2678,10 @@ this is a reply."
   ;; Create a mail buffer.
   (gnus-new-empty-mail)
   (erase-buffer)
-  (insert-buffer-substring gnus-article-buffer)
+  (insert-buffer-substring gnus-original-article-buffer)
   (goto-char (point-min))
-  (or (re-search-forward mail-unsent-separator nil t)
+  (or (and (re-search-forward mail-unsent-separator nil t)
+          (forward-line 1))
       (and (search-forward "\n\n" nil t)
           (re-search-forward "^Return-Path:.*\n" nil t)))
   ;; We remove everything before the bounced mail.
index 66632aa..04b57fe 100644 (file)
@@ -87,7 +87,7 @@ with some simple extensions.
 
 (defun gnus-group-topic-unread ()
   "The number of unread articles in topic on the current line."
-  (get-text-property (gnus-point-at-bol) 'gnus-unread))
+  (get-text-property (gnus-point-at-bol) 'gnus-topic-unread))
 
 (defun gnus-topic-init-alist ()
   "Initialize the topic structures."
@@ -300,7 +300,7 @@ articles in the topic and its subtopics."
        (gnus-topic-remove-excess-properties))
      (list 'gnus-topic (intern name)
           'gnus-topic-level level
-          'gnus-unread unread
+          'gnus-topic-unread unread
           'gnus-active active-topic
           'gnus-topic-visible visiblep))))
 
@@ -564,7 +564,6 @@ articles in the topic and its subtopics."
    "\C-k" gnus-topic-kill-group
    "\C-y" gnus-topic-yank-group
    "\M-g" gnus-topic-get-new-news-this-topic
-   "\C-i" gnus-topic-indent
    "AT" gnus-topic-list-active
    gnus-mouse-2 gnus-mouse-pick-topic)
 
@@ -581,6 +580,8 @@ articles in the topic and its subtopics."
    "s" gnus-topic-show-topic
    "M" gnus-topic-move-matching
    "C" gnus-topic-copy-matching
+   "\C-i" gnus-topic-indent
+   [tab] gnus-topic-indent
    "r" gnus-topic-rename
    "\177" gnus-topic-delete))
 
index 196328d..d00b14a 100644 (file)
@@ -932,6 +932,10 @@ beginning of a line.")
               (summary 0.25 point)
               (if gnus-carpal '(summary-carpal 4))
               ("*Shell Command Output*" 1.0)))
+    (compose-bounce
+     (vertical 1.0
+              (article 0.5)
+              (mail 1.0 point)))
     (followup
      (vertical 1.0
               (article-copy 0.5)
@@ -1715,7 +1719,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.56"
+(defconst gnus-version "September Gnus v0.57"
   "Version number for this version of Gnus.")
 
 (defvar gnus-info-nodes
@@ -2284,6 +2288,25 @@ Thank you for your help in stamping out bugs.
 (require 'gnus-cus)
 (require 'gnus-ems)
 
+\f
+;;;
+;;; Shutdown
+;;;
+
+(defvar gnus-shutdown-alist nil)
+
+(defun gnus-add-shutdown (function &rest symbols)
+  "Run FUNCTION whenever one of SYMBOLS is shut down."
+  (push (cons function symbols) gnus-shutdown-alist))
+
+(defun gnus-shutdown (symbol)
+  "Shut down everything that waits for SYMBOL."
+  (let ((alist gnus-shutdown-alist)
+       entry)
+    (while (setq entry (pop alist))
+      (when (memq symbol (cdr entry))
+       (funcall (car entry))))))
+
 \f
 
 ;; Format specs.  The chunks below are the machine-generated forms
@@ -4791,9 +4814,9 @@ increase the score of each group you read."
           (- (1+ (cdr active)) (car active)) 0)
        nil))))
 
-(defun gnus-group-insert-group-line
-  (gnus-tmp-group gnus-tmp-level gnus-tmp-marked number
-                 gnus-tmp-method)
+(defun gnus-group-insert-group-line (gnus-tmp-group gnus-tmp-level 
+                                                   gnus-tmp-marked number
+                                                   gnus-tmp-method)
   "Insert a group line in the group buffer."
   (let* ((gnus-tmp-active (gnus-active gnus-tmp-group))
         (gnus-tmp-number-total
@@ -4856,7 +4879,7 @@ increase the score of each group you read."
        gnus-marked ,gnus-tmp-marked-mark
        gnus-indentation ,gnus-group-indentation
        gnus-level ,gnus-tmp-level))
-    (when (gnus-visual-p 'group-highlight 'highlight)
+    (when (inline (gnus-visual-p 'group-highlight 'highlight))
       (forward-line -1)
       (run-hooks 'gnus-group-update-hook)
       (forward-line))
@@ -5331,7 +5354,8 @@ If EXCLUDE-GROUP, do not go to that group."
     (while (setq unread (get-text-property (point) 'gnus-unread))
       (if (and (numberp unread) (> unread 0))
          (progn
-           (if (and (< (get-text-property (point) 'gnus-level) best)
+           (if (and (get-text-property (point) 'gnus-level)
+                    (< (get-text-property (point) 'gnus-level) best)
                     (or (not exclude-group)
                         (not (equal exclude-group (gnus-group-group-name)))))
                (progn
@@ -6280,8 +6304,7 @@ entail asking the server for the groups."
        (buffer-read-only nil))
     (erase-buffer)
     (while groups
-      (gnus-group-insert-group-line-info (car groups))
-      (setq groups (cdr groups)))
+      (gnus-group-insert-group-line-info (pop groups)))
     (goto-char (point-min))))
 
 (defun gnus-activate-all-groups (level)
@@ -13046,7 +13069,7 @@ is initialized from the SAVEDIR environment variable."
          (gnus-summary-goto-subject after-article)
          (forward-line 1)
          (setq b (point))
-         (insert "          " (file-name-nondirectory
+         (insert "    " (file-name-nondirectory
                                (cdr (assq 'name (car pslist))))
                  ": " (or (cdr (assq 'execute (car pslist))) "") "\n")
          (setq e (point))
@@ -15427,6 +15450,93 @@ newsgroup."
       (setcdr killed (delete (car killed) (cdr killed)))
       (setq killed (cdr killed)))))
 
+;; We want to inline a function from gnus-cache, so we cheat here:
+(eval-when-compile
+  (provide 'gnus)
+  (require 'gnus-cache))
+
+(defun gnus-get-unread-articles-in-group (info active &optional update)
+  (when active
+    ;; Allow the backend to update the info in the group.
+    (when (and update 
+              (gnus-request-update-info
+               info (gnus-find-method-for-group (gnus-info-group info))))
+      (gnus-activate-group (gnus-info-group info)))
+    (let* ((range (gnus-info-read info))
+          (num 0))
+      ;; If a cache is present, we may have to alter the active info.
+      (when (and gnus-use-cache info)
+       (inline (gnus-cache-possibly-alter-active 
+                (gnus-info-group info) active)))
+      ;; Modify the list of read articles according to what articles
+      ;; are available; then tally the unread articles and add the
+      ;; number to the group hash table entry.
+      (cond
+       ((zerop (cdr active))
+       (setq num 0))
+       ((not range)
+       (setq num (- (1+ (cdr active)) (car active))))
+       ((not (listp (cdr range)))
+       ;; Fix a single (num . num) range according to the
+       ;; active hash table.
+       ;; Fix by Carsten Bormann <cabo@Informatik.Uni-Bremen.DE>.
+       (and (< (cdr range) (car active)) (setcdr range (1- (car active))))
+       (and (> (cdr range) (cdr active)) (setcdr range (cdr active)))
+       ;; Compute number of unread articles.
+       (setq num (max 0 (- (cdr active) (- (1+ (cdr range)) (car range))))))
+       (t
+       ;; The read list is a list of ranges.  Fix them according to
+       ;; the active hash table.
+       ;; First peel off any elements that are below the lower
+       ;; active limit.
+       (while (and (cdr range)
+                   (>= (car active)
+                       (or (and (atom (cadr range)) (cadr range))
+                           (caadr range))))
+         (if (numberp (car range))
+             (setcar range
+                     (cons (car range)
+                           (or (and (numberp (cadr range))
+                                    (cadr range))
+                               (cdadr range))))
+           (setcdr (car range)
+                   (or (and (numberp (nth 1 range)) (nth 1 range))
+                       (cdadr range))))
+         (setcdr range (cddr range)))
+       ;; Adjust the first element to be the same as the lower limit.
+       (if (and (not (atom (car range)))
+                (< (cdar range) (car active)))
+           (setcdr (car range) (1- (car active))))
+       ;; Then we want to peel off any elements that are higher
+       ;; than the upper active limit.
+       (let ((srange range))
+         ;; Go past all legal elements.
+         (while (and (cdr srange)
+                     (<= (or (and (atom (cadr srange))
+                                  (cadr srange))
+                             (caadr srange)) (cdr active)))
+           (setq srange (cdr srange)))
+         (if (cdr srange)
+             ;; Nuke all remaining illegal elements.
+             (setcdr srange nil))
+
+         ;; Adjust the final element.
+         (if (and (not (atom (car srange)))
+                  (> (cdar srange) (cdr active)))
+             (setcdr (car srange) (cdr active))))
+       ;; Compute the number of unread articles.
+       (while range
+         (setq num (+ num (- (1+ (or (and (atom (car range)) (car range))
+                                     (cdar range)))
+                             (or (and (atom (car range)) (car range))
+                                 (caar range)))))
+         (setq range (cdr range)))
+       (setq num (max 0 (- (cdr active) num)))))
+      ;; Set the number of unread articles.
+      (when info
+       (setcar (gnus-gethash (gnus-info-group info) gnus-newsrc-hashtb) num))
+      num)))
+
 ;; Go though `gnus-newsrc-alist' and compare with `gnus-active-hashtb'
 ;; and compute how many unread articles there are in each group.
 (defun gnus-get-unread-articles (&optional level)
@@ -15456,7 +15566,7 @@ newsgroup."
       (if (and (setq method (gnus-info-method info))
               (not (gnus-server-equal
                     gnus-select-method
-                    (gnus-server-get-method nil method)))
+                    (setq method (gnus-server-get-method nil method))))
               (not (gnus-secondary-method-p method)))
          ;; These groups are foreign.  Check the level.
          (when (<= (gnus-info-level info) foreign-level)
@@ -15470,7 +15580,11 @@ newsgroup."
          (gnus-close-group group)))
 
       (if active
-         (gnus-get-unread-articles-in-group info active t)
+         (inline (gnus-get-unread-articles-in-group 
+                  info active
+                  (and method
+                       (fboundp (intern (concat (symbol-name (car method))
+                                                "-request-scan"))))))
        ;; The group couldn't be reached, so we nix out the number of
        ;; unread articles and stuff.
        (gnus-set-active group nil)
@@ -15511,87 +15625,6 @@ newsgroup."
       (while list
        (gnus-sethash (car list) (pop list) gnus-killed-hashtb)))))
 
-(defun gnus-get-unread-articles-in-group (info active &optional update)
-  (when active
-    ;; Allow the backend to update the info in the group.
-    (when (and update 
-              (gnus-request-update-info
-               info (gnus-find-method-for-group (gnus-info-group info))))
-      (gnus-activate-group (gnus-info-group info)))
-    (let* ((range (gnus-info-read info))
-          (num 0))
-      ;; If a cache is present, we may have to alter the active info.
-      (when (and gnus-use-cache info)
-       (gnus-cache-possibly-alter-active (gnus-info-group info) active))
-      ;; Modify the list of read articles according to what articles
-      ;; are available; then tally the unread articles and add the
-      ;; number to the group hash table entry.
-      (cond
-       ((zerop (cdr active))
-       (setq num 0))
-       ((not range)
-       (setq num (- (1+ (cdr active)) (car active))))
-       ((not (listp (cdr range)))
-       ;; Fix a single (num . num) range according to the
-       ;; active hash table.
-       ;; Fix by Carsten Bormann <cabo@Informatik.Uni-Bremen.DE>.
-       (and (< (cdr range) (car active)) (setcdr range (1- (car active))))
-       (and (> (cdr range) (cdr active)) (setcdr range (cdr active)))
-       ;; Compute number of unread articles.
-       (setq num (max 0 (- (cdr active) (- (1+ (cdr range)) (car range))))))
-       (t
-       ;; The read list is a list of ranges.  Fix them according to
-       ;; the active hash table.
-       ;; First peel off any elements that are below the lower
-       ;; active limit.
-       (while (and (cdr range)
-                   (>= (car active)
-                       (or (and (atom (cadr range)) (cadr range))
-                           (caadr range))))
-         (if (numberp (car range))
-             (setcar range
-                     (cons (car range)
-                           (or (and (numberp (cadr range))
-                                    (cadr range))
-                               (cdadr range))))
-           (setcdr (car range)
-                   (or (and (numberp (nth 1 range)) (nth 1 range))
-                       (cdadr range))))
-         (setcdr range (cddr range)))
-       ;; Adjust the first element to be the same as the lower limit.
-       (if (and (not (atom (car range)))
-                (< (cdar range) (car active)))
-           (setcdr (car range) (1- (car active))))
-       ;; Then we want to peel off any elements that are higher
-       ;; than the upper active limit.
-       (let ((srange range))
-         ;; Go past all legal elements.
-         (while (and (cdr srange)
-                     (<= (or (and (atom (cadr srange))
-                                  (cadr srange))
-                             (caadr srange)) (cdr active)))
-           (setq srange (cdr srange)))
-         (if (cdr srange)
-             ;; Nuke all remaining illegal elements.
-             (setcdr srange nil))
-
-         ;; Adjust the final element.
-         (if (and (not (atom (car srange)))
-                  (> (cdar srange) (cdr active)))
-             (setcdr (car srange) (cdr active))))
-       ;; Compute the number of unread articles.
-       (while range
-         (setq num (+ num (- (1+ (or (and (atom (car range)) (car range))
-                                     (cdar range)))
-                             (or (and (atom (car range)) (car range))
-                                 (caar range)))))
-         (setq range (cdr range)))
-       (setq num (max 0 (- (cdr active) num)))))
-      ;; Set the number of unread articles.
-      (when info
-       (setcar (gnus-gethash (gnus-info-group info) gnus-newsrc-hashtb) num))
-      num)))
-
 (defun gnus-activate-group (group &optional scan)
   ;; Check whether a group has been activated or not.
   ;; If SCAN, request a scan of that group as well.
@@ -16540,25 +16573,6 @@ If FORCE is non-nil, the .newsrc file is read."
       (when (looking-at "[^ \t]+[ \t]+\\(.*\\)")
        (match-string 1)))))
 
-\f
-;;;
-;;; Shutdown
-;;;
-
-(defvar gnus-shutdown-alist nil)
-
-(defun gnus-add-shutdown (function &rest symbols)
-  "Run FUNCTION whenever one of SYMBOLS is shut down."
-  (push (cons function symbols) gnus-shutdown-alist))
-
-(defun gnus-shutdown (symbol)
-  "Shut down everything that waits for SYMBOL."
-  (let ((alist gnus-shutdown-alist)
-       entry)
-    (while (setq entry (pop alist))
-      (when (memq symbol (cdr entry))
-       (funcall (car entry))))))
-
 \f
 ;;;
 ;;; Buffering of read articles.
index d30f5e7..95124de 100644 (file)
@@ -412,16 +412,21 @@ there.")
               (setq min (point)))
              (t
               (setq found t)))))
+    ;; Now we may have found the article we're looking for, or we
+    ;; may be somewhere near it.
     (when (not (eq num article))
       (setq found (point))
-      (forward-line 1)
-      (or (eobp)
-         (= (setq num (read cur)) article)
-         (goto-char found)))
+      (while (and (< (point) max)
+                 (< num article))
+       (forward-line 1)
+       (setq found (point))
+       (or (eobp)
+           (= (setq num (read cur)) article)))
+      (unless (eq num article)
+       (goto-char found)))
     (beginning-of-line)
     (eq num article)))
     
-
 (defun nnspool-sift-nov-with-sed (articles file)
   (let ((first (car articles))
        (last (progn (while (cdr articles) (setq articles (cdr articles)))
index 91c21dc..e1be3c7 100644 (file)
@@ -2285,8 +2285,8 @@ visible) or unfolded (if it was folded already).  So it's basically a
 toggling command on topics.  In addition, if you give a numerical
 prefix, group on that level (and lower) will be displayed.
 
-@item TAB
-@kindex TAB (Group)
+@item T TAB
+@kindex T TAB (Group)
 @findex gnus-topic-indent
 ``Indent'' the current topic so that it becomes a sub-topic of the
 previous topic (@code{gnus-topic-indent}).  If given a prefix,