X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch-show.c;h=22fa655ad20d8deea55297af4616c2cec7e292d0;hp=6ef33085acb1060934940c6db55b5ef1b6764e34;hb=60ac94fe58635f9c40724afa0f35965fc9ff1afc;hpb=f76d8f82dd004cf14426a91e8a80dcd2a4b97317 diff --git a/notmuch-show.c b/notmuch-show.c index 6ef33085..22fa655a 100644 --- a/notmuch-show.c +++ b/notmuch-show.c @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/ . + * along with this program. If not, see https://www.gnu.org/licenses/ . * * Author: Carl Worth */ @@ -334,8 +334,6 @@ show_text_part_content (GMimeObject *part, GMimeStream *stream_out, g_object_unref(stream_filter); } -#ifdef GMIME_ATLEAST_26 - /* Get signature status string (GMime 2.6) */ static const char* signature_status_to_string (GMimeSignatureStatus x) @@ -427,91 +425,6 @@ format_part_sigstatus_sprinter (sprinter_t *sp, mime_node_t *node) sp->end (sp); } -#else /* GMIME_ATLEAST_26 */ - -/* Get signature status string (GMime 2.4) */ -static const char* -signer_status_to_string (GMimeSignerStatus x) -{ - switch (x) { - case GMIME_SIGNER_STATUS_NONE: - return "none"; - case GMIME_SIGNER_STATUS_GOOD: - return "good"; - case GMIME_SIGNER_STATUS_BAD: - return "bad"; - case GMIME_SIGNER_STATUS_ERROR: - return "error"; - } - return "unknown"; -} - -/* Signature status sprinter (GMime 2.4) */ -static void -format_part_sigstatus_sprinter (sprinter_t *sp, mime_node_t *node) -{ - const GMimeSignatureValidity* validity = node->sig_validity; - - sp->begin_list (sp); - - if (!validity) { - sp->end (sp); - return; - } - - const GMimeSigner *signer = g_mime_signature_validity_get_signers (validity); - while (signer) { - sp->begin_map (sp); - - /* status */ - sp->map_key (sp, "status"); - sp->string (sp, signer_status_to_string (signer->status)); - - if (signer->status == GMIME_SIGNER_STATUS_GOOD) - { - if (signer->fingerprint) { - sp->map_key (sp, "fingerprint"); - sp->string (sp, signer->fingerprint); - } - /* these dates are seconds since the epoch; should we - * provide a more human-readable format string? */ - if (signer->created) { - sp->map_key (sp, "created"); - sp->integer (sp, signer->created); - } - if (signer->expires) { - sp->map_key (sp, "expires"); - sp->integer (sp, signer->expires); - } - /* output user id only if validity is FULL or ULTIMATE. */ - /* note that gmime is using the term "trust" here, which - * is WRONG. It's actually user id "validity". */ - if ((signer->name) && (signer->trust)) { - if ((signer->trust == GMIME_SIGNER_TRUST_FULLY) || (signer->trust == GMIME_SIGNER_TRUST_ULTIMATE)) { - sp->map_key (sp, "userid"); - sp->string (sp, signer->name); - } - } - } else { - if (signer->keyid) { - sp->map_key (sp, "keyid"); - sp->string (sp, signer->keyid); - } - } - if (signer->errors != GMIME_SIGNER_ERROR_NONE) { - sp->map_key (sp, "errors"); - sp->integer (sp, signer->errors); - } - - sp->end (sp); - signer = signer->next; - } - - sp->end (sp); -} - -#endif /* GMIME_ATLEAST_26 */ - static notmuch_status_t format_part_text (const void *ctx, sprinter_t *sp, mime_node_t *node, int indent, const notmuch_show_params_t *params) @@ -543,7 +456,8 @@ format_part_text (const void *ctx, sprinter_t *sp, mime_node_t *node, g_mime_part_get_filename (GMIME_PART (node->part)) : NULL; if (disposition && - strcmp (disposition->disposition, GMIME_DISPOSITION_ATTACHMENT) == 0) + strcasecmp (g_mime_content_disposition_get_disposition (disposition), + GMIME_DISPOSITION_ATTACHMENT) == 0) part_type = "attachment"; else part_type = "part"; @@ -982,13 +896,22 @@ do_show_single (void *ctx, { notmuch_messages_t *messages; notmuch_message_t *message; + notmuch_status_t status; + unsigned int count; + + status = notmuch_query_count_messages_st (query, &count); + if (print_status_query ("notmuch show", query, status)) + return 1; - if (notmuch_query_count_messages (query) != 1) { - fprintf (stderr, "Error: search term did not match precisely one message.\n"); + if (count != 1) { + fprintf (stderr, "Error: search term did not match precisely one message (matched %d messages).\n", count); return 1; } - messages = notmuch_query_search_messages (query); + status = notmuch_query_search_messages_st (query, &messages); + if (print_status_query ("notmuch show", query, status)) + return 1; + message = notmuch_messages_get (messages); if (message == NULL) { @@ -1015,8 +938,8 @@ do_show (void *ctx, notmuch_messages_t *messages; notmuch_status_t status, res = NOTMUCH_STATUS_SUCCESS; - threads = notmuch_query_search_threads (query); - if (! threads) + status= notmuch_query_search_threads_st (query, &threads); + if (print_status_query ("notmuch show", query, status)) return 1; sp->begin_list (sp);