X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=lib%2Fdirectory.cc;h=70e1693ea54eaa4f3bfe5e5312610318d803621f;hp=aeee9caf067580aaef1c5d309eb18b185e3078a3;hb=75a05526334b721d719d6c8a8098ff64573e6c1e;hpb=f3c1eebfaf8526129ae6946cbcd44a3c602563d6 diff --git a/lib/directory.cc b/lib/directory.cc index aeee9caf..70e1693e 100644 --- a/lib/directory.cc +++ b/lib/directory.cc @@ -23,10 +23,6 @@ /* Create an iterator to iterate over the basenames of files (or * directories) that all share a common parent directory. - * - * The code here is general enough to be reused for any case of - * iterating over the non-prefixed portion of terms sharing a common - * prefix. */ static notmuch_filenames_t * _create_filenames_for_terms_with_prefix (void *ctx, @@ -35,21 +31,14 @@ _create_filenames_for_terms_with_prefix (void *ctx, { notmuch_string_list_t *filename_list; Xapian::TermIterator i, end; - int prefix_len = strlen (prefix); - filename_list = _notmuch_string_list_create (ctx); + i = notmuch->xapian_db->allterms_begin(); + end = notmuch->xapian_db->allterms_end(); + filename_list = _notmuch_database_get_terms_with_prefix (ctx, i, end, + prefix); if (unlikely (filename_list == NULL)) return NULL; - end = notmuch->xapian_db->allterms_end (prefix); - - for (i = notmuch->xapian_db->allterms_begin (prefix); i != end; i++) - { - std::string term = *i; - - _notmuch_string_list_append (filename_list, term.c_str () + prefix_len); - } - return _notmuch_filenames_create (ctx, filename_list); }