X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Findex.cc;h=64bc92a5b56d1091fc62db4062f2ebce076e5924;hb=930d0aefb12ffaeb9e5afa3dd78edc5cb80baa7c;hp=0c4e232924ce1e139066c02c9f03bb5336f4167d;hpb=ab022657776af0bb47e72caf2517464ca59e7d48;p=notmuch diff --git a/lib/index.cc b/lib/index.cc index 0c4e2329..64bc92a5 100644 --- a/lib/index.cc +++ b/lib/index.cc @@ -261,7 +261,7 @@ notmuch_filter_discard_non_term_new (GMimeContentType *content_type) type = g_type_register_static (GMIME_TYPE_FILTER, "NotmuchFilterDiscardNonTerm", &info, (GTypeFlags) 0); } - filter = (NotmuchFilterDiscardNonTerm *) g_object_newv (type, 0, NULL); + filter = (NotmuchFilterDiscardNonTerm *) g_object_new (type, NULL); filter->content_type = content_type; filter->state = 0; if (g_mime_content_type_is_type (content_type, "text", "html")) { @@ -351,6 +351,19 @@ _index_address_list (notmuch_message_t *message, } } +static void +_index_content_type (notmuch_message_t *message, GMimeObject *part) +{ + GMimeContentType *content_type = g_mime_object_get_content_type (part); + if (content_type) { + char *mime_string = g_mime_content_type_to_string (content_type); + if (mime_string) { + _notmuch_message_gen_terms (message, "mimetype", mime_string); + g_free (mime_string); + } + } +} + /* Callback to generate terms for each mime part of a message. */ static void _index_mime_part (notmuch_message_t *message, @@ -361,6 +374,7 @@ _index_mime_part (notmuch_message_t *message, GMimeDataWrapper *wrapper; GByteArray *byte_array; GMimeContentDisposition *disposition; + GMimeContentType *content_type; char *body; const char *charset; @@ -370,15 +384,7 @@ _index_mime_part (notmuch_message_t *message, return; } - GMimeContentType *content_type = g_mime_object_get_content_type(part); - if (content_type) { - char *mime_string = g_mime_content_type_to_string(content_type); - if (mime_string) - { - _notmuch_message_gen_terms (message, "mimetype", mime_string); - g_free(mime_string); - } - } + _index_content_type (message, part); if (GMIME_IS_MULTIPART (part)) { GMimeMultipart *multipart = GMIME_MULTIPART (part); @@ -447,6 +453,8 @@ _index_mime_part (notmuch_message_t *message, g_mime_stream_mem_set_owner (GMIME_STREAM_MEM (stream), FALSE); filter = g_mime_stream_filter_new (stream); + + content_type = g_mime_object_get_content_type (part); discard_non_term_filter = notmuch_filter_discard_non_term_new (content_type); g_mime_stream_filter_add (GMIME_STREAM_FILTER (filter), @@ -490,7 +498,7 @@ _notmuch_message_index_file (notmuch_message_t *message, { GMimeMessage *mime_message; InternetAddressList *addresses; - const char *from, *subject; + const char *subject; notmuch_status_t status; status = _notmuch_message_file_get_mime_message (message_file, @@ -498,12 +506,10 @@ _notmuch_message_index_file (notmuch_message_t *message, if (status) return status; - from = g_mime_message_get_sender (mime_message); - - addresses = internet_address_list_parse_string (from); + addresses = g_mime_message_get_from (mime_message); if (addresses) { _index_address_list (message, "from", addresses); - g_object_unref (addresses); + g_mime_2_6_unref (addresses); } addresses = g_mime_message_get_all_recipients (mime_message);