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),
talloc_free (ctx_quote);
}
-static void
+static int
do_search_threads (const void *ctx,
const search_format_t *format,
notmuch_query_t *query,
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;
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);
}
fputs (format->results_end, stdout);
+
+ return 0;
}
int
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) {
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;
}