diff options
Diffstat (limited to 'src/messaging/maildirUtils.cpp')
-rw-r--r-- | src/messaging/maildirUtils.cpp | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/src/messaging/maildirUtils.cpp b/src/messaging/maildirUtils.cpp index 2d294c0f..f6e16d8a 100644 --- a/src/messaging/maildirUtils.cpp +++ b/src/messaging/maildirUtils.cpp @@ -85,13 +85,23 @@ const bool maildirUtils::isSubfolderDirectory(const utility::file& file) } -/* +const utility::file::path::component maildirUtils::extractId + (const utility::file::path::component& filename) +{ + string::size_type sep = filename.getBuffer().rfind(':'); + if (sep == string::npos) return (filename); + + return (utility::path::component + (string(filename.getBuffer().begin(), filename.getBuffer().begin() + sep))); +} + + const int maildirUtils::extractFlags(const utility::file::path::component& comp) { - string::size_type sep = comp.buffer().rfind(':'); + string::size_type sep = comp.getBuffer().rfind(':'); if (sep == string::npos) return (0); - const string flagsString(comp.buffer().begin() + sep + 1, comp.buffer().end()); + const string flagsString(comp.getBuffer().begin() + sep + 1, comp.getBuffer().end()); const string::size_type count = flagsString.length(); int flags = 0; @@ -102,6 +112,8 @@ const int maildirUtils::extractFlags(const utility::file::path::component& comp) { case 'S': case 's': flags |= message::FLAG_SEEN; break; case 'R': case 'r': flags |= message::FLAG_REPLIED; break; + + // TODO: more flags } } @@ -109,6 +121,7 @@ const int maildirUtils::extractFlags(const utility::file::path::component& comp) } +/* const utility::file::component maildirUtils::changeFlags (const utility::file::component& comp, const int flags) { @@ -116,5 +129,24 @@ const utility::file::component maildirUtils::changeFlags */ + +// +// messageIdComparator +// + +maildirUtils::messageIdComparator::messageIdComparator + (const utility::file::path::component& comp) + : m_comp(maildirUtils::extractId(comp)) +{ +} + + +const bool maildirUtils::messageIdComparator::operator() + (const utility::file::path::component& other) const +{ + return (m_comp == maildirUtils::extractId(other)); +} + + } // messaging } // vmime |