From a01956924eb5b7fd4077b1c6678cbc53faa99d43 Mon Sep 17 00:00:00 2001
From: Jameson Graef Rollins <jrollins@finestructure.net>
Date: Mon, 23 May 2011 15:38:49 -0700
Subject: [PATCH] use format=raw by default when requesting part with --part=

This makes part retrieval a little more intuitive, since generally one
will always want to retrieve parts in raw form.
---
 notmuch-show.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/notmuch-show.c b/notmuch-show.c
index c57f7bd0..d11a2b81 100644
--- a/notmuch-show.c
+++ b/notmuch-show.c
@@ -710,6 +710,7 @@ notmuch_show_command (void *ctx, unused (int argc), unused (char *argv[]))
     const notmuch_show_format_t *format = &format_text;
     notmuch_show_params_t params;
     int mbox = 0;
+    int format_specified = 0;
     int i;
 
     params.entire_thread = 0;
@@ -738,6 +739,7 @@ notmuch_show_command (void *ctx, unused (int argc), unused (char *argv[]))
 		fprintf (stderr, "Invalid value for --format: %s\n", opt);
 		return 1;
 	    }
+	    format_specified = 1;
 	} else if (STRNCMP_LITERAL (argv[i], "--part=") == 0) {
 	    params.part = atoi(argv[i] + sizeof ("--part=") - 1);
 	} else if (STRNCMP_LITERAL (argv[i], "--entire-thread") == 0) {
@@ -782,6 +784,10 @@ notmuch_show_command (void *ctx, unused (int argc), unused (char *argv[]))
 	return 1;
     }
 
+    /* if part was requested and format was not specified, use format=raw */
+    if (params.part >= 0 && !format_specified)
+	format = &format_raw;
+
     /* If --format=raw specified without specifying part, we can only
      * output single message, so set part=0 */
     if (params.raw && params.part < 0)
-- 
2.45.2