- if (thread_id) {
- add_term (doc, "thread", thread_id);
- doc.add_value (NOTMUCH_VALUE_THREAD, thread_id);
- free ((void *) thread_id);
+ if (thread_ids->len) {
+ unsigned int i;
+ GString *thread_id;
+ char *id;
+
+ for (i = 0; i < thread_ids->len; i++) {
+ id = (char *) thread_ids->pdata[i];
+
+ add_term (doc, "thread", id);
+
+ if (i == 0)
+ thread_id = g_string_new (id);
+ else
+ g_string_append_printf (thread_id, ",%s", id);
+
+ free (id);
+ }
+ g_ptr_array_free (thread_ids, TRUE);
+
+ doc.add_value (NOTMUCH_VALUE_THREAD, thread_id->str);
+
+ g_string_free (thread_id, TRUE);