notmuch-show: add tags to json output
authorSebastian Spaeth <Sebastian@SSpaeth.de>
Thu, 11 Mar 2010 12:11:43 +0000 (13:11 +0100)
committerCarl Worth <cworth@cworth.org>
Thu, 11 Mar 2010 12:30:46 +0000 (04:30 -0800)
The previous json patches forgot to add the notmuch tags to the json
output. This is inconsistent to the text output so here they are. We
just output a 'tags' field that sends notmuch tags as a json array.

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
notmuch-show.c

index cb5e47aa9ed14e9e167010c6e3ec9576ff04f8e8..ff1fecb227f2e74cebd9342eb554f86d8363b37b 100644 (file)
@@ -136,13 +136,24 @@ format_message_text (unused (const void *ctx), notmuch_message_t *message, int i
 static void
 format_message_json (const void *ctx, notmuch_message_t *message, unused (int indent))
 {
+    notmuch_tags_t *tags;
+    int first = 1;
     void *ctx_quote = talloc_new (ctx);
 
-    printf ("\"id\": %s, \"match\": %s, \"filename\": %s",
+    printf ("\"id\": %s, \"match\": %s, \"filename\": %s, \"tags\": [",
            json_quote_str (ctx_quote, notmuch_message_get_message_id (message)),
            notmuch_message_get_flag (message, NOTMUCH_MESSAGE_FLAG_MATCH) ? "true" : "false",
            json_quote_str (ctx_quote, notmuch_message_get_filename (message)));
 
+    for (tags = notmuch_message_get_tags (message);
+        notmuch_tags_valid (tags);
+        notmuch_tags_move_to_next (tags))
+    {
+         printf("%s%s", first ? "" : ",",
+               json_quote_str (ctx_quote, notmuch_tags_get (tags)));
+         first = 0;
+    }
+    printf("]");
     talloc_free (ctx_quote);
 }