cli: notmuch show support for --include-html with --format=text

This commit is contained in:
Maxime Coste 2018-10-31 10:54:32 +11:00 committed by David Bremner
parent 37e5bc00ae
commit baa4185c30
4 changed files with 23 additions and 9 deletions

3
NEWS
View file

@ -4,7 +4,8 @@ Notmuch 0.29 (UNRELEASED)
Command Line Interface Command Line Interface
---------------------- ----------------------
`notmuch show` now supports --body=false with --format=text `notmuch show` now supports --body=false and --include-html with
--format=text
Notmuch 0.28 (2018-10-12) Notmuch 0.28 (2018-10-12)
========================= =========================

View file

@ -183,11 +183,12 @@ Supported options for **show** include
output is much faster and substantially smaller. output is much faster and substantially smaller.
``--include-html`` ``--include-html``
Include "text/html" parts as part of the output (currently only Include "text/html" parts as part of the output (currently
supported with ``--format=json`` and ``--format=sexp``). By default, only supported with ``--format=text``, ``--format=json`` and
unless ``--part=N`` is used to select a specific part or ``--format=sexp``). By default, unless ``--part=N`` is used to
``--include-html`` is used to include all "text/html" parts, no select a specific part or ``--include-html`` is used to include all
part with content type "text/html" is included in the output. "text/html" parts, no part with content type "text/html" is included
in the output.
A common use of **notmuch show** is to display a single thread of email A common use of **notmuch show** is to display a single thread of email
messages. For this, use a search term of "thread:<thread-id>" as can be messages. For this, use a search term of "thread:<thread-id>" as can be

View file

@ -584,7 +584,8 @@ format_part_text (const void *ctx, sprinter_t *sp, mime_node_t *node,
if (leaf) { if (leaf) {
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")) (params->include_html ||
! g_mime_content_type_is_type (content_type, "text", "html")))
{ {
show_text_part_content (node->part, stream, 0); show_text_part_content (node->part, stream, 0);
} else { } else {
@ -1218,8 +1219,10 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[])
} }
if (params.include_html && if (params.include_html &&
(format != NOTMUCH_FORMAT_JSON && format != NOTMUCH_FORMAT_SEXP)) { (format != NOTMUCH_FORMAT_TEXT &&
fprintf (stderr, "Warning: --include-html only implemented for format=json and format=sexp\n"); format != NOTMUCH_FORMAT_JSON &&
format != NOTMUCH_FORMAT_SEXP)) {
fprintf (stderr, "Warning: --include-html only implemented for format=text, format=json and format=sexp\n");
} }
query_string = query_string_from_args (config, argc-opt_index, argv+opt_index); query_string = query_string_from_args (config, argc-opt_index, argv+opt_index);

View file

@ -325,6 +325,15 @@ Non-text part: text/html
EOF EOF
test_expect_equal_file EXPECTED OUTPUT test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "--format=text --include-html --part=5, rfc822's html part"
notmuch show --format=text --include-html --part=5 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
cat <<EOF >EXPECTED
part{ ID: 5, Content-type: text/html
<p>This is an embedded message, with a multipart/alternative part.</p>
part}
EOF
test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "--format=text --part=6, rfc822's text part" test_begin_subtest "--format=text --part=6, rfc822's text part"
notmuch show --format=text --part=6 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT notmuch show --format=text --part=6 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
cat <<EOF >EXPECTED cat <<EOF >EXPECTED