Implement URL-EXISTS? for IMAP folders.
authorChris Hanson <org/chris-hanson/cph>
Fri, 2 Jun 2000 02:23:37 +0000 (02:23 +0000)
committerChris Hanson <org/chris-hanson/cph>
Fri, 2 Jun 2000 02:23:37 +0000 (02:23 +0000)
v7/src/imail/imail-imap.scm
v7/src/imail/todo.txt

index c904763a4936a1ee276d867874173fde14e6065b..417745181685cb751e00d28073eb5364ff28653b 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;; $Id: imail-imap.scm,v 1.100 2000/06/02 01:52:46 cph Exp $
+;;; $Id: imail-imap.scm,v 1.101 2000/06/02 02:23:19 cph Exp $
 ;;;
 ;;; Copyright (c) 1999-2000 Massachusetts Institute of Technology
 ;;;
                        ""))
 
 (define-method url-exists? ((url <imap-url>))
-  url
-  #t)
+  (not
+   (condition?
+    (ignore-errors
+     (lambda ()
+       (with-open-imap-connection url
+        (lambda (connection)
+          (imap:command:status connection
+                               (imap-url-mailbox url)
+                               '(MESSAGES))))
+       #t)))))
 
 (define (compatible-imap-urls? url1 url2)
   ;; Can URL1 and URL2 both be accessed from the same IMAP session?
    (lambda ()
      (imap:command:no-response connection 'SELECT mailbox))))
 
+(define (imap:command:status connection mailbox items)
+  (imap:command:no-response connection 'STATUS mailbox items))
+
 (define (imap:command:fetch connection index items)
   (imap:command:single-response imap:response:fetch? connection
                                'FETCH (+ index 1) items))
index 753f3e51c08603db7a507fdd71792de6c147bf75..b209df80856895f7e1e02f04e954cc1ca75bfbac 100644 (file)
@@ -1,5 +1,5 @@
 IMAIL To-Do List
-$Id: todo.txt,v 1.53 2000/05/30 13:01:05 cph Exp $
+$Id: todo.txt,v 1.54 2000/06/02 02:23:37 cph Exp $
 
 Bug fixes
 ---------
@@ -8,9 +8,6 @@ Bug fixes
   message that is written, when the target folder is not being
   visited.  [I haven't seen this lately.  Maybe it's fixed?]
 
-* Implement operation for IMAP: URL-EXISTS?.  [Is this desirable?
-  A straightforward implementation requires contacting the server.]
-
 * Must be able to handle malformed headers in incoming mail.
   Generating a low-level error in this situation is unacceptable.