]> code.delx.au - gnu-emacs-elpa/commitdiff
* debbugs-gnu.el (debbugs-gnu-get-bugs): If
authorMichael Albinus <michael.albinus@gmx.de>
Wed, 20 Jul 2011 18:56:41 +0000 (20:56 +0200)
committerMichael Albinus <michael.albinus@gmx.de>
Wed, 20 Jul 2011 18:56:41 +0000 (20:56 +0200)
`debbugs-gnu-current-severities' contains only the pseudo-severity
"tagged", return just the local tagged bugs.

packages/debbugs/ChangeLog
packages/debbugs/debbugs-gnu.el

index 3f1063139db546c4c78cc35d0f199ed13e60ea69..01171f15199bb4fa59a90b556534daea64655ed4 100644 (file)
@@ -1,5 +1,9 @@
 2011-07-20  Michael Albinus  <michael.albinus@gmx.de>
 
+       * debbugs-gnu.el (debbugs-gnu-get-bugs): If
+       `debbugs-gnu-current-severities' contains only the pseudo-severity
+       "tagged", return just the local tagged bugs.
+
        * debbugs.texi (top): Add a title page.
        (all): Correct some typos.
 
index c42e1151655a65d50d4e17698c911f6fd4a1ae2a..a7f3daaeeb0989d76738a21c63a15e5c62abe95b 100644 (file)
@@ -317,15 +317,26 @@ expression matchin the corresponding value, a string."
   "Retrieve bugs numbers from debbugs.gnu.org according search criteria."
   (let ((debbugs-port "gnu.org")
        (args `(:archive ,debbugs-gnu-current-archive))
-       (ids (when (member "tagged" debbugs-gnu-current-severities)
-              (copy-sequence debbugs-gnu-local-tags))))
-    (dolist (severity (delete "tagged" debbugs-gnu-current-severities))
-      (when (not (zerop (length severity)))
-       (setq args (append args `(:severity ,severity)))))
-    (dolist (package debbugs-gnu-current-packages)
-      (when (not (zerop (length package)))
-       (setq args (append args `(:package ,package)))))
-    (sort (nconc ids (apply 'debbugs-get-bugs args)) '<)))
+       (tagged (when (member "tagged" debbugs-gnu-current-severities)
+                 (copy-sequence debbugs-gnu-local-tags)))
+       (severities
+        (delete "tagged" (copy-sequence debbugs-gnu-current-severities)))
+       ids)
+    (if (null severities)
+       ;; If `debbugs-gnu-current-severities' contains only the
+       ;; pseudo-severity "tagged", we return just the local tagged
+       ;; bugs.
+       (sort tagged '<)
+      ;; Otherwise, we retrieve the bugs from the server.
+      (dolist (severity severities)
+       (when (not (zerop (length severity)))
+         (setq args (append args `(:severity ,severity)))))
+      (dolist (package debbugs-gnu-current-packages)
+       (when (not (zerop (length package)))
+         (setq args (append args `(:package ,package)))))
+      (setq ids (apply 'debbugs-get-bugs args))
+      (dolist (id tagged (sort ids '<))
+       (add-to-list 'ids id)))))
 
 (defvar debbugs-gnu-current-widget nil)