aboutsummaryrefslogtreecommitdiffstats
path: root/src/messaging/imap/IMAPFolder.cpp
diff options
context:
space:
mode:
authorVincent Richard <[email protected]>2005-05-19 18:37:20 +0000
committerVincent Richard <[email protected]>2005-05-19 18:37:20 +0000
commit671d0b660d69d74dbad2a964ff78526e21ba26c5 (patch)
tree0edf811b2045eb10d0012705f28d7ec1b3f7b9ae /src/messaging/imap/IMAPFolder.cpp
parentFixed missing 'const'. (diff)
downloadvmime-671d0b660d69d74dbad2a964ff78526e21ba26c5.tar.gz
vmime-671d0b660d69d74dbad2a964ff78526e21ba26c5.zip
Fixed bug in subfolders enumeration.
Diffstat (limited to 'src/messaging/imap/IMAPFolder.cpp')
-rw-r--r--src/messaging/imap/IMAPFolder.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/messaging/imap/IMAPFolder.cpp b/src/messaging/imap/IMAPFolder.cpp
index 91bf0177..35f3509b 100644
--- a/src/messaging/imap/IMAPFolder.cpp
+++ b/src/messaging/imap/IMAPFolder.cpp
@@ -522,13 +522,24 @@ std::vector <folder*> IMAPFolder::getFolders(const bool recursive)
std::ostringstream oss;
oss << "LIST ";
- oss << IMAPUtils::quoteString
- (IMAPUtils::pathToString(m_connection->hierarchySeparator(), getFullPath()));
+
+ const string pathString = IMAPUtils::pathToString
+ (m_connection->hierarchySeparator(), getFullPath());
if (recursive)
+ {
+ oss << IMAPUtils::quoteString(pathString);
oss << " *";
+ }
else
+ {
+ if (pathString.empty()) // don't add sep for root folder
+ oss << "\"\"";
+ else
+ oss << IMAPUtils::quoteString(pathString + m_connection->hierarchySeparator());
+
oss << " %";
+ }
m_connection->send(true, oss.str(), true);