Merge remote branch 'origin/master' into vim
[notmuch] / lib / message.cc
index e0834f1c7816c6c66a9f0f4286ce33ef0b117f3c..b708c1810fd6682a7f9f3bd31207df4da7a69b23 100644 (file)
@@ -482,38 +482,10 @@ notmuch_message_get_date (notmuch_message_t *message)
 notmuch_tags_t *
 notmuch_message_get_tags (notmuch_message_t *message)
 {
-    const char *prefix = _find_prefix ("tag");
     Xapian::TermIterator i, end;
-    notmuch_tags_t *tags;
-    std::string tag;
-
-    /* Currently this iteration is written with the assumption that
-     * "tag" has a single-character prefix. */
-    assert (strlen (prefix) == 1);
-
-    tags = _notmuch_tags_create (message);
-    if (unlikely (tags == NULL))
-       return NULL;
-
-    i = message->doc.termlist_begin ();
-    end = message->doc.termlist_end ();
-
-    i.skip_to (prefix);
-
-    while (i != end) {
-       tag = *i;
-
-       if (tag.empty () || tag[0] != *prefix)
-           break;
-
-       _notmuch_tags_add_tag (tags, tag.c_str () + 1);
-
-       i++;
-    }
-
-    _notmuch_tags_prepare_iterator (tags);
-
-    return tags;
+    i = message->doc.termlist_begin();
+    end = message->doc.termlist_end();
+    return _notmuch_convert_tags(message, i, end);
 }
 
 void