cli: notmuch show support for --body=false with --format=text

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

8
NEWS
View file

@ -1,3 +1,11 @@
Notmuch 0.29 (UNRELEASED)
=========================
Command Line Interface
----------------------
`notmuch show` now supports --body=false with --format=text
Notmuch 0.28 (2018-10-12) Notmuch 0.28 (2018-10-12)
========================= =========================

View file

@ -176,8 +176,8 @@ Supported options for **show** include
``--body=(true|false)`` ``--body=(true|false)``
If true (the default) **notmuch show** includes the bodies of the If true (the default) **notmuch show** includes the bodies of the
messages in the output; if false, bodies are omitted. messages in the output; if false, bodies are omitted.
``--body=false`` is only implemented for the json and sexp formats ``--body=false`` is only implemented for the text, json and sexp
and it is incompatible with ``--part > 0.`` formats and it is incompatible with ``--part > 0.``
This is useful if the caller only needs the headers as body-less This is useful if the caller only needs the headers as body-less
output is much faster and substantially smaller. output is much faster and substantially smaller.

View file

@ -574,6 +574,11 @@ format_part_text (const void *ctx, sprinter_t *sp, mime_node_t *node,
g_mime_stream_printf (stream, "Date: %s\n", date_string); g_mime_stream_printf (stream, "Date: %s\n", date_string);
g_mime_stream_printf (stream, "\fheader}\n"); g_mime_stream_printf (stream, "\fheader}\n");
if (!params->output_body)
{
g_mime_stream_printf (stream, "\f%s}\n", part_type);
return NOTMUCH_STATUS_SUCCESS;
}
g_mime_stream_printf (stream, "\fbody{\n"); g_mime_stream_printf (stream, "\fbody{\n");
} }
@ -1204,9 +1209,11 @@ notmuch_show_command (notmuch_config_t *config, int argc, char *argv[])
fprintf (stderr, "Warning: --body=false is incompatible with --part > 0. Disabling.\n"); fprintf (stderr, "Warning: --body=false is incompatible with --part > 0. Disabling.\n");
params.output_body = true; params.output_body = true;
} else { } else {
if (format != NOTMUCH_FORMAT_JSON && format != NOTMUCH_FORMAT_SEXP) if (format != NOTMUCH_FORMAT_TEXT &&
format != NOTMUCH_FORMAT_JSON &&
format != NOTMUCH_FORMAT_SEXP)
fprintf (stderr, fprintf (stderr,
"Warning: --body=false only implemented for format=json and format=sexp\n"); "Warning: --body=false only implemented for format=text, format=json and format=sexp\n");
} }
} }

View file

@ -190,6 +190,21 @@ Non-text part: application/pgp-signature
EOF EOF
test_expect_equal_file EXPECTED OUTPUT test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "--format=text --part=0 --body=false, message header"
notmuch show --format=text --part=0 --body=false 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
cat <<EOF >EXPECTED
message{ id:87liy5ap00.fsf@yoom.home.cworth.org depth:0 match:1 excluded:0 filename:${MAIL_DIR}/multipart
header{
Carl Worth <cworth@cworth.org> (2001-01-05) (attachment inbox signed unread)
Subject: Multipart message
From: Carl Worth <cworth@cworth.org>
To: cworth@cworth.org
Date: Fri, 05 Jan 2001 15:43:57 +0000
header}
message}
EOF
test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "--format=text --part=1, message body" test_begin_subtest "--format=text --part=1, message body"
notmuch show --format=text --part=1 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT notmuch show --format=text --part=1 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
cat <<EOF >EXPECTED cat <<EOF >EXPECTED