*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 07:56:53 +0000 (07:56 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 07:56:53 +0000 (07:56 +0000)
30 files changed:
lisp/ChangeLog
lisp/gnus-cite.el
lisp/gnus-gl.el
lisp/gnus-kill.el
lisp/gnus-msg.el
lisp/gnus-score.el
lisp/gnus-soup.el
lisp/gnus-srvr.el
lisp/gnus-topic.el
lisp/gnus-uu.el
lisp/gnus-vis.el
lisp/gnus.el
lisp/nnbabyl.el
lisp/nndir.el
lisp/nndoc.el
lisp/nndraft.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/nnspool.el
lisp/nntp.el
lisp/nnvirtual.el
texi/ChangeLog
texi/gnus.texi

index c62126c..ad2ea2a 100644 (file)
@@ -1,5 +1,59 @@
+Wed Feb 28 04:39:49 1996  Lars Ingebrigtsen  <lars@eyesore.no>
+
+       * gnus.el (gnus-read-active-file): Don't try to retrieve groups
+       when no can be found.
+       (gnus-find-method-for-group): Return "cleaner" select methods.
+
+       * gnus-uu.el (gnus-uu-uustrip-article): Don't loop forever if the
+       uudecode is silent.
+
+       * nnmail.el (nnmail-search-unix-mail-delim): Stricter 822-delim
+       format. 
+
+       * gnus.el (gnus-summary-local-variables): Didn't clear
+       `gnus-cache-removable-articles'.
+       (gnus-buffer-configuration): Display article-copy in reply and
+       followup. 
+
+       * nnvirtual.el (nnvirtual-retrieve-headers): Always insert new
+       Xref headers.
+
+       * gnus.el (gnus-add-marked-articles): Remove empty mark lists. 
+
+       * nnvirtual.el (nnvirtual-retrieve-headers): Propagate
+       `fetch-old'. 
+
+       * gnus.el (gnus-check-server): Accept a `silent' parameter.
+
+       * nnvirtual.el (nnvirtual-retrieve-headers): Make sure the proper
+       server is opened. 
+
+       * gnus.el (gnus-recenter): Don't do unconditional horizontal
+       recentering. 
+
+       * gnus-vis.el (gnus-article-next-button): Skip past intangible
+       buttons. 
+
+       * gnus-msg.el (gnus-inews-insert-archive-gcc): Don't do archiving
+       if `gnus-message-archive-method' is nil.
+
+       * gnus.el (gnus-find-method-for-group): Don't add `*-address'
+       indiscriminately. 
+
+Tue Feb 27 08:50:10 1996  Lars Ingebrigtsen  <lars@eyesore.no>
+
+       * gnus-msg.el (gnus-draft-group): Would return a bogus group
+       name. 
+
+       * nndir.el (nndir-open-server): Escape ftp errors.
+
+       * gnus-msg.el (gnus-mail-reply): Handle "always" Mail-Reply-To. 
+       (gnus-debug): Produced messy bug reports.
+
 Tue Feb 27 04:04:17 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
 
 Tue Feb 27 04:04:17 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
 
+       * gnus.el: 0.45 is released.
+
        * nntp.el (nntp-retry-on-break): New variable.
        (nntp-send-command): Use it.
 
        * nntp.el (nntp-retry-on-break): New variable.
        (nntp-send-command): Use it.
 
index 89e2321..259b331 100644 (file)
@@ -278,11 +278,10 @@ Lines matching `gnus-cite-attribution-suffix' and perhaps
       (save-restriction
        (while (cdr marks)
          (widen)
       (save-restriction
        (while (cdr marks)
          (widen)
-         (narrow-to-region (car (car marks)) (car (cadr marks)))
-         (let ((adaptive-fill-regexp (concat "^" (regexp-quote
-                                                  (cdr (car marks)))
-                                             " *"))
-               (fill-prefix (cdr (car marks))))
+         (narrow-to-region (caar marks) (caadr marks))
+         (let ((adaptive-fill-regexp
+                (concat "^" (regexp-quote (cdar marks)) " *"))
+               (fill-prefix (cdar marks)))
            (fill-region (point-min) (point-max)))
          (set-marker (caar marks) nil)
          (setq marks (cdr marks)))
            (fill-region (point-min) (point-max)))
          (set-marker (caar marks) nil)
          (setq marks (cdr marks)))
@@ -369,7 +368,7 @@ See also the documentation for `gnus-article-highlight-citation'."
        (re-search-backward gnus-signature-separator nil t)
        (setq total (count-lines start (point)))
        (while atts
        (re-search-backward gnus-signature-separator nil t)
        (setq total (count-lines start (point)))
        (while atts
-         (setq hiden (+ hiden (length (cdr (assoc (cdr (car atts))
+         (setq hiden (+ hiden (length (cdr (assoc (cdar atts)
                                                   gnus-cite-prefix-alist))))
                atts (cdr atts)))
        (if (or force
                                                   gnus-cite-prefix-alist))))
                atts (cdr atts)))
        (if (or force
@@ -378,8 +377,7 @@ See also the documentation for `gnus-article-highlight-citation'."
            (progn
              (setq atts gnus-cite-attribution-alist)
              (while atts
            (progn
              (setq atts gnus-cite-attribution-alist)
              (while atts
-               (setq total (cdr (assoc (cdr (car atts)) 
-                                       gnus-cite-prefix-alist))
+               (setq total (cdr (assoc (cdar atts) gnus-cite-prefix-alist))
                      atts (cdr atts))
                (while total
                  (setq hiden (car total)
                      atts (cdr atts))
                (while total
                  (setq hiden (car total)
index 914f243..d9b97a6 100644 (file)
@@ -819,10 +819,14 @@ recommend using both scores and grouplens predictions together."
          (if (null arg) (not gnus-grouplens-mode)
            (> (prefix-numeric-value arg) 0)))
     (when gnus-grouplens-mode
          (if (null arg) (not gnus-grouplens-mode)
            (> (prefix-numeric-value arg) 0)))
     (when gnus-grouplens-mode
-      (make-local-hook 'gnus-select-article-hook)
-      (add-hook 'gnus-select-article-hook 'grouplens-do-time nil 'local)
-      (make-local-hook 'gnus-exit-group-hook)
-      (add-hook 'gnus-exit-group-hook 'bbb-put-ratings nil 'local)
+      (if (not (fboundp 'make-local-hook))
+         (add-hook 'gnus-select-article-hook 'grouplens-do-time)
+       (make-local-hook 'gnus-select-article-hook)
+       (add-hook 'gnus-select-article-hook 'grouplens-do-time nil 'local))
+      (if (not (fboundp 'make-local-hook))
+         (add-hook 'gnus-exit-group-hook 'bbb-put-ratings)
+       (make-local-hook 'gnus-exit-group-hook)
+       (add-hook 'gnus-exit-group-hook 'bbb-put-ratings nil 'local))
       (make-local-variable 'gnus-score-find-score-files-function)
       (if gnus-grouplens-override-scoring
           (setq gnus-score-find-score-files-function 
       (make-local-variable 'gnus-score-find-score-files-function)
       (if gnus-grouplens-override-scoring
           (setq gnus-score-find-score-files-function 
index 16219d1..e0a9378 100644 (file)
@@ -401,7 +401,7 @@ Returns the number of articles marked as read."
     (erase-buffer)
     (insert string ":\n\n")
     (while alist
     (erase-buffer)
     (insert string ":\n\n")
     (while alist
-      (insert (format " %c: %s\n" (car (car alist)) (nth idx (car alist))))
+      (insert (format " %c: %s\n" (caar alist) (nth idx (car alist))))
       (setq alist (cdr alist)))))
 
 (defun gnus-kill-parse-gnus-kill-file ()
       (setq alist (cdr alist)))))
 
 (defun gnus-kill-parse-gnus-kill-file ()
@@ -531,14 +531,14 @@ COMMAND must be a lisp expression or a string representing a key sequence."
   (if (or (not (consp (nth 2 object)))
          (not (consp (cdr (nth 2 object))))
          (and (eq 'quote (car (nth 2 object)))
   (if (or (not (consp (nth 2 object)))
          (not (consp (cdr (nth 2 object))))
          (and (eq 'quote (car (nth 2 object)))
-              (not (consp (cdr (car (cdr (nth 2 object))))))))
+              (not (consp (cdadr (nth 2 object))))))
       (concat "\n" (prin1-to-string object))
     (save-excursion
       (set-buffer (get-buffer-create "*Gnus PP*"))
       (buffer-disable-undo (current-buffer))
       (erase-buffer)
       (insert (format "\n(%S %S\n  '(" (nth 0 object) (nth 1 object)))
       (concat "\n" (prin1-to-string object))
     (save-excursion
       (set-buffer (get-buffer-create "*Gnus PP*"))
       (buffer-disable-undo (current-buffer))
       (erase-buffer)
       (insert (format "\n(%S %S\n  '(" (nth 0 object) (nth 1 object)))
-      (let ((klist (car (cdr (nth 2 object))))
+      (let ((klist (cadr (nth 2 object)))
            (first t))
        (while klist
          (insert (if first (progn (setq first nil) "")  "\n    ")
            (first t))
        (while klist
          (insert (if first (progn (setq first nil) "")  "\n    ")
index d0c147f..f4f43f5 100644 (file)
@@ -1391,14 +1391,13 @@ Headers in `gnus-required-headers' will be generated."
       (when (and from 
                 (not (gnus-check-before-posting 'sender))
                 (not (string=
       (when (and from 
                 (not (gnus-check-before-posting 'sender))
                 (not (string=
-                      (downcase (car (cdr (gnus-extract-address-components
-                                           from))))
+                      (downcase (cadr (gnus-extract-address-components from)))
                       (downcase (gnus-inews-real-user-address))))
                 (or (null sender)
                     (not 
                      (string=
                       (downcase (gnus-inews-real-user-address))))
                 (or (null sender)
                     (not 
                      (string=
-                      (downcase (car (cdr (gnus-extract-address-components
-                                           sender))))
+                      (downcase
+                       (cadr (gnus-extract-address-components sender)))
                       (downcase secure-sender)))))
        (goto-char (point-min))    
        ;; Rename any old Sender headers to Original-Sender.
                       (downcase secure-sender)))))
        (goto-char (point-min))    
        ;; Rename any old Sender headers to Original-Sender.
@@ -1884,9 +1883,23 @@ mailer."
              (setq message-id (match-string 0 gnus-warning)))
            
            (setq mctdo (not (equal mct "never")))
              (setq message-id (match-string 0 gnus-warning)))
            
            (setq mctdo (not (equal mct "never")))
+           (when (and mct (string= (downcase mct) "always"))
+             (setq mct (or reply-to from)))
 
            (if (not (and followup (not to-address)))
 
            (if (not (and followup (not to-address)))
-               (setq new-to (or reply-to from))
+               (setq new-to (or reply-to from)
+                     new-cc 
+                     (if (and mctdo
+                              (not (string= 
+                                    (mail-strip-quoted-names mct)
+                                    (mail-strip-quoted-names
+                                     (or to-address 
+                                         (if (and follow-to 
+                                                  (not (stringp follow-to)))
+                                             sendto
+                                           (or follow-to new-to
+                                               sender "")))))))
+                         mct))
              (let (ccalist)
                (save-excursion
                  (gnus-set-work-buffer)
              (let (ccalist)
                (save-excursion
                  (gnus-set-work-buffer)
@@ -2199,8 +2212,7 @@ If INHIBIT-PROMPT, never prompt for a Subject."
                (and (re-search-forward "^Newsgroups:" nil t)
                     (forward-line 1))
                (while follow-to
                (and (re-search-forward "^Newsgroups:" nil t)
                     (forward-line 1))
                (while follow-to
-                 (insert (car (car follow-to)) ": " 
-                         (cdr (car follow-to)) "\n")
+                 (insert (caar follow-to) ": " (cdar follow-to) "\n")
                  (setq follow-to (cdr follow-to)))))
          
          ;; If a distribution existed, we use it.
                  (setq follow-to (cdr follow-to)))))
          
          ;; If a distribution existed, we use it.
@@ -2556,15 +2568,17 @@ The source file has to be in the Emacs load path."
     (while olist
       (if (boundp (car olist))
          (insert 
     (while olist
       (if (boundp (car olist))
          (insert 
-          (pp-to-string
-           `(setq ,(symbol-name (car olist))
-                  ,(if (or (consp (setq sym (symbol-value (car olist))))
-                           (and (symbolp sym)
-                                (not (or (eq sym nil)
-                                         (eq sym t)))))
-                       (list 'quote (symbol-value (car olist)))
-                     (symbol-value (car olist)))
-                  "\n")))
+          (condition-case ()
+              (pp-to-string
+               `(setq ,(car olist)
+                      ,(if (or (consp (setq sym (symbol-value (car olist))))
+                               (and (symbolp sym)
+                                    (not (or (eq sym nil)
+                                             (eq sym t)))))
+                           (list 'quote (symbol-value (car olist)))
+                         (symbol-value (car olist)))))
+            (error
+             (format "(setq %s 'whatever)\n" (car olist)))))
        (insert ";; (makeunbound '" (symbol-name (car olist)) ")\n"))
       (setq olist (cdr olist)))
     (insert "\n\n")
        (insert ";; (makeunbound '" (symbol-name (car olist)) ")\n"))
       (setq olist (cdr olist)))
     (insert "\n\n")
@@ -2792,6 +2806,9 @@ Headers will be generated before sending."
         result
         (groups
          (cond 
         result
         (groups
          (cond 
+          ((null gnus-message-archive-method)
+           ;; Ignore.
+           nil)
           ((stringp var)
            ;; Just a single group.
            (list var))
           ((stringp var)
            ;; Just a single group.
            (list var))
@@ -2841,7 +2858,7 @@ Headers will be generated before sending."
 (defun gnus-draft-group ()
   "Return the name of the draft group."
   (gnus-group-prefixed-name 
 (defun gnus-draft-group ()
   "Return the name of the draft group."
   (gnus-group-prefixed-name 
-   (file-name-nondirectory gnus-draft-group-directory)
+   (file-name-nondirectory (directory-file-name gnus-draft-group-directory))
    (list 'nndraft gnus-draft-group-directory)))
 
 (defun gnus-make-draft-group ()
    (list 'nndraft gnus-draft-group-directory)))
 
 (defun gnus-make-draft-group ()
index 7994e4a..ef66cb0 100644 (file)
@@ -442,7 +442,7 @@ used as score."
          (insert "\n"))
        (setq pad (- width 3))
        (setq format (concat "%c: %-" (int-to-string pad) "s"))
          (insert "\n"))
        (setq pad (- width 3))
        (setq format (concat "%c: %-" (int-to-string pad) "s"))
-       (insert (format format (car (car alist)) (nth idx (car alist))))
+       (insert (format format (caar alist) (nth idx (car alist))))
        (setq alist (cdr alist))
        (setq i (1+ i))))
     ;; display ourselves in a small window at the bottom
        (setq alist (cdr alist))
        (setq i (1+ i))))
     ;; display ourselves in a small window at the bottom
@@ -821,10 +821,10 @@ SCORE is the score to add."
          (set-buffer gnus-summary-buffer)
          (while local
            (and (consp (car local))
          (set-buffer gnus-summary-buffer)
          (while local
            (and (consp (car local))
-                (symbolp (car (car local)))
+                (symbolp (caar local))
                 (progn
                 (progn
-                  (make-local-variable (car (car local)))
-                  (set (car (car local)) (nth 1 (car local)))))
+                  (make-local-variable (caar local))
+                  (set (caar local) (nth 1 (car local)))))
            (setq local (cdr local)))))
       (if orphan (setq gnus-orphan-score orphan))
       (setq gnus-adaptive-score-alist
            (setq local (cdr local)))))
       (if orphan (setq gnus-orphan-score orphan))
       (setq gnus-adaptive-score-alist
@@ -912,9 +912,9 @@ SCORE is the score to add."
         (cond
          ((not (listp (car a)))
           (format "Illegal score element %s in %s" (car a) file))
         (cond
          ((not (listp (car a)))
           (format "Illegal score element %s in %s" (car a) file))
-         ((stringp (car (car a)))
+         ((stringp (caar a))
           (cond 
           (cond 
-           ((not (listp (setq sr (cdr (car a)))))
+           ((not (listp (setq sr (cdar a))))
             (format "Illegal header match %s in %s" (nth 1 (car a)) file))
            (t
             (setq type (caar a))
             (format "Illegal header match %s in %s" (nth 1 (car a)) file))
            (t
             (setq type (caar a))
@@ -955,7 +955,7 @@ SCORE is the score to add."
            (setq out (cons entry out))
            (while scor
              (setcar scor
            (setq out (cons entry out))
            (while scor
              (setcar scor
-                     (list (car (car scor)) (nth 2 (car scor))
+                     (list (caar scor) (nth 2 (car scor))
                            (and (nth 3 (car scor))
                                 (gnus-day-number (nth 3 (car scor))))
                            (if (nth 1 (car scor)) 'r 's)))
                            (and (nth 3 (car scor))
                                 (gnus-day-number (nth 3 (car scor))))
                            (if (nth 1 (car scor)) 'r 's)))
@@ -1093,11 +1093,11 @@ SCORE is the score to add."
 
          ;; Add articles to `gnus-newsgroup-scored'.
          (while gnus-scores-articles
 
          ;; Add articles to `gnus-newsgroup-scored'.
          (while gnus-scores-articles
-           (or (= gnus-summary-default-score (cdr (car gnus-scores-articles)))
+           (or (= gnus-summary-default-score (cdar gnus-scores-articles))
                (setq gnus-newsgroup-scored
                      (cons (cons (mail-header-number 
                (setq gnus-newsgroup-scored
                      (cons (cons (mail-header-number 
-                                  (car (car gnus-scores-articles)))
-                                 (cdr (car gnus-scores-articles)))
+                                  (caar gnus-scores-articles))
+                                 (cdar gnus-scores-articles))
                            gnus-newsgroup-scored)))
            (setq gnus-scores-articles (cdr gnus-scores-articles)))
 
                            gnus-newsgroup-scored)))
            (setq gnus-scores-articles (cdr gnus-scores-articles)))
 
@@ -1203,7 +1203,7 @@ SCORE is the score to add."
          ;; time than one would gain.
          (while articles
            (and (funcall match-func 
          ;; time than one would gain.
          (while articles
            (and (funcall match-func 
-                         (or (aref (car (car articles)) gnus-score-index) 0)
+                         (or (aref (caar articles) gnus-score-index) 0)
                          match)
                 (progn
                   (and trace (setq gnus-score-trace 
                          match)
                 (progn
                   (and trace (setq gnus-score-trace 
@@ -1213,7 +1213,7 @@ SCORE is the score to add."
                                      kill)
                                     gnus-score-trace)))
                   (setq found t)
                                      kill)
                                     gnus-score-trace)))
                   (setq found t)
-                  (setcdr (car articles) (+ score (cdr (car articles))))))
+                  (setcdr (car articles) (+ score (cdar articles)))))
            (setq articles (cdr articles)))
          ;; Update expire date
          (cond ((null date))           ;Permanent entry.
            (setq articles (cdr articles)))
          ;; Update expire date
          (cond ((null date))           ;Permanent entry.
@@ -1258,7 +1258,7 @@ SCORE is the score to add."
          ;; time than one would gain.
          (while articles
            (and
          ;; time than one would gain.
          (while articles
            (and
-            (setq l (aref (car (car articles)) gnus-score-index))
+            (setq l (aref (caar articles) gnus-score-index))
             (funcall match-func match (timezone-make-date-sortable l))
             (progn
               (and trace (setq gnus-score-trace 
             (funcall match-func match (timezone-make-date-sortable l))
             (progn
               (and trace (setq gnus-score-trace 
@@ -1268,7 +1268,7 @@ SCORE is the score to add."
                                  kill)
                                 gnus-score-trace)))
               (setq found t)
                                  kill)
                                 gnus-score-trace)))
               (setq found t)
-              (setcdr (car articles) (+ score (cdr (car articles))))))
+              (setcdr (car articles) (+ score (cdar articles)))))
            (setq articles (cdr articles)))
          ;; Update expire date
          (cond ((null date))           ;Permanent entry.
            (setq articles (cdr articles)))
          ;; Update expire date
          (cond ((null date))           ;Permanent entry.
@@ -1288,7 +1288,7 @@ SCORE is the score to add."
     (save-restriction
       (let* ((buffer-read-only nil)
             (articles gnus-scores-articles)
     (save-restriction
       (let* ((buffer-read-only nil)
             (articles gnus-scores-articles)
-            (last (mail-header-number (car (car gnus-scores-articles))))
+            (last (mail-header-number (caar gnus-scores-articles)))
             (all-scores scores)
             (request-func (cond ((string= "head" (downcase header))
                                  'gnus-request-head)
             (all-scores scores)
             (request-func (cond ((string= "head" (downcase header))
                                  'gnus-request-head)
@@ -1307,7 +1307,7 @@ SCORE is the score to add."
              (setq ofunc request-func)
              (setq request-func 'gnus-request-article)))
        (while articles
              (setq ofunc request-func)
              (setq request-func 'gnus-request-article)))
        (while articles
-         (setq article (mail-header-number (car (car articles))))
+         (setq article (mail-header-number (caar articles)))
          (gnus-message 7 "Scoring on article %s of %s..." article last)
          (if (not (funcall request-func article gnus-newsgroup-name))
              ()
          (gnus-message 7 "Scoring on article %s of %s..." article last)
          (if (not (funcall request-func article gnus-newsgroup-name))
              ()
@@ -1355,7 +1355,7 @@ SCORE is the score to add."
                  (if (funcall search-func match nil t)
                      ;; Found a match, update scores.
                      (progn
                  (if (funcall search-func match nil t)
                      ;; Found a match, update scores.
                      (progn
-                       (setcdr (car articles) (+ score (cdr (car articles))))
+                       (setcdr (car articles) (+ score (cdar articles)))
                        (setq found t)
                        (and trace (setq gnus-score-trace 
                                         (cons
                        (setq found t)
                        (and trace (setq gnus-score-trace 
                                         (cons
@@ -1489,8 +1489,8 @@ SCORE is the score to add."
       ;; Don't enter a score if there already is one.
       (while (setq entry (pop scores))
        (and (equal "references" (car entry))
       ;; Don't enter a score if there already is one.
       (while (setq entry (pop scores))
        (and (equal "references" (car entry))
-            (or (null (nth 3 (car (cdr entry))))
-                (eq 's (nth 3 (car (cdr entry)))))
+            (or (null (nth 3 (cadr entry)))
+                (eq 's (nth 3 (cadr entry))))
             (assoc id entry)
             (setq dont t)))
       (unless dont
             (assoc id entry)
             (setq dont t)))
       (unless dont
@@ -1734,17 +1734,17 @@ SCORE is the score to add."
        (setq elem (cdr elem))
        (while elem
          (setcdr (car elem) 
        (setq elem (cdr elem))
        (while elem
          (setcdr (car elem) 
-                 (cons (if (eq (car (car elem)) 'followup)
+                 (cons (if (eq (caar elem) 'followup)
                            "references"
                            "references"
-                         (symbol-name (car (car elem))))
-                       (cdr (car elem))))
+                         (symbol-name (caar elem)))
+                       (cdar elem)))
          (setcar (car elem) 
                  `(lambda (h)
                     (,(intern 
                        (concat "mail-header-" 
          (setcar (car elem) 
                  `(lambda (h)
                     (,(intern 
                        (concat "mail-header-" 
-                               (if (eq (car (car elem)) 'followup)
+                               (if (eq (caar elem) 'followup)
                                    "message-id"
                                    "message-id"
-                                 (downcase (symbol-name (car (car elem)))))))
+                                 (downcase (symbol-name (caar elem))))))
                      h)))
          (setq elem (cdr elem)))
        (setq malist (cdr malist)))
                      h)))
          (setq elem (cdr elem)))
        (setq malist (cdr malist)))
@@ -1761,7 +1761,7 @@ SCORE is the score to add."
            ()
          (when (setq headers (gnus-data-header (car data)))
            (while elem 
            ()
          (when (setq headers (gnus-data-header (car data)))
            (while elem 
-             (setq match (funcall (car (car elem)) headers))
+             (setq match (funcall (caar elem) headers))
              (gnus-summary-score-entry 
               (nth 1 (car elem)) match
               (cond
              (gnus-summary-score-entry 
               (nth 1 (car elem)) match
               (cond
@@ -1870,8 +1870,8 @@ This mode is an extended emacs-lisp mode.
     (gnus-add-current-to-buffer-list)
     (erase-buffer)
     (while trace
     (gnus-add-current-to-buffer-list)
     (erase-buffer)
     (while trace
-      (insert (format "%S  ->  %s\n"  (cdr (car trace))
-                     (file-name-nondirectory (car (car trace)))))
+      (insert (format "%S  ->  %s\n" (cdar trace)
+                     (file-name-nondirectory (caar trace))))
       (setq trace (cdr trace)))
     (goto-char (point-min))
     (pop-to-buffer buf)))
       (setq trace (cdr trace)))
     (goto-char (point-min))
     (pop-to-buffer buf)))
@@ -2122,21 +2122,21 @@ The list is determined from the variable gnus-score-file-alist."
        (cdr score-files)               ;ensures caching groups with no matches
       ;; handle the multiple match alist
       (while alist
        (cdr score-files)               ;ensures caching groups with no matches
       ;; handle the multiple match alist
       (while alist
-       (and (string-match (car (car alist)) group)
+       (and (string-match (caar alist) group)
             (setq score-files
             (setq score-files
-                  (nconc score-files (copy-sequence (cdr (car alist))))))
+                  (nconc score-files (copy-sequence (cdar alist)))))
        (setq alist (cdr alist)))
       (setq alist gnus-score-file-single-match-alist)
       ;; handle the single match alist
       (while alist
        (setq alist (cdr alist)))
       (setq alist gnus-score-file-single-match-alist)
       ;; handle the single match alist
       (while alist
-       (and (string-match (car (car alist)) group)
+       (and (string-match (caar alist) group)
             ;; progn used just in case ("regexp") has no files
             ;; and score-files is still nil. -sj
             ;; this can be construed as a "stop searching here" feature :>
             ;; and used to simplify regexps in the single-alist 
             (progn
               (setq score-files
             ;; progn used just in case ("regexp") has no files
             ;; and score-files is still nil. -sj
             ;; this can be construed as a "stop searching here" feature :>
             ;; and used to simplify regexps in the single-alist 
             (progn
               (setq score-files
-                    (nconc score-files (copy-sequence (cdr (car alist)))))
+                    (nconc score-files (copy-sequence (cdar alist))))
               (setq alist nil)))
        (setq alist (cdr alist)))
       ;; cache the score files
               (setq alist nil)))
        (setq alist (cdr alist)))
       ;; cache the score files
index 850b17f..ae02f3d 100644 (file)
@@ -177,7 +177,7 @@ Uses the process/prefix convention."
        (newsrc (cdr gnus-newsrc-alist)))
     (while newsrc
       (and (<= (nth 1 (car newsrc)) level)
        (newsrc (cdr gnus-newsrc-alist)))
     (while newsrc
       (and (<= (nth 1 (car newsrc)) level)
-          (gnus-soup-group-brew (car (car newsrc))))
+          (gnus-soup-group-brew (caar newsrc)))
       (setq newsrc (cdr newsrc)))
     (gnus-soup-save-areas)))
 
       (setq newsrc (cdr newsrc)))
     (gnus-soup-save-areas)))
 
@@ -309,12 +309,10 @@ If NOT-ALL, don't pack ticked articles."
     (save-excursion
       (while prefix
        (gnus-set-work-buffer)
     (save-excursion
       (while prefix
        (gnus-set-work-buffer)
-       (insert (format "(setq gnus-soup-prev-prefix %d)\n" 
-                       (cdr (car prefix))))
-       (gnus-make-directory (car (car prefix)))
+       (insert (format "(setq gnus-soup-prev-prefix %d)\n" (cdar prefix)))
+       (gnus-make-directory (caar prefix))
        (write-region (point-min) (point-max)
        (write-region (point-min) (point-max)
-                     (concat (car (car prefix)) 
-                             gnus-soup-prefix-file) 
+                     (concat (caar prefix) gnus-soup-prefix-file) 
                      nil 'nomesg)
        (setq prefix (cdr prefix))))))
 
                      nil 'nomesg)
        (setq prefix (cdr prefix))))))
 
index e8db063..bdb0cde 100644 (file)
@@ -201,9 +201,8 @@ The following commands are available:
     (while opened 
       (unless (member (caar opened) done)
        (gnus-server-insert-server-line 
     (while opened 
       (unless (member (caar opened) done)
        (gnus-server-insert-server-line 
-        (setq op-ser (format "%s:%s" (car (car (car opened))) 
-                             (nth 1 (car (car opened)))))
-        (car (car opened)))
+        (setq op-ser (format "%s:%s" (caaar opened) (nth 1 (caar opened))))
+        (caar opened))
        (push (list op-ser (caar opened)) gnus-inserted-opened-servers))
       (setq opened (cdr opened))))
   (goto-char (point-min))
        (push (list op-ser (caar opened)) gnus-inserted-opened-servers))
       (setq opened (cdr opened))))
   (goto-char (point-min))
@@ -275,10 +274,10 @@ The following commands are available:
        (killed (car gnus-server-killed-servers)))
     (if (not server) 
        (setq gnus-server-alist (nconc gnus-server-alist (list killed)))
        (killed (car gnus-server-killed-servers)))
     (if (not server) 
        (setq gnus-server-alist (nconc gnus-server-alist (list killed)))
-      (if (string= server (car (car gnus-server-alist)))
+      (if (string= server (caar gnus-server-alist))
          (setq gnus-server-alist (cons killed gnus-server-alist))
        (while (and (cdr alist)
          (setq gnus-server-alist (cons killed gnus-server-alist))
        (while (and (cdr alist)
-                   (not (string= server (car (car (cdr alist))))))
+                   (not (string= server (caadr alist))))
          (setq alist (cdr alist)))
        (if alist
            (setcdr alist (cons killed (cdr alist)))
          (setq alist (cdr alist)))
        (if alist
            (setcdr alist (cons killed (cdr alist)))
@@ -534,7 +533,7 @@ The following commands are available:
       (setq mode-line-buffer-identification
            (list
             (format
       (setq mode-line-buffer-identification
            (list
             (format
-             "Gnus: %%b {%s:%s}" (car method) (car (cdr method)))))
+             "Gnus: %%b {%s:%s}" (car method) (cadr method))))
       (save-excursion
        (set-buffer nntp-server-buffer)
        (let ((cur (current-buffer)))
       (save-excursion
        (set-buffer nntp-server-buffer)
        (let ((cur (current-buffer)))
index 019d2cd..1b88add 100644 (file)
@@ -235,10 +235,10 @@ articles in the topic and its subtopics."
       (while (and (zerop (forward-line 1))
                  (> (or (gnus-group-topic-level) (1+ level)) level)))
       (delete-region beg (point))
       (while (and (zerop (forward-line 1))
                  (> (or (gnus-group-topic-level) (1+ level)) level)))
       (delete-region beg (point))
-      (setcar (cdr (car (cdr (gnus-topic-find-topology topic))))
+      (setcar (cdadr (gnus-topic-find-topology topic))
              (if insert 'visible 'invisible))
       (when hide
              (if insert 'visible 'invisible))
       (when hide
-       (setcdr (cdr (car (cdr (gnus-topic-find-topology topic))))
+       (setcdr (cdadr (gnus-topic-find-topology topic))
                (list hide)))
       (unless total-remove
        (gnus-topic-insert-topic topic in-level)))))
                (list hide)))
       (unless total-remove
        (gnus-topic-insert-topic topic in-level)))))
@@ -292,12 +292,12 @@ articles in the topic and its subtopics."
 
 (defun gnus-topic-previous-topic (topic)
   "Return the previous topic on the same level as TOPIC."
 
 (defun gnus-topic-previous-topic (topic)
   "Return the previous topic on the same level as TOPIC."
-  (let ((top (cdr (cdr (gnus-topic-find-topology
-                       (gnus-topic-parent-topic topic))))))
-    (unless (equal topic (car (car (car top))))
-      (while (and top (not (equal (car (car (car (cdr top)))) topic)))
+  (let ((top (cddr (gnus-topic-find-topology
+                       (gnus-topic-parent-topic topic)))))
+    (unless (equal topic (caaar top))
+      (while (and top (not (equal (caaadr top) topic)))
        (setq top (cdr top)))
        (setq top (cdr top)))
-      (car (car (car top))))))
+      (caaar top))))
 
 (defun gnus-topic-parent-topic (topic &optional topology)
   "Return the parent of TOPIC."
 
 (defun gnus-topic-parent-topic (topic &optional topology)
   "Return the parent of TOPIC."
@@ -306,7 +306,7 @@ articles in the topic and its subtopics."
   (let ((parent (car (pop topology)))
        result found)
     (while (and topology
   (let ((parent (car (pop topology)))
        result found)
     (while (and topology
-               (not (setq found (equal (car (car (car topology))) topic)))
+               (not (setq found (equal (caaar topology) topic)))
                (not (setq result (gnus-topic-parent-topic topic 
                                                           (car topology)))))
       (setq topology (cdr topology)))
                (not (setq result (gnus-topic-parent-topic topic 
                                                           (car topology)))))
       (setq topology (cdr topology)))
@@ -319,7 +319,7 @@ articles in the topic and its subtopics."
     (setq level 0))
   (let ((top topology)
        result)
     (setq level 0))
   (let ((top topology)
        result)
-    (if (equal (car (car topology)) topic)
+    (if (equal (caar topology) topic)
        (progn
          (when remove
            (delq topology remove))
        (progn
          (when remove
            (delq topology remove))
@@ -342,9 +342,9 @@ articles in the topic and its subtopics."
        (alist gnus-topic-alist)
        changed)
     (while alist
        (alist gnus-topic-alist)
        changed)
     (while alist
-      (unless (member (car (car alist)) topics)
+      (unless (member (caar alist) topics)
        (nconc gnus-topic-topology
        (nconc gnus-topic-topology
-              (list (list (list (car (car alist)) 'visible))))
+              (list (list (list (caar alist) 'visible))))
        (setq changed t))
       (setq alist (cdr alist)))
     (when changed
        (setq changed t))
       (setq alist (cdr alist)))
     (when changed
@@ -363,7 +363,7 @@ articles in the topic and its subtopics."
   (unless topology
     (setq topology gnus-topic-topology 
          gnus-tmp-topics nil))
   (unless topology
     (setq topology gnus-topic-topology 
          gnus-tmp-topics nil))
-  (push (car (car topology)) gnus-tmp-topics)
+  (push (caar topology) gnus-tmp-topics)
   (mapcar 'gnus-topic-list (cdr topology))
   gnus-tmp-topics)
 
   (mapcar 'gnus-topic-list (cdr topology))
   gnus-tmp-topics)
 
@@ -391,8 +391,8 @@ articles in the topic and its subtopics."
   (let ((alist gnus-topic-alist)
        out)
     (while alist
   (let ((alist gnus-topic-alist)
        out)
     (while alist
-      (when (member group (cdr (car alist)))
-       (setq out (car (car alist))
+      (when (member group (cdar alist))
+       (setq out (caar alist)
              alist nil))
       (setq alist (cdr alist)))
     out))
              alist nil))
       (setq alist (cdr alist)))
     out))
@@ -669,14 +669,14 @@ group."
   (when (gnus-topic-find-topology topic)
     (error "Topic aleady exists"))
   (unless parent
   (when (gnus-topic-find-topology topic)
     (error "Topic aleady exists"))
   (unless parent
-    (setq parent (car (car gnus-topic-topology))))
+    (setq parent (caar gnus-topic-topology)))
   (let ((top (cdr (gnus-topic-find-topology parent))))
     (unless top
       (error "No such parent topic: %s" parent))
     (if previous
        (progn
          (while (and (cdr top)
   (let ((top (cdr (gnus-topic-find-topology parent))))
     (unless top
       (error "No such parent topic: %s" parent))
     (if previous
        (progn
          (while (and (cdr top)
-                     (not (equal (car (car (car (cdr top)))) previous)))
+                     (not (equal (caaadr top) previous)))
            (setq top (cdr top)))
          (setcdr top (cons (list (list topic 'visible)) (cdr top))))
       (nconc top (list (list (list topic 'visible)))))
            (setq top (cdr top)))
          (setcdr top (cons (list (list topic 'visible)) (cdr top))))
       (nconc top (list (list (list topic 'visible)))))
@@ -802,7 +802,7 @@ group."
        (if (not (cdr alist))
            (setcdr alist (nconc yanked (cdr alist)))
          (while (cdr alist)
        (if (not (cdr alist))
            (setcdr alist (nconc yanked (cdr alist)))
          (while (cdr alist)
-           (when (equal (car (cdr alist)) prev)
+           (when (equal (cadr alist) prev)
              (setcdr alist (nconc yanked (cdr alist)))
              (setq alist nil))
            (setq alist (cdr alist))))))
              (setcdr alist (nconc yanked (cdr alist)))
              (setq alist nil))
            (setq alist (cdr alist))))))
@@ -884,7 +884,7 @@ group."
   (let ((top (gnus-topic-find-topology old-name))
        (entry (assoc old-name gnus-topic-alist)))
     (when top
   (let ((top (gnus-topic-find-topology old-name))
        (entry (assoc old-name gnus-topic-alist)))
     (when top
-      (setcar (car (cdr top)) new-name))
+      (setcar (cadr top) new-name))
     (when entry 
       (setcar entry new-name))
     (gnus-group-list-groups)))
     (when entry 
       (setcar entry new-name))
     (gnus-group-list-groups)))
index beb4368..bce3739 100644 (file)
@@ -452,15 +452,15 @@ The headers will be included in the sequence they are matched.")
     (let ((fs gnus-uu-digest-from-subject))
       (if (not fs)
          ()
     (let ((fs gnus-uu-digest-from-subject))
       (if (not fs)
          ()
-       (setq from (car (car fs))
-             subject (gnus-simplify-subject-fuzzy (cdr (car fs)))
+       (setq from (caar fs)
+             subject (gnus-simplify-subject-fuzzy (cdar fs))
              fs (cdr fs))
        (while (and fs (or from subject))
          (and from
              fs (cdr fs))
        (while (and fs (or from subject))
          (and from
-              (or (string= from (car (car fs)))
+              (or (string= from (caar fs))
                   (setq from nil)))
          (and subject
                   (setq from nil)))
          (and subject
-              (or (string= (gnus-simplify-subject-fuzzy (cdr (car fs)))
+              (or (string= (gnus-simplify-subject-fuzzy (cdar fs))
                            subject)
                   (setq subject nil)))
          (setq fs (cdr fs))))
                            subject)
                   (setq subject nil)))
          (setq fs (cdr fs))))
@@ -1060,7 +1060,7 @@ The headers will be included in the sequence they are matched.")
       (buffer-disable-undo (current-buffer))
       (while string-list
        (erase-buffer)
       (buffer-disable-undo (current-buffer))
       (while string-list
        (erase-buffer)
-       (insert (car (car string-list)))
+       (insert (caar string-list))
        ;; Translate multiple spaces to one space.
        (goto-char (point-min))
        (while (re-search-forward "[ \t]+" nil t)
        ;; Translate multiple spaces to one space.
        (goto-char (point-min))
        (while (re-search-forward "[ \t]+" nil t)
@@ -1376,8 +1376,10 @@ The headers will be included in the sequence they are matched.")
                                        ;                         (sleep-for 2)
                          (setq state (list 'wrong-type)))))
 
                                        ;                         (sleep-for 2)
                          (setq state (list 'wrong-type)))))
 
-                    (if (memq 'end state)
-                        (accept-process-output gnus-uu-uudecode-process)))
+                    (when (memq 'end state)
+                      (while (memq (process-status gnus-uu-uudecode-process)
+                                   '(open run))
+                        (accept-process-output gnus-uu-uudecode-process 1))))
                 (setq state (list 'wrong-type))))
          (if (not gnus-uu-uudecode-process)
              (setq state (list 'wrong-type)))))
                 (setq state (list 'wrong-type))))
          (if (not gnus-uu-uudecode-process)
              (setq state (list 'wrong-type)))))
@@ -1436,7 +1438,7 @@ The headers will be included in the sequence they are matched.")
        (setq rule (car action-list))
        (setq action-list (cdr action-list))
        (if (string-match (car rule) file-name)
        (setq rule (car action-list))
        (setq action-list (cdr action-list))
        (if (string-match (car rule) file-name)
-          (setq action (car (cdr rule))))))
+          (setq action (cadr rule)))))
     action))
 
 (defun gnus-uu-treat-archive (file-path)
     action))
 
 (defun gnus-uu-treat-archive (file-path)
index d5d15e9..4efa4ad 100644 (file)
@@ -855,14 +855,14 @@ ticked: The number of ticked articles in the group.
                              (cons 
                               (apply 
                                'nconc
                              (cons 
                               (apply 
                                'nconc
-                               (list (car (car ts)))
+                               (list (caar ts))
                                (let ((ps perms)
                                      outp)
                                  (while ps
                                    (setq outp
                                          (cons
                                           (vector
                                (let ((ps perms)
                                      outp)
                                  (while ps
                                    (setq outp
                                          (cons
                                           (vector
-                                           (car (car ps)
+                                           (caar ps
                                            (list
                                             'gnus-summary-score-entry
                                             (nth 1 header)
                                            (list
                                             'gnus-summary-score-entry
                                             (nth 1 header)
@@ -1229,6 +1229,7 @@ If N is negative, move backward instead."
   (interactive "p")
   (let ((function (if (< n 0) 'prev-single-property-change
                    'next-single-property-change))
   (interactive "p")
   (let ((function (if (< n 0) 'prev-single-property-change
                    'next-single-property-change))
+       (inhibit-point-motion-hooks t)
        (limit (if (< n 0) (point-min) (point-max))))
     (setq n (abs n))
     (while (and (not (= limit (point)))
        (limit (if (< n 0) (point-min) (point-max))))
     (setq n (abs n))
     (while (and (not (= limit (point)))
@@ -1238,6 +1239,9 @@ If N is negative, move backward instead."
        (goto-char (funcall function (point) 'gnus-callback nil limit)))
       ;; Go to the next (or previous) button.
       (gnus-goto-char (funcall function (point) 'gnus-callback nil limit))
        (goto-char (funcall function (point) 'gnus-callback nil limit)))
       ;; Go to the next (or previous) button.
       (gnus-goto-char (funcall function (point) 'gnus-callback nil limit))
+      ;; Skip past intangible buttons.
+      (when (get-text-property (point) 'intangible)
+       (incf n))
       (decf n))
     (unless (zerop n)
       (gnus-message 5 "No more buttons"))
       (decf n))
     (unless (zerop n)
       (gnus-message 5 "No more buttons"))
index ec88780..acb0a6b 100644 (file)
@@ -760,6 +760,14 @@ will be kept while the rest will be deleted before saving.")
 (defvar gnus-signature-separator "^-- *$"
   "Regexp matching signature separator.")
 
 (defvar gnus-signature-separator "^-- *$"
   "Regexp matching signature separator.")
 
+(defvar gnus-signature-limit nil
+  "Provide a limit to what is considered a signature.
+If it is a number, no signature may not be longer (in characters) than
+that number.  If it is a function, the function will be called without
+any parameters, and if it returns nil, there is no signature in the
+buffer.  If it is a string, it will be used as a regexp.  If it
+matches, the text in question is not a signature.")
+
 (defvar gnus-auto-extend-newsgroup t
   "*If non-nil, extend newsgroup forward and backward when requested.")
 
 (defvar gnus-auto-extend-newsgroup t
   "*If non-nil, extend newsgroup forward and backward when requested.")
 
@@ -794,7 +802,9 @@ The \"unread\" movement commands will stay on the same line if the
 current article is unread.")
 
 (defvar gnus-auto-center-summary t
 current article is unread.")
 
 (defvar gnus-auto-center-summary t
-  "*If non-nil, always center the current summary buffer.")
+  "*If non-nil, always center the current summary buffer.
+In particular, if `vertical' do only vertical recentering.  If non-nil
+and non-`vertical', do both horizontal and vertical recentering.")
 
 (defvar gnus-break-pages t
   "*If non-nil, do page breaking on articles.
 
 (defvar gnus-break-pages t
   "*If non-nil, do page breaking on articles.
@@ -866,7 +876,7 @@ beginning of a line.")
               (mail 1.0 point)))
     (summary-reply
      (vertical 1.0
               (mail 1.0 point)))
     (summary-reply
      (vertical 1.0
-              (article 0.5)
+              (article-copy 0.5)
               (mail 1.0 point)))
     (pick
      (vertical 1.0
               (mail 1.0 point)))
     (pick
      (vertical 1.0
@@ -895,7 +905,7 @@ beginning of a line.")
               (post 1.0 point)))
     (reply
      (vertical 1.0
               (post 1.0 point)))
     (reply
      (vertical 1.0
-              (article 0.5)
+              (article-copy 0.5)
               (mail 1.0 point)))
     (mail-forward
      (vertical 1.0
               (mail 1.0 point)))
     (mail-forward
      (vertical 1.0
@@ -920,7 +930,7 @@ beginning of a line.")
               ("*Shell Command Output*" 1.0)))
     (followup
      (vertical 1.0
               ("*Shell Command Output*" 1.0)))
     (followup
      (vertical 1.0
-              (article 0.5)
+              (article-copy 0.5)
               (post 1.0 point)))
     (followup-yank
      (vertical 1.0
               (post 1.0 point)))
     (followup-yank
      (vertical 1.0
@@ -959,6 +969,7 @@ buffer configuration.")
     (picons . "*Picons*")
     (tree . gnus-tree-buffer)
     (info . gnus-info-buffer)
     (picons . "*Picons*")
     (tree . gnus-tree-buffer)
     (info . gnus-info-buffer)
+    (article-copy . gnus-article-copy)
     (draft . gnus-draft-buffer))
   "Mapping from short symbols to buffer names or buffer variables.")
 
     (draft . gnus-draft-buffer))
   "Mapping from short symbols to buffer names or buffer variables.")
 
@@ -1694,7 +1705,7 @@ variable (string, integer, character, etc).")
   "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
   "The mail address of the Gnus maintainers.")
 
   "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
   "The mail address of the Gnus maintainers.")
 
-(defconst gnus-version "September Gnus v0.45"
+(defconst gnus-version "September Gnus v0.46"
   "Version number for this version of Gnus.")
 
 (defvar gnus-info-nodes
   "Version number for this version of Gnus.")
 
 (defvar gnus-info-nodes
@@ -1908,7 +1919,7 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.")
     (gnus-newsgroup-adaptive . gnus-use-adaptive-scoring)
     gnus-newsgroup-adaptive-score-file
     (gnus-newsgroup-expunged-tally . 0)
     (gnus-newsgroup-adaptive . gnus-use-adaptive-scoring)
     gnus-newsgroup-adaptive-score-file
     (gnus-newsgroup-expunged-tally . 0)
-    gnus-cache-removeable-articles gnus-newsgroup-cached
+    gnus-cache-removable-articles gnus-newsgroup-cached
     gnus-newsgroup-data gnus-newsgroup-data-reverse
     gnus-newsgroup-limit gnus-newsgroup-limits)
   "Variables that are buffer-local to the summary buffers.")
     gnus-newsgroup-data gnus-newsgroup-data-reverse
     gnus-newsgroup-limit gnus-newsgroup-limits)
   "Variables that are buffer-local to the summary buffers.")
@@ -4861,7 +4872,7 @@ already."
                              (gnus-parse-format
                               gnus-group-mode-line-format
                               gnus-group-mode-line-format-alist))))
                              (gnus-parse-format
                               gnus-group-mode-line-format
                               gnus-group-mode-line-format-alist))))
-          (gnus-tmp-news-server (car (cdr gnus-select-method)))
+          (gnus-tmp-news-server (cadr gnus-select-method))
           (gnus-tmp-news-method (car gnus-select-method))
           (max-len 60)
           gnus-tmp-header                      ;Dummy binding for user-defined formats
           (gnus-tmp-news-method (car gnus-select-method))
           (max-len 60)
           gnus-tmp-header                      ;Dummy binding for user-defined formats
@@ -5411,8 +5422,7 @@ of the Earth\".    There is no undo."
        (gnus-group-goto-group group)
        (gnus-group-kill-group)
        ;; ... changing its name ...
        (gnus-group-goto-group group)
        (gnus-group-kill-group)
        ;; ... changing its name ...
-       (setcar (cdr (car gnus-list-of-killed-groups))
-               new-name)
+       (setcar (cdar gnus-list-of-killed-groups) new-name)
        ;; ... and then yanking it.  Magic!
        (gnus-group-yank-group)
        (gnus-set-active new-name (gnus-active group))
        ;; ... and then yanking it.  Magic!
        (gnus-group-yank-group)
        (gnus-set-active new-name (gnus-active group))
@@ -6060,7 +6070,7 @@ of groups killed."
           ((setq entry (gnus-gethash group gnus-newsrc-hashtb))
            (push (cons (car entry) (nth 2 entry))
                  gnus-list-of-killed-groups)
           ((setq entry (gnus-gethash group gnus-newsrc-hashtb))
            (push (cons (car entry) (nth 2 entry))
                  gnus-list-of-killed-groups)
-           (setcdr (cdr entry) (cdr (cdr (cdr entry)))))
+           (setcdr (cdr entry) (cdddr entry)))
           ((member group gnus-zombie-list)
            (setq gnus-zombie-list (delete group gnus-zombie-list)))))
        (gnus-make-hashtable-from-newsrc-alist)))
           ((member group gnus-zombie-list)
            (setq gnus-zombie-list (delete group gnus-zombie-list)))))
        (gnus-make-hashtable-from-newsrc-alist)))
@@ -6509,7 +6519,7 @@ The hook `gnus-exit-gnus-hook' is called before actually exiting."
   (let ((methods gnus-valid-select-methods)
        func)
     (while methods
   (let ((methods gnus-valid-select-methods)
        func)
     (while methods
-      (if (fboundp (setq func (intern (concat (car (car methods))
+      (if (fboundp (setq func (intern (concat (caar methods)
                                              "-request-close"))))
          (funcall func))
       (setq methods (cdr methods)))))
                                              "-request-close"))))
          (funcall func))
       (setq methods (cdr methods)))))
@@ -6915,8 +6925,8 @@ The following commands are available:
     (while locals
       (if (consp (car locals))
          (progn
     (while locals
       (if (consp (car locals))
          (progn
-           (make-local-variable (car (car locals)))
-           (set (car (car locals)) (eval (cdr (car locals)))))
+           (make-local-variable (caar locals))
+           (set (caar locals) (eval (cdar locals))))
        (make-local-variable (car locals))
        (set (car locals) nil))
       (setq locals (cdr locals))))
        (make-local-variable (car locals))
        (set (car locals) nil))
       (setq locals (cdr locals))))
@@ -6963,8 +6973,8 @@ The following commands are available:
   (let ((locals gnus-summary-local-variables))
     (while locals
       (if (consp (car locals))
   (let ((locals gnus-summary-local-variables))
     (while locals
       (if (consp (car locals))
-         (and (vectorp (car (car locals)))
-              (set (car (car locals)) nil))
+         (and (vectorp (caar locals))
+              (set (caar locals) nil))
        (and (vectorp (car locals))
             (set (car locals) nil)))
       (setq locals (cdr locals)))))
        (and (vectorp (car locals))
             (set (car locals) nil)))
       (setq locals (cdr locals)))))
@@ -7018,7 +7028,7 @@ The following commands are available:
     (setcdr data (cons (gnus-data-make number mark pos header level)
                       (cdr data)))
     (setq gnus-newsgroup-data-reverse nil)
     (setcdr data (cons (gnus-data-make number mark pos header level)
                       (cdr data)))
     (setq gnus-newsgroup-data-reverse nil)
-    (gnus-data-update-list (cdr (cdr data)) offset)))
+    (gnus-data-update-list (cddr data) offset)))
 
 (defun gnus-data-enter-list (after-article list &optional offset)
   (when list
 
 (defun gnus-data-enter-list (after-article list &optional offset)
   (when list
@@ -7045,9 +7055,9 @@ The following commands are available:
        (setq gnus-newsgroup-data (cdr gnus-newsgroup-data)
              gnus-newsgroup-data-reverse nil)
       (while (cdr data)
        (setq gnus-newsgroup-data (cdr gnus-newsgroup-data)
              gnus-newsgroup-data-reverse nil)
       (while (cdr data)
-       (and (= (gnus-data-number (car (cdr data))) article)
+       (and (= (gnus-data-number (cadr data)) article)
             (progn
             (progn
-              (setcdr data (cdr (cdr data)))
+              (setcdr data (cddr data))
               (and offset (gnus-data-update-list (cdr data) offset))
               (setq data nil
                     gnus-newsgroup-data-reverse nil)))
               (and offset (gnus-data-update-list (cdr data) offset))
               (setq data nil
                     gnus-newsgroup-data-reverse nil)))
@@ -7573,7 +7583,7 @@ If NO-DISPLAY, don't generate a summary buffer."
          (result threads)
          subject hthread whole-subject)
       (while threads
          (result threads)
          subject hthread whole-subject)
       (while threads
-       (setq whole-subject (mail-header-subject (car (car threads))))
+       (setq whole-subject (mail-header-subject (caar threads)))
        (if (and gnus-summary-gather-exclude-subject
                 (string-match gnus-summary-gather-exclude-subject
                               whole-subject))
        (if (and gnus-summary-gather-exclude-subject
                 (string-match gnus-summary-gather-exclude-subject
                               whole-subject))
@@ -7599,12 +7609,12 @@ If NO-DISPLAY, don't generate a summary buffer."
              (progn
                ;; We enter a dummy root into the thread, if we
                ;; haven't done that already.
              (progn
                ;; We enter a dummy root into the thread, if we
                ;; haven't done that already.
-               (unless (stringp (car (car hthread)))
+               (unless (stringp (caar hthread))
                  (setcar hthread (list whole-subject (car hthread))))
                ;; We add this new gathered thread to this gathered
                ;; thread.
                (setcdr (car hthread)
                  (setcar hthread (list whole-subject (car hthread))))
                ;; We add this new gathered thread to this gathered
                ;; thread.
                (setcdr (car hthread)
-                       (nconc (cdr (car hthread)) (list (car threads))))
+                       (nconc (cdar hthread) (list (car threads))))
                ;; Remove it from the list of threads.
                (setcdr prev (cdr threads))
                (setq threads prev))
                ;; Remove it from the list of threads.
                (setcdr prev (cdr threads))
                (setq threads prev))
@@ -7657,9 +7667,9 @@ If NO-DISPLAY, don't generate a summary buffer."
   "Sort subtreads inside each gathered thread by article number."
   (let ((result threads))
     (while threads
   "Sort subtreads inside each gathered thread by article number."
   (let ((result threads))
     (while threads
-      (when (stringp (car (car threads)))
+      (when (stringp (caar threads))
        (setcdr (car threads)
        (setcdr (car threads)
-               (sort (cdr (car threads)) 'gnus-thread-sort-by-number)))
+               (sort (cdar threads) 'gnus-thread-sort-by-number)))
       (setq threads (cdr threads)))
     result))
 
       (setq threads (cdr threads)))
     result))
 
@@ -7744,7 +7754,7 @@ If NO-DISPLAY, don't generate a summary buffer."
        (when (not (car (symbol-value refs)))
         (setq heads (cdr (symbol-value refs)))
         (while heads
        (when (not (car (symbol-value refs)))
         (setq heads (cdr (symbol-value refs)))
         (while heads
-          (if (memq (mail-header-number (car (car heads)))
+          (if (memq (mail-header-number (caar heads))
                     gnus-newsgroup-dormant)
               (setq heads (cdr heads))
             (setq id (symbol-name refs))
                     gnus-newsgroup-dormant)
               (setq heads (cdr heads))
             (setq id (symbol-name refs))
@@ -7817,7 +7827,7 @@ If NO-DISPLAY, don't generate a summary buffer."
        (while thread
          (unless (memq (setq thr (gnus-id-to-thread
                                      (gnus-root-id
        (while thread
          (unless (memq (setq thr (gnus-id-to-thread
                                      (gnus-root-id
-                                      (mail-header-id (car (car thread))))))
+                                      (mail-header-id (caar thread)))))
                        roots)
            (push thr roots))
          (setq thread (cdr thread)))
                        roots)
            (push thr roots))
          (setq thread (cdr thread)))
@@ -7883,7 +7893,7 @@ If NO-DISPLAY, don't generate a summary buffer."
     ;; First go up in this thread until we find the root.
     (setq last-id (gnus-root-id id))
     (setq headers (list (car (gnus-id-to-thread last-id))
     ;; First go up in this thread until we find the root.
     (setq last-id (gnus-root-id id))
     (setq headers (list (car (gnus-id-to-thread last-id))
-                       (car (car (cdr (gnus-id-to-thread last-id))))))
+                       (caadr (gnus-id-to-thread last-id))))
     ;; We have now found the real root of this thread. It might have
     ;; been gathered into some loose thread, so we have to search
     ;; through the threads to find the thread we wanted.
     ;; We have now found the real root of this thread. It might have
     ;; been gathered into some loose thread, so we have to search
     ;; through the threads to find the thread we wanted.
@@ -7898,7 +7908,7 @@ If NO-DISPLAY, don't generate a summary buffer."
            (progn
              (setq sub (cdr sub))
              (while sub
            (progn
              (setq sub (cdr sub))
              (while sub
-               (when (member (car (car sub)) headers)
+               (when (member (caar sub) headers)
                  (setq thread (car threads)
                        threads nil
                        sub nil))
                  (setq thread (car threads)
                        threads nil
                        sub nil))
@@ -8118,31 +8128,31 @@ or a straight list of headers."
        (if (and (= gnus-tmp-level 0)
                 (not (setq gnus-tmp-dummy-line nil))
                 (or (not stack)
        (if (and (= gnus-tmp-level 0)
                 (not (setq gnus-tmp-dummy-line nil))
                 (or (not stack)
-                    (= (car (car stack)) 0))
+                    (= (caar stack) 0))
                 (not gnus-tmp-false-parent)
                 (or gnus-tmp-new-adopts new-roots))
            (if gnus-tmp-new-adopts
                (setq gnus-tmp-level (if gnus-tmp-root-expunged 0 1)
                      thread (list (car gnus-tmp-new-adopts))
                 (not gnus-tmp-false-parent)
                 (or gnus-tmp-new-adopts new-roots))
            (if gnus-tmp-new-adopts
                (setq gnus-tmp-level (if gnus-tmp-root-expunged 0 1)
                      thread (list (car gnus-tmp-new-adopts))
-                     gnus-tmp-header (car (car thread))
+                     gnus-tmp-header (caar thread)
                      gnus-tmp-new-adopts (cdr gnus-tmp-new-adopts))
              (if new-roots
                  (setq thread (list (car new-roots))
                      gnus-tmp-new-adopts (cdr gnus-tmp-new-adopts))
              (if new-roots
                  (setq thread (list (car new-roots))
-                       gnus-tmp-header (car (car thread))
+                       gnus-tmp-header (caar thread)
                        new-roots (cdr new-roots))))
 
          (if threads
              ;; If there are some threads, we do them before the
              ;; threads on the stack.
              (setq thread threads
                        new-roots (cdr new-roots))))
 
          (if threads
              ;; If there are some threads, we do them before the
              ;; threads on the stack.
              (setq thread threads
-                   gnus-tmp-header (car (car thread)))
+                   gnus-tmp-header (caar thread))
            ;; There were no current threads, so we pop something off
            ;; the stack.
            (setq state (car stack)
                  gnus-tmp-level (car state)
                  thread (cdr state)
                  stack (cdr stack)
            ;; There were no current threads, so we pop something off
            ;; the stack.
            (setq state (car stack)
                  gnus-tmp-level (car state)
                  thread (cdr state)
                  stack (cdr stack)
-                 gnus-tmp-header (car (car thread)))))
+                 gnus-tmp-header (caar thread))))
 
        (setq gnus-tmp-false-parent nil)
        (setq gnus-tmp-root-expunged nil)
 
        (setq gnus-tmp-false-parent nil)
        (setq gnus-tmp-root-expunged nil)
@@ -8154,14 +8164,14 @@ or a straight list of headers."
             ((eq gnus-summary-make-false-root 'adopt)
              ;; We let the first article adopt the rest.
              (setq gnus-tmp-new-adopts (nconc gnus-tmp-new-adopts
             ((eq gnus-summary-make-false-root 'adopt)
              ;; We let the first article adopt the rest.
              (setq gnus-tmp-new-adopts (nconc gnus-tmp-new-adopts
-                                              (cdr (cdr (car thread)))))
+                                              (cddar thread)))
              (setq gnus-tmp-gathered
                    (nconc (mapcar
                            (lambda (h) (mail-header-number (car h)))
              (setq gnus-tmp-gathered
                    (nconc (mapcar
                            (lambda (h) (mail-header-number (car h)))
-                           (cdr (cdr (car thread))))
+                           (cddar thread))
                           gnus-tmp-gathered))
                           gnus-tmp-gathered))
-             (setq thread (cons (list (car (car thread))
-                                      (car (cdr (car thread))))
+             (setq thread (cons (list (caar thread)
+                                      (cadar thread))
                                 (cdr thread)))
              (setq gnus-tmp-level -1
                    gnus-tmp-false-parent t))
                                 (cdr thread)))
              (setq gnus-tmp-level -1
                    gnus-tmp-false-parent t))
@@ -8170,7 +8180,7 @@ or a straight list of headers."
              (setq gnus-tmp-gathered
                    (nconc (mapcar
                            (lambda (h) (mail-header-number (car h)))
              (setq gnus-tmp-gathered
                    (nconc (mapcar
                            (lambda (h) (mail-header-number (car h)))
-                           (cdr (cdr (car thread))))
+                           (cddar thread))
                           gnus-tmp-gathered))
              (setq gnus-tmp-level -1))
             ((eq gnus-summary-make-false-root 'dummy)
                           gnus-tmp-gathered))
              (setq gnus-tmp-level -1))
             ((eq gnus-summary-make-false-root 'dummy)
@@ -8204,11 +8214,11 @@ or a straight list of headers."
            (setq gnus-tmp-gathered
                  (nconc (mapcar
                          (lambda (h) (mail-header-number (car h)))
            (setq gnus-tmp-gathered
                  (nconc (mapcar
                          (lambda (h) (mail-header-number (car h)))
-                         (cdr (car thread)))
+                         (cdar thread))
                         gnus-tmp-gathered))
                         gnus-tmp-gathered))
-           (setq gnus-tmp-new-adopts (if (cdr (car thread))
+           (setq gnus-tmp-new-adopts (if (cdar thread)
                                          (append gnus-tmp-new-adopts
                                          (append gnus-tmp-new-adopts
-                                                 (cdr (car thread)))
+                                                 (cdar thread))
                                        gnus-tmp-new-adopts)
                  thread-end t
                  gnus-tmp-header nil)
                                        gnus-tmp-new-adopts)
                  thread-end t
                  gnus-tmp-header nil)
@@ -8326,7 +8336,7 @@ or a straight list of headers."
        (when (nth 1 thread)
          (push (cons (max 0 gnus-tmp-level) (nthcdr 1 thread)) stack))
        (incf gnus-tmp-level)
        (when (nth 1 thread)
          (push (cons (max 0 gnus-tmp-level) (nthcdr 1 thread)) stack))
        (incf gnus-tmp-level)
-       (setq threads (if thread-end nil (cdr (car thread))))
+       (setq threads (if thread-end nil (cdar thread)))
        (unless threads
          (setq gnus-tmp-level 0)))))
   (gnus-message 7 "Generating summary...done"))
        (unless threads
          (setq gnus-tmp-level 0)))))
   (gnus-message 7 "Generating summary...done"))
@@ -8651,15 +8661,20 @@ If READ-ALL is non-nil, all articles in the group are selected."
        marked m)
     (or (not info)
        (and (not (setq marked (nthcdr 3 info)))
        marked m)
     (or (not info)
        (and (not (setq marked (nthcdr 3 info)))
-            (setcdr (nthcdr 2 info)
-                    (list (list (cons type (gnus-compress-sequence
-                                            articles t))))))
+            (or (null articles)
+                (setcdr (nthcdr 2 info)
+                        (list (list (cons type (gnus-compress-sequence
+                                                articles t)))))))
        (and (not (setq m (assq type (car marked))))
        (and (not (setq m (assq type (car marked))))
-            (setcar marked
-                    (cons (cons type (gnus-compress-sequence articles t) )
-                          (car marked))))
+            (or (null articles)
+                (setcar marked
+                        (cons (cons type (gnus-compress-sequence articles t) )
+                              (car marked)))))
        (if force
        (if force
-           (setcdr m (gnus-compress-sequence articles t))
+           (if (null articles)
+               (setcar (nthcdr 3 info)
+                       (delq (assq type marked) marked))
+             (setcdr m (gnus-compress-sequence articles t)))
          (setcdr m (gnus-compress-sequence
                     (sort (nconc (gnus-uncompress-range m)
                                  (copy-sequence articles)) '<) t))))))
          (setcdr m (gnus-compress-sequence
                     (sort (nconc (gnus-uncompress-range m)
                                  (copy-sequence articles)) '<) t))))))
@@ -8829,8 +8844,7 @@ The resulting hash table is returned, or nil if no Xrefs were found."
            (while range
              (if (numberp (car range))
                  (setq num (1+ num))
            (while range
              (if (numberp (car range))
                  (setq num (1+ num))
-               (setq num (+ num (- (1+ (cdr (car range)))
-                                   (car (car range))))))
+               (setq num (+ num (- (1+ (cdar range)) (caar range)))))
              (setq range (cdr range)))
            (setq num (- (cdr active) num))))
          ;; Update the number of unread articles.
              (setq range (cdr range)))
            (setq num (- (cdr active) num))))
          ;; Update the number of unread articles.
@@ -9300,7 +9314,9 @@ articles with that subject.  If BACKWARD, search backward instead."
   "Center point in window and redisplay frame.
 Also do horizontal recentering."
   (interactive)
   "Center point in window and redisplay frame.
 Also do horizontal recentering."
   (interactive)
-  (gnus-horizontal-recenter)
+  (when (and gnus-auto-center-summary
+            (not (eq gnus-auto-center-summary 'vertical)))
+    (gnus-horizontal-recenter))
   (recenter n))
 
 (defun gnus-summary-recenter ()
   (recenter n))
 
 (defun gnus-summary-recenter ()
@@ -9420,17 +9436,15 @@ displayed, no centering will be performed."
          (setq first (1+ (cdr read)))
        ;; `read' is a list of ranges.
        (if (/= (setq nlast (or (and (numberp (car read)) (car read))
          (setq first (1+ (cdr read)))
        ;; `read' is a list of ranges.
        (if (/= (setq nlast (or (and (numberp (car read)) (car read))
-                               (car (car read)))) 1)
+                               (caar read))) 1)
            (setq first 1))
        (while read
          (if first
              (while (< first nlast)
                (setq unread (cons first unread))
                (setq first (1+ first))))
            (setq first 1))
        (while read
          (if first
              (while (< first nlast)
                (setq unread (cons first unread))
                (setq first (1+ first))))
-         (setq first (1+ (if (atom (car read)) (car read) (cdr (car read)))))
-         (setq nlast (if (atom (car (cdr read)))
-                         (car (cdr read))
-                       (car (car (cdr read)))))
+         (setq first (1+ (if (atom (car read)) (car read) (cdar read))))
+         (setq nlast (if (atom (cadr read)) (cadr read) (caadr read)))
          (setq read (cdr read)))))
     ;; And add the last unread articles.
     (while (<= first last)
          (setq read (cdr read)))))
     ;; And add the last unread articles.
     (while (<= first last)
@@ -10069,7 +10083,7 @@ If BACKWARD, the previous article is selected instead of the next."
          (switch-to-buffer gnus-group-buffer)
          (and group
               (gnus-group-jump-to-group group))
          (switch-to-buffer gnus-group-buffer)
          (and group
               (gnus-group-jump-to-group group))
-         (eval (car (cdr (assq key keystrokes))))
+         (eval (cadr (assq key keystrokes)))
          (setq group (gnus-group-group-name))
          (switch-to-buffer obuf))
        (setq ended nil))
          (setq group (gnus-group-group-name))
          (switch-to-buffer obuf))
        (setq ended nil))
@@ -12010,9 +12024,9 @@ even ticked and dormant ones."
     (let ((scored gnus-newsgroup-scored)
          headers h)
       (while scored
     (let ((scored gnus-newsgroup-scored)
          headers h)
       (while scored
-       (or (gnus-summary-goto-subject (car (car scored)))
-           (and (setq h (gnus-summary-article-header (car (car scored))))
-                (< (cdr (car scored)) gnus-summary-expunge-below)
+       (or (gnus-summary-goto-subject (caar scored))
+           (and (setq h (gnus-summary-article-header (caar scored)))
+                (< (cdar scored) gnus-summary-expunge-below)
                 (setq headers (cons h headers))))
        (setq scored (cdr scored)))
       (or headers (error "No expunged articles hidden."))
                 (setq headers (cons h headers))))
        (setq scored (cdr scored)))
       (or headers (error "No expunged articles hidden."))
@@ -12690,7 +12704,7 @@ save those articles instead."
                           (concat prompt " ") split-name nil nil)))
              (concat gnus-article-save-directory
                      (if (string= result "")
                           (concat prompt " ") split-name nil nil)))
              (concat gnus-article-save-directory
                      (if (string= result "")
-                         (car (car split-name))
+                         (caar split-name)
                        result)))))))
     ;; If we have read a directory, we append the default file name.
     (when (file-directory-p file)
                        result)))))))
     ;; If we have read a directory, we append the default file name.
     (when (file-directory-p file)
@@ -12858,9 +12872,9 @@ is initialized from the SAVEDIR environment variable."
          (setq files (list (cdr (assq 'name (car ps)))))
          (while (and ps (cdr ps)
                      (string= (or action "1")
          (setq files (list (cdr (assq 'name (car ps)))))
          (while (and ps (cdr ps)
                      (string= (or action "1")
-                              (or (cdr (assq 'action (car (cdr ps)))) "2")))
-           (setq files (cons (cdr (assq 'name (car (cdr ps)))) files))
-           (setcdr ps (cdr (cdr ps))))
+                              (or (cdr (assq 'action (cadr ps))) "2")))
+           (setq files (cons (cdr (assq 'name (cadr ps))) files))
+           (setcdr ps (cddr ps)))
          (if (not files)
              ()
            (if (not (string-match "%s" action))
          (if (not files)
              ()
            (if (not (string-match "%s" action))
@@ -13742,14 +13756,6 @@ always hide."
             (nconc (list 'gnus-type 'signature)
                    gnus-hidden-properties))))))))
 
             (nconc (list 'gnus-type 'signature)
                    gnus-hidden-properties))))))))
 
-(defvar gnus-signature-limit nil
-  "Provide a limit to what is considered a signature.
-If it is a number, no signature may not be longer (in characters) than
-that number.  If it is a function, the function will be called without
-any parameters, and if it returns nil, there is no signature in the
-buffer.  If it is a string, it will be used as a regexp.  If it
-matches, the text in question is not a signature.")
-
 (defun gnus-narrow-to-signature ()
   "Narrow to the signature."
   (widen)
 (defun gnus-narrow-to-signature ()
   "Narrow to the signature."
   (widen)
@@ -14235,7 +14241,7 @@ score the alt hierarchy, you'd say \"!alt.all\"."
     ;; Apply kills to specified newsgroups in command line arguments.
     (setq newsrc (cdr gnus-newsrc-alist))
     (while newsrc
     ;; Apply kills to specified newsgroups in command line arguments.
     (setq newsrc (cdr gnus-newsrc-alist))
     (while newsrc
-      (setq group (car (car newsrc)))
+      (setq group (caar newsrc))
       (setq entry (gnus-gethash group gnus-newsrc-hashtb))
       (if (and (<= (nth 1 (car newsrc)) gnus-level-subscribed)
               (and (car entry)
       (setq entry (gnus-gethash group gnus-newsrc-hashtb))
       (if (and (<= (nth 1 (car newsrc)) gnus-level-subscribed)
               (and (car entry)
@@ -14464,7 +14470,7 @@ If CONFIRM is non-nil, the user will be asked for an NNTP server."
     (or (gnus-server-opened method)
        (gnus-open-server method))))
 
     (or (gnus-server-opened method)
        (gnus-open-server method))))
 
-(defun gnus-check-server (&optional method)
+(defun gnus-check-server (&optional method silent)
   "Check whether the connection to METHOD is down.
 If METHOD is nil, use `gnus-select-method'.
 If it is down, start it up (again)."
   "Check whether the connection to METHOD is down.
 If METHOD is nil, use `gnus-select-method'.
 If it is down, start it up (again)."
@@ -14476,13 +14482,15 @@ If it is down, start it up (again)."
        ;; The stream is already opened.
        t
       ;; Open the server.
        ;; The stream is already opened.
        t
       ;; Open the server.
-      (gnus-message 5 "Opening %s server%s..." (car method)
-                   (if (equal (nth 1 method) "") ""
-                     (format " on %s" (nth 1 method))))
+      (unless silent
+       (gnus-message 5 "Opening %s server%s..." (car method)
+                     (if (equal (nth 1 method) "") ""
+                       (format " on %s" (nth 1 method)))))
       (run-hooks 'gnus-open-server-hook)
       (prog1
          (gnus-open-server method)
       (run-hooks 'gnus-open-server-hook)
       (prog1
          (gnus-open-server method)
-       (message "")))))
+       (unless silent
+         (message ""))))))
 
 (defun gnus-get-function (method function)
   "Return a function symbol based on METHOD and FUNCTION."
 
 (defun gnus-get-function (method function)
   "Return a function symbol based on METHOD and FUNCTION."
@@ -14746,8 +14754,9 @@ If GROUP is nil, all groups on METHOD are scanned."
       (let ((info (or info (gnus-get-info group)))
            method)
        (if (or (not info)
       (let ((info (or info (gnus-get-info group)))
            method)
        (if (or (not info)
-               (not (setq method (gnus-info-method info))))
-           (setq method gnus-select-method)
+               (not (setq method (gnus-info-method info)))
+               (equal method "native"))
+           gnus-select-method
          (setq method
                (cond ((stringp method)
                       (gnus-server-to-method method))
          (setq method
                (cond ((stringp method)
                       (gnus-server-to-method method))
@@ -14755,7 +14764,9 @@ If GROUP is nil, all groups on METHOD are scanned."
                       (gnus-server-extend-method group method))
                      (t
                       method)))
                       (gnus-server-extend-method group method))
                      (t
                       method)))
-         (gnus-server-add-address method)))))
+         (if (equal (cadr method) "")
+             method
+           (gnus-server-add-address method))))))
 
 (defun gnus-check-backend-function (func group)
   "Check whether GROUP supports function FUNC."
 
 (defun gnus-check-backend-function (func group)
   "Check whether GROUP supports function FUNC."
@@ -14916,9 +14927,9 @@ the server for new groups."
    (t
     (let ((regs gnus-newsrc-options-n))
       (while (and regs
    (t
     (let ((regs gnus-newsrc-options-n))
       (while (and regs
-                 (not (string-match (car (car regs)) group)))
+                 (not (string-match (caar regs) group)))
        (setq regs (cdr regs)))
        (setq regs (cdr regs)))
-      (and regs (cdr (car regs)))))))
+      (and regs (cdar regs))))))
 
 (defun gnus-ask-server-for-new-groups ()
   (let* ((date (or gnus-newsrc-last-checked-date (current-time-string)))
 
 (defun gnus-ask-server-for-new-groups ()
   (let* ((date (or gnus-newsrc-last-checked-date (current-time-string)))
@@ -15060,7 +15071,7 @@ the server for new groups."
        (setq entry (gnus-gethash entry gnus-newsrc-hashtb)))
     (if (and (not oldlevel)
             (consp entry))
        (setq entry (gnus-gethash entry gnus-newsrc-hashtb)))
     (if (and (not oldlevel)
             (consp entry))
-       (setq oldlevel (car (cdr (nth 2 entry)))))
+       (setq oldlevel (cadr (nth 2 entry))))
     (if (stringp previous)
        (setq previous (gnus-gethash previous gnus-newsrc-hashtb)))
 
     (if (stringp previous)
        (setq previous (gnus-gethash previous gnus-newsrc-hashtb)))
 
@@ -15093,7 +15104,7 @@ the server for new groups."
                  (setcdr (gnus-gethash (car (nth 3 entry))
                                        gnus-newsrc-hashtb)
                          (cdr entry)))
                  (setcdr (gnus-gethash (car (nth 3 entry))
                                        gnus-newsrc-hashtb)
                          (cdr entry)))
-             (setcdr (cdr entry) (cdr (cdr (cdr entry))))))))
+             (setcdr (cdr entry) (cdddr entry))))))
 
       ;; Finally we enter (if needed) the list where it is supposed to
       ;; go, and change the subscription level.  If it is to be killed,
 
       ;; Finally we enter (if needed) the list where it is supposed to
       ;; go, and change the subscription level.  If it is to be killed,
@@ -15116,7 +15127,7 @@ the server for new groups."
            ;; It was alive, and it is going to stay alive, so we
            ;; just change the level and don't change any pointers or
            ;; hash table entries.
            ;; It was alive, and it is going to stay alive, so we
            ;; just change the level and don't change any pointers or
            ;; hash table entries.
-           (setcar (cdr (car (cdr (cdr entry)))) level)
+           (setcar (cdaddr entry) level)
          (if (listp entry)
              (setq info (cdr entry)
                    num (car entry))
          (if (listp entry)
              (setq info (cdr entry)
                    num (car entry))
@@ -15134,10 +15145,10 @@ the server for new groups."
          (unless previous
            (setq previous
                  (let ((p gnus-newsrc-alist))
          (unless previous
            (setq previous
                  (let ((p gnus-newsrc-alist))
-                   (while (cdr (cdr p))
+                   (while (cddr p)
                      (setq p (cdr p)))
                    p)))
                      (setq p (cdr p)))
                    p)))
-         (setq entry (cons info (cdr (cdr previous))))
+         (setq entry (cons info (cddr previous)))
          (if (cdr previous)
              (progn
                (setcdr (cdr previous) entry)
          (if (cdr previous)
              (progn
                (setcdr (cdr previous) entry)
@@ -15147,8 +15158,7 @@ the server for new groups."
            (gnus-sethash group (cons num previous)
                          gnus-newsrc-hashtb))
          (when (cdr entry)
            (gnus-sethash group (cons num previous)
                          gnus-newsrc-hashtb))
          (when (cdr entry)
-           (setcdr (gnus-gethash (car (car (cdr entry))) gnus-newsrc-hashtb)
-                   entry)))))
+           (setcdr (gnus-gethash (caadr entry) gnus-newsrc-hashtb) entry)))))
       (when gnus-group-change-level-function
        (funcall gnus-group-change-level-function group level oldlevel)))))
 
       (when gnus-group-change-level-function
        (funcall gnus-group-change-level-function group level oldlevel)))))
 
@@ -15223,13 +15233,12 @@ newsgroup."
                  gnus-activate-foreign-newsgroups)
                 (t 0))
           level))
                  gnus-activate-foreign-newsgroups)
                 (t 0))
           level))
-        info group active virtuals method)
+        info group active method)
     (gnus-message 5 "Checking new news...")
 
     (while newsrc
     (gnus-message 5 "Checking new news...")
 
     (while newsrc
-      (setq info (car newsrc)
-           group (gnus-info-group info)
-           active (gnus-active group))
+      (setq active (gnus-active (setq group (gnus-info-group
+                                            (setq info (pop newsrc))))))
 
       ;; Check newsgroups.  If the user doesn't want to check them, or
       ;; they can't be checked (for instance, if the news server can't
 
       ;; Check newsgroups.  If the user doesn't want to check them, or
       ;; they can't be checked (for instance, if the news server can't
@@ -15257,9 +15266,7 @@ newsgroup."
        ;; The group couldn't be reached, so we nix out the number of
        ;; unread articles and stuff.
        (gnus-set-active group nil)
        ;; The group couldn't be reached, so we nix out the number of
        ;; unread articles and stuff.
        (gnus-set-active group nil)
-       (setcar (gnus-gethash group gnus-newsrc-hashtb) t))
-
-      (setq newsrc (cdr newsrc)))
+       (setcar (gnus-gethash group gnus-newsrc-hashtb) t)))
 
     (gnus-message 5 "Checking new news...done")))
 
 
     (gnus-message 5 "Checking new news...done")))
 
@@ -15272,14 +15279,14 @@ newsgroup."
     (setq gnus-newsrc-hashtb (gnus-make-hashtable (length alist)))
     (setq alist
          (setq prev (setq gnus-newsrc-alist
     (setq gnus-newsrc-hashtb (gnus-make-hashtable (length alist)))
     (setq alist
          (setq prev (setq gnus-newsrc-alist
-                          (if (equal (car (car gnus-newsrc-alist))
+                          (if (equal (caar gnus-newsrc-alist)
                                      "dummy.group")
                               gnus-newsrc-alist
                             (cons (list "dummy.group" 0 nil) alist)))))
     (while alist
       (gnus-sethash
                                      "dummy.group")
                               gnus-newsrc-alist
                             (cons (list "dummy.group" 0 nil) alist)))))
     (while alist
       (gnus-sethash
-       (car (car alist))
-       (cons (and ohashtb (car (gnus-gethash (car (car alist)) ohashtb)))
+       (caar alist)
+       (cons (and ohashtb (car (gnus-gethash (caar alist) ohashtb)))
             prev)
        gnus-newsrc-hashtb)
       (setq prev alist
             prev)
        gnus-newsrc-hashtb)
       (setq prev alist
@@ -15334,30 +15341,30 @@ newsgroup."
        ;; active limit.
        (while (and (cdr range)
                    (>= (car active)
        ;; active limit.
        (while (and (cdr range)
                    (>= (car active)
-                       (or (and (atom (car (cdr range))) (car (cdr range)))
-                           (car (car (cdr range))))))
+                       (or (and (atom (cadr range)) (cadr range))
+                           (caadr range))))
          (if (numberp (car range))
              (setcar range
                      (cons (car range)
          (if (numberp (car range))
              (setcar range
                      (cons (car range)
-                           (or (and (numberp (car (cdr range)))
-                                    (car (cdr range)))
-                               (cdr (car (cdr range))))))
+                           (or (and (numberp (cadr range))
+                                    (cadr range))
+                               (cdadr range))))
            (setcdr (car range)
                    (or (and (numberp (nth 1 range)) (nth 1 range))
            (setcdr (car range)
                    (or (and (numberp (nth 1 range)) (nth 1 range))
-                       (cdr (car (cdr range))))))
-         (setcdr range (cdr (cdr 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)))
        ;; Adjust the first element to be the same as the lower limit.
        (if (and (not (atom (car range)))
-                (< (cdr (car range)) (car active)))
+                (< (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)
            (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 (car (cdr srange)))
-                                  (car (cdr srange)))
-                             (car (car (cdr srange)))) (cdr active)))
+                     (<= (or (and (atom (cadr srange))
+                                  (cadr srange))
+                             (caadr srange)) (cdr active)))
            (setq srange (cdr srange)))
          (if (cdr srange)
              ;; Nuke all remaining illegal elements.
            (setq srange (cdr srange)))
          (if (cdr srange)
              ;; Nuke all remaining illegal elements.
@@ -15365,14 +15372,14 @@ newsgroup."
 
          ;; Adjust the final element.
          (if (and (not (atom (car srange)))
 
          ;; Adjust the final element.
          (if (and (not (atom (car srange)))
-                  (> (cdr (car srange)) (cdr active)))
+                  (> (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))
              (setcdr (car srange) (cdr active))))
        ;; Compute the number of unread articles.
        (while range
          (setq num (+ num (- (1+ (or (and (atom (car range)) (car range))
-                                     (cdr (car range))))
+                                     (cdar range)))
                              (or (and (atom (car range)) (car range))
                              (or (and (atom (car range)) (car range))
-                                 (car (car range))))))
+                                 (caar range)))))
          (setq range (cdr range)))
        (setq num (max 0 (- (cdr active) num)))))
       ;; Set the number of unread articles.
          (setq range (cdr range)))
        (setq num (max 0 (- (cdr active) num)))))
       ;; Set the number of unread articles.
@@ -15508,8 +15515,7 @@ Returns whether the updating was successful."
                                 (concat " from " where) "")
                             (car method))))
          (gnus-message 5 mesg)
                                 (concat " from " where) "")
                             (car method))))
          (gnus-message 5 mesg)
-         (if (not (gnus-check-server method))
-             ()
+         (when (gnus-check-server method)
            ;; Request that the backend scan its incoming messages.
            (and (gnus-check-backend-function 'request-scan (car method))
                 (gnus-request-scan nil method))
            ;; Request that the backend scan its incoming messages.
            (and (gnus-check-backend-function 'request-scan (car method))
                 (gnus-request-scan nil method))
@@ -15518,28 +15524,28 @@ Returns whether the updating was successful."
                   (gnus-check-backend-function 'retrieve-groups (car method)))
              (let ((newsrc (cdr gnus-newsrc-alist))
                    (gmethod (gnus-server-get-method nil method))
                   (gnus-check-backend-function 'retrieve-groups (car method)))
              (let ((newsrc (cdr gnus-newsrc-alist))
                    (gmethod (gnus-server-get-method nil method))
-                   groups)
-               (while newsrc
-                 (and (gnus-server-equal
-                       (gnus-find-method-for-group
-                        (car (car newsrc)) (car newsrc))
-                       gmethod)
-                      (setq groups (cons (gnus-group-real-name
-                                          (car (car newsrc))) groups)))
-                 (setq newsrc (cdr newsrc)))
-               (gnus-check-server method)
-               (setq list-type (gnus-retrieve-groups groups method))
-               (cond
-                ((not list-type)
-                 (gnus-message
-                  1 "Cannot read partial active file from %s server."
-                  (car method))
-                 (ding)
-                 (sit-for 2))
-                ((eq list-type 'active)
-                 (gnus-active-to-gnus-format method gnus-active-hashtb))
-                (t
-                 (gnus-groups-to-gnus-format method gnus-active-hashtb)))))
+                   groups info)
+               (while (setq info (pop newsrc))
+                 (when (gnus-server-equal
+                        (gnus-find-method-for-group 
+                         (gnus-info-group info) info)
+                        gmethod)
+                   (push (gnus-group-real-name (gnus-info-group info)) 
+                         groups)))
+               (when groups
+                 (gnus-check-server method)
+                 (setq list-type (gnus-retrieve-groups groups method))
+                 (cond
+                  ((not list-type)
+                   (gnus-message
+                    1 "Cannot read partial active file from %s server."
+                    (car method))
+                   (ding)
+                   (sit-for 2))
+                  ((eq list-type 'active)
+                   (gnus-active-to-gnus-format method gnus-active-hashtb))
+                  (t
+                   (gnus-groups-to-gnus-format method gnus-active-hashtb))))))
             (t
              (if (not (gnus-request-list method))
                  (progn
             (t
              (if (not (gnus-request-list method))
                  (progn
@@ -15785,7 +15791,7 @@ If FORCE is non-nil, the .newsrc file is read."
        (let ((info (gnus-get-info (car group))))
          (if info
              (progn
        (let ((info (gnus-get-info (car group))))
          (if info
              (progn
-               (gnus-info-set-read info (cdr (cdr group)))
+               (gnus-info-set-read info (cddr group))
                (gnus-info-set-level
                 info (if (nth 1 group) gnus-level-default-subscribed
                        gnus-level-default-unsubscribed))
                (gnus-info-set-level
                 info (if (nth 1 group) gnus-level-default-subscribed
                        gnus-level-default-unsubscribed))
@@ -15796,7 +15802,7 @@ If FORCE is non-nil, the .newsrc file is read."
                         (list (car group)
                               (if (nth 1 group) gnus-level-default-subscribed
                                 gnus-level-default-unsubscribed)
                         (list (car group)
                               (if (nth 1 group) gnus-level-default-subscribed
                                 gnus-level-default-unsubscribed)
-                              (cdr (cdr group))))
+                              (cddr group)))
                   gnus-newsrc-alist)))
          (if (setq m (assoc (car group) marked))
              (gnus-info-set-marks
                   gnus-newsrc-alist)))
          (if (setq m (assoc (car group) marked))
              (gnus-info-set-marks
@@ -15806,7 +15812,7 @@ If FORCE is non-nil, the .newsrc file is read."
        (setq newsrc (cdr newsrc)))
       (setq newsrc killed)
       (while newsrc
        (setq newsrc (cdr newsrc)))
       (setq newsrc killed)
       (while newsrc
-       (setcar newsrc (car (car newsrc)))
+       (setcar newsrc (caar newsrc))
        (setq newsrc (cdr newsrc)))
       (setq gnus-killed-list killed))
     ;; The .el file version of this variable does not begin with
        (setq newsrc (cdr newsrc)))
       (setq gnus-killed-list killed))
     ;; The .el file version of this variable does not begin with
@@ -16005,8 +16011,8 @@ If FORCE is non-nil, the .newsrc file is read."
            entry mentry)
        (while rc
          (or (null (nth 4 (car rc)))   ; It's a native group.
            entry mentry)
        (while rc
          (or (null (nth 4 (car rc)))   ; It's a native group.
-             (assoc (car (car rc)) newsrc) ; It's already in the alist.
-             (if (setq entry (assoc (car (car prev)) newsrc))
+             (assoc (caar rc) newsrc) ; It's already in the alist.
+             (if (setq entry (assoc (caar prev) newsrc))
                  (setcdr (setq mentry (memq entry newsrc))
                          (cons (car rc) (cdr mentry)))
                (setq newsrc (cons (car rc) newsrc))))
                  (setcdr (setq mentry (memq entry newsrc))
                          (cons (car rc) (cdr mentry)))
                (setq newsrc (cons (car rc) newsrc))))
@@ -16233,7 +16239,7 @@ If FORCE is non-nil, the .newsrc file is read."
                              (list (nth 5 (file-attributes file)) file))
                            slave-files)
                    (lambda (f1 f2)
                              (list (nth 5 (file-attributes file)) file))
                            slave-files)
                    (lambda (f1 f2)
-                     (or (< (car (car f1)) (car (car f2)))
+                     (or (< (caar f1) (caar f2))
                          (< (nth 1 (car f1)) (nth 1 (car f2)))))))
        (while slave-files
          (erase-buffer)
                          (< (nth 1 (car f1)) (nth 1 (car f2)))))))
        (while slave-files
          (erase-buffer)
index 1a7a0b2..0f64f73 100644 (file)
     (save-excursion
       (set-buffer nnbabyl-mbox-buffer)
       (narrow-to-region
     (save-excursion
       (set-buffer nnbabyl-mbox-buffer)
       (narrow-to-region
-       (car (car nnbabyl-previous-buffer-mode))
-       (cdr (car nnbabyl-previous-buffer-mode)))
+       (caar nnbabyl-previous-buffer-mode)
+       (cdar nnbabyl-previous-buffer-mode))
       (funcall (cdr nnbabyl-previous-buffer-mode))))
   (setq nnbabyl-current-server nil
        nnbabyl-mbox-buffer nil)
       (funcall (cdr nnbabyl-previous-buffer-mode))))
   (setq nnbabyl-current-server nil
        nnbabyl-mbox-buffer nil)
          (forward-char -1)
          (while group-art
            (insert (format "X-Gnus-Newsgroup: %s:%d   %s\n" 
          (forward-char -1)
          (while group-art
            (insert (format "X-Gnus-Newsgroup: %s:%d   %s\n" 
-                           (car (car group-art)) (cdr (car group-art))
+                           (caar group-art) (cdar group-art)
                            (current-time-string)))
            (setq group-art (cdr group-art)))))
     t))
 
 (defun nnbabyl-active-number (group)
   ;; Find the next article number in GROUP.
                            (current-time-string)))
            (setq group-art (cdr group-art)))))
     t))
 
 (defun nnbabyl-active-number (group)
   ;; Find the next article number in GROUP.
-  (let ((active (car (cdr (assoc group nnbabyl-group-alist)))))
+  (let ((active (cadr (assoc group nnbabyl-group-alist))))
     (if active
        (setcdr active (1+ (cdr active)))
       ;; This group is new, so we create a new entry for it.
     (if active
        (setcdr active (1+ (cdr active)))
       ;; This group is new, so we create a new entry for it.
index d1ca608..843f1f5 100644 (file)
   (nnheader-change-server 'nndir server defs)
   (unless (assq 'nndir-directory defs)
     (setq nndir-directory server))
   (nnheader-change-server 'nndir server defs)
   (unless (assq 'nndir-directory defs)
     (setq nndir-directory server))
-  (cond 
-   ((not (file-exists-p nndir-directory))
-    (nndir-close-server)
-    (nnheader-report 'nndir "No such file or directory: %s" nndir-directory))
-   ((not (file-directory-p (file-truename nndir-directory)))
-    (nndir-close-server)
-    (nnheader-report 'nndir "Not a directory: %s" nndir-directory))
-   (t
-    (nnheader-report 'nndir "Opened server %s using directory %s"
-                    server nndir-directory)
-    t)))
+  (let (err)
+    (cond 
+     ((not (condition-case arg
+              (file-exists-p nndir-directory)
+            (ftp-error (setq err (format "%s" arg)))))
+      (nndir-close-server)
+      (nnheader-report 
+       'nndir (or err "No such file or directory: %s" nndir-directory)))
+     ((not (file-directory-p (file-truename nndir-directory)))
+      (nndir-close-server)
+      (nnheader-report 'nndir "Not a directory: %s" nndir-directory))
+     (t
+      (nnheader-report 'nndir "Opened server %s using directory %s"
+                      server nndir-directory)
+      t))))
 
 (defun nndir-close-server (&optional server)
   (setq nndir-current-server nil)
 
 (defun nndir-close-server (&optional server)
   (setq nndir-current-server nil)
index b4ff3f1..5825614 100644 (file)
@@ -379,7 +379,7 @@ One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward',
       (setq nndoc-article-type (funcall (cdr guess))))
     ;; Set the nndoc variables.
     (while defs
       (setq nndoc-article-type (funcall (cdr guess))))
     ;; Set the nndoc variables.
     (while defs
-      (set (intern (format "nndoc-%s" (car (car defs))))
+      (set (intern (format "nndoc-%s" (caar defs)))
           (cdr (pop defs))))))
 
 (defun nndoc-search (regexp)
           (cdr (pop defs))))))
 
 (defun nndoc-search (regexp)
index 6b415f9..f19c7a9 100644 (file)
       nndraft-buffer-name)))
 
 (defun nndraft-request-update-info (group info &optional server)
       nndraft-buffer-name)))
 
 (defun nndraft-request-update-info (group info &optional server)
-  (setcar (cdr (cdr info)) nil)
+  (setcar (cddr info) nil)
   (when (nth 3 info)
     (setcar (nthcdr 3 info) nil)))
 
   (when (nth 3 info)
     (setcar (nthcdr 3 info) nil)))
 
index 8c7cfcd..eb4a317 100644 (file)
@@ -213,7 +213,7 @@ If this variable is nil, no files will be excluded.")
          (error nil)))
     (or nneething-active (setq nneething-active (cons 1 0)))
     ;; Old nneething had a different map format.
          (error nil)))
     (or nneething-active (setq nneething-active (cons 1 0)))
     ;; Old nneething had a different map format.
-    (when (and (cdr (car nneething-map))
+    (when (and (cdar nneething-map)
               (atom (cdar nneething-map)))
       (setq nneething-map
            (mapcar (lambda (n)
               (atom (cdar nneething-map)))
       (setq nneething-map
            (mapcar (lambda (n)
index 135b27c..95488d2 100644 (file)
@@ -171,7 +171,7 @@ it.")
 (defun nnfolder-request-close ()
   (let ((alist nnfolder-buffer-alist))
     (while alist
 (defun nnfolder-request-close ()
   (let ((alist nnfolder-buffer-alist))
     (while alist
-      (nnfolder-close-group (car (car alist)) nil t)
+      (nnfolder-close-group (caar alist) nil t)
       (setq alist (cdr alist))))
   (setq nnfolder-buffer-alist nil
        nnfolder-current-server nil
       (setq alist (cdr alist))))
   (setq nnfolder-buffer-alist nil
        nnfolder-current-server nil
@@ -225,7 +225,7 @@ it.")
            t)
        (let* ((active (assoc group nnfolder-group-alist))
               (group (car active))
            t)
        (let* ((active (assoc group nnfolder-group-alist))
               (group (car active))
-              (range (car (cdr active)))
+              (range (cadr active))
               (minactive (car range))
               (maxactive (cdr range)))
          (cond 
               (minactive (car range))
               (maxactive (cdr range)))
          (cond 
@@ -322,7 +322,7 @@ it.")
        (setq articles (cdr articles)))
       (and (buffer-modified-p) (save-buffer))
       ;; Find the lowest active article in this group.
        (setq articles (cdr articles)))
       (and (buffer-modified-p) (save-buffer))
       ;; Find the lowest active article in this group.
-      (let* ((active (car (cdr (assoc newsgroup nnfolder-group-alist))))
+      (let* ((active (cadr (assoc newsgroup nnfolder-group-alist)))
             (marker (concat "\n" nnfolder-article-marker))
             (number "[0-9]+")
             (activemin (cdr active)))
             (marker (concat "\n" nnfolder-article-marker))
             (number "[0-9]+")
             (activemin (cdr active)))
@@ -601,7 +601,7 @@ it.")
   (save-excursion 
     ;; Find the next article number in GROUP.
     (prog1
   (save-excursion 
     ;; Find the next article number in GROUP.
     (prog1
-       (let ((active (car (cdr (assoc group nnfolder-group-alist)))))
+       (let ((active (cadr (assoc group nnfolder-group-alist))))
          (if active
              (setcdr active (1+ (cdr active)))
            ;; This group is new, so we create a new entry for it.
          (if active
              (setcdr active (1+ (cdr active)))
            ;; This group is new, so we create a new entry for it.
@@ -642,8 +642,8 @@ it.")
     (let ((delim (concat "^" rmail-unix-mail-delimiter))
          (marker (concat "\n" nnfolder-article-marker))
          (number "[0-9]+")
     (let ((delim (concat "^" rmail-unix-mail-delimiter))
          (marker (concat "\n" nnfolder-article-marker))
          (number "[0-9]+")
-         (active (car (cdr (assoc nnfolder-current-group 
-                                  nnfolder-group-alist))))
+         (active (cadr (assoc nnfolder-current-group 
+                                  nnfolder-group-alist)))
          activenumber activemin start end)
       (goto-char (point-min))
       ;;
          activenumber activemin start end)
       (goto-char (point-min))
       ;;
index a9b6f03..b646cdb 100644 (file)
@@ -164,16 +164,16 @@ on your system, you could say something like:
     ;; use the definitions from the `defs' list where that is
     ;; possible. 
     (while s
     ;; use the definitions from the `defs' list where that is
     ;; possible. 
     (while s
-      (set (car (car s)
-          (if (setq val (assq (car (car s)) defs))
+      (set (caar s
+          (if (setq val (assq (caar s) defs))
               (nth 1 val)
             (nth 1 (car s))))
       (setq s (cdr s)))
     ;; The we go through the defs list and set any variables that were
     ;; not set in the first sweep.
     (while defs
               (nth 1 val)
             (nth 1 (car s))))
       (setq s (cdr s)))
     ;; The we go through the defs list and set any variables that were
     ;; not set in the first sweep.
     (while defs
-      (if (not (assq (car (car defs)) server))
-         (set (car (car defs)
+      (if (not (assq (caar defs) server))
+         (set (caar defs
               (if (and (symbolp (nth 1 (car defs)))
                        (not (boundp (nth 1 (car defs)))))
                   (nth 1 (car defs))
               (if (and (symbolp (nth 1 (car defs)))
                        (not (boundp (nth 1 (car defs)))))
                   (nth 1 (car defs))
@@ -183,15 +183,13 @@ on your system, you could say something like:
 (defun nnheader-save-variables (server)
   (let (out)
     (while server
 (defun nnheader-save-variables (server)
   (let (out)
     (while server
-      (setq out (cons (list (car (car server)) 
-                           (symbol-value (car (car server))))
-                     out))
+      (push (list (caar server) (symbol-value (caar server))) out)
       (setq server (cdr server)))
     (nreverse out)))
 
 (defun nnheader-restore-variables (state)
   (while state
       (setq server (cdr server)))
     (nreverse out)))
 
 (defun nnheader-restore-variables (state)
   (while state
-    (set (car (car state)) (nth 1 (car state)))
+    (set (caar state) (nth 1 (car state)))
     (setq state (cdr state))))
 
 (defun nnheader-change-server (backend server defs)
     (setq state (cdr state))))
 
 (defun nnheader-change-server (backend server defs)
index 7b669ae..5025c79 100644 (file)
@@ -226,10 +226,10 @@ Finds out what articles are to be part of the nnkiboze groups."
     ;; We have copied all the newsrc alist info over to local copies
     ;; so that we can mess all we want with these lists.
     (while newsrc
     ;; We have copied all the newsrc alist info over to local copies
     ;; so that we can mess all we want with these lists.
     (while newsrc
-      (if (string-match "nnkiboze" (car (car newsrc)))
+      (if (string-match "nnkiboze" (caar newsrc))
          ;; For each kiboze group, we call this function to generate
          ;; it.  
          ;; For each kiboze group, we call this function to generate
          ;; it.  
-         (nnkiboze-generate-group (car (car newsrc))))
+         (nnkiboze-generate-group (caar newsrc)))
       (setq newsrc (cdr newsrc)))))
 
 (defun nnkiboze-score-file (group)
       (setq newsrc (cdr newsrc)))))
 
 (defun nnkiboze-score-file (group)
@@ -284,14 +284,14 @@ Finds out what articles are to be part of the nnkiboze groups."
     (setq newsrc nnkiboze-newsrc)
     (while newsrc
       (if (not (setq active (gnus-gethash 
     (setq newsrc nnkiboze-newsrc)
     (while newsrc
       (if (not (setq active (gnus-gethash 
-                            (car (car newsrc)) gnus-active-hashtb)))
+                            (caar newsrc) gnus-active-hashtb)))
          ;; This group isn't active after all, so we remove it from
          ;; the list of component groups.
          (setq nnkiboze-newsrc (delq (car newsrc) nnkiboze-newsrc))
          ;; This group isn't active after all, so we remove it from
          ;; the list of component groups.
          (setq nnkiboze-newsrc (delq (car newsrc) nnkiboze-newsrc))
-       (setq lowest (cdr (car newsrc)))
+       (setq lowest (cdar newsrc))
        ;; Ok, we have a valid component group, so we jump to it. 
        (switch-to-buffer gnus-group-buffer)
        ;; Ok, we have a valid component group, so we jump to it. 
        (switch-to-buffer gnus-group-buffer)
-       (gnus-group-jump-to-group (car (car newsrc)))
+       (gnus-group-jump-to-group (caar newsrc))
        ;; We set all list of article marks to nil.  Since we operate
        ;; on copies of the real lists, we can destroy anything we
        ;; want here.
        ;; We set all list of article marks to nil.  Since we operate
        ;; on copies of the real lists, we can destroy anything we
        ;; want here.
@@ -315,13 +315,13 @@ Finds out what articles are to be part of the nnkiboze groups."
          (and (eq method gnus-select-method) (setq method nil))
          ;; We go through the list of scored articles.
          (while gnus-newsgroup-scored
          (and (eq method gnus-select-method) (setq method nil))
          ;; We go through the list of scored articles.
          (while gnus-newsgroup-scored
-           (if (> (car (car gnus-newsgroup-scored)) lowest)
+           (if (> (caar gnus-newsgroup-scored) lowest)
                ;; If it has a good score, then we enter this article
                ;; into the kiboze group.
                (nnkiboze-enter-nov 
                 nov-buffer
                 (gnus-summary-article-header 
                ;; If it has a good score, then we enter this article
                ;; into the kiboze group.
                (nnkiboze-enter-nov 
                 nov-buffer
                 (gnus-summary-article-header 
-                 (car (car gnus-newsgroup-scored)))
+                 (caar gnus-newsgroup-scored))
                 (if method
                     (gnus-group-prefixed-name gnus-newsgroup-name method)
                   gnus-newsgroup-name)))
                 (if method
                     (gnus-group-prefixed-name gnus-newsgroup-name method)
                   gnus-newsgroup-name)))
index 49cbd6b..5535c8c 100644 (file)
@@ -436,8 +436,8 @@ nn*-request-list should have been called before calling this function."
        (erase-buffer)
        (while group-assoc
          (setq group (pop group-assoc))
        (erase-buffer)
        (while group-assoc
          (setq group (pop group-assoc))
-         (insert (format "%s %d %d y\n" (car group) (cdr (car (cdr group)) )
-                         (car (car (cdr group))))))
+         (insert (format "%s %d %d y\n" (car group) (cdadr group) 
+                         (caadr group))))
        (unless (file-exists-p (file-name-directory file-name))
          (make-directory (file-name-directory file-name) t))
        (write-region 1 (point-max) (expand-file-name file-name) nil 'nomesg)
        (unless (file-exists-p (file-name-directory file-name))
          (make-directory (file-name-directory file-name) t))
        (write-region 1 (point-max) (expand-file-name file-name) nil 'nomesg)
@@ -529,7 +529,7 @@ nn*-request-list should have been called before calling this function."
        found)
     (while (not found)
       (if (re-search-forward delim nil t)
        found)
     (while (not found)
       (if (re-search-forward delim nil t)
-         (when (looking-at "[^ :]+:")
+         (when (looking-at "[^\000-\037\177-\377\ :]+:")
            (forward-line -1)
            (setq found 'yes))
        (setq found 'no)))
            (forward-line -1)
            (setq found 'yes))
        (setq found 'no)))
@@ -709,8 +709,7 @@ FUNC will be called with the group name to determine the article number."
        ;; If there is only just one group to put everything in, we
        ;; just return a list with just this one method in.
        (setq group-art
        ;; If there is only just one group to put everything in, we
        ;; just return a list with just this one method in.
        (setq group-art
-             (list (cons (car (car methods))
-                         (funcall func (car (car methods))))))
+             (list (cons (caar methods) (funcall func (caar methods)))))
       ;; We do actual comparison.
       (save-excursion
        ;; Find headers.
       ;; We do actual comparison.
       (save-excursion
        ;; Find headers.
@@ -747,7 +746,7 @@ FUNC will be called with the group name to determine the article number."
                (when (and
                       (condition-case () 
                           (if (stringp (nth 1 method))
                (when (and
                       (condition-case () 
                           (if (stringp (nth 1 method))
-                              (re-search-backward (car (cdr method)) nil t)
+                              (re-search-backward (cadr method) nil t)
                             ;; Function to say whether this is a match.
                             (funcall (nth 1 method) (car method)))
                         (error nil))
                             ;; Function to say whether this is a match.
                             (funcall (nth 1 method) (car method)))
                         (error nil))
@@ -791,8 +790,7 @@ Return the number of characters in the body."
                         (progn (forward-line 1) (point))))
       (insert (format "Xref: %s" (system-name)))
       (while group-alist
                         (progn (forward-line 1) (point))))
       (insert (format "Xref: %s" (system-name)))
       (while group-alist
-       (insert (format " %s:%d" (car (car group-alist)) 
-                       (cdr (car group-alist))))
+       (insert (format " %s:%d" (caar group-alist) (cdar group-alist)))
        (setq group-alist (cdr group-alist)))
       (insert "\n"))))
 
        (setq group-alist (cdr group-alist)))
       (insert "\n"))))
 
index 2e64101..fca9cba 100644 (file)
          (forward-char -1)
          (while group-art
            (insert (format "X-Gnus-Newsgroup: %s:%d   %s\n" 
          (forward-char -1)
          (while group-art
            (insert (format "X-Gnus-Newsgroup: %s:%d   %s\n" 
-                           (car (car group-art)) (cdr (car group-art))
+                           (caar group-art) (cdar group-art)
                            (current-time-string)))
            (setq group-art (cdr group-art)))))
     t))
 
 (defun nnmbox-active-number (group)
   ;; Find the next article number in GROUP.
                            (current-time-string)))
            (setq group-art (cdr group-art)))))
     t))
 
 (defun nnmbox-active-number (group)
   ;; Find the next article number in GROUP.
-  (let ((active (car (cdr (assoc group nnmbox-group-alist)))))
+  (let ((active (cadr (assoc group nnmbox-group-alist))))
     (if active
        (setcdr active (1+ (cdr active)))
       ;; This group is new, so we create a new entry for it.
     (if active
        (setcdr active (1+ (cdr active)))
       ;; This group is new, so we create a new entry for it.
index b9a0e2a..333e154 100644 (file)
     (let ((ga group-art)
          first)
       (while ga
     (let ((ga group-art)
          first)
       (while ga
-       (nnmh-possibly-create-directory (car (car ga)))
+       (nnmh-possibly-create-directory (caar ga))
        (let ((file (concat (nnmail-group-pathname 
        (let ((file (concat (nnmail-group-pathname 
-                            (car (car ga)) nnmh-directory) 
-                           (int-to-string (cdr (car ga))))))
+                            (caar ga) nnmh-directory) 
+                           (int-to-string (cdar ga)))))
          (if first
              ;; It was already saved, so we just make a hard link.
              (funcall nnmail-crosspost-link-function first file t)
          (if first
              ;; It was already saved, so we just make a hard link.
              (funcall nnmail-crosspost-link-function first file t)
 
 (defun nnmh-active-number (group)
   "Compute the next article number in GROUP."
 
 (defun nnmh-active-number (group)
   "Compute the next article number in GROUP."
-  (let ((active (car (cdr (assoc group nnmh-group-alist)))))
+  (let ((active (cadr (assoc group nnmh-group-alist))))
     ;; The group wasn't known to nnmh, so we just create an active
     ;; entry for it.   
     (or active
     ;; The group wasn't known to nnmh, so we just create an active
     ;; entry for it.   
     (or active
     ;; Remove all deleted articles.
     (let ((art articles))
       (while art
     ;; Remove all deleted articles.
     (let ((art articles))
       (while art
-       (if (not (memq (car (car art)) files))
+       (if (not (memq (caar art) files))
            (setq articles (delq (car art) articles)))
        (setq art (cdr art))))
     ;; Check whether the highest-numbered articles really are the ones
            (setq articles (delq (car art) articles)))
        (setq art (cdr art))))
     ;; Check whether the highest-numbered articles really are the ones
       (while (and art 
                  (not (equal 
                        (nth 5 (file-attributes 
       (while (and art 
                  (not (equal 
                        (nth 5 (file-attributes 
-                               (concat dir (int-to-string (car (car art))))))
-                       (cdr (car art)))))
+                               (concat dir (int-to-string (caar art)))))
+                       (cdar art))))
        (setq articles (delq (car art) articles))
        (setq articles (delq (car art) articles))
-       (setq new (cons (car (car art)) new))
+       (setq new (cons (caar art) new))
        (setq art (cdr art))))
     ;; Go through all the new articles and add them, and their
     ;; time-stamps to the list.
        (setq art (cdr art))))
     ;; Go through all the new articles and add them, and their
     ;; time-stamps to the list.
index c72d604..8a150d8 100644 (file)
@@ -477,12 +477,12 @@ all. This may very well take some time.")
        ;; It wasn't there, so we look through the other groups as well.
        (while (and (not number)
                    alist)
        ;; It wasn't there, so we look through the other groups as well.
        (while (and (not number)
                    alist)
-         (or (string= (car (car alist)) nnml-current-group)
-             (setq number (nnml-find-id (car (car alist)) id)))
+         (or (string= (caar alist) nnml-current-group)
+             (setq number (nnml-find-id (caar alist) id)))
          (or number
              (setq alist (cdr alist))))
        (and number
          (or number
              (setq alist (cdr alist))))
        (and number
-            (cons (car (car alist)) number))))))
+            (cons (caar alist) number))))))
 
 (defun nnml-find-id (group id)
   (erase-buffer)
 
 (defun nnml-find-id (group id)
   (erase-buffer)
@@ -570,10 +570,10 @@ all. This may very well take some time.")
     (let ((ga group-art)
          first)
       (while ga
     (let ((ga group-art)
          first)
       (while ga
-       (nnml-possibly-create-directory (car (car ga)))
+       (nnml-possibly-create-directory (caar ga))
        (let ((file (concat (nnmail-group-pathname 
        (let ((file (concat (nnmail-group-pathname 
-                            (car (car ga)) nnml-directory)
-                           (int-to-string (cdr (car ga))))))
+                            (caar ga) nnml-directory)
+                           (int-to-string (cdar ga)))))
          (if first
              ;; It was already saved, so we just make a hard link.
              (funcall nnmail-crosspost-link-function first file t)
          (if first
              ;; It was already saved, so we just make a hard link.
              (funcall nnmail-crosspost-link-function first file t)
@@ -589,13 +589,13 @@ all. This may very well take some time.")
     ;; Output the nov line to all nov databases that should have it.
     (let ((ga group-art))
       (while ga
     ;; Output the nov line to all nov databases that should have it.
     (let ((ga group-art))
       (while ga
-       (nnml-add-nov (car (car ga)) (cdr (car ga)) nov-line)
+       (nnml-add-nov (caar ga) (cdar ga) nov-line)
        (setq ga (cdr ga))))
     group-art))
 
 (defun nnml-active-number (group)
   "Compute the next article number in GROUP."
        (setq ga (cdr ga))))
     group-art))
 
 (defun nnml-active-number (group)
   "Compute the next article number in GROUP."
-  (let ((active (car (cdr (assoc group nnml-group-alist)))))
+  (let ((active (cadr (assoc group nnml-group-alist))))
     ;; The group wasn't known to nnml, so we just create an active
     ;; entry for it.   
     (or active
     ;; The group wasn't known to nnml, so we just create an active
     ;; entry for it.   
     (or active
@@ -689,8 +689,8 @@ all. This may very well take some time.")
 (defun nnml-save-nov ()
   (save-excursion
     (while nnml-nov-buffer-alist
 (defun nnml-save-nov ()
   (save-excursion
     (while nnml-nov-buffer-alist
-      (when (buffer-name (cdr (car nnml-nov-buffer-alist)))
-       (set-buffer (cdr (car nnml-nov-buffer-alist)))
+      (when (buffer-name (cdar nnml-nov-buffer-alist))
+       (set-buffer (cdar nnml-nov-buffer-alist))
        (and (buffer-modified-p)
             (write-region 
              1 (point-max) (buffer-file-name) nil 'nomesg))
        (and (buffer-modified-p)
             (write-region 
              1 (point-max) (buffer-file-name) nil 'nomesg))
index cb98ace..84f8e14 100644 (file)
@@ -111,7 +111,7 @@ The SOUP packet file name will be inserted at the %s.")
        ;; articles in SEQUENCE come from.
        (while (and areas sequence)
          ;; Peel off areas that are below sequence.
        ;; articles in SEQUENCE come from.
        (while (and areas sequence)
          ;; Peel off areas that are below sequence.
-         (while (and areas (< (cdr (car (car areas))) (car sequence)))
+         (while (and areas (< (cdaar areas) (car sequence)))
            (setq areas (cdr areas)))
          (when areas
            ;; This is a useful area.
            (setq areas (cdr areas)))
          (when areas
            ;; This is a useful area.
@@ -127,7 +127,7 @@ The SOUP packet file name will be inserted at the %s.")
              (setq use-nov nil))
            ;; We assign the portion of `sequence' that is relevant to
            ;; this MSG packet to this packet.
              (setq use-nov nil))
            ;; We assign the portion of `sequence' that is relevant to
            ;; this MSG packet to this packet.
-           (while (and sequence (<= (car sequence) (cdr (car (car areas)))))
+           (while (and sequence (<= (car sequence) (cdaar areas)))
              (push (car sequence) this-area-seq)
              (setq sequence (cdr sequence)))
            (setcar useful-areas (cons (nreverse this-area-seq)
              (push (car sequence) this-area-seq)
              (setq sequence (cdr sequence)))
            (setcar useful-areas (cons (nreverse this-area-seq)
@@ -165,12 +165,12 @@ The SOUP packet file name will be inserted at the %s.")
              'nov)
          ;; We insert HEADs.
          (while useful-areas
              'nov)
          ;; We insert HEADs.
          (while useful-areas
-           (setq articles (car (car useful-areas))
+           (setq articles (caar useful-areas)
                  useful-areas (cdr useful-areas))
            (while articles
              (when (setq msg-buf
                          (nnsoup-narrow-to-article 
                  useful-areas (cdr useful-areas))
            (while articles
              (when (setq msg-buf
                          (nnsoup-narrow-to-article 
-                          (car articles) (cdr (car useful-areas)) 'head))
+                          (car articles) (cdar useful-areas) 'head))
                (goto-char (point-max))
                (insert (format "221 %d Article retrieved.\n" (car articles)))
                (insert-buffer-substring msg-buf)
                (goto-char (point-max))
                (insert (format "221 %d Article retrieved.\n" (car articles)))
                (insert-buffer-substring msg-buf)
@@ -344,7 +344,7 @@ The SOUP packet file name will be inserted at the %s.")
       (when (not mod-time)
        (setcdr (cdr total-infolist) (delq info (cddr total-infolist)))))
     (if (cddr total-infolist)
       (when (not mod-time)
        (setcdr (cdr total-infolist) (delq info (cddr total-infolist)))))
     (if (cddr total-infolist)
-       (setcar active (car (car (car (cdr (cdr total-infolist))))))
+       (setcar active (caaadr (cdr total-infolist)))
       (setcar active (1+ (cdr active))))
     (nnsoup-write-active-file)
     ;; Return the articles that weren't expired.
       (setcar active (1+ (cdr active))))
     (nnsoup-write-active-file)
     ;; Return the articles that weren't expired.
@@ -513,7 +513,7 @@ The SOUP packet file name will be inserted at the %s.")
        (set-buffer (nnsoup-index-buffer prefix))
        (widen)
        (goto-char (point-min))
        (set-buffer (nnsoup-index-buffer prefix))
        (widen)
        (goto-char (point-min))
-       (forward-line (- article (car (car area))))
+       (forward-line (- article (caar area)))
        (setq beg (read (current-buffer)))
        (forward-line 1)
        (if (looking-at "[0-9]+")
        (setq beg (read (current-buffer)))
        (forward-line 1)
        (if (looking-at "[0-9]+")
@@ -536,7 +536,7 @@ The SOUP packet file name will be inserted at the %s.")
        (let ((header (nnsoup-header 
                       (gnus-soup-encoding-format 
                        (gnus-soup-area-encoding (nth 1 area))))))
        (let ((header (nnsoup-header 
                       (gnus-soup-encoding-format 
                        (gnus-soup-area-encoding (nth 1 area))))))
-         (re-search-forward header nil t (- article (car (car area))))
+         (re-search-forward header nil t (- article (caar area)))
          (narrow-to-region
           (match-beginning 0)
           (if (re-search-forward header nil t)
          (narrow-to-region
           (match-beginning 0)
           (if (re-search-forward header nil t)
@@ -585,7 +585,7 @@ The SOUP packet file name will be inserted at the %s.")
 (defun nnsoup-article-to-area (article group)
   "Return the area that ARTICLE in GROUP is located in."
   (let ((areas (cddr (assoc group nnsoup-group-alist))))
 (defun nnsoup-article-to-area (article group)
   "Return the area that ARTICLE in GROUP is located in."
   (let ((areas (cddr (assoc group nnsoup-group-alist))))
-    (while (and areas (< (cdr (car (car areas))) article))
+    (while (and areas (< (cdaar areas) article))
       (setq areas (cdr areas)))
     (and areas (car areas))))
 
       (setq areas (cdr areas)))
     (and areas (car areas))))
 
@@ -725,8 +725,7 @@ The SOUP packet file name will be inserted at the %s.")
                active)
        (nconc elem
               (list
                active)
        (nconc elem
               (list
-               (list (cons (setq min (1+ (cdr (car (car
-                                                    (cdr elem))))))
+               (list (cons (setq min (1+ (cdaadr elem)))
                            (+ min lines))
                      (vector ident group "ncm" "" lines))))
        (setcdr (cadr elem) (+ min lines)))
                            (+ min lines))
                      (vector ident group "ncm" "" lines))))
        (setcdr (cadr elem) (+ min lines)))
@@ -734,7 +733,7 @@ The SOUP packet file name will be inserted at the %s.")
     (message "")
     (setq nnsoup-group-alist active)
     (while active
     (message "")
     (setq nnsoup-group-alist active)
     (while active
-      (setcdr (car active) (nreverse (cdr (car active))))
+      (setcdr (car active) (nreverse (cdar active)))
       (setq active (cdr active)))
     (nnsoup-write-active-file)))
 
       (setq active (cdr active)))
     (nnsoup-write-active-file)))
 
index 6b22ca1..fb8b954 100644 (file)
@@ -476,7 +476,7 @@ there.")
                            (nth 2 tdate) (nth 1 tdate) (nth 0 tdate) 
                            (nth 4 tdate))))
     (+ (* (car unix) 65536.0)
                            (nth 2 tdate) (nth 1 tdate) (nth 0 tdate) 
                            (nth 4 tdate))))
     (+ (* (car unix) 65536.0)
-       (car (cdr unix)))))
+       (cadr unix))))
 
 (provide 'nnspool)
 
 
 (provide 'nnspool)
 
index 3c5fe63..80dfdc5 100644 (file)
@@ -689,7 +689,7 @@ It will prompt for a password."
                  (not (equal proc (nth 1 (assq 'nntp-server-process
                                                (car servers))))))
        (setq servers (cdr servers)))
                  (not (equal proc (nth 1 (assq 'nntp-server-process
                                                (car servers))))))
        (setq servers (cdr servers)))
-      (setq server (car (car servers))))
+      (setq server (caar servers)))
     (when (and server
               nntp-warn-about-losing-connection)
       (message "nntp: Connection closed to server %s" server)
     (when (and server
               nntp-warn-about-losing-connection)
       (message "nntp: Connection closed to server %s" server)
@@ -1325,7 +1325,7 @@ defining this function as macro."
          nart)
       (while (and (>= (setq max (1- max)) 0)
                  articles)
          nart)
       (while (and (>= (setq max (1- max)) 0)
                  articles)
-       (or (memq (setq nart (car (car articles))) nntp-async-fetched)
+       (or (memq (setq nart (caar articles)) nntp-async-fetched)
            (progn
              (nntp-async-send-strings "ARTICLE " (int-to-string nart))
              (setq nntp-async-fetched (cons nart nntp-async-fetched))))
            (progn
              (nntp-async-send-strings "ARTICLE " (int-to-string nart))
              (setq nntp-async-fetched (cons nart nntp-async-fetched))))
index ee1d1f6..4feb737 100644 (file)
@@ -74,11 +74,13 @@ virtual group.")
              beg cgroup active article result prefix)
          (while articles
            (setq article (assq (pop articles) nnvirtual-mapping))
              beg cgroup active article result prefix)
          (while articles
            (setq article (assq (pop articles) nnvirtual-mapping))
-           (when (setq cgroup (cadr article))
-             (gnus-request-group cgroup t)
+           (when (and (setq cgroup (cadr article))
+                      (gnus-check-server
+                       (gnus-find-method-for-group cgroup) t)
+                      (gnus-request-group cgroup t))
              (setq prefix (gnus-group-real-prefix cgroup))
              (when (setq result (gnus-retrieve-headers 
              (setq prefix (gnus-group-real-prefix cgroup))
              (when (setq result (gnus-retrieve-headers 
-                                 (list (caddr article)) cgroup))
+                                 (list (caddr article)) cgroup fetch-old))
                (set-buffer nntp-server-buffer)
                (if (zerop (buffer-size))
                    (nconc (assq cgroup unfetched) (list (caddr article)))
                (set-buffer nntp-server-buffer)
                (if (zerop (buffer-size))
                    (nconc (assq cgroup unfetched) (list (caddr article)))
@@ -111,6 +113,8 @@ virtual group.")
                              (insert ?\t))
                          (insert (format "Xref: %s %s:%d\t" (system-name) 
                                          cgroup (caddr article))))
                              (insert ?\t))
                          (insert (format "Xref: %s %s:%d\t" (system-name) 
                                          cgroup (caddr article))))
+                     (insert (format "Xref: %s %s:%d " (system-name) 
+                                     cgroup (caddr article)))
                      (if (not (string= "" prefix))
                          (while (re-search-forward 
                                  "[^ ]+:[0-9]+"
                      (if (not (string= "" prefix))
                          (while (re-search-forward 
                                  "[^ ]+:[0-9]+"
@@ -325,10 +329,10 @@ virtual group.")
                         nnvirtual-current-group '(nnvirtual ""))))
        (setq nnvirtual-component-groups nil)
        (while newsrc
                         nnvirtual-current-group '(nnvirtual ""))))
        (setq nnvirtual-component-groups nil)
        (while newsrc
-         (and (string-match regexp (car (car newsrc)))
-              (not (string= (car (car newsrc)) virt-group))
+         (and (string-match regexp (caar newsrc))
+              (not (string= (caar newsrc) virt-group))
               (setq nnvirtual-component-groups
               (setq nnvirtual-component-groups
-                    (cons (car (car newsrc)) nnvirtual-component-groups)))
+                    (cons (caar newsrc) nnvirtual-component-groups)))
          (setq newsrc (cdr newsrc))))
       (if nnvirtual-component-groups
          (progn
          (setq newsrc (cdr newsrc))))
       (if nnvirtual-component-groups
          (progn
index 71fa984..5b78f35 100644 (file)
@@ -1,3 +1,7 @@
+Wed Feb 28 04:54:41 1996  Lars Ingebrigtsen  <lars@eyesore.no>
+
+       * gnus.texi (Slow Terminal Connection): Addition.
+
 Sat Feb 24 01:11:40 1996  Mark Borges  <mdb@cdc.noaa.gov>
 
        * gnus.texi: Typo fixes.
 Sat Feb 24 01:11:40 1996  Mark Borges  <mdb@cdc.noaa.gov>
 
        * gnus.texi: Typo fixes.
index f4a249b..9b02cd6 100644 (file)
@@ -7766,9 +7766,13 @@ unfortunate problem, you can set this command to a number.  Gnus will
 then, if it sits waiting longer than that number of seconds for a reply
 from the server, shut down the connection, start a new one, and resend
 the command.  This should hopefully be transparent to the user.  A
 then, if it sits waiting longer than that number of seconds for a reply
 from the server, shut down the connection, start a new one, and resend
 the command.  This should hopefully be transparent to the user.  A
-likely number is 30 seconds.  (You can also @kbd{C-g} if Gnus hangs in
-this manner.  The same thing will hopefully happen, but it can be
-somewhat unsafe.)
+likely number is 30 seconds. 
+
+@item nntp-retry-on-break
+@vindex nntp-retry-on-break
+If this variable is non-@code{nilp, you can also @kbd{C-g} if Gnus
+hangs.  This will have much the same effect as the command timeout
+described above.
 
 @item nntp-server-hook
 @vindex nntp-server-hook
 
 @item nntp-server-hook
 @vindex nntp-server-hook
@@ -11864,7 +11868,9 @@ amount of data that is sent over the wires as much as possible.
 
 @item gnus-auto-center-summary
 Set this to @code{nil} to inhibit Gnus from re-centering the summary
 
 @item gnus-auto-center-summary
 Set this to @code{nil} to inhibit Gnus from re-centering the summary
-buffer all the time.  
+buffer all the time.  If it is @code{vertical}, do only vertical
+re-centering.  If it is neither @code{nil} nor @code{vertical}, do both
+horizontal and vertical recentering.
 
 @item gnus-visible-headers
 Cut down on the headers that are included in the articles to the
 
 @item gnus-visible-headers
 Cut down on the headers that are included in the articles to the