From: Peter Wang Date: Sat, 15 Dec 2012 23:22:50 +0000 (+1100) Subject: [PATCH v5b] show: indicate charset for all omitted parts X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=6795587d949c95b882698f4034fa600ddc6773b2;p=notmuch-archives.git [PATCH v5b] show: indicate charset for all omitted parts --- diff --git a/01/476340ef9f3bb70a3c18e2f8ab829b058c96bd b/01/476340ef9f3bb70a3c18e2f8ab829b058c96bd new file mode 100644 index 000000000..04d7213d7 --- /dev/null +++ b/01/476340ef9f3bb70a3c18e2f8ab829b058c96bd @@ -0,0 +1,121 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by olra.theworths.org (Postfix) with ESMTP id 9041E431FBD + for ; Sat, 15 Dec 2012 15:23:59 -0800 (PST) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Spam-Flag: NO +X-Spam-Score: -0.799 +X-Spam-Level: +X-Spam-Status: No, score=-0.799 tagged_above=-999 required=5 + tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, + FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled +Received: from olra.theworths.org ([127.0.0.1]) + by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id LPmyJY0MksO8 for ; + Sat, 15 Dec 2012 15:23:59 -0800 (PST) +Received: from mail-pa0-f53.google.com (mail-pa0-f53.google.com + [209.85.220.53]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) + (No client certificate requested) + by olra.theworths.org (Postfix) with ESMTPS id ECDCC431FB6 + for ; Sat, 15 Dec 2012 15:23:58 -0800 (PST) +Received: by mail-pa0-f53.google.com with SMTP id hz1so2966461pad.26 + for ; Sat, 15 Dec 2012 15:23:58 -0800 (PST) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; + h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; + bh=tE75JGd2ikxQV9e93UiWLvzaZrmroKLjWoRJQIlgTps=; + b=rHJQv51ixnSlZl246uK9aGdXzOtLFfIMVD8MavLCe0R2DyoTMNUSzSSE+qeaC8ldpP + jd1SPel5OAeCXvBwisGRhq6cIjUtCy9gFVHPtneQvzHI68kEfA8KbAmYf0P0C49Tu7b/ + ju6vwToMrMzWGR6HWkdothUSkCc6CKhsHmXDhgCjrb7KKcbkK7y5/DbMG+GztzpKSH9U + YADY3ZQnttE7OYvPEXmMtW4e3wfHbjew1IoB/uJ5NtF05yHZIju1KaDmlzRo87Nk6Lxv + 9DWse8NGtWuN4cSz9RyqljKfa2298HgT6wMmt4D8TjvxlvpOpzkSAKRx8NKDzbu7C0ec + ncGA== +Received: by 10.68.134.130 with SMTP id pk2mr28716388pbb.31.1355613837222; + Sat, 15 Dec 2012 15:23:57 -0800 (PST) +Received: from localhost (215.42.233.220.static.exetel.com.au. + [220.233.42.215]) + by mx.google.com with ESMTPS id c2sm5697259pay.34.2012.12.15.15.23.54 + (version=TLSv1/SSLv3 cipher=OTHER); + Sat, 15 Dec 2012 15:23:56 -0800 (PST) +From: Peter Wang +To: notmuch@notmuchmail.org +Subject: [PATCH v5b] show: indicate charset for all omitted parts +Date: Sun, 16 Dec 2012 10:22:50 +1100 +Message-Id: <1355613770-3793-1-git-send-email-novalazy@gmail.com> +X-Mailer: git-send-email 1.7.12.1 +In-Reply-To: <1355540805-24937-3-git-send-email-novalazy@gmail.com> +References: <1355540805-24937-3-git-send-email-novalazy@gmail.com> +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.13 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Sat, 15 Dec 2012 23:23:59 -0000 + +Write a "charset" field for all omitted parts for which it is applicable, +not only text/html parts. Factor out the code to a separate function. +It will be extended with more fields next. +--- + notmuch-show.c | 24 ++++++++++++++++-------- + 1 file changed, 16 insertions(+), 8 deletions(-) + +diff --git a/notmuch-show.c b/notmuch-show.c +index a83fef9..6a9278c 100644 +--- a/notmuch-show.c ++++ b/notmuch-show.c +@@ -599,6 +599,17 @@ format_part_text (const void *ctx, sprinter_t *sp, mime_node_t *node, + return NOTMUCH_STATUS_SUCCESS; + } + ++static void ++format_omitted_part_meta_sprinter (sprinter_t *sp, GMimeObject *meta) ++{ ++ const char *content_charset = g_mime_object_get_content_type_parameter (meta, "charset"); ++ ++ if (content_charset != NULL) { ++ sp->map_key (sp, "content-charset"); ++ sp->string (sp, content_charset); ++ } ++} ++ + void + format_part_sprinter (const void *ctx, sprinter_t *sp, mime_node_t *node, + notmuch_bool_t first, notmuch_bool_t output_body) +@@ -677,14 +688,9 @@ format_part_sprinter (const void *ctx, sprinter_t *sp, mime_node_t *node, + * makes charset decoding the responsibility on the caller, we + * report the charset for text/html parts. + */ +- if (g_mime_content_type_is_type (content_type, "text", "html")) { +- const char *content_charset = g_mime_object_get_content_type_parameter (meta, "charset"); +- +- if (content_charset != NULL) { +- sp->map_key (sp, "content-charset"); +- sp->string (sp, content_charset); +- } +- } else if (g_mime_content_type_is_type (content_type, "text", "*")) { ++ if (g_mime_content_type_is_type (content_type, "text", "*") && ++ ! g_mime_content_type_is_type (content_type, "text", "html")) ++ { + GMimeStream *stream_memory = g_mime_stream_mem_new (); + GByteArray *part_content; + show_text_part_content (node->part, stream_memory, 0); +@@ -692,6 +698,8 @@ format_part_sprinter (const void *ctx, sprinter_t *sp, mime_node_t *node, + sp->map_key (sp, "content"); + sp->string_len (sp, (char *) part_content->data, part_content->len); + g_object_unref (stream_memory); ++ } else { ++ format_omitted_part_meta_sprinter (sp, meta); + } + } else if (GMIME_IS_MULTIPART (node->part)) { + sp->map_key (sp, "content"); +-- +1.7.12.1 +