X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=notmuch-search.c;h=704aa43b654ec7fa10aab5ac795a4d079a19d48f;hb=c506e1034b5adb54b3e4f8d3e59086756f2bb126;hp=25dd6eba370b4b302135dc518ca7b4db1e285484;hpb=5171831813716fa09e64d37a9d6f6ba4fc418c5b;p=notmuch diff --git a/notmuch-search.c b/notmuch-search.c index 25dd6eba..704aa43b 100644 --- a/notmuch-search.c +++ b/notmuch-search.c @@ -104,25 +104,16 @@ format_thread_json (const void *ctx, const char *authors, const char *subject) { - struct tm *tm; - char timestamp[40]; void *ctx_quote = talloc_new (ctx); - tm = gmtime (&date); - if (tm == NULL) - INTERNAL_ERROR ("gmtime failed on thread %s.", thread_id); - - if (strftime (timestamp, sizeof (timestamp), "%s", tm) == 0) - INTERNAL_ERROR ("strftime failed on thread %s.", thread_id); - printf ("\"thread\": %s,\n" - "\"timestamp\": %s,\n" + "\"timestamp\": %ld,\n" "\"matched\": %d,\n" "\"total\": %d,\n" "\"authors\": %s,\n" "\"subject\": %s,\n", json_quote_str (ctx_quote, thread_id), - timestamp, + date, matched, total, json_quote_str (ctx_quote, authors), @@ -131,7 +122,7 @@ format_thread_json (const void *ctx, talloc_free (ctx_quote); } -static void +static int do_search_threads (const void *ctx, const search_format_t *format, notmuch_query_t *query, @@ -145,9 +136,13 @@ do_search_threads (const void *ctx, fputs (format->results_start, stdout); - for (threads = notmuch_query_search_threads (query); - notmuch_threads_has_more (threads); - notmuch_threads_advance (threads)) + threads = notmuch_query_search_threads (query); + if (threads == NULL) + return 1; + + for (; + notmuch_threads_valid (threads); + notmuch_threads_move_to_next (threads)) { int first_tag = 1; @@ -174,8 +169,8 @@ do_search_threads (const void *ctx, fputs (format->tag_start, stdout); for (tags = notmuch_thread_get_tags (thread); - notmuch_tags_has_more (tags); - notmuch_tags_advance (tags)) + notmuch_tags_valid (tags); + notmuch_tags_move_to_next (tags)) { if (! first_tag) fputs (format->tag_sep, stdout); @@ -192,6 +187,8 @@ do_search_threads (const void *ctx, } fputs (format->results_end, stdout); + + return 0; } int @@ -204,7 +201,7 @@ notmuch_search_command (void *ctx, int argc, char *argv[]) char *opt; notmuch_sort_t sort = NOTMUCH_SORT_NEWEST_FIRST; const search_format_t *format = &format_text; - int i; + int i, ret; for (i = 0; i < argc && argv[i][0] == '-'; i++) { if (strcmp (argv[i], "--") == 0) { @@ -267,10 +264,10 @@ notmuch_search_command (void *ctx, int argc, char *argv[]) notmuch_query_set_sort (query, sort); - do_search_threads (ctx, format, query, sort); + ret = do_search_threads (ctx, format, query, sort); notmuch_query_destroy (query); notmuch_database_close (notmuch); - return 0; + return ret; }