emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r109828: [Gnus] Miscellaneous fixes b


From: Katsumi Yamaoka
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r109828: [Gnus] Miscellaneous fixes by Dave Abrahams
Date: Fri, 31 Aug 2012 04:39:30 +0000
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 109828
author: Dave Abrahams <address@hidden>
committer: Katsumi Yamaoka <address@hidden>
branch nick: trunk
timestamp: Fri 2012-08-31 04:39:30 +0000
message:
  [Gnus] Miscellaneous fixes by Dave Abrahams
modified:
  lisp/gnus/ChangeLog
  lisp/gnus/auth-source.el
  lisp/gnus/gnus-int.el
  lisp/gnus/gnus-range.el
  lisp/gnus/gnus-registry.el
=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog       2012-08-31 00:46:01 +0000
+++ b/lisp/gnus/ChangeLog       2012-08-31 04:39:30 +0000
@@ -1,3 +1,19 @@
+2012-08-31  Dave Abrahams  <address@hidden>
+
+       * auth-source.el (auth-sources): Fix macos keychain access.
+
+       * gnus-int.el (gnus-request-head): When gnus-override-method is set,
+       allow the backend `request-head' function to determine the group
+       name on its own.
+       (gnus-request-expire-articles): Filter out negative article numbers
+       during expiry (Bug#11980).
+
+       * gnus-range.el (gnus-set-difference): Change gnus-set-difference from
+       O(N^2) to O(N).  This makes warping into huge groups tolerable.
+
+       * gnus-registry.el (gnus-try-warping-via-registry): Don't act as though
+       you've found the article when you haven't.
+
 2012-08-31  Stefan Monnier  <address@hidden>
 
        * gnus-notifications.el (gnus-notifications-action): Avoid CL-ism.

=== modified file 'lisp/gnus/auth-source.el'
--- a/lisp/gnus/auth-source.el  2012-08-10 14:38:37 +0000
+++ b/lisp/gnus/auth-source.el  2012-08-31 04:39:30 +0000
@@ -256,10 +256,10 @@
                   (const :tag "Temp Secrets API Collection" "secrets:session")
 
                   (const :tag "Default internet Mac OS Keychain"
-                         'macos-keychain-internet)
+                         macos-keychain-internet)
 
                   (const :tag "Default generic Mac OS Keychain"
-                         'macos-keychain-generic)
+                         macos-keychain-generic)
 
                   (list :tag "Source definition"
                         (const :format "" :value :source)

=== modified file 'lisp/gnus/gnus-int.el'
--- a/lisp/gnus/gnus-int.el     2012-07-24 22:17:17 +0000
+++ b/lisp/gnus/gnus-int.el     2012-08-31 04:39:30 +0000
@@ -599,7 +599,8 @@
            clean-up t))
      ;; Use `head' function.
      ((fboundp head)
-      (setq res (funcall head article (gnus-group-real-name group)
+      (setq res (funcall head article
+                         (and (not gnus-override-method) (gnus-group-real-name 
group))
                         (nth 1 gnus-command-method))))
      ;; Use `article' function.
      (t
@@ -706,6 +707,10 @@
 
 (defun gnus-request-expire-articles (articles group &optional force)
   (let* ((gnus-command-method (gnus-find-method-for-group group))
+         ;; Filter out any negative article numbers; they can't be
+         ;; expired here.
+         (articles
+          (delq nil (mapcar (lambda (n) (and (>= n 0) n)) articles)))
         (gnus-inhibit-demon t)
         (not-deleted
          (funcall

=== modified file 'lisp/gnus/gnus-range.el'
--- a/lisp/gnus/gnus-range.el   2012-07-24 22:17:17 +0000
+++ b/lisp/gnus/gnus-range.el   2012-08-31 04:39:30 +0000
@@ -52,11 +52,13 @@
 
 (defun gnus-set-difference (list1 list2)
   "Return a list of elements of LIST1 that do not appear in LIST2."
-  (let ((list1 (copy-sequence list1)))
-    (while list2
-      (setq list1 (delq (car list2) list1))
-      (setq list2 (cdr list2)))
-    list1))
+  (let ((hash2 (make-hash-table :test 'eq))
+        (result nil))
+    (dolist (elt list2) (puthash elt t hash2))
+    (dolist (elt list1)
+      (unless (gethash elt hash2)
+        (setq result (cons elt result))))
+    (nreverse result)))
 
 (defun gnus-range-nconcat (&rest ranges)
   "Return a range comprising all the RANGES, which are pre-sorted.

=== modified file 'lisp/gnus/gnus-registry.el'
--- a/lisp/gnus/gnus-registry.el        2012-06-26 22:52:31 +0000
+++ b/lisp/gnus/gnus-registry.el        2012-08-31 04:39:30 +0000
@@ -1169,9 +1169,10 @@
 
             ;; Try to activate the group.  If that fails, just move
             ;; along.  We may have more groups to work with
-            (ignore-errors
-             (gnus-select-group-with-message-id group message-id))
-            (throw 'found t)))))))
+            (when
+                (ignore-errors
+                  (gnus-select-group-with-message-id group message-id) t)
+              (throw 'found t))))))))
 
 ;; TODO: a few things
 


reply via email to

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