]> git.notmuchmail.org Git - notmuch/blobdiff - message.cc
notmuch setup/new: Print progress once per second instead of after 1000 files.
[notmuch] / message.cc
index 66747b5c0aedd38e40b02d128ba7040826cd061f..75e752c800221f4c99837bf2dcd1a3faec8611ba 100644 (file)
@@ -276,8 +276,10 @@ notmuch_message_get_thread_id (notmuch_message_t *message)
        strncmp ((*i).c_str (), _find_prefix ("thread"),
                 strlen (_find_prefix ("thread"))) == 0)
     {
-       INTERNAL_ERROR ("Message with document ID of %d has duplicate thread IDs.\n",
-                       message->doc_id);
+       INTERNAL_ERROR ("Message %s has duplicate thread IDs: %s and %s\n",
+                       notmuch_message_get_message_id (message),
+                       message->thread_id,
+                       (*i).c_str () + 1);
     }
 #endif
 
@@ -442,6 +444,32 @@ _notmuch_message_add_term (notmuch_message_t *message,
     return NOTMUCH_PRIVATE_STATUS_SUCCESS;
 }
 
+/* Parse 'text' and add a term to 'message' for each parsed word. Each
+ * term will be added both prefixed (if prefix_name is not NULL) and
+ * also unprefixed). */
+notmuch_private_status_t
+_notmuch_message_gen_terms (notmuch_message_t *message,
+                           const char *prefix_name,
+                           const char *text)
+{
+    Xapian::TermGenerator *term_gen = message->notmuch->term_gen;
+
+    if (text == NULL)
+       return NOTMUCH_PRIVATE_STATUS_NULL_POINTER;
+
+    term_gen->set_document (message->doc);
+
+    if (prefix_name) {
+       const char *prefix = _find_prefix (prefix_name);
+
+       term_gen->index_text (text, 1, prefix);
+    }
+
+    term_gen->index_text (text);
+
+    return NOTMUCH_PRIVATE_STATUS_SUCCESS;
+}
+
 /* Remove a name:value term from 'message', (the actual term will be
  * encoded by prefixing the value with a short prefix). See
  * NORMAL_PREFIX and BOOLEAN_PREFIX arrays for the mapping of term