emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r101490: Merge changes made in Gnus t


From: Katsumi Yamaoka
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r101490: Merge changes made in Gnus trunk.
Date: Sun, 19 Sep 2010 10:45:51 +0000
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 101490
author: Lars Magne Ingebrigtsen <address@hidden>
committer: Katsumi Yamaoka <address@hidden>
branch nick: trunk
timestamp: Sun 2010-09-19 10:45:51 +0000
message:
  Merge changes made in Gnus trunk.
  
  nnimap.el (nnimap-finish-retrieve-group-infos): Return data in the nntp 
buffer so the agent can save it.
  nnimap.el (nnimap-open-shell-stream): Bind `process-connection-type' to nil, 
so that CRLF doesn't get translated to \n; (nnimap-open-connection): Don't make 
'shell commands only send \n.
  nnimap.el (nnimap-request-group): Don't make `M-g' bug out on group with no 
marks.
  gnus-agent.el (gnus-agent-load-alist): Nix out the alist if the file doesn't 
exist.
  nnimap.el (nnimap-finish-retrieve-group-infos): Protect against groups that 
have no articles.
  nnimap.el (nnimap-request-article): Check that we really got an article when 
we requested one.
  gnus-html.el (gnus-html-schedule-image-fetching): Ignore all errors from 
url-retrieve, for instance about invalid URLs.
  gnus-agent.el: Change default of gnus-agent-auto-agentize-methods to nil.
modified:
  lisp/gnus/ChangeLog
  lisp/gnus/gnus-agent.el
  lisp/gnus/gnus-html.el
  lisp/gnus/gnus-start.el
  lisp/gnus/nnimap.el
=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog       2010-09-19 09:16:28 +0000
+++ b/lisp/gnus/ChangeLog       2010-09-19 10:45:51 +0000
@@ -1,3 +1,26 @@
+2010-09-19  Lars Magne Ingebrigtsen  <address@hidden>
+
+       * gnus-agent.el (gnus-agent-auto-agentize-methods): Switch the default
+       to nil, so that no methods are automatically agentized.  I think this
+       is probably what most users want.
+
+       * gnus-html.el (gnus-html-schedule-image-fetching): Ignore all errors
+       from url-retrieve, for instance about invalid URLs.
+
+       * nnimap.el (nnimap-finish-retrieve-group-infos): Protect against
+       groups that have no articles.
+       (nnimap-request-article): Check that we really got an article when we
+       requested one.
+
+       * gnus-agent.el (gnus-agent-load-alist): Nix out the alist if the file
+       doesn't exist.
+
+       * nnimap.el (nnimap-finish-retrieve-group-infos): Return data in the
+       nntp buffer so the agent can save it.
+       (nnimap-open-shell-stream): Bind `process-connection-type' to nil, so
+       that CRLF doesn't get translated to \n.
+       (nnimap-open-connection): Don't make 'shell commands only send \n.
+
 2010-09-19  Stefan Monnier  <address@hidden>
 
        * nnml.el (nnml-files): Add prefix to dynamic var `files'.

=== modified file 'lisp/gnus/gnus-agent.el'
--- a/lisp/gnus/gnus-agent.el   2010-09-18 10:02:19 +0000
+++ b/lisp/gnus/gnus-agent.el   2010-09-19 10:45:51 +0000
@@ -184,7 +184,7 @@
   :type 'boolean
   :group 'gnus-agent)
 
-(defcustom gnus-agent-auto-agentize-methods '(nntp)
+(defcustom gnus-agent-auto-agentize-methods nil
   "Initially, all servers from these methods are agentized.
 The user may remove or add servers using the Server buffer.
 See Info node `(gnus)Server Buffer'."
@@ -2104,12 +2104,12 @@
   (let* ((gnus-agent-read-agentview group)
         (file-name-coding-system nnmail-pathname-coding-system)
         (agentview (gnus-agent-article-name ".agentview" group)))
-    (when (file-exists-p agentview)
-      (setq gnus-agent-article-alist
-           (gnus-cache-file-contents
-            agentview
-            'gnus-agent-file-loading-cache
-            'gnus-agent-read-agentview)))))
+    (setq gnus-agent-article-alist
+         (and (file-exists-p agentview)
+              (gnus-cache-file-contents
+               agentview
+               'gnus-agent-file-loading-cache
+               'gnus-agent-read-agentview)))))
 
 (defun gnus-agent-read-agentview (file)
   "Load FILE and do a `read' there."
@@ -2353,7 +2353,6 @@
          (local (or local (gnus-agent-load-local)))
          (symb (intern gmane local))
          (minmax (and (boundp symb) (symbol-value symb))))
-
     (if (cond ((and minmax
                     (or (not (eq min (car minmax)))
                         (not (eq max (cdr minmax))))

=== modified file 'lisp/gnus/gnus-html.el'
--- a/lisp/gnus/gnus-html.el    2010-09-18 23:36:29 +0000
+++ b/lisp/gnus/gnus-html.el    2010-09-19 10:45:51 +0000
@@ -298,9 +298,10 @@
   (gnus-message 8 "gnus-html-schedule-image-fetching: buffer %s, images %s"
                 buffer images)
   (dolist (image images)
-    (url-retrieve (car image)
-                  'gnus-html-image-fetched
-                  (list buffer image))))
+    (ignore-errors
+      (url-retrieve (car image)
+                   'gnus-html-image-fetched
+                   (list buffer image)))))
 
 (defun gnus-html-image-id (url)
   (expand-file-name (sha1 url) gnus-html-cache-directory))

=== modified file 'lisp/gnus/gnus-start.el'
--- a/lisp/gnus/gnus-start.el   2010-09-18 23:36:29 +0000
+++ b/lisp/gnus/gnus-start.el   2010-09-19 10:45:51 +0000
@@ -1808,7 +1808,8 @@
        (gnus-check-backend-function 'finish-retrieve-group-infos (car method))
        (or (not (gnus-agent-method-p method))
           (gnus-online method)))
-      (gnus-finish-retrieve-group-infos method infos early-data))
+      (gnus-finish-retrieve-group-infos method infos early-data)
+      (gnus-agent-save-active method))
      ((gnus-check-backend-function 'retrieve-groups (car method))
       (when (gnus-check-backend-function 'request-scan (car method))
        (dolist (info infos)

=== modified file 'lisp/gnus/nnimap.el'
--- a/lisp/gnus/nnimap.el       2010-09-18 23:36:29 +0000
+++ b/lisp/gnus/nnimap.el       2010-09-19 10:45:51 +0000
@@ -197,14 +197,14 @@
     (current-buffer)))
 
 (defun nnimap-open-shell-stream (name buffer host port)
-  (let ((process (start-process name buffer shell-file-name
-                               shell-command-switch
-                               (format-spec
-                                nnimap-shell-program
-                                (format-spec-make
-                                 ?s host
-                                 ?p port)))))
-    process))
+  (let ((process-connection-type nil))
+    (start-process name buffer shell-file-name
+                  shell-command-switch
+                  (format-spec
+                   nnimap-shell-program
+                   (format-spec-make
+                    ?s host
+                    ?p port)))))
 
 (defun nnimap-credentials (address ports)
   (let (port credentials)
@@ -263,8 +263,6 @@
                (delete-process (nnimap-process nnimap-object))
                (setq nnimap-object nil))))
          (when nnimap-object
-           (when (eq nnimap-stream 'shell)
-             (setf (nnimap-newlinep nnimap-object) t))
            (setf (nnimap-capabilities nnimap-object)
                  (mapcar
                   #'upcase
@@ -317,10 +315,14 @@
                 (if (member "IMAP4REV1" (nnimap-capabilities nnimap-object))
                     "UID FETCH %d BODY.PEEK[]"
                   "UID FETCH %d RFC822.PEEK")
-                article)))
+                article))
+         ;; Check that we really got an article.
+         (goto-char (point-min))
+         (unless (looking-at "\\* [0-9]+ FETCH")
+           (setq result nil)))
        (let ((buffer (nnimap-find-process-buffer (current-buffer))))
          (when (car result)
-           (with-current-buffer to-buffer
+           (with-current-buffer (or to-buffer nntp-server-buffer)
              (insert-buffer-substring buffer)
              (goto-char (point-min))
              (let ((bytes (nnimap-get-length)))
@@ -611,7 +613,19 @@
       (nnimap-update-infos (nnimap-flags-to-marks
                            (nnimap-parse-flags
                             (nreverse sequences)))
-                          infos))))
+                          infos)
+      ;; Finally, just return something resembling an active file in
+      ;; the nntp buffer, so that the agent can save the info, too.
+      (with-current-buffer nntp-server-buffer
+       (erase-buffer)
+       (dolist (info infos)
+         (let* ((group (gnus-info-group info))
+                (active (gnus-active group)))
+           (when active
+             (insert (format "%S %d %d y\n"
+                             (gnus-group-real-name group)
+                             (cdr active)
+                             (car active))))))))))
 
 (defun nnimap-update-infos (flags infos)
   (dolist (info infos)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]