X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch-show.c;h=96647c1205d32ad036d6920f07dae7aee9547a4c;hp=1a1d6019eac95713f92976f2cefafd474256866a;hb=685cfcc9e876e9c611d2cb03e8ebd417a7f165b7;hpb=6ce2bf68f53fec4302121763e588c33c7cd86a9c diff --git a/notmuch-show.c b/notmuch-show.c index 1a1d6019..96647c12 100644 --- a/notmuch-show.c +++ b/notmuch-show.c @@ -90,8 +90,8 @@ _get_tags_as_string (const void *ctx, notmuch_message_t *message) return NULL; for (tags = notmuch_message_get_tags (message); - notmuch_tags_has_more (tags); - notmuch_tags_advance (tags)) + notmuch_tags_valid (tags); + notmuch_tags_move_to_next (tags)) { tag = notmuch_tags_get (tags); @@ -136,13 +136,24 @@ format_message_text (unused (const void *ctx), notmuch_message_t *message, int i static void format_message_json (const void *ctx, notmuch_message_t *message, unused (int indent)) { + notmuch_tags_t *tags; + int first = 1; void *ctx_quote = talloc_new (ctx); - printf ("\"id\": %s, \"match\": %s, \"filename\": %s", + printf ("\"id\": %s, \"match\": %s, \"filename\": %s, \"tags\": [", json_quote_str (ctx_quote, notmuch_message_get_message_id (message)), notmuch_message_get_flag (message, NOTMUCH_MESSAGE_FLAG_MATCH) ? "true" : "false", json_quote_str (ctx_quote, notmuch_message_get_filename (message))); + for (tags = notmuch_message_get_tags (message); + notmuch_tags_valid (tags); + notmuch_tags_move_to_next (tags)) + { + printf("%s%s", first ? "" : ",", + json_quote_str (ctx_quote, notmuch_tags_get (tags))); + first = 0; + } + printf("]"); talloc_free (ctx_quote); } @@ -160,7 +171,7 @@ format_headers_text (const void *ctx, notmuch_message_t *message) for (i = 0; i < ARRAY_SIZE (headers); i++) { name = headers[i]; value = notmuch_message_get_header (message, name); - if (value) + if (value && strlen (value)) printf ("%s: %s\n", name, value); } } @@ -225,9 +236,6 @@ format_part_text (GMimeObject *part, int *part_count) { GMimeContentDisposition *disposition; GMimeContentType *content_type; - GMimeStream *stream_stdout = g_mime_stream_file_new (stdout); - - g_mime_stream_file_set_owner (GMIME_STREAM_FILE (stream_stdout), FALSE); disposition = g_mime_object_get_content_disposition (part); if (disposition && @@ -245,14 +253,14 @@ format_part_text (GMimeObject *part, int *part_count) if (g_mime_content_type_is_type (content_type, "text", "*") && !g_mime_content_type_is_type (content_type, "text", "html")) { + GMimeStream *stream_stdout = g_mime_stream_file_new (stdout); + g_mime_stream_file_set_owner (GMIME_STREAM_FILE (stream_stdout), FALSE); show_part_content (part, stream_stdout); + g_object_unref(stream_stdout); } printf ("\fattachment}\n"); - if (stream_stdout) - g_object_unref(stream_stdout); - return; } @@ -265,7 +273,10 @@ format_part_text (GMimeObject *part, int *part_count) if (g_mime_content_type_is_type (content_type, "text", "*") && !g_mime_content_type_is_type (content_type, "text", "html")) { + GMimeStream *stream_stdout = g_mime_stream_file_new (stdout); + g_mime_stream_file_set_owner (GMIME_STREAM_FILE (stream_stdout), FALSE); show_part_content (part, stream_stdout); + g_object_unref(stream_stdout); } else { @@ -274,9 +285,6 @@ format_part_text (GMimeObject *part, int *part_count) } printf ("\fpart}\n"); - - if (stream_stdout) - g_object_unref(stream_stdout); } static void @@ -355,8 +363,8 @@ show_messages (void *ctx, const show_format_t *format, notmuch_messages_t *messa fputs (format->message_set_start, stdout); for (; - notmuch_messages_has_more (messages); - notmuch_messages_advance (messages)) + notmuch_messages_valid (messages); + notmuch_messages_move_to_next (messages)) { if (!first_set) fputs (format->message_set_sep, stdout); @@ -460,8 +468,8 @@ notmuch_show_command (void *ctx, unused (int argc), unused (char *argv[])) fputs (format->message_set_start, stdout); for (threads = notmuch_query_search_threads (query); - notmuch_threads_has_more (threads); - notmuch_threads_advance (threads)) + notmuch_threads_valid (threads); + notmuch_threads_move_to_next (threads)) { thread = notmuch_threads_get (threads);