Change IMAP URL completion to work more like filename completion:
authorChris Hanson <org/chris-hanson/cph>
Wed, 14 Jun 2000 02:51:25 +0000 (02:51 +0000)
committerChris Hanson <org/chris-hanson/cph>
Wed, 14 Jun 2000 02:51:25 +0000 (02:51 +0000)
completion shows only the elements at the top level of the mailbox
being completed on.  Furthermore, non-selectable mailboxes are
suffixed with the heirarchy delimiter to cue the user.

v7/src/imail/imail-imap.scm

index 19fa2d32408a35c5d2f64b78f840532fd09e7027..09366f3aae483a5a9d0d4d66dbcd709a301e36ba 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;; $Id: imail-imap.scm,v 1.117 2000/06/14 02:15:39 cph Exp $
+;;; $Id: imail-imap.scm,v 1.118 2000/06/14 02:51:25 cph Exp $
 ;;;
 ;;; Copyright (c) 1999-2000 Massachusetts Institute of Technology
 ;;;
               (if-unique (car responses)))))))
 
 (define (imap-mailbox-completions mailbox url)
-  (map imap:response:list-mailbox
+  (map (lambda (response)
+        (let ((mailbox (imap:response:list-mailbox response))
+              (delimiter (imap:response:list-delimiter response)))
+          (if (and delimiter
+                   (memq '\NOSELECT (imap:response:list-flags response)))
+              (string-append mailbox delimiter)
+              mailbox)))
        (with-open-imap-connection url
         (lambda (connection)
-          (imap:command:list connection "" (string-append mailbox "*"))))))
+          (imap:command:list connection "" (string-append mailbox "%"))))))
 \f
 ;;;; Server connection