int format_sel = NOTMUCH_FORMAT_NOT_SPECIFIED;
int exclude = EXCLUDE_TRUE;
int entire_thread = ENTIRE_THREAD_DEFAULT;
+ notmuch_bool_t single_message;
notmuch_opt_desc_t options[] = {
{ NOTMUCH_OPT_KEYWORD, &format_sel, "format", 'f',
if (params.crypto.decrypt)
params.crypto.verify = TRUE;
+ /* specifying a part implies single message display */
+ single_message = params.part >= 0;
+
if (format_sel == NOTMUCH_FORMAT_NOT_SPECIFIED) {
/* if part was requested and format was not specified, use format=raw */
if (params.part >= 0)
break;
case NOTMUCH_FORMAT_RAW:
format = &format_raw;
- /* If --format=raw specified without specifying part, we can only
- * output single message, so set part=0 */
- if (params.part < 0)
- params.part = 0;
- params.raw = TRUE;
+ /* raw format only supports single message display */
+ single_message = TRUE;
break;
}
/* Default is entire-thread = FALSE except for format=json and
* format=sexp. */
if (entire_thread == ENTIRE_THREAD_DEFAULT) {
- if (format == &format_json || format == &format_sexp)
+ if (format_sel == NOTMUCH_FORMAT_JSON ||
+ format_sel == NOTMUCH_FORMAT_SEXP)
entire_thread = ENTIRE_THREAD_TRUE;
else
entire_thread = ENTIRE_THREAD_FALSE;
fprintf (stderr, "Warning: --body=false is incompatible with --part > 0. Disabling.\n");
params.output_body = TRUE;
} else {
- if (format != &format_json && format != &format_sexp)
+ if (format_sel != NOTMUCH_FORMAT_JSON &&
+ format_sel != NOTMUCH_FORMAT_SEXP)
fprintf (stderr,
"Warning: --body=false only implemented for format=json and format=sexp\n");
}
sprinter = format->new_sprinter(config, stdout);
/* If a single message is requested we do not use search_excludes. */
- if (params.part >= 0)
+ if (single_message) {
ret = do_show_single (config, query, format, sprinter, ¶ms);
- else {
+ } else {
/* We always apply set the exclude flag. The
* exclude=true|false option controls whether or not we return
* threads that only match in an excluded message */