diff options
Diffstat (limited to 'src/vmime/net/maildir/maildirUtils.cpp')
-rw-r--r-- | src/vmime/net/maildir/maildirUtils.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/vmime/net/maildir/maildirUtils.cpp b/src/vmime/net/maildir/maildirUtils.cpp index 8c40f076..b31eb931 100644 --- a/src/vmime/net/maildir/maildirUtils.cpp +++ b/src/vmime/net/maildir/maildirUtils.cpp @@ -218,9 +218,18 @@ class maildirMessageSetEnumerator : public messageSetEnumerator { public: + maildirMessageSetEnumerator(const size_t msgCount) + : m_msgCount(msgCount) + { + + } + void enumerateNumberMessageRange(const vmime::net::numberMessageRange& range) { - for (size_t i = range.getFirst(), last = range.getLast() ; i <= last ; ++i) + size_t last = range.getLast(); + if (last == size_t(-1)) last = m_msgCount; + + for (size_t i = range.getFirst() ; i <= last ; ++i) list.push_back(i); } @@ -232,13 +241,17 @@ public: public: std::vector <size_t> list; + +private: + + size_t m_msgCount; }; // static -const std::vector <size_t> maildirUtils::messageSetToNumberList(const messageSet& msgs) +const std::vector <size_t> maildirUtils::messageSetToNumberList(const messageSet& msgs, const size_t msgCount) { - maildirMessageSetEnumerator en; + maildirMessageSetEnumerator en(msgCount); msgs.enumerate(en); return en.list; |