]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-search.c
emacs: Use --format-version for search, show, and reply
[notmuch] / notmuch-search.c
index 830c4e47ae9799034f28a5cca494fda231cd8f77..77049154c69004862bd5ea90bd9d2cd45ac75016 100644 (file)
@@ -305,7 +305,7 @@ notmuch_search_command (void *ctx, int argc, char *argv[])
     int exclude = EXCLUDE_TRUE;
     unsigned int i;
 
-    enum { NOTMUCH_FORMAT_JSON, NOTMUCH_FORMAT_TEXT }
+    enum { NOTMUCH_FORMAT_JSON, NOTMUCH_FORMAT_TEXT, NOTMUCH_FORMAT_SEXP }
        format_sel = NOTMUCH_FORMAT_TEXT;
 
     notmuch_opt_desc_t options[] = {
@@ -315,8 +315,10 @@ notmuch_search_command (void *ctx, int argc, char *argv[])
                                  { 0, 0 } } },
        { NOTMUCH_OPT_KEYWORD, &format_sel, "format", 'f',
          (notmuch_keyword_t []){ { "json", NOTMUCH_FORMAT_JSON },
+                                 { "sexp", NOTMUCH_FORMAT_SEXP },
                                  { "text", NOTMUCH_FORMAT_TEXT },
                                  { 0, 0 } } },
+       { NOTMUCH_OPT_INT, &notmuch_format_version, "format-version", 0, 0 },
        { NOTMUCH_OPT_KEYWORD, &output, "output", 'o',
          (notmuch_keyword_t []){ { "summary", OUTPUT_SUMMARY },
                                  { "threads", OUTPUT_THREADS },
@@ -347,11 +349,16 @@ notmuch_search_command (void *ctx, int argc, char *argv[])
     case NOTMUCH_FORMAT_JSON:
        format = sprinter_json_create (ctx, stdout);
        break;
+    case NOTMUCH_FORMAT_SEXP:
+       format = sprinter_sexp_create (ctx, stdout);
+       break;
     default:
        /* this should never happen */
        INTERNAL_ERROR("no output format selected");
     }
 
+    notmuch_exit_if_unsupported_format ();
+
     config = notmuch_config_open (ctx, NULL, NULL);
     if (config == NULL)
        return 1;