/* Print signature flags */
struct key_map_struct {
- GMimeSignatureError bit;
+ GMimeSignatureStatus bit;
const char * string;
};
static void
do_format_signature_errors (sprinter_t *sp, struct key_map_struct *key_map,
- unsigned int array_map_len, GMimeSignatureError errors) {
+ unsigned int array_map_len, GMimeSignatureStatus errors) {
sp->map_key (sp, "errors");
sp->begin_map (sp);
sp->end (sp);
}
-#if (GMIME_MAJOR_VERSION < 3)
static void
format_signature_errors (sprinter_t *sp, GMimeSignature *signature)
{
- GMimeSignatureError errors = g_mime_signature_get_errors (signature);
-
- if (errors == GMIME_SIGNATURE_ERROR_NONE)
- return;
-
- struct key_map_struct key_map[] = {
- { GMIME_SIGNATURE_ERROR_EXPSIG, "sig-expired" },
- { GMIME_SIGNATURE_ERROR_NO_PUBKEY, "key-missing"},
- { GMIME_SIGNATURE_ERROR_EXPKEYSIG, "key-expired"},
- { GMIME_SIGNATURE_ERROR_REVKEYSIG, "key-revoked"},
- { GMIME_SIGNATURE_ERROR_UNSUPP_ALGO, "alg-unsupported"},
- };
-
- do_format_signature_errors (sp, key_map, ARRAY_SIZE(key_map), errors);
-}
-#else
-static void
-format_signature_errors (sprinter_t *sp, GMimeSignature *signature)
-{
- GMimeSignatureError errors = g_mime_signature_get_errors (signature);
+ GMimeSignatureStatus errors = g_mime_signature_get_status (signature);
if (!(errors & GMIME_SIGNATURE_STATUS_ERROR_MASK))
return;
do_format_signature_errors (sp, key_map, ARRAY_SIZE(key_map), errors);
}
-#endif
-/* Signature status sprinter (GMime 2.6) */
+/* Signature status sprinter */
static void
-format_part_sigstatus_sprinter (sprinter_t *sp, mime_node_t *node)
+format_part_sigstatus_sprinter (sprinter_t *sp, GMimeSignatureList *siglist)
{
/* Any changes to the JSON or S-Expression format should be
* reflected in the file devel/schemata. */
- GMimeSignatureList *siglist = node->sig_list;
-
sp->begin_list (sp);
if (!siglist) {
}
if (notmuch_format_version <= 3) {
- GMimeSignatureError errors = g_mime_signature_get_errors (signature);
+ GMimeSignatureStatus errors = g_mime_signature_get_status (signature);
if (g_mime_signature_status_error (errors)) {
sp->map_key (sp, "errors");
sp->integer (sp, errors);
g_mime_stream_printf (stream, "Date: %s\n", date_string);
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");
}
if (leaf) {
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);
} else {
if (node->verify_attempted) {
sp->map_key (sp, "sigstatus");
- format_part_sigstatus_sprinter (sp, node);
+ format_part_sigstatus_sprinter (sp, node->sig_list);
}
sp->map_key (sp, "content-type");
part = mime_node_seek_dfs (root, (params->part < 0 ? 0 : params->part));
if (part)
status = format->part (local, sp, part, indent, params);
-#if HAVE_GMIME_SESSION_KEYS
if (params->crypto.decrypt == NOTMUCH_DECRYPT_TRUE && session_key_count_error == NOTMUCH_STATUS_SUCCESS) {
unsigned int new_session_keys = 0;
if (notmuch_message_count_properties (message, "session-key", &new_session_keys) == NOTMUCH_STATUS_SUCCESS &&
}
}
}
-#endif
DONE:
talloc_free (local);
return status;
fprintf (stderr, "Warning: --body=false is incompatible with --part > 0. Disabling.\n");
params.output_body = true;
} 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,
- "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");
}
}
if (params.include_html &&
- (format != NOTMUCH_FORMAT_JSON && format != NOTMUCH_FORMAT_SEXP)) {
- fprintf (stderr, "Warning: --include-html only implemented for format=json and format=sexp\n");
+ (format != NOTMUCH_FORMAT_TEXT &&
+ 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);
return EXIT_FAILURE;
}
-#if (GMIME_MAJOR_VERSION < 3)
- params.crypto.gpgpath = notmuch_config_get_crypto_gpg_path (config);
-#endif
-
notmuch_database_mode_t mode = NOTMUCH_DATABASE_MODE_READ_ONLY;
if (params.crypto.decrypt == NOTMUCH_DECRYPT_TRUE)
mode = NOTMUCH_DATABASE_MODE_READ_WRITE;