[notmuch] [PATCH 2/3] notmuch-show.c: make calls to format functions conditional

Subject: [notmuch] [PATCH 2/3] notmuch-show.c: make calls to format functions conditional

Date: Sat, 19 Dec 2009 10:55:23 -0400

To: notmuch@notmuchmail.org

Cc: David Bremner

From: david@tethera.net


From: David Bremner <bremner@unb.ca>

This makes it easier to define minimal formats without defining several
dummy functions that do nothing.
---
 notmuch-show.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/notmuch-show.c b/notmuch-show.c
index b6e3f44..51aa87d 100644
--- a/notmuch-show.c
+++ b/notmuch-show.c
@@ -326,14 +326,17 @@ static void
 show_message (void *ctx, const show_format_t *format, notmuch_message_t *message, int indent)
 {
     fputs (format->message_start, stdout);
-    format->message(ctx, message, indent);
+    if (format->message)
+	format->message(ctx, message, indent);
 
     fputs (format->header_start, stdout);
-    format->header(ctx, message);
+    if (format->header) 
+	format->header(ctx, message);
     fputs (format->header_end, stdout);
 
     fputs (format->body_start, stdout);
-    show_message_body (notmuch_message_get_filename (message), format->part);
+    if (format->part) 
+	show_message_body (notmuch_message_get_filename (message), format->part);
     fputs (format->body_end, stdout);
 
     fputs (format->message_end, stdout);
@@ -408,7 +411,9 @@ notmuch_show_command (void *ctx, unused (int argc), unused (char *argv[]))
 	}
 	if (STRNCMP_LITERAL (argv[i], "--format=") == 0) {
 	    opt = argv[i] + sizeof ("--format=") - 1;
-	    if (strcmp (opt, "text") == 0) {
+	    if (strcmp (opt, "tabular") == 0) {
+		format = &format_tabular;
+	    } else if (strcmp (opt, "text") == 0) {
 		format = &format_text;
 	    } else if (strcmp (opt, "json") == 0) {
 		format = &format_json;
-- 
1.6.5.3


Thread: