[PATCH v2 6/8] show: Make JSON helper functions print complete objects

Austin Clements amdragon at MIT.EDU
Sun Feb 19 16:26:28 PST 2012


This makes the main recursive function easier to follow because helper
functions don't add fields to the running object.
---
 notmuch-show.c |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/notmuch-show.c b/notmuch-show.c
index 6259d30..8fb6fa6 100644
--- a/notmuch-show.c
+++ b/notmuch-show.c
@@ -297,7 +297,7 @@ format_headers_json (const void *ctx, GMimeMessage *message)
     InternetAddressList *recipients;
     const char *recipients_string;
 
-    printf ("%s: %s",
+    printf ("{%s: %s",
 	    json_quote_str (local, "Subject"),
 	    json_quote_str (local, g_mime_message_get_subject (message)));
     printf (", %s: %s",
@@ -315,7 +315,7 @@ format_headers_json (const void *ctx, GMimeMessage *message)
 	printf (", %s: %s",
 		json_quote_str (local, "Cc"),
 		json_quote_str (local, recipients_string));
-    printf (", %s: %s",
+    printf (", %s: %s}",
 	    json_quote_str (local, "Date"),
 	    json_quote_str (local, g_mime_message_get_date_as_string (message)));
 
@@ -406,7 +406,7 @@ signer_status_to_string (GMimeSignerStatus x)
 static void
 format_part_sigstatus_json (GMimeSignatureList *siglist)
 {
-    printf (", \"sigstatus\": [");
+    printf ("[");
 
     if (!siglist) {
 	printf ("]");
@@ -472,7 +472,7 @@ format_part_sigstatus_json (GMimeSignatureList *siglist)
 static void
 format_part_sigstatus_json (const GMimeSignatureValidity* validity)
 {
-    printf (", \"sigstatus\": [");
+    printf ("[");
 
     if (!validity) {
 	printf ("]");
@@ -658,9 +658,8 @@ format_part_json (const void *ctx, mime_node_t *node, notmuch_bool_t first)
 	printf ("{");
 	format_message_json (ctx, node->envelope_file);
 
-	printf ("\"headers\": {");
+	printf ("\"headers\": ");
 	format_headers_json (ctx, GMIME_MESSAGE (node->part));
-	printf ("}");
 
 	printf (", \"body\": [");
 	format_part_json (ctx, mime_node_child (node, 0), first);
@@ -696,6 +695,7 @@ format_part_json (const void *ctx, mime_node_t *node, notmuch_bool_t first)
     }
 
     if (node->verify_attempted) {
+	printf (", \"sigstatus\": ");
 #ifdef GMIME_ATLEAST_26
 	format_part_sigstatus_json (node->sig_list);
 #else
@@ -746,9 +746,8 @@ format_part_json (const void *ctx, mime_node_t *node, notmuch_bool_t first)
 	g_object_unref (stream_memory);
 
     if (GMIME_IS_MESSAGE (node->part)) {
-	printf ("\"headers\": {");
+	printf ("\"headers\": ");
 	format_headers_json (local, GMIME_MESSAGE (node->part));
-	printf ("}");
 
 	printf (", \"body\": [");
     }
-- 
1.7.7.3



More information about the notmuch mailing list