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;
+ /* raw format only supports single message display */
+ single_message = TRUE;
params.raw = TRUE;
break;
}
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 */