From 7d4b1621817d5f18d597a059e273a623b7fcc058 Mon Sep 17 00:00:00 2001 From: Asumu Takikawa Date: Thu, 11 Apr 2013 14:36:24 -0400 Subject: [PATCH] Fix `imap-list-child-mailboxes` to match contract Closes PR 13658 --- collects/net/imap.rkt | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/collects/net/imap.rkt b/collects/net/imap.rkt index dd62d0771d..e4ff74616c 100644 --- a/collects/net/imap.rkt +++ b/collects/net/imap.rkt @@ -14,12 +14,9 @@ (provide/contract [imap-get-hierarchy-delimiter (imap-connection? . -> . bytes?)] [imap-list-child-mailboxes - (case-> - (imap-connection? (or/c false/c bytes?) - . -> . (listof (list/c (listof symbol?) bytes?))) - (imap-connection? (or/c false/c bytes?) (or/c false/c bytes?) - . -> . - (listof (list/c (listof symbol?) bytes?))))]) + (->* (imap-connection? (or/c string? bytes? #f)) + ((or/c string? bytes?)) + (listof (list/c (listof symbol?) bytes?)))]) (provide imap-connection? @@ -584,7 +581,15 @@ [(imap mailbox) (imap-list-child-mailboxes imap mailbox #f)] [(imap mailbox raw-delimiter) - (let* ([delimiter (or raw-delimiter (imap-get-hierarchy-delimiter imap))] + (let* ([delimiter (or (and raw-delimiter + (if (bytes? raw-delimiter) + raw-delimiter + (string->bytes/utf-8 raw-delimiter))) + (imap-get-hierarchy-delimiter imap))] + [mailbox (and mailbox + (if (bytes? mailbox) + mailbox + (string->bytes/utf-8 mailbox)))] [mailbox-name (and mailbox (bytes-append mailbox delimiter))] [pattern (if mailbox (bytes-append mailbox-name #"%")