sieve-manage-capability: Do not bug out when the server-value of the capability is nil
authorJulien Danjou <julien@danjou.info>
Tue, 5 Oct 2010 12:46:07 +0000 (14:46 +0200)
committerJulien Danjou <julien@danjou.info>
Tue, 5 Oct 2010 12:53:05 +0000 (14:53 +0200)
Signed-off-by: Julien Danjou <julien@danjou.info>
lisp/ChangeLog
lisp/sieve-manage.el

index 84f2052..aff52cc 100644 (file)
@@ -1,3 +1,8 @@
+2010-10-05  Julien Danjou  <julien@danjou.info>
+
+       * sieve-manage.el (sieve-manage-capability): Do not bug out when the
+       server-value of the capability is nil.
+
 2010-10-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * shr.el (shr-tag-em): Add <EM> tag.
index 8749864..69f21b0 100644 (file)
@@ -553,13 +553,18 @@ password is remembered in the buffer."
          (setq sieve-manage-state 'auth)))))
 
 (defun sieve-manage-capability (&optional name value buffer)
+  "Check if capability NAME of server BUFFER match VALUE.
+If it does, return the server value of NAME. If not returns nil.
+If VALUE is nil, do not check VALUE and return server value.
+If NAME is nil, return the full server list of capabilities."
   (with-current-buffer (or buffer (current-buffer))
     (if (null name)
        sieve-manage-capability
-      (if (null value)
-         (nth 1 (assoc name sieve-manage-capability))
-       (when (string-match value (nth 1 (assoc name sieve-manage-capability)))
-         (nth 1 (assoc name sieve-manage-capability)))))))
+      (let ((server-value (cadr (assoc name sieve-manage-capability))))
+        (when (or (null value)
+                  (and server-value
+                       (string-match value server-value)))
+          server-value)))))
 
 (defun sieve-manage-listscripts (&optional buffer)
   (with-current-buffer (or buffer (current-buffer))