/* 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,
{
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);
}