]> git.cworth.org Git - notmuch/blobdiff - notmuch-show.c
cli: Let json output "null" messages for non --entire-thread
[notmuch] / notmuch-show.c
index 3c0679244afc641ac08b0ff38734fd8086a6e557..b00446843e37894f1966b6fdb8037f01f351b8c8 100644 (file)
@@ -37,7 +37,8 @@ static const notmuch_show_format_t format_json = {
     .message_set_start = "[",
     .part = format_part_json_entry,
     .message_set_sep = ", ",
-    .message_set_end = "]"
+    .message_set_end = "]",
+    .null_message = "null"
 };
 
 static notmuch_status_t
@@ -799,6 +800,15 @@ format_part_raw (unused (const void *ctx), mime_node_t *node,
     return NOTMUCH_STATUS_SUCCESS;
 }
 
+static notmuch_status_t
+show_null_message (const notmuch_show_format_t *format)
+{
+    /* Output a null message. Currently empty for all formats except Json */
+    if (format->null_message)
+       printf ("%s", format->null_message);
+    return NOTMUCH_STATUS_SUCCESS;
+}
+
 static notmuch_status_t
 show_message (void *ctx,
              const notmuch_show_format_t *format,
@@ -861,11 +871,13 @@ show_messages (void *ctx,
            if (status && !res)
                res = status;
            next_indent = indent + 1;
-
-           if (!status && format->message_set_sep)
-               fputs (format->message_set_sep, stdout);
+       } else {
+           status = show_null_message (format);
        }
 
+       if (!status && format->message_set_sep)
+           fputs (format->message_set_sep, stdout);
+
        status = show_messages (ctx,
                                format,
                                notmuch_message_get_replies (message),
@@ -1056,29 +1068,6 @@ notmuch_show_command (void *ctx, unused (int argc), unused (char *argv[]))
        break;
     }
 
-    if (params.crypto.decrypt || params.crypto.verify) {
-#ifdef GMIME_ATLEAST_26
-       /* TODO: GMimePasswordRequestFunc */
-       params.crypto.gpgctx = g_mime_gpg_context_new (NULL, "gpg");
-#else
-       GMimeSession* session = g_object_new (g_mime_session_get_type(), NULL);
-       params.crypto.gpgctx = g_mime_gpg_context_new (session, "gpg");
-#endif
-       if (params.crypto.gpgctx) {
-           g_mime_gpg_context_set_always_trust ((GMimeGpgContext*) params.crypto.gpgctx, FALSE);
-       } else {
-           /* If we fail to create the gpgctx set the verify and
-            * decrypt flags to FALSE so we don't try to do any
-            * further verification or decryption */
-           params.crypto.verify = FALSE;
-           params.crypto.decrypt = FALSE;
-           fprintf (stderr, "Failed to construct gpg context.\n");
-       }
-#ifndef GMIME_ATLEAST_26
-       g_object_unref (session);
-#endif
-    }
-
     config = notmuch_config_open (ctx, NULL, NULL);
     if (config == NULL)
        return 1;