From: Carl Worth Date: Wed, 14 Oct 2009 23:04:25 +0000 (-0700) Subject: Split thread_id value on commas before inserting into hash. X-Git-Tag: 0.1~865 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=870b3987265f74ed8b45ba0e7d7edfcca1923b5a;p=notmuch.git Split thread_id value on commas before inserting into hash. One thread_id value may have multiple thread IDs in it so we need to separate them out before inserting into our hash. --- diff --git a/notmuch-index-message.cc b/notmuch-index-message.cc index 3bb62f65..5396cd19 100644 --- a/notmuch-index-message.cc +++ b/notmuch-index-message.cc @@ -269,12 +269,23 @@ static void insert_thread_id (GHashTable *thread_ids, Xapian::Document doc) { string value_string; - const char *value; + const char *value, *id, *comma; value_string = doc.get_value (NOTMUCH_VALUE_THREAD); value = value_string.c_str(); - if (strlen (value)) - g_hash_table_insert (thread_ids, strdup (value), NULL); + if (strlen (value)) { + id = value; + while (*id) { + comma = strchr (id, ','); + if (comma == NULL) + comma = id + strlen (id); + g_hash_table_insert (thread_ids, + strndup (id, comma - id), NULL); + id = comma; + if (*id) + id++; + } + } } /* Return one or more thread_ids, (as a GPtrArray of strings), for the