*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 02:40:14 +0000 (02:40 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 02:40:14 +0000 (02:40 +0000)
23 files changed:
lisp/ChangeLog
lisp/auc-menu.el [new file with mode: 0644]
lisp/gnus-cache.el
lisp/gnus-cite.el
lisp/gnus-ems.el
lisp/gnus-kill.el
lisp/gnus-msg.el
lisp/gnus-score.el
lisp/gnus-uu.el
lisp/gnus-vis.el
lisp/gnus.el
lisp/nnbabyl.el
lisp/nndoc.el
lisp/nneething.el
lisp/nnfolder.el
lisp/nnheader.el
lisp/nnkiboze.el
lisp/nnmail.el
lisp/nnmbox.el
lisp/nnmh.el
lisp/nnml.el
lisp/nnsoup.el
lisp/nnvirtual.el

index 7a1bf8c..fe63f87 100644 (file)
@@ -1,5 +1,37 @@
+Sun Jul  2 14:11:14 1995  Lars Magne Ingebrigtsen  <lingebri@sunscipw.cern.ch>
+
+       * nnvirtual.el (nnvirtual-catchup-group): Would kill the group
+       buffer. 
+
+       * gnus-ems.el (gnus-ems-redefine): Redefine insertion of group
+       lines to avoid that awfol front-stickyness of extents. 
+       (gnus-ems-redefine): Redefine gnus-copy-article-buffer.
+       (gnus-ems-redefine): Redefine gnus-summary-refer-article. 
+
+       * nnml.el (nnml-request-expire-articles): Would delete everything
+       over ange-ftp. 
+
+       * gnus-ems.el (gnus-ems-redefine): Really redefine
+       gnus-highlight-selected-summary. 
+
+       * gnus-ems.el (gnus-ems-redefine): Redefine gnus-summary-recenter. 
+
+Sun Jul  2 13:02:19 1995  Lars Magne Ingebrigtsen  <lingebri@sunscipw.cern.ch>
+
+       * gnus.el: Removed tons of unreferenced local variables from all
+       files. 
+       (gnus-read-active-file): When using several nntp servers, the
+       native nntp server often would not be consulted for an active
+       file. 
+
+Sun Jul  2 12:03:18 1995  Lars Magne Ingebrigtsen  <lingebri@sunscipw.cern.ch>
+
+       * gnus.el (gnus-group-make-articles-read): name instead of group. 
+
 Sat Jul  1 16:04:13 1995  Lars Magne Ingebrigtsen  <lingebri@sunscipw.cern.ch>
 
+       * gnus.el: 0.90 is released.
+
        * gnus.el (gnus-summary-edit-article-done): No arguments to
        buffer-disable-undo. 
 
diff --git a/lisp/auc-menu.el b/lisp/auc-menu.el
new file mode 100644 (file)
index 0000000..dba462c
--- /dev/null
@@ -0,0 +1,313 @@
+;;; auc-menu.el - Easy menu support for GNU Emacs 19 and XEmacs.
+;; 
+;; $Id: auc-menu.el,v 5.7 1994/11/28 01:41:22 amanda Exp $
+;;
+;; LCD Archive Entry:
+;; auc-menu|Per Abrahamsen|abraham@iesd.auc.dk|
+;; Easy menu support for GNU Emacs 19 and XEmacs|
+;; $Date: 1994/11/28 01:41:22 $|$Revision: 5.7 $|~/misc/auc-menu.el.gz|
+
+;; Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1994 Per Abrahamsen <abraham@iesd.auc.dk>
+;;
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+;; 
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;; 
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+;; Commentary:
+;;
+;; Easymenu allows you to define menus for both Emacs 19 and XEmacs.
+;; The advantages of using easymenu are:
+;;
+;; - Easier to use than either the Emacs 19 and XEmacs menu syntax.
+;;
+;; - Common interface for Emacs 18, Emacs 19, and XEmacs.  
+;;   (The code does nothing when run under Emacs 18).
+;;
+;; The public functions are:
+;; 
+;; - Function: easy-menu-define SYMBOL MAPS DOC MENU
+;;     SYMBOL is both the name of the variable that holds the menu and
+;;            the name of a function that will present a the menu.
+;;     MAPS is a list of keymaps where the menu should appear in the menubar.
+;;     DOC is the documentation string for the variable.
+;;     MENU is an XEmacs style menu description.  
+;;
+;;     See the documentation for easy-menu-define for details.
+;;
+;; - Function: easy-menu-change PATH NAME ITEMS
+;;     Change an existing menu.
+;;     The menu must already exist an be visible on the menu bar.
+;;     PATH is a list of strings used for locating the menu on the menu bar. 
+;;     NAME is the name of the menu.  
+;;     ITEMS is a list of menu items, as defined in `easy-menu-define'.
+;;
+;; - Function: easy-menu-add MENU [ MAP ]
+;;     Add MENU to the current menubar in MAP.
+;;
+;; - Function: easy-menu-remove MENU
+;;     Remove MENU from the current menubar.
+;;
+;; GNU Emacs 19 never uses `easy-menu-add' or `easy-menu-remove',
+;; menus automatically appear and disappear when the keymaps
+;; specified by the MAPS argument to `easy-menu-define' are
+;; activated.
+;;
+;; XEmacs will bind the map to button3 in each MAPS, but you must
+;; explicitly call `easy-menu-add' and `easy-menu-remove' to add and
+;; remove menus from the menu bar.
+
+;; auc-menu.el define the easymenu API included in Emacs 19.29 and
+;; later.  In fact, the Emacs 19 specific code should be identical.
+
+;;; Code:
+
+;;;###autoload
+(defmacro easy-menu-define (symbol maps doc menu)
+  "Define a menu bar submenu in maps MAPS, according to MENU.
+The arguments SYMBOL and DOC are ignored; they are present for
+compatibility only.  SYMBOL is not evaluated.  In other Emacs versions
+these arguments may be used as a variable to hold the menu data, and a
+doc string for that variable.
+
+The first element of MENU must be a string.  It is the menu bar item name.
+The rest of the elements are menu items.
+
+A menu item is usually a vector of three elements:  [NAME CALLBACK ENABLE]
+
+NAME is a string--the menu item name.
+
+CALLBACK is a command to run when the item is chosen,
+or a list to evaluate when the item is chosen.
+
+ENABLE is an expression; the item is enabled for selection
+whenever this expression's value is non-nil.
+
+Alternatively, a menu item may have the form: 
+
+   [ NAME CALLBACK [ KEYWORD ARG ] ... ]
+
+Where KEYWORD is one of the symbol defined below.
+
+   :keys KEYS
+
+KEYS is a string; a complex keyboard equivalent to this menu item.
+
+   :active ENABLE
+
+ENABLE is an expression; the item is enabled for selection
+whenever this expression's value is non-nil.
+
+   :suffix NAME
+
+NAME is a string; the name of an argument to CALLBACK.
+
+   :style STYLE
+   
+STYLE is a symbol describing the type of menu item.  The following are
+defined:  
+
+toggle: A checkbox.  
+        Currently just prepend the name with the string \"Toggle \".
+radio: A radio button. 
+nil: An ordinary menu item.
+
+   :selected SELECTED
+
+SELECTED is an expression; the checkbox or radio button is selected
+whenever this expression's value is non-nil.
+Currently just disable radio buttons, no effect on checkboxes.
+
+A menu item can be a string.  Then that string appears in the menu as
+unselectable text.  A string consisting solely of hyphens is displayed
+as a solid horizontal line.
+
+A menu item can be a list.  It is treated as a submenu.
+The first element should be the submenu name.  That's used as the
+menu item in the top-level menu.  The cdr of the submenu list
+is a list of menu items, as above."
+  (` (progn
+       (defvar (, symbol) nil (, doc))
+       (easy-menu-do-define (quote (, symbol)) (, maps) (, doc) (, menu)))))
+
+(cond 
+
+;;; Emacs 18
+
+((< (string-to-int emacs-version) 19)
+
+(defun easy-menu-do-define (symbol maps doc menu)
+  (fset symbol (symbol-function 'ignore)))
+
+(defun easy-menu-remove (menu))
+
+(defun easy-menu-add (menu &optional map))
+
+(defun easy-menu-change (path name items))
+
+)                                      ;Emacs 18
+
+;;; XEmacs
+
+((string-match "XEmacs\\|Lucid" emacs-version)
+
+(defun easy-menu-do-define (symbol maps doc menu)
+  (set symbol menu)
+  (fset symbol (list 'lambda '(e)
+                    doc
+                    '(interactive "@e")
+                    '(run-hooks 'activate-menubar-hook)
+                    '(setq zmacs-region-stays 't)
+                    (list 'popup-menu symbol)))
+  (mapcar (function (lambda (map) (define-key map 'button3 symbol)))
+         (if (keymapp maps) (list maps) maps)))
+
+(fset 'easy-menu-change (symbol-function 'add-menu))
+
+(defun easy-menu-add (menu &optional map)
+  "Add MENU to the current menu bar."
+  (cond ((null current-menubar)
+        ;; Don't add it to a non-existing menubar.
+        nil)
+       ((assoc (car menu) current-menubar)
+        ;; Already present.
+        nil)
+       ((equal current-menubar '(nil))
+        ;; Set at left if only contains right marker.
+        (set-buffer-menubar (list menu nil)))
+       (t
+        ;; Add at right.
+        (set-buffer-menubar (copy-sequence current-menubar))
+        (add-menu nil (car menu) (cdr menu)))))
+
+(defun easy-menu-remove (menu)
+  "Remove MENU from the current menu bar."
+  (and current-menubar
+       (assoc (car menu) current-menubar)
+       (delete-menu-item (list (car menu)))))
+
+)                                      ;XEmacs
+
+;;; GNU Emacs 19
+
+(t
+
+(defun easy-menu-do-define (symbol maps doc menu)
+  ;; We can't do anything that might differ between Emacs dialects in
+  ;; `easy-menu-define' in order to make byte compiled files
+  ;; compatible.  Therefore everything interesting is done in this
+  ;; function. 
+  (set symbol (easy-menu-create-keymaps (car menu) (cdr menu)))
+  (fset symbol (` (lambda (event) (, doc) (interactive "@e")
+                   (easy-popup-menu event (, symbol)))))
+  (mapcar (function (lambda (map) 
+           (define-key map (vector 'menu-bar (intern (car menu)))
+             (cons (car menu) (symbol-value symbol)))))
+         (if (keymapp maps) (list maps) maps)))
+
+(defvar easy-menu-item-count 0)
+
+;; Return a menu keymap corresponding to a XEmacs style menu list
+;; MENU-ITEMS, and with name MENU-NAME.
+(defun easy-menu-create-keymaps (menu-name menu-items)
+  (let ((menu (make-sparse-keymap menu-name)))
+    ;; Process items in reverse order,
+    ;; since the define-key loop reverses them again.
+    (setq menu-items (reverse menu-items))
+    (while menu-items
+      (let* ((item (car menu-items))
+            (callback (if (vectorp item) (aref item 1)))
+            command enabler name)
+       (cond ((stringp item)
+              (setq command nil)
+              (setq name (if (string-match "^-+$" item) "" item)))
+             ((consp item)
+              (setq command (easy-menu-create-keymaps (car item) (cdr item)))
+              (setq name (car item)))
+             ((vectorp item)
+              (setq command (make-symbol (format "menu-function-%d"
+                                                 easy-menu-item-count)))
+              (setq easy-menu-item-count (1+ easy-menu-item-count))
+              (setq name (aref item 0))
+              (let ((keyword (aref item 2)))
+                (if (and (symbolp keyword)
+                         (= ?: (aref (symbol-name keyword) 0)))
+                    (let ((count 2)
+                          style selected active keys
+                          arg)
+                      (while (> (length item) count)
+                        (setq keyword (aref item count))
+                        (setq arg (aref item (1+ count)))
+                        (setq count (+ 2 count))
+                        (cond ((eq keyword ':keys)
+                               (setq keys arg))
+                              ((eq keyword ':active)
+                               (setq active arg))
+                              ((eq keyword ':suffix)
+                               (setq name (concat name " " arg)))
+                              ((eq keyword ':style)
+                               (setq style arg))
+                              ((eq keyword ':selected)
+                               (setq selected arg))))
+                      (if keys
+                          (setq name (concat name "  (" keys ")")))
+                      (if (eq style 'toggle)
+                          ;; Simulate checkboxes.
+                          (setq name (concat "Toggle " name)))
+                      (if active 
+                          (put command 'menu-enable active)
+                        (and (eq style 'radio)
+                             selected
+                             ;; Simulate radio buttons with menu-enable.
+                             (put command 'menu-enable
+                                  (list 'not selected)))))))          
+              (if (keymapp callback)
+                  (setq name (concat name " ...")))
+              (if (symbolp callback)
+                  (fset command callback)
+                (fset command (list 'lambda () '(interactive) callback)))))
+       (if (null command)
+           ;; Handle inactive strings specially--allow any number
+           ;; of identical ones.
+           (setcdr menu (cons (list nil name) (cdr menu)))
+         (if name 
+             (define-key menu (vector (intern name)) (cons name command)))))
+      (setq menu-items (cdr menu-items)))
+    menu))
+
+(defun easy-menu-change (path name items)
+  "Change menu found at PATH as item NAME to contain ITEMS.
+PATH is a list of strings for locating the menu containing NAME in the
+menu bar.  ITEMS is a list of menu items, as in `easy-menu-define'.
+These items entirely replace the previous items in that map.
+
+Call this from `activate-menubar-hook' to implement dynamic menus."
+  (let ((map (key-binding (apply 'vector
+                                'menu-bar
+                                (mapcar 'intern (append path (list name)))))))
+    (if (keymapp map)
+       (setcdr map (cdr (easy-menu-create-keymaps name items)))
+      (error "Malformed menu in `easy-menu-change'"))))
+
+(defun easy-menu-remove (menu))
+
+(defun easy-menu-add (menu &optional map))
+
+)                                      ;GNU Emacs 19
+
+)                                      ;cond
+
+(provide 'easymenu)
+(provide 'auc-menu)
+
+;;; auc-menu.el ends here
index 6a6dbe9..a9d4ddc 100644 (file)
     (kill-buffer cache-buf)))
 
 (defun gnus-cache-braid-heads (group cached)
-  (let ((cache-buf (get-buffer-create " *gnus-cache*"))
-       beg end)
+  (let ((cache-buf (get-buffer-create " *gnus-cache*")))
     (save-excursion
       (set-buffer cache-buf)
       (buffer-disable-undo (current-buffer))
index ca269b7..fe64bbf 100644 (file)
@@ -149,7 +149,7 @@ Lines matching `gnus-cite-attribution-postfix' and perhaps
          (alist gnus-cite-prefix-alist)
          (faces gnus-cite-face-list)
          (inhibit-point-motion-hooks t)
-         face entry prefix skip numbers number face-alist end)
+         face entry prefix skip numbers number face-alist)
       ;; Loop through citation prefixes.
       (while alist
        (setq entry (car alist)
@@ -282,7 +282,7 @@ See also the documentation for `gnus-article-highlight-citation'."
               (goto-char (point-max))
               (re-search-backward gnus-signature-separator nil t)
               (point)))
-       alist entry prefix start begin end numbers)
+       alist entry start begin end numbers prefix)
     ;; Get all potential prefixes in `alist'.
     (while (< (point) max)
       ;; Each line.
@@ -399,7 +399,7 @@ See also the documentation for `gnus-article-highlight-citation'."
      (concat "\\`" (regexp-quote prefix) ".+")))
   ;; Remove loose prefixes with too few lines.
   (let ((alist gnus-cite-loose-prefix-alist)
-       entry prefix)
+       entry)
     (while alist
       (setq entry (car alist)
            alist (cdr alist))
@@ -435,7 +435,7 @@ See also the documentation for `gnus-article-highlight-citation'."
   ;; TAG is the SuperCite tag on the attribution line.
   (let ((atts gnus-cite-loose-attribution-alist)
        (case-fold-search t)
-       att wrote in prefix tag regexp limit smallest best size aprefix)
+       att wrote in prefix tag regexp limit smallest best size)
     (while atts
       (setq att (car atts)
            atts (cdr atts)
@@ -494,7 +494,7 @@ See also the documentation for `gnus-article-highlight-citation'."
 (defun gnus-cite-find-loose (prefix)
   ;; Return a list of loose attribution lines prefixed by PREFIX.
   (let* ((atts gnus-cite-loose-attribution-alist)
-        att line lines candidate)
+        att line lines)
     (while atts
       (setq att (car atts)
            line (car att)
index faa7dc7..7550168 100644 (file)
@@ -66,7 +66,7 @@
        ()
       (setq gnus-group-mode-hook
            (cons
-            (lambda ()
+            '(lambda ()
               (easy-menu-add gnus-group-reading-menu)
               (easy-menu-add gnus-group-group-menu)
               (easy-menu-add gnus-group-post-menu)
@@ -75,7 +75,7 @@
             gnus-group-mode-hook))
       (setq gnus-summary-mode-hook
            (cons
-            (lambda ()
+            '(lambda ()
               (easy-menu-add gnus-summary-mark-menu)
               (easy-menu-add gnus-summary-move-menu)
               (easy-menu-add gnus-summary-article-menu)
@@ -87,7 +87,7 @@
             gnus-summary-mode-hook))
       (setq gnus-article-mode-hook
            (cons
-            (lambda ()
+            '(lambda ()
               (easy-menu-add gnus-article-article-menu)
               (easy-menu-add gnus-article-treatment-menu))
             gnus-article-mode-hook)))
     ;; XEmacs definitions.
     (fset 'gnus-set-mouse-face (lambda (string) string))
 
-    (defun gnus-summary-make-display-table ()
-      )
+    (fset 'gnus-summary-make-display-table (lambda () nil))
+
+    (provide 'gnus)
+    (require 'gnus-vis)
 
     (defun gnus-highlight-selected-summary ()
       ;; Added by Per Abrahamsen <amanda@iesd.auc.dk>.
                    (setq from beg)
                    (setq to end)))
              (if gnus-newsgroup-selected-overlay
-                 (delete-extent gnus-newsgroup-selected-overlay))
-             (setq gnus-newsgroup-selected-overlay
-                   (make-extent from to))
-             (set-extent-face gnus-newsgroup-selected-overlay
-                              gnus-summary-selected-face)))))
+                 (delete-extent gnus-newsgroup-selected-overlay))
+             (setq gnus-newsgroup-selected-overlay
+                   (make-extent from to))
+             (set-extent-face gnus-newsgroup-selected-overlay
+                              gnus-summary-selected-face)))))
+
+
+    (defun gnus-summary-recenter ()
+      (let* ((top (cond ((< (window-height) 4) 0)
+                       ((< (window-height) 7) 1)
+                       (t 2)))
+            (height (- (window-height) 2))
+            (bottom (save-excursion (goto-char (point-max))
+                                    (forward-line (- height))
+                                    (point)))
+            (window (get-buffer-window (current-buffer))))
+       (and 
+        ;; The user has to want it,
+        gnus-auto-center-summary 
+        ;; the article buffer must be displayed,
+        (get-buffer-window gnus-article-buffer)
+        ;; Set the window start to either `bottom', which is the biggest
+        ;; possible valid number, or the second line from the top,
+        ;; whichever is the least.
+        (set-window-start
+         window (min bottom (save-excursion (forward-line (- top)) 
+                                            (point)))))))
+
+    (defun gnus-group-insert-group-line-info (group)
+      (let ((entry (gnus-gethash group gnus-newsrc-hashtb)) 
+           (beg (point))
+           active info)
+       (if entry
+           (progn
+             (setq info (nth 2 entry))
+             (gnus-group-insert-group-line 
+              nil group (nth 1 info) (nth 3 info) (car entry) (nth 4 info)))
+         (setq active (gnus-gethash group gnus-active-hashtb))
+         
+         (gnus-group-insert-group-line 
+          nil group (if (member group gnus-zombie-list) gnus-level-zombie
+                      gnus-level-killed)
+          nil (if active (- (1+ (cdr active)) (car active)) 0) nil))
+       (save-excursion
+        (goto-char beg)
+        (remove-text-properties 
+         (1+ (gnus-point-at-bol)) (1+ (gnus-point-at-eol))
+         '(gnus-group nil)))))
+
+    (defun gnus-copy-article-buffer (&optional article-buffer)
+      (setq gnus-article-copy (get-buffer-create " *gnus article copy*"))
+      (buffer-disable-undo gnus-article-copy)
+      (or (memq gnus-article-copy gnus-buffer-list)
+         (setq gnus-buffer-list (cons gnus-article-copy gnus-buffer-list)))
+      (let ((article-buffer (or article-buffer gnus-article-buffer))
+           buf)
+       (if (and (get-buffer article-buffer)
+                (buffer-name (get-buffer article-buffer)))
+           (save-excursion
+             (set-buffer article-buffer)
+             (widen)
+             (setq buf (buffer-substring (point-min) (point-max)))
+             (set-buffer gnus-article-copy)
+             (erase-buffer)
+             (insert (format "%s" buf))))))
+
+    (defun gnus-summary-refer-article (message-id)
+      "Refer article specified by MESSAGE-ID.
+NOTE: This command only works with newsgroups that use real or simulated NNTP."
+      (interactive "sMessage-ID: ")
+      (if (or (not (stringp message-id))
+             (zerop (length message-id)))
+         ()
+       ;; Construct the correct Message-ID if necessary.
+       ;; Suggested by tale@pawl.rpi.edu.
+       (or (string-match "^<" message-id)
+           (setq message-id (concat "<" message-id)))
+       (or (string-match ">$" message-id)
+           (setq message-id (concat message-id ">")))
+       (let ((header (car (gnus-gethash (downcase message-id)
+                                        gnus-newsgroup-dependencies))))
+         (if header
+             (or (gnus-summary-goto-article (header-number header))
+                 ;; The header has been read, but the article had been
+                 ;; expunged, so we insert it again.
+                 (let ((beg (point)))
+                   (gnus-summary-insert-line
+                    nil header 0 nil gnus-read-mark nil nil
+                    (header-subject header))
+                   (save-excursion
+                     (goto-char beg)
+                     (remove-text-properties
+                      (1+ (gnus-point-at-bol)) (1+ (gnus-point-at-eol))
+                      '(gnus-number nil gnus-mark nil gnus-level nil)))
+                   (forward-line -1)
+                   (header-number header)))
+           (let ((gnus-override-method gnus-refer-article-method)
+                 (gnus-ancient-mark gnus-read-mark)
+                 (tmp-buf (get-buffer-create " *gnus refer"))
+                 (tmp-point (window-start
+                             (get-buffer-window gnus-article-buffer)))
+                 number)
+             (and gnus-refer-article-method
+                  (or (gnus-server-opened gnus-refer-article-method)
+                      (gnus-open-server gnus-refer-article-method)))
+             ;; Save the old article buffer.
+             (save-excursion
+               (set-buffer tmp-buf)
+               (buffer-disable-undo (current-buffer))
+               (insert-buffer-substring gnus-article-buffer))
+             (prog1
+                 (if (gnus-article-prepare 
+                      message-id nil (gnus-read-header message-id))
+                     (progn
+                       (setq number (header-number gnus-current-headers))
+                       (gnus-rebuild-thread message-id)
+                       (gnus-summary-goto-subject number)
+                       (gnus-summary-recenter)
+                       (gnus-article-set-window-start 
+                        (cdr (assq number gnus-newsgroup-bookmarks)))
+                       message-id)
+                   ;; We restore the old article buffer.
+                   (save-excursion
+                     (set-buffer gnus-article-buffer)
+                     (let ((buffer-read-only nil))
+                       (insert-buffer-substring tmp-buf)
+                       (and tmp-point
+                            (set-window-start (get-buffer-window (current-buffer))
+                                              tmp-point))))
+                   nil)
+               (kill-buffer tmp-buf)))))))
+
+
 
     )
+
    ((boundp 'MULE)
     ;; Mule definitions
     (if (not (fboundp 'truncate-string))
       )
     (defalias 'gnus-truncate-string 'truncate-string)
 
-    (defun gnus-format-max-width (form length)
-      (let* ((val (eval form))
-            (valstr (if (numberp val) (int-to-string val) val)))
-       (if (> (length valstr) length)
-           (truncate-string valstr length)
-         valstr)))
+    (fset 
+     'gnus-format-max-width 
+     (lambda (form length)
+       (let* ((val (eval form))
+             (valstr (if (numberp val) (int-to-string val) val)))
+        (if (> (length valstr) length)
+            (truncate-string valstr length)
+          valstr))))
 
-    (defun gnus-summary-make-display-table ())
+    (fset 'gnus-summary-make-display-table (lambda () nil))
     )
    ))
 
index 61971e2..dffe4dd 100644 (file)
@@ -328,9 +328,7 @@ Returns the number of articles marked as read."
                           (gnus-newsgroup-kill-file gnus-newsgroup-name)))
         (unreads (length gnus-newsgroup-unreads))
         (gnus-summary-inhibit-highlight t)
-        (mark-below (or gnus-summary-mark-below gnus-summary-default-score 0))
-        (expunge-below gnus-summary-expunge-below)
-        form beg)
+        beg)
     (setq gnus-newsgroup-kill-headers nil)
     (or gnus-newsgroup-headers-hashtb-by-number
        (gnus-make-headers-hashtable-by-number))
@@ -586,7 +584,7 @@ If optional 2nd argument IGNORE-MARKED is non-nil, articles which are
 marked as read or ticked are ignored."
   (save-excursion
     (let ((killed-no 0)
-         function header article)
+         function article)
       (if (or (null field) (string-equal field ""))
          (setq function nil)
        ;; Get access function of header filed.
index e09a58e..f8cd3ee 100644 (file)
@@ -419,7 +419,7 @@ Type \\[describe-mode] in the buffer to get a list of commands."
                          (cons (current-buffer) gnus-current-article))))
            (from (and header (header-from header)))
            (winconf (current-window-configuration))
-           follow-to real-group)
+           real-group)
        (and gnus-interactive-post
             (not gnus-expert-user)
             post (not group)
@@ -443,10 +443,9 @@ Type \\[describe-mode] in the buffer to get a list of commands."
                     (if (and (boundp 'gnus-followup-to-function)
                              gnus-followup-to-function
                              gnus-article-copy)
-                        (setq follow-to
-                              (save-excursion
-                                (set-buffer gnus-article-copy)
-                                (funcall gnus-followup-to-function group)))))
+                        (save-excursion
+                          (set-buffer gnus-article-copy)
+                          (funcall gnus-followup-to-function group))))
                 gnus-use-followup-to))
          (if post
              (gnus-configure-windows 'post)
@@ -1077,8 +1076,7 @@ nil."
     (let ((signature 
           (or (and gnus-signature-function
                    (funcall gnus-signature-function gnus-newsgroup-name))
-              gnus-signature-file))
-         b)
+              gnus-signature-file)))
       (if (and signature
               (or (file-exists-p signature)
                   (string-match " " signature)
@@ -1382,12 +1380,11 @@ mailer."
 (defun gnus-mail-reply-using-mail (&optional yank to-address)
   (save-excursion
     (set-buffer gnus-summary-buffer)
-    (let ((info (nth 2 (gnus-gethash gnus-newsgroup-name gnus-newsrc-hashtb)))
-         (group (gnus-group-real-name gnus-newsgroup-name))
+    (let ((group (gnus-group-real-name gnus-newsgroup-name))
          (cur (cons (current-buffer) (cdr gnus-article-current)))
          (winconf (current-window-configuration))
-         from subject date to reply-to message-of
-         references message-id sender follow-to cc sendto elt)
+         from subject date reply-to message-of
+         references message-id sender follow-to sendto elt)
       (set-buffer (get-buffer-create gnus-mail-buffer))
       (mail-mode)
       (make-local-variable 'gnus-article-reply)
@@ -1422,7 +1419,6 @@ mailer."
                              "Re: none"))
            (or (string-match "^[Rr][Ee]:" subject)
                (setq subject (concat "Re: " subject)))
-           (setq cc (mail-fetch-field "cc"))
            (setq reply-to (mail-fetch-field "reply-to"))
            (setq references (mail-fetch-field "references"))
            (setq message-id (mail-fetch-field "message-id"))
index d182d97..07f4ca3 100644 (file)
@@ -552,7 +552,6 @@ SCORE is the score to add."
     (let ((mark (car (gnus-score-get 'mark alist)))
          (expunge (car (gnus-score-get 'expunge alist)))
          (mark-and-expunge (car (gnus-score-get 'mark-and-expunge alist)))
-         (read-only (gnus-score-get 'read-only alist))
          (files (gnus-score-get 'files alist))
          (exclude-files (gnus-score-get 'exclude-files alist))
           (orphan (car (gnus-score-get 'orphan alist)))
@@ -834,7 +833,6 @@ SCORE is the score to add."
 ;; Orphan functions written by plm@atcmp.nl (Peter Mutsaers).
 (defun gnus-score-orphans (score)
   (let ((new-thread-ids (gnus-get-new-thread-ids gnus-scores-articles))
-        (index (nth 1 (assoc "references" gnus-header-index)))
         alike articles art arts this last this-id)
     
     (setq gnus-scores-articles (sort gnus-scores-articles 'gnus-score-string<)
@@ -891,7 +889,7 @@ SCORE is the score to add."
 
 (defun gnus-score-integer (scores header now expire &optional trace)
   (let ((gnus-score-index (nth 1 (assoc header gnus-header-index)))
-       alike last this art entries alist articles)
+       entries alist)
 
     ;; Find matches.
     (while scores
@@ -910,8 +908,7 @@ SCORE is the score to add."
                                   (eq type '>=) (eq type '=))
                               type
                             (error "Illegal match type: %s" type)))
-              (articles gnus-scores-articles)
-              arts art)
+              (articles gnus-scores-articles))
          ;; Instead of doing all the clever stuff that
          ;; `gnus-score-string' does to minimize searches and stuff,
          ;; I will assume that people generally will put so few
@@ -941,7 +938,7 @@ SCORE is the score to add."
 
 (defun gnus-score-date (scores header now expire &optional trace)
   (let ((gnus-score-index (nth 1 (assoc header gnus-header-index)))
-       alike last this art entries alist articles)
+       entries alist)
 
     ;; Find matches.
     (while scores
@@ -962,7 +959,7 @@ SCORE is the score to add."
                      ((eq type 'at) 'string=)
                      (t (error "Illegal match type: %s" type))))
               (articles gnus-scores-articles)
-              arts art l)
+              l)
          ;; Instead of doing all the clever stuff that
          ;; `gnus-score-string' does to minimize searches and stuff,
          ;; I will assume that people generally will put so few
@@ -1003,7 +1000,7 @@ SCORE is the score to add."
                                 ((string= "body" (downcase header))
                                  'gnus-request-body)
                                 (t 'gnus-request-article)))
-            alike this art entries alist ofunc article)
+            entries alist ofunc article)
        ;; Not all backends support partial fetching.  In that case,
        ;; we just fetch the entire article.
        (or (gnus-check-backend-function request-func gnus-newsgroup-name)
@@ -1054,8 +1051,7 @@ SCORE is the score to add."
                                   (eq type 'string) (eq type 'String))
                               'search-forward)
                              (t
-                              (error "Illegal match type: %s" type))))
-                      arts art)
+                              (error "Illegal match type: %s" type)))))
                  (goto-char (point-min))
                  (if (funcall search-func match nil t)
                      ;; Found a match, update scores.
index a86ced6..d3e8dc4 100644 (file)
@@ -429,7 +429,6 @@ The headers will be included in the sequence they are matched.")
   (interactive "P")
   (let ((gnus-uu-save-in-digest t)
        (file (make-temp-name (concat gnus-uu-tmp-dir "forward")))
-       (winconf (current-window-configuration))
        buf)
     (gnus-uu-decode-save n file)
     (gnus-uu-add-file file)
@@ -841,7 +840,7 @@ The headers will be included in the sequence they are matched.")
   ;; my experience, should get most postings of a series.
   (let ((count 2)
        (vernum "v[0-9]+[a-z][0-9]+:")
-       reg beg)
+       beg)
     (save-excursion
       (set-buffer (get-buffer-create gnus-uu-output-buffer-name))
       (buffer-disable-undo (current-buffer))
@@ -887,7 +886,7 @@ The headers will be included in the sequence they are matched.")
   ;; returned. 
   ;; Failing that, articles that have subjects that are part of the
   ;; same "series" as the current will be returned.
-  (let (articles process)
+  (let (articles)
   (cond 
    (n
     (let ((backward (< n 0))
@@ -915,7 +914,7 @@ The headers will be included in the sequence they are matched.")
   ;; non-nil, article names are not equalized before sorting.
   (let ((subject (or subject 
                     (gnus-uu-reginize-string (gnus-summary-subject-string))))
-       beg end list-of-subjects)
+       list-of-subjects)
     (save-excursion
       (if (not subject)
          ()
@@ -951,7 +950,7 @@ The headers will be included in the sequence they are matched.")
   ;; sorting to find out what sequence the articles are supposed to be
   ;; decoded in. Returns the list of expanded strings.
   (let ((out-list string-list)
-       string pos num)
+       string)
     (save-excursion
       (set-buffer (get-buffer-create gnus-uu-output-buffer-name))
       (buffer-disable-undo (current-buffer))
@@ -1029,10 +1028,8 @@ The headers will be included in the sequence they are matched.")
 (defun gnus-uu-grab-articles 
   (articles process-function &optional sloppy limit no-errors)
   (let ((state 'first) 
-       (wrong-type t)
-       has-been-begin has-been-end 
-       article result-file result-files process-state article-buffer
-       begin-article)
+       has-been-begin article result-file result-files process-state 
+       article-buffer)
  
     (if (not (gnus-server-opened gnus-current-select-method))
        (progn
@@ -1089,9 +1086,7 @@ The headers will be included in the sequence they are matched.")
                    (delete-file result-file)))
            (if (memq 'begin process-state)
                (setq result-file (car process-state)))
-           (setq begin-article article)
-           (setq has-been-begin t)
-           (setq has-been-end nil)))
+           (setq has-been-begin t)))
 
       (if (memq 'end process-state)
          (progn
@@ -1099,7 +1094,6 @@ The headers will be included in the sequence they are matched.")
            (setq result-files (cons (list (cons 'name result-file)
                                           (cons 'article article))
                                     result-files))
-           (setq has-been-end t)
            (setq has-been-begin nil)
            (and limit (= (length result-files) limit)
                 (setq articles nil))))
@@ -1110,12 +1104,10 @@ The headers will be included in the sequence they are matched.")
                    (delete-file result-file)))
 
       (if (not (memq 'wrong-type process-state))
-         (setq wrong-type nil)
+         ()
        (if gnus-uu-unmark-articles-not-decoded
            (gnus-summary-tick-article article t)))
 
-      (if sloppy (setq wrong-type nil))
-
       (if (and (not has-been-begin)
               (not sloppy)
               (or (memq 'end process-state)
@@ -1253,7 +1245,7 @@ The headers will be included in the sequence they are matched.")
                            nil t)
                           (forward-line 1)))
 
-                    (condition-case err
+                    (condition-case nil
                         (process-send-region gnus-uu-uudecode-process 
                                              start-char (point))
                       (error 
@@ -1328,7 +1320,7 @@ The headers will be included in the sequence they are matched.")
 (defun gnus-uu-treat-archive (file-path)
   ;; Unpacks an archive. Returns t if unpacking is successful.
   (let ((did-unpack t)
-       action command files file file-name dir)
+       action command dir)
     (setq action (gnus-uu-choose-action 
                  file-path (append gnus-uu-user-archive-rules
                                    (if gnus-uu-ignore-default-archive-rules
@@ -1338,7 +1330,6 @@ The headers will be included in the sequence they are matched.")
     (if (not action) (error "No unpackers for the file %s" file-path))
 
     (string-match "/[^/]*$" file-path)
-    (setq file-name (substring file-path (1+ (match-beginning 0))))
     (setq dir (substring file-path 0 (match-beginning 0)))
 
     (if (member action gnus-uu-destructive-archivers)
@@ -1429,7 +1420,7 @@ The headers will be included in the sequence they are matched.")
     out))
 
 (defun gnus-uu-check-correct-stripped-uucode (start end)
-  (let (found beg length short)
+  (let (found beg length)
     (if (not gnus-uu-correct-stripped-uucode)
        ()
       (goto-char start)
@@ -1686,7 +1677,7 @@ If no file has been included, the user will be asked for a file."
               (if (memq 'Message-ID gnus-required-headers)
                   gnus-required-headers
                 (cons 'Message-ID gnus-required-headers)))
-             gnus-inews-article-hook elem)
+             gnus-inews-article-hook)
 
          (setq gnus-inews-article-hook (if (listp gnus-inews-article-hook)
                                            gnus-inews-article-hook
@@ -1712,7 +1703,7 @@ If no file has been included, the user will be asked for a file."
 ;; the current buffer. Returns the file name the user gave.
 (defun gnus-uu-post-insert-binary ()
   (let ((uuencode-buffer-name "*uuencode buffer*")
-       file-path post-buf uubuf file-name)
+       file-path uubuf file-name)
 
     (setq file-path (read-file-name 
                     "What file do you want to encode? "))
@@ -1745,7 +1736,7 @@ If no file has been included, the user will be asked for a file."
        (encoded-buffer-name "*encoded buffer*")
        (top-string "[ cut here %s (%s %d/%d) %s gnus-uu ]")
        (separator (concat mail-header-separator "\n\n"))
-       file uubuf length parts header i end beg
+       uubuf length parts header i end beg
        beg-line minlen buf post-buf whole-len beg-binary end-binary)
 
     (setq post-buf (current-buffer))
index d5738d3..ab56d0b 100644 (file)
@@ -879,8 +879,7 @@ External references are things like message-ids and URLs, as specified by
               (entry (gnus-button-entry))
               (start (and entry (match-beginning (nth 1 entry))))
               (end (and entry (match-end (nth 1 entry))))
-              (form (nth 2 entry))
-              marker)
+              (form (nth 2 entry)))
          (if (not entry)
              ()
            (goto-char (match-end 0))
index 4b6d1a7..709fdcb 100644 (file)
@@ -1291,7 +1291,7 @@ variable (string, integer, character, etc).")
 (defconst gnus-maintainer "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls & Boys)"
   "The mail address of the Gnus maintainers.")
 
-(defconst gnus-version "(ding) Gnus v0.90"
+(defconst gnus-version "(ding) Gnus v0.91"
   "Version number for this version of Gnus.")
 
 (defvar gnus-info-nodes
@@ -1845,7 +1845,6 @@ Thank you for your help in stamping out bugs.
     (let ((gnus-replied-mark 129)
          (gnus-score-below-mark 130)
          (gnus-score-over-mark 130)
-         (thread nil)
          pos)
       (gnus-set-work-buffer)
       (gnus-summary-insert-line 
@@ -1902,7 +1901,7 @@ Thank you for your help in stamping out bugs.
   ;; specification string, and a list of forms depending on the
   ;; SPEC-ALIST.
   (let ((max-width 0)
-       spec flist fstring b newspec max-width elem beg)
+       spec flist fstring newspec elem beg)
     (save-excursion
       (gnus-set-work-buffer)
       (insert format)
@@ -2036,7 +2035,7 @@ Otherwise, it is like ~/News/news/group/news."
 
 (defun gnus-subscribe-hierarchical-interactive (groups)
   (let ((groups (sort groups 'string<))
-       prefixes prefix start rest ans group starts)
+       prefixes prefix start ans group starts)
     (while groups
       (setq prefixes (list "^"))
       (while (and groups prefixes)
@@ -2372,7 +2371,7 @@ If optional argument RE-ONLY is non-nil, strip `Re:' only."
                  (cdr (assq setting gnus-buffer-configuration))
                setting))
        (in-buf (current-buffer))
-       rule val window w height hor ohor heights sub jump-buffer
+       rule val w height hor ohor heights sub jump-buffer
        rel total to-buf)
     (or r (error "No such setting: %s" setting))
 
@@ -3951,7 +3950,8 @@ ADDRESS."
 (defun gnus-group-make-help-group ()
   "Create the (ding) Gnus documentation group."
   (interactive)
-  (let ((path load-path))
+  (let ((path load-path)
+       name)
     (and (gnus-gethash (setq name (gnus-group-prefixed-name
                                   "gnus-help" '(nndoc "gnus-help")))
                       gnus-newsrc-hashtb)
@@ -3979,7 +3979,7 @@ ADDRESS."
             (setq found (cond ((= (setq char (read-char)) ?m) 'mbox)
                               ((= char ?b) 'babyl)
                               ((= char ?d) 'digest)
-                              (t (setq mess "%c unknown. " char)
+                              (t (setq err "%c unknown. " char)
                                  nil))))
           found)))
   (let* ((file (expand-file-name file))
@@ -4085,8 +4085,7 @@ score file entries for articles to include in the group."
         (leaf (gnus-group-prefixed-name
                (file-name-nondirectory (directory-file-name dir))
                method))
-        (name (gnus-generate-new-group-name leaf))
-        (num 0))
+        (name (gnus-generate-new-group-name leaf)))
     (let ((nneething-read-only t))
       (or (gnus-group-read-ephemeral-group 
           name method t
@@ -4165,8 +4164,7 @@ The return value is the number of articles that were marked as read,
 or nil if no action could be taken."
   (let* ((entry (gnus-gethash group gnus-newsrc-hashtb))
         (num (car entry))
-        (marked (nth 3 (nth 2 entry)))
-        ticked)
+        (marked (nth 3 (nth 2 entry))))
     (if (not (numberp (car entry)))
        (gnus-message 1 "Can't catch up; non-active group")
       ;; Do the updating only if the newsgroup isn't killed.
@@ -4430,7 +4428,6 @@ If N is negative, this group and the N-1 previous groups will be checked."
   (interactive "P")
   (let* ((groups (gnus-group-process-prefix n))
         (ret (if (numberp n) (- n (length groups)) 0))
-        (w-p (window-start))
         group)
     (while groups
       (setq group (car groups)
@@ -4517,7 +4514,7 @@ If N is negative, this group and the N-1 previous groups will be checked."
   (interactive "sGnus apropos (regexp): ")
   (let ((prev "")
        (obuf (current-buffer))
-       groups des prev)
+       groups des)
     ;; Go through all newsgroups that are known to Gnus.
     (mapatoms 
      (lambda (group)
@@ -5506,8 +5503,7 @@ If SHOW-ALL is non-nil, already read articles are also listed.
 If NO-ARTICLE is non-nil, no article is selected initially."
   (gnus-message 5 "Retrieving newsgroup: %s..." group)
   (let* ((new-group (gnus-summary-setup-buffer group))
-        (did-select (and new-group (gnus-select-newsgroup group show-all)))
-        (method (car (gnus-find-method-for-group group))))
+        (did-select (and new-group (gnus-select-newsgroup group show-all))))
     (cond 
      ((not new-group)
       (gnus-set-global-variables)
@@ -5650,7 +5646,7 @@ If NO-ARTICLE is non-nil, no article is selected initially."
     (let ((hashtb (gnus-make-hashtable 1023))
          (prev threads)
          (result threads)
-         thread subject hthread whole-subject)
+         subject hthread whole-subject)
       (while threads
        (setq whole-subject 
              (setq subject (header-subject (car (car threads)))))
@@ -5788,7 +5784,7 @@ If NO-ARTICLE is non-nil, no article is selected initially."
           ;; It was not expunged, but we look at expunged children.
           (let* ((prev (symbol-value refs))
                  (headers (cdr prev))
-                 article id)
+                 article)
             (while headers
               (setq article (header-number (car headers)))
               (if (not (< (or (cdr (assq article gnus-newsgroup-scored))
@@ -6105,7 +6101,7 @@ or a straight list of headers."
 If READ-ALL is non-nil, all articles in the group are selected."
   (let* ((entry (gnus-gethash group gnus-newsrc-hashtb))
         (info (nth 2 entry))
-        articles header-marks)
+        articles)
     (gnus-check-news-server
      (setq gnus-current-select-method (gnus-find-method-for-group group)))
 
@@ -6244,8 +6240,7 @@ If READ-ALL is non-nil, all articles in the group are selected."
                         (if (string-match "^[ \t]*$" input)
                             number input)))
                      (t number))
-             (quit nil)))))
-        total-articles)
+             (quit nil))))))
     (setq select (if (stringp select) (string-to-number select) select))
     (if (or (null select) (zerop select))
        select
@@ -6255,8 +6250,6 @@ If READ-ALL is non-nil, all articles in the group are selected."
            (setq number (length articles)))
        (setq articles (copy-sequence articles)))
 
-      (setq total-articles articles)
-      
       (if (< (abs select) number)
          (if (< select 0) 
              ;; Select the N oldest articles.
@@ -6281,7 +6274,7 @@ If READ-ALL is non-nil, all articles in the group are selected."
   "Remove all marked articles that are no longer legal."
   (let ((marked-lists (nth 3 info))
        (active (or active (gnus-gethash (car info) gnus-active-hashtb)))
-       marked m prev)
+       m prev)
     ;; There are many types of marked articles.
     (while marked-lists
       (setq m (cdr (setq prev (car marked-lists))))
@@ -6472,7 +6465,7 @@ The resulting hash table is returned, or nil if no Xrefs were found."
                       (assoc (symbol-name (car (gnus-find-method-for-group 
                                                 from-newsgroup)))
                              gnus-valid-select-methods)))
-       name entry read info xref-hashtb idlist active num range exps method
+       name entry info xref-hashtb idlist method
        nth4)
     (save-excursion
       (set-buffer gnus-group-buffer)
@@ -6512,7 +6505,7 @@ The resulting hash table is returned, or nil if no Xrefs were found."
   (let* ((num 0)
         (entry (gnus-gethash group gnus-newsrc-hashtb))
         (info (nth 2 entry))
-        (active (gnus-gethash name gnus-active-hashtb))
+        (active (gnus-gethash group gnus-active-hashtb))
         exps expirable range)
     ;; First peel off all illegal article numbers.
     (if active
@@ -6568,7 +6561,7 @@ The resulting hash table is returned, or nil if no Xrefs were found."
                     (length 
                      (cdr (assq 'dormant (nth 3 info)))))))
          ;; Update the group buffer.
-         (gnus-group-update-group name t)))))
+         (gnus-group-update-group group t)))))
 
 (defun gnus-methods-equal-p (m1 m2)
   (let ((m1 (or m1 gnus-select-method))
@@ -6588,7 +6581,7 @@ The resulting hash table is returned, or nil if no Xrefs were found."
   (setq gnus-article-internal-prepare-hook nil)
   (let ((cur nntp-server-buffer)
        (dependencies gnus-newsgroup-dependencies)
-       headers char article id dep end)
+       headers id dep end ref)
     (save-excursion
       (set-buffer nntp-server-buffer)
       (goto-char (point-min))
@@ -6596,16 +6589,12 @@ The resulting hash table is returned, or nil if no Xrefs were found."
       ;; do not begin with 2 or 3.
       (while (re-search-forward "^[23][0-9]+ " nil t)
        (let ((header (make-vector 9 nil))
-             (c (following-char))
              (case-fold-search t)
              (p (point))
-             from subject in-reply-to references ref)
+             in-reply-to)
          (setq id nil
-               ref nil
-               references nil
-               subject nil
-               from nil)
-         (header-set-number header (setq article (read cur)))
+               ref nil)
+         (header-set-number header (read cur))
          ;; This implementation of this function, with nine
          ;; search-forwards instead of the one re-search-forward and
          ;; a case (which basically was the old function) is actually
@@ -6728,7 +6717,6 @@ list of headers that match SEQUENCE (see `nntp-retrieve-headers')."
   (setq gnus-article-internal-prepare-hook '(gnus-article-get-xrefs))
   (let ((cur nntp-server-buffer)
        (dependencies gnus-newsgroup-dependencies)
-       (none 0)
        number headers header)
     (save-excursion
       (set-buffer nntp-server-buffer)
@@ -7121,7 +7109,7 @@ displayed, no centering will be performed."
   (let* ((read (nth 2 (nth 2 (gnus-gethash group gnus-newsrc-hashtb))))
         (active (gnus-gethash group gnus-active-hashtb))
         (last (cdr active))
-        unread first nlast unread)
+        first nlast unread)
     ;; If none are read, then all are unread. 
     (if (not read)
        (setq first (car active))
@@ -7166,7 +7154,7 @@ displayed, no centering will be performed."
   (interactive)
   (gnus-set-global-variables)
   (let ((articles (reverse gnus-newsgroup-processable))
-       key func)
+       func)
     (or articles (error "No articles marked"))
     (or (setq func (key-binding (read-key-sequence "C-c C-u")))
        (error "Undefined key"))
@@ -7216,8 +7204,7 @@ The prefix argument ALL means to select all articles."
     (gnus-group-read-group all)))
 
 (defun gnus-summary-update-info ()
-  (let* ((group gnus-newsgroup-name)
-        (method (car (gnus-find-method-for-group group))))
+  (let* ((group gnus-newsgroup-name))
     (if gnus-newsgroup-kill-headers
        (setq gnus-newsgroup-killed
              (gnus-compress-sequence
@@ -7230,8 +7217,7 @@ The prefix argument ALL means to select all articles."
                      (sort gnus-newsgroup-unreads '<))) t)))
     (or (listp (cdr gnus-newsgroup-killed))
        (setq gnus-newsgroup-killed (list gnus-newsgroup-killed)))
-    (let ((updated nil)
-         (headers gnus-newsgroup-headers))
+    (let ((headers gnus-newsgroup-headers))
       (gnus-close-group group)
       (run-hooks 'gnus-exit-group-hook)
       (gnus-update-read-articles 
@@ -7265,7 +7251,6 @@ gnus-exit-group-hook is called with no arguments if that value is non-nil."
         (quit-config (nth 1 (assoc 'quit-config (gnus-find-method-for-group
                                                  gnus-newsgroup-name))))
         (mode major-mode)
-        (method (car (gnus-find-method-for-group group)))
         (buf (current-buffer)))
     (gnus-summary-update-info) ; Make all changes in this group permanent.
     ;; Make sure where I was, and go to next newsgroup.
@@ -7578,9 +7563,7 @@ If SUBJECT, only articles with SUBJECT are selected.
 If BACKWARD, the previous article is selected instead of the next."
   (interactive "P")
   (gnus-set-global-variables)
-  (let ((opoint (point))
-       (method (car (gnus-find-method-for-group gnus-newsgroup-name)))
-       header)
+  (let (header)
     (cond
      ;; Is there such an article?
      ((gnus-summary-display-article 
@@ -8234,8 +8217,7 @@ and `request-accept' functions. (Ie. mail newsgroups at present.)"
                       (gnus-find-method-for-group to-newsgroup)))
                    gnus-newsrc-hashtb)))
                 (info (nth 2 entry))
-                (article (car articles))
-                (marked (nth 3 info)))
+                (article (car articles)))
            (gnus-summary-goto-subject article)
            (beginning-of-line)
            (delete-region (point)
@@ -8359,8 +8341,7 @@ functions. (Ie. mail newsgroups at present.)"
                       (gnus-find-method-for-group to-newsgroup)))
                    gnus-newsrc-hashtb)))
                 (info (nth 2 entry))
-                (article (car articles))
-                (marked (nth 3 info)))
+                (article (car articles)))
            (if (not (memq article gnus-newsgroup-unreads))
                (setcar (cdr (cdr info))
                        (gnus-add-to-range (nth 2 info) 
@@ -9968,7 +9949,7 @@ The following commands are available:
   (if (get-buffer gnus-article-buffer)
       (save-excursion
        (set-buffer gnus-article-buffer)
-       (buffer-disable-undo)
+       (buffer-disable-undo (current-buffer))
        (setq buffer-read-only t)
        (gnus-add-current-to-buffer-list)
        (or (eq major-mode 'gnus-article-mode)
@@ -10207,7 +10188,7 @@ Provided for backwards compatability."
     (save-restriction
       (let ((sorted gnus-sorted-header-list)
            (buffer-read-only nil)
-           want want-list beg want-l)
+           want-list beg want-l)
        ;; First we narrow to just the headers.
        (widen)
        (goto-char (point-min))
@@ -10687,16 +10668,13 @@ Argument LINES specifies lines to be scrolled down."
     (setq func (lookup-key (current-local-map) (this-command-keys)))
     (call-interactively func)
     (set-buffer obuf)
-    (let ((npoint (point)))
-      (set-window-configuration owin)
-      (set-window-start (get-buffer-window (current-buffer)) (point)))))
+    (set-window-configuration owin)
+    (set-window-start (get-buffer-window (current-buffer)) (point))))
 
 (defun gnus-article-summary-command-nosave ()
   "Execute the last keystroke in the summary buffer."
   (interactive)
-  (let ((obuf (current-buffer))
-       (owin (current-window-configuration))
-       func)
+  (let (func)
     (switch-to-buffer gnus-summary-buffer 'norecord)
     (setq func (lookup-key (current-local-map) (this-command-keys)))
     (call-interactively func)))
@@ -10781,7 +10759,7 @@ score the alt hierarchy, you'd say \"!alt.all\"."
         (gnus-use-dribble-file nil)
         (yes (car yes-and-no))
         (no (cdr yes-and-no))
-        group subscribed newsrc entry
+        group newsrc entry
         ;; Disable verbose message.
         gnus-novice-user gnus-large-newsgroup)
     ;; Eat all arguments.
@@ -10900,7 +10878,7 @@ If NEWSGROUP is nil, return the global kill file name instead."
                   "Auto-save file exists. Do you want to read it? ")
                  (progn
                    (gnus-message 5 "Reading %s..." dribble-file) 
-                   (eval-current-buffer)
+                   (eval-buffer (current-buffer))
                    (gnus-message 5 "Reading %s...done" dribble-file)))))))))
 
 (defun gnus-dribble-delete-file ()
@@ -11063,7 +11041,7 @@ If NEWSGROUP is nil, return the global kill file name instead."
 (defun gnus-start-news-server (&optional confirm)
   "Open a method for getting news.
 If CONFIRM is non-nil, the user will be asked for an NNTP server."
-  (let (how where)
+  (let (how)
     (if gnus-current-select-method
        ;; Stream is already opened.
        nil
@@ -11098,7 +11076,6 @@ If CONFIRM is non-nil, the user will be asked for an NNTP server."
                       (list 'nntp gnus-nntp-server)))))
 
       (setq how (car gnus-select-method))
-      (setq where (car (cdr gnus-select-method)))
       (cond ((eq how 'nnspool)
             (require 'nnspool)
             (gnus-message 5 "Looking up local news spool..."))
@@ -11595,8 +11572,7 @@ The `-n' option line from .newsrc is respected."
 ;; after. 
 (defun gnus-group-change-level (entry level &optional oldlevel
                                      previous fromkilled)
-  (let ((pinfo entry)
-       group info active num)
+  (let (group info active num)
     ;; Glean what info we can from the arguments
     (if (consp entry)
        (if fromkilled (setq group (nth 1 entry))
@@ -11753,7 +11729,6 @@ newsgroup."
 ;; and compute how many unread articles there are in each group.
 (defun gnus-get-unread-articles (&optional level) 
   (let* ((newsrc (cdr gnus-newsrc-alist))
-        (conditional level)
         (level (or level (1+ gnus-level-subscribed)))
         (foreign-level
          (min 
@@ -11857,8 +11832,7 @@ newsgroup."
 (defun gnus-get-unread-articles-in-group (info active)
   (let* ((range (nth 2 info))
         (num 0)
-        (marked (nth 3 info))
-        srange lowest group highest)
+        (marked (nth 3 info)))
     ;; If a cache is present, we may have to alter the active info.
     (and gnus-use-cache
         (gnus-cache-possibly-alter-active (car info) active))
@@ -11977,12 +11951,11 @@ Returns whether the updating was successful."
   (let* ((active (or gnus-newsgroup-active 
                     (gnus-gethash group gnus-active-hashtb)))
         (entry (gnus-gethash group gnus-newsrc-hashtb))
-        (number (car entry))
         (info (nth 2 entry))
         (marked (nth 3 info))
         (prev 1)
         (unread (sort (copy-sequence unread) (function <)))
-        last read)
+        read)
     (if (or (not info) (not active))
        ;; There is no info on this group if it was, in fact,
        ;; killed. Gnus stores no information on killed groups, so
@@ -12048,7 +12021,8 @@ Returns whether the updating was successful."
 ;; Get the active file(s) from the backend(s).
 (defun gnus-read-active-file ()
   (gnus-group-set-mode-line)
-  (let ((methods (if (gnus-server-opened gnus-select-method)
+  (let ((methods (if (or (gnus-server-opened gnus-select-method)
+                        (gnus-open-server gnus-select-method))
                     ;; The native server is available.
                     (cons gnus-select-method gnus-secondary-select-methods)
                   ;; The native server is down, so we just do the
@@ -12139,7 +12113,7 @@ Returns whether the updating was successful."
        ;; loop...   
        (let* ((mod-hashtb (make-vector 7 0))
               (m (intern "m" mod-hashtb))
-              group max mod min)
+              group max min)
          (while (not (eobp))
            (condition-case nil
                (progn
@@ -12211,7 +12185,7 @@ Returns whether the updating was successful."
                (set (let ((obarray hashtb)) (read cur)) 
                     (cons min max))
                (forward-line 1)))
-         (let (min max opoint)
+         (let (min max)
            (while (not (eobp))
              (if (= (following-char) ?2)
                  (progn
@@ -12283,7 +12257,7 @@ If FORCE is non-nil, the .newsrc file is read."
 
 ;; Parse the old-style quick startup file
 (defun gnus-read-old-newsrc-el-file (file)
-  (let (newsrc killed marked group g m len info)
+  (let (newsrc killed marked group m)
     (prog1
        (let ((gnus-killed-assoc nil)
              gnus-marked-assoc gnus-newsrc-alist gnus-newsrc-assoc)
@@ -12373,7 +12347,7 @@ If FORCE is non-nil, the .newsrc file is read."
       (setq gnus-active-hashtb (make-vector 4095 0)))
   (let ((buf (current-buffer))
        (already-read (> (length gnus-newsrc-alist) 1))
-       group level subscribed info options-symbol newsrc
+       group subscribed options-symbol newsrc
        symbol reads num1)
     (goto-char (point-min))
     ;; We intern the symbol `options' in the active hashtb so that we
@@ -12862,8 +12836,7 @@ The following commands are available:
     (setq b (point))
     ;; Insert the text.
     (insert (eval sformat))
-    (add-text-properties 
-     b (1+ b) (list 'gnus-server (intern name)))))
+    (add-text-properties b (1+ b) (list 'gnus-server (intern name)))))
 
 (defun gnus-server-setup-buffer ()
   (if (get-buffer gnus-server-buffer)
@@ -13307,7 +13280,7 @@ The list is determined from the variable gnus-score-file-alist."
 
 (defun gnus-possibly-score-headers (&optional trace)
   (let ((func gnus-score-find-score-files-function)
-       score-files scores)
+       score-files)
     (and func (not (listp func))
         (setq func (list func)))
     ;; Go through all the functions for finding score files (or actual
index 973b7a5..46dc397 100644 (file)
@@ -77,8 +77,7 @@
   (save-excursion
     (set-buffer nntp-server-buffer)
     (erase-buffer)
-    (let ((file nil)
-         (number (length sequence))
+    (let ((number (length sequence))
          (count 0)
          article art-string start stop)
       (nnbabyl-possibly-change-newsgroup newsgroup)
   (let* ((days (or (and nnmail-expiry-wait-function
                        (funcall nnmail-expiry-wait-function newsgroup))
                   nnmail-expiry-wait))
-        article rest)
+        rest)
     (save-excursion 
       (set-buffer nnbabyl-mbox-buffer)
       (while articles
 (defun nnbabyl-get-new-mail (&optional group)
   "Read new incoming mail."
   (let* ((spools (nnmail-get-spool-files group))
-        (all-spools spools)
         (group-in group)
         incoming incomings)
     (nnbabyl-read-mbox)
index af112a6..9b75539 100644 (file)
@@ -91,7 +91,7 @@
     (set-buffer nntp-server-buffer)
     (erase-buffer)
     (let ((prev 2)
-         article p beg end lines)
+         article p beg lines)
       (nndoc-possibly-change-buffer newsgroup server)
       (if (stringp (car sequence))
          'headers
                          (and (re-search-forward nndoc-article-end nil t)
                               (goto-char (match-beginning 0)))
                          (goto-char (point-max)))))
-           (setq end (point))
 
            (set-buffer nntp-server-buffer)
            (insert (format "221 %d Article retrieved.\n" article))
index f916a38..973fab5 100644 (file)
@@ -80,7 +80,7 @@
           (count 0)
           (large (and (numberp nnmail-large-newsgroup)
                       (> number nnmail-large-newsgroup)))
-          beg article file)
+          article file)
 
       (if (stringp (car sequence))
          'headers
   ;; Read nneething-active and nneething-map
   (let ((map-file (nneething-map-file))
        (files (directory-files nneething-directory))
-       (dir (file-name-as-directory nneething-directory))
        touched)
     (if (file-exists-p map-file)
        (condition-case nil
index 5d17da8..3235672 100644 (file)
@@ -112,10 +112,8 @@ such things as moving mail.  All buffers always get killed upon server close.")
   (save-excursion
     (set-buffer nntp-server-buffer)
     (erase-buffer)
-    (let ((file nil)
-         (number (length sequence))
-         (delim-string (concat "^" rmail-unix-mail-delimiter))
-         beg article art-string start stop)
+    (let ((delim-string (concat "^" rmail-unix-mail-delimiter))
+         article art-string start stop)
       (nnfolder-possibly-change-group newsgroup)
       (set-buffer nnfolder-current-buffer)
       (goto-char (point-min))
@@ -138,7 +136,6 @@ such things as moving mail.  All buffers always get killed upon server close.")
                (setq stop (1- (point)))
                (set-buffer nntp-server-buffer)
                (insert (format "221 %d Article retrieved.\n" article))
-               (setq beg (point))
                (insert-buffer-substring nnfolder-current-buffer start stop)
                (goto-char (point-max))
                (insert ".\n")))
@@ -270,10 +267,9 @@ such things as moving mail.  All buffers always get killed upon server close.")
   (nnfolder-request-list)
   (setq nnfolder-group-alist (nnmail-get-active))
   (or (assoc group nnfolder-group-alist)
-      (let (active)
+      (progn
        (setq nnfolder-group-alist 
-             (cons (list group (setq active (cons 0 0)))
-                   nnfolder-group-alist))
+             (cons (list group (cons 0 0)) nnfolder-group-alist))
        (nnmail-save-active nnfolder-group-alist nnfolder-active-file)))
   t)
 
@@ -304,7 +300,7 @@ such things as moving mail.  All buffers always get killed upon server close.")
   (let* ((days (or (and nnmail-expiry-wait-function
                        (funcall nnmail-expiry-wait-function newsgroup))
                   nnmail-expiry-wait))
-        article rest)
+        rest)
     (save-excursion 
       (set-buffer nnfolder-current-buffer)
       (while articles
@@ -374,7 +370,7 @@ such things as moving mail.  All buffers always get killed upon server close.")
 (defun nnfolder-request-accept-article (group &optional last)
   (nnfolder-possibly-change-group group)
   (let ((buf (current-buffer))
-       result beg)
+       result)
     (goto-char (point-min))
     (if (looking-at "X-From-Line: ")
        (replace-match "From ")
@@ -634,7 +630,6 @@ such things as moving mail.  All buffers always get killed upon server close.")
 (defun nnfolder-get-new-mail (&optional group)
   "Read new incoming mail."
   (let* ((spools (nnmail-get-spool-files group))
-        (all-spools spools)
         (group-in group)
         incomings incoming)
     (if (or (not nnfolder-get-new-mail) (not nnmail-spool-file))
index 220c888..f01070c 100644 (file)
 ;; Read the head of an article.
 (defun nnheader-insert-head (file)
   (let ((beg 0)
-       (chop 1024)
-       found)
+       (chop 1024))
     (while (and (eq chop (nth 1 (insert-file-contents 
                                 file nil beg (setq beg (+ chop beg)))))
                (prog1 (not (search-backward "\n\n" nil t)) 
index 94cf28e..6b19b5a 100644 (file)
@@ -225,6 +225,7 @@ Finds out what articles are to be part of the nnkiboze groups."
         (gnus-score-find-score-files-function 'nnkiboze-score-file)
         gnus-select-group-hook gnus-summary-prepare-hook 
         gnus-thread-sort-functions gnus-show-threads 
+        gnus-visual
         method nnkiboze-newsrc nov-buffer gname newsrc active
         ginfo lowest)
     (setq nnkiboze-current-score-group group)
index 16e66bd..d4ec1b9 100644 (file)
@@ -538,7 +538,7 @@ FUNC will be called with the group name to determine the article number."
   (let ((methods nnmail-split-methods)
        (obuf (current-buffer))
        (beg (point-min))
-       end found group-art)
+       end group-art)
     (if (and (sequencep methods) (= (length methods) 1))
        ;; If there is only just one group to put everything in, we
        ;; just return a list with just this one method in.
index e7de012..ec5101d 100644 (file)
   (save-excursion
     (set-buffer nntp-server-buffer)
     (erase-buffer)
-    (let ((file nil)
-         (number (length sequence))
+    (let ((number (length sequence))
          (count 0)
-         beg article art-string start stop)
+         article art-string start stop)
       (nnmbox-possibly-change-newsgroup newsgroup)
       (if (stringp (car sequence))
          'headers
                (setq stop (1- (point)))
                (set-buffer nntp-server-buffer)
                (insert (format "221 %d Article retrieved.\n" article))
-               (setq beg (point))
                (insert-buffer-substring nnmbox-mbox-buffer start stop)
                (goto-char (point-max))
                (insert ".\n")))
   (let* ((days (or (and nnmail-expiry-wait-function
                        (funcall nnmail-expiry-wait-function newsgroup))
                   nnmail-expiry-wait))
-        article rest)
+        rest)
     (save-excursion 
       (set-buffer nnmbox-mbox-buffer)
       (while articles
 
 (defun nnmbox-request-accept-article (group &optional last)
   (let ((buf (current-buffer))
-       result beg)
+       result)
     (goto-char (point-min))
     (if (looking-at "X-From-Line: ")
        (replace-match "From ")
 (defun nnmbox-get-new-mail (&optional group)
   "Read new incoming mail."
   (let* ((spools (nnmail-get-spool-files group))
-        (all-spools spools)
         (group-in group)
         incoming incomings)
     (nnmbox-read-mbox)
index 4e5017f..046486d 100644 (file)
          (if (and (or (not nnmail-keep-last-article)
                       (not max-article)
                       (not (= (car articles) max-article)))
+                  (not (equal mod-time '(0 0)))
                   (or force
                       (> (nnmail-days-between
                           (current-time-string)
             
 (defun nnmh-save-mail ()
   "Called narrowed to an article."
-  (let ((group-art (nreverse (nnmail-article-group 'nnmh-active-number)))
-       chars nov-line lines hbeg hend)
-    (setq chars (nnmail-insert-lines))
+  (let ((group-art (nreverse (nnmail-article-group 'nnmh-active-number))))
+    (nnmail-insert-lines)
     (nnmail-insert-xref group-art)
     (run-hooks 'nnmh-prepare-save-mail-hook)
     (goto-char (point-min))
   "Compute the next article number in GROUP."
   (let ((active (car (cdr (assoc group nnmh-group-alist)))))
     (setcdr active (1+ (cdr active)))
-    (let (file)
-      (while (file-exists-p
-             (setq file (concat (nnmh-article-pathname 
-                                 group nnmh-directory)
-                                (int-to-string (cdr active)))))
-       (setcdr active (1+ (cdr active)))))
+    (while (file-exists-p
+           (concat (nnmh-article-pathname group nnmh-directory)
+                   (int-to-string (cdr active))))
+      (setcdr active (1+ (cdr active))))
     (cdr active)))
 
 (defun nnmh-article-pathname (group mail-dir)
 (defun nnmh-get-new-mail (&optional group)
   "Read new incoming mail."
   (let* ((spools (nnmail-get-spool-files group))
-        (all-spools spools)
         (group-in group)
         incoming incomings)
     (if (or (not nnmh-get-new-mail) (not nnmail-spool-file))
index 83043eb..71cf7df 100644 (file)
@@ -277,6 +277,7 @@ all. This may very well take some time.")
          (if (and (or (not nnmail-keep-last-article)
                       (not max-article)
                       (not (= (car articles) max-article)))
+                  (not (equal mod-time '(0 0)))
                   (or force
                       (> (nnmail-days-between
                           (current-time-string)
@@ -469,18 +470,15 @@ all. This may very well take some time.")
          (setq active (cons 1 0))
          (setq nnml-group-alist (cons (list group active) nnml-group-alist))))
     (setcdr active (1+ (cdr active)))
-    (let (file)
-      (while (file-exists-p
-             (setq file (concat (nnmail-article-pathname 
-                                 group nnml-directory)
-                                (int-to-string (cdr active)))))
-       (setcdr active (1+ (cdr active)))))
+    (while (file-exists-p
+           (concat (nnmail-article-pathname group nnml-directory)
+                   (int-to-string (cdr active))))
+      (setcdr active (1+ (cdr active))))
     (cdr active)))
 
 (defun nnml-get-new-mail (&optional group)
   "Read new incoming mail."
   (let* ((spools (nnmail-get-spool-files group))
-        (all-spools spools)
         (group-in group)
         incoming incomings)
     (if (or (not nnml-get-new-mail) (not nnmail-spool-file))
index 5b9536c..e1ba869 100644 (file)
@@ -94,11 +94,10 @@ The SOUP packet file name will be inserted at the %s.")
   (save-excursion
     (set-buffer nntp-server-buffer)
     (erase-buffer)
-    (let ((count 0)
-         (areas (cdr (assoc nnsoup-current-group nnsoup-group-alist)))
+    (let ((areas (cdr (assoc nnsoup-current-group nnsoup-group-alist)))
          (articles sequence)
          (use-nov t)
-         beg article useful-areas this-area-seq)
+         useful-areas this-area-seq)
       (if (stringp (car sequence))
          'headers
        ;; We go through all the areas and find which files the
@@ -489,8 +488,7 @@ The SOUP packet file name will be inserted at the %s.")
   (let ((tembuf (generate-new-buffer " sendmail temp"))
        (case-fold-search nil)
        (mailbuf (current-buffer))
-       delimline
-       prefix)
+       delimline)
     (save-excursion
       (set-buffer tembuf)
       (erase-buffer)
@@ -506,8 +504,7 @@ The SOUP packet file name will be inserted at the %s.")
       (replace-match "\n")
       (backward-char 1)
       (setq delimline (point-marker))
-      (if mail-aliases
-         (expand-mail-aliases (point-min) delimline))
+      (if mail-aliases (expand-mail-aliases (point-min) delimline))
       (goto-char (point-min))
       ;; ignore any blank lines in the header
       (while (and (re-search-forward "\n\n\n*" delimline t)
index 8c14c43..5e55123 100644 (file)
@@ -301,10 +301,8 @@ If the stream is opened, return T, otherwise return NIL."
   (let* ((group (gnus-group-prefixed-name group (list 'nnvirtual "")))
         (info (nth 2 (gnus-gethash group gnus-newsrc-hashtb)))
         (groups nnvirtual-current-groups)
-        (i 1)
-        (total 0)
         (offset 0)
-        reads unread igroup itotal itreads ireads)
+        reads unread igroup itotal ireads)
     ;; The virtual group doesn't exist. (?)
     (or info (error "No such group: %s" group))
     (setq nnvirtual-current-mapping nil)
@@ -452,8 +450,9 @@ If the stream is opened, return T, otherwise return NIL."
   (nnvirtual-possibly-change-newsgroups group server)
   (let ((gnus-group-marked nnvirtual-current-groups)
        (gnus-expert-user t))
-    (set-buffer gnus-group-buffer)
-    (gnus-group-catchup-current nil all)))
+    (save-excursion
+      (set-buffer gnus-group-buffer)
+      (gnus-group-catchup-current nil all))))
 
 (provide 'nnvirtual)