* elmo-imap4.el (elmo-imap4-disabled-extension): New
authordmaus <dmaus>
Wed, 14 Apr 2010 10:51:11 +0000 (10:51 +0000)
committerdmaus <dmaus>
Wed, 14 Apr 2010 10:51:11 +0000 (10:51 +0000)
variable. List of server extensions that are disabled on the
client side.
(elmo-imap4-session-capable-p): Honour list of disabled
extensions.

Let user disable server extensions on the client side.  Provides way
to work around problematic or bugged server implementations
(e.g. problems with MS Exchange 2007 and ESEARCH capability).

elmo/ChangeLog
elmo/elmo-imap4.el

index 71d1965..6e3c1e8 100644 (file)
@@ -1,3 +1,11 @@
+2010-04-14  David Maus  <dmaus@ictsoc.de>
+
+       * elmo-imap4.el (elmo-imap4-disabled-extension): New
+       variable. List of server extensions that are disabled on the
+       client side.
+       (elmo-imap4-session-capable-p): Honour list of disabled
+       extensions.
+
 2010-03-17  David Maus  <dmaus@ictsoc.de>
 
        * elmo-imap4.el (elmo-imap4-folder-list-flagged)
index 18a3027..d64894d 100644 (file)
   "Extra namespace alist.
 A list of cons cell like: (REGEXP . DELIMITER).
 REGEXP should have a grouping for namespace prefix.")
+
+(defvar elmo-imap4-disabled-extensions nil
+  "List of server extensions that are disabled on the client side.")
+
 ;;
 ;;; internal variables
 ;;
@@ -200,7 +204,8 @@ Debug information is inserted in the buffer \"*IMAP4 DEBUG*\"")
   (luna-define-internal-accessors 'elmo-imap4-session))
 
 (defmacro elmo-imap4-session-capable-p (session capability)
-  `(memq ,capability (elmo-imap4-session-capability-internal ,session)))
+  `(and (memq ,capability (elmo-imap4-session-capability-internal ,session))
+       (not (memq ,capability elmo-imap4-disabled-extensions))))
 
 ;;; MIME-ELMO-IMAP Location
 (eval-and-compile