From 17ecce0dd72fd3b857210fbff3f356afc9ba0f75 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Sun, 7 Jul 2019 03:45:35 +0200 Subject: interimap.1: Clarify handling of delimiter in mailbox names. --- doc/interimap.1.md | 13 +++++++++++-- interimap | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/doc/interimap.1.md b/doc/interimap.1.md index d7c3711..b7707af 100644 --- a/doc/interimap.1.md +++ b/doc/interimap.1.md @@ -85,7 +85,10 @@ However if some extra argument are provided on the command line, `interimap` ignores these options and synchronizes the given *MAILBOX*es instead. Note that each *MAILBOX* is taken “as is”; in particular, it must be [UTF-7 encoded][RFC 2152], unquoted, and the list -wildcards ‘\*’ and ‘%’ are passed verbatim to the IMAP server. +wildcards ‘\*’ and ‘%’ are passed verbatim to the IMAP server. If the +local and remote hierarchy delimiter differ, then within the *MAILBOX* +names the *local* delimiter should be used (it is transparently +substituted for remote commands and responses). If the synchronization was interrupted during a previous run while some messages were being replicated (but before the `UIDNEXT` or @@ -245,7 +248,13 @@ Valid options are: Two wildcards are available, and passed verbatim to the IMAP server: a ‘\*’ character matches zero or more characters, while a ‘%’ character matches zero or more characters up to the hierarchy - delimiter. + delimiter. Hardcoding the hierarchy delimiter in this setting is + not advised because the server might silently change it at some + point. A null character should be used instead. For instance, if + *list-mailbox* is set `"foo\x00bar"` then, assuming the hierarchy + delimiter is ‘/’, only the mailbox named `foo/bar` is considered for + synchronization. + This option is only available in the default section. (The default pattern, `*`, matches all visible mailboxes on the server.) diff --git a/interimap b/interimap index 7054f88..ab96c9c 100755 --- a/interimap +++ b/interimap @@ -280,7 +280,7 @@ sub list_mailboxes($) { # INBOX exists in a namespace of its own, so it may have a different separator. # All other mailboxes MUST have the same separator though, per 3501 sec. 7.2.2 - # and https://www.imapwiki.org/ClientImplementation/MailboxList#Hierarchy_separators + # and https://imapwiki.org/ClientImplementation/MailboxList#Hierarchy_separators # (We assume all list-mailbox arguments given live in the same namespace. Otherwise # the user needs to start multiple interimap instances.) delete $delims->{INBOX}; -- cgit v1.2.3