cli/{show,reply}: skip over legacy-display parts

Make use of the previous changes to fast-forward past any
legacy-display parts during "notmuch show" and "notmuch reply".

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
This commit is contained in:
Daniel Kahn Gillmor 2019-08-29 11:38:52 -04:00 committed by David Bremner
parent ff3d873f0b
commit c61e22d5cb
2 changed files with 10 additions and 3 deletions

View file

@ -333,7 +333,16 @@ _mime_node_set_up_part (mime_node_t *node, GMimeObject *part, int numchild)
node_verify (node, part); node_verify (node, part);
} }
} else { } else {
(void) _notmuch_message_crypto_potential_payload (node->ctx->msg_crypto, part, node->parent ? node->parent->part : NULL, numchild); if (_notmuch_message_crypto_potential_payload (node->ctx->msg_crypto, part, node->parent ? node->parent->part : NULL, numchild) &&
node->ctx->msg_crypto->decryption_status == NOTMUCH_MESSAGE_DECRYPTED_FULL) {
GMimeObject *clean_payload = _notmuch_repair_crypto_payload_skip_legacy_display (part);
if (clean_payload != part) {
/* only one layer of recursion is possible here
* because there can be only a single cryptographic
* payload: */
return _mime_node_set_up_part (node, clean_payload, numchild);
}
}
} }
return true; return true;

View file

@ -137,14 +137,12 @@ id:protected-header@crypto.notmuchmail.org
id:subjectless-protected-header@crypto.notmuchmail.org' id:subjectless-protected-header@crypto.notmuchmail.org'
test_begin_subtest "when rendering protected headers, avoid rendering legacy-display part" test_begin_subtest "when rendering protected headers, avoid rendering legacy-display part"
test_subtest_known_broken
output=$(notmuch show --format=json id:protected-with-legacy-display@crypto.notmuchmail.org) output=$(notmuch show --format=json id:protected-with-legacy-display@crypto.notmuchmail.org)
test_json_nodes <<<"$output" \ test_json_nodes <<<"$output" \
'subject:[0][0][0]["headers"]["Subject"]="Interrupting Cow"' \ 'subject:[0][0][0]["headers"]["Subject"]="Interrupting Cow"' \
'no_legacy_display:[0][0][0]["body"][0]["content"][1]["content-type"]="text/plain"' 'no_legacy_display:[0][0][0]["body"][0]["content"][1]["content-type"]="text/plain"'
test_begin_subtest "when replying, avoid rendering legacy-display part" test_begin_subtest "when replying, avoid rendering legacy-display part"
test_subtest_known_broken
output=$(notmuch reply --format=json id:protected-with-legacy-display@crypto.notmuchmail.org) output=$(notmuch reply --format=json id:protected-with-legacy-display@crypto.notmuchmail.org)
test_json_nodes <<<"$output" \ test_json_nodes <<<"$output" \
'no_legacy_display:["original"]["body"][0]["content"][1]["content-type"]="text/plain"' 'no_legacy_display:["original"]["body"][0]["content"][1]["content-type"]="text/plain"'