Unmap the message indices returned by SEARCH-FOLDER. Define
authorTaylor R. Campbell <net/mumble/campbell>
Sun, 11 Mar 2007 22:38:55 +0000 (22:38 +0000)
committerTaylor R. Campbell <net/mumble/campbell>
Sun, 11 Mar 2007 22:38:55 +0000 (22:38 +0000)
%SEARCH-FOLDER as a generic procedure which the non-generic procedure
SEARCH-FOLDER calls.

v7/src/imail/imail-core.scm
v7/src/imail/imail-file.scm
v7/src/imail/imail-imap.scm

index e7269f887c0c6c9a70ae171af5295bea9f67e6f3..18c162dd48cb6e5be948505f131f4a10f378c460 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: imail-core.scm,v 1.164 2007/03/11 17:33:37 riastradh Exp $
+$Id: imail-core.scm,v 1.165 2007/03/11 22:38:55 riastradh Exp $
 
 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
@@ -538,9 +538,14 @@ USA.
 
 ;; -------------------------------------------------------------------
 ;; Search FOLDER for messages matching CRITERIA.  At present, CRITERIA
-;; may be a string.  Returns a list of messages.
+;; may be a string.  Returns a list of message indices.
 
-(define-generic search-folder (folder criteria))
+(define (search-folder folder criteria)
+  (map (lambda (index)
+         (unmap-folder-index folder index))
+       (%search-folder folder criteria)))
+
+(define-generic %search-folder (folder criteria))
 \f
 ;; -------------------------------------------------------------------
 ;; Compare FOLDER's cache with the persistent folder and return a
index 7eaf8668551956f4b1d8e6af5a4a66499194f617..bafbde452ef5ad619304f1f70ccec769a377829a 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: imail-file.scm,v 1.90 2007/03/11 17:33:37 riastradh Exp $
+$Id: imail-file.scm,v 1.91 2007/03/11 22:38:55 riastradh Exp $
 
 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
@@ -359,7 +359,7 @@ USA.
                               (loop (fix:+ i 1) (fix:+ i* 1)))))))
                 (set-file-folder-messages! folder messages*)))))))))
 
-(define-method search-folder ((folder <file-folder>) criteria)
+(define-method %search-folder ((folder <file-folder>) criteria)
   (cond ((string? criteria)
         (let ((n (folder-length folder)))
           (let loop ((index 0) (winners '()))
index 5602519cb63abe0a0286ca0d35b716d1294fb621..c2e7adf11e6246a7fb387df108e9c3a39d5d08d9 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: imail-imap.scm,v 1.210 2007/03/11 17:33:37 riastradh Exp $
+$Id: imail-imap.scm,v 1.211 2007/03/11 22:38:55 riastradh Exp $
 
 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
@@ -1887,7 +1887,7 @@ USA.
 (define-method expunge-deleted-messages ((folder <imap-folder>))
   (imap:command:expunge (guarantee-imap-folder-open folder)))
 
-(define-method search-folder ((folder <imap-folder>) criteria)
+(define-method %search-folder ((folder <imap-folder>) criteria)
   (map (lambda (index) (- index 1))
        (imap:response:search-indices
        (let ((connection (guarantee-imap-folder-open folder)))