diff options
author | Carl Worth <cworth@cworth.org> | 2009-10-29 17:31:07 -0700 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2009-10-29 17:31:07 -0700 |
commit | c771eaf362edb021888d114989d38d8fb2b4cfb3 (patch) | |
tree | ba5a02ac5a84560733b5e31d3b633b8d256bb382 /notmuch.c | |
parent | 41c7ad2c91e56bfc0b2fefa0be303605d34f4042 (diff) |
notmuch search: Add (relative) date to search output
The new function for formatting relative dates is nice enough that
we need to start using it more places. Here's one of them.
Diffstat (limited to 'notmuch.c')
-rw-r--r-- | notmuch.c | 134 |
1 files changed, 70 insertions, 64 deletions
@@ -733,70 +733,6 @@ query_string_from_args (void *ctx, int argc, char *argv[]) return query_string; } -static int -search_command (int argc, char *argv[]) -{ - void *local = talloc_new (NULL); - notmuch_database_t *notmuch = NULL; - notmuch_query_t *query; - notmuch_thread_results_t *results; - notmuch_thread_t *thread; - notmuch_tags_t *tags; - char *query_str; - notmuch_status_t ret = NOTMUCH_STATUS_SUCCESS; - - notmuch = notmuch_database_open (NULL); - if (notmuch == NULL) { - ret = 1; - goto DONE; - } - - query_str = query_string_from_args (local, argc, argv); - - query = notmuch_query_create (notmuch, query_str); - if (query == NULL) { - fprintf (stderr, "Out of memory\n"); - ret = 1; - goto DONE; - } - - for (results = notmuch_query_search_threads (query); - notmuch_thread_results_has_more (results); - notmuch_thread_results_advance (results)) - { - int first = 1; - - thread = notmuch_thread_results_get (results); - - printf ("%s %s", - notmuch_thread_get_thread_id (thread), - notmuch_thread_get_subject (thread)); - - printf (" ("); - for (tags = notmuch_thread_get_tags (thread); - notmuch_tags_has_more (tags); - notmuch_tags_advance (tags)) - { - if (! first) - printf (" "); - printf ("%s", notmuch_tags_get (tags)); - first = 0; - } - printf (")\n"); - - notmuch_thread_destroy (thread); - } - - notmuch_query_destroy (query); - - DONE: - if (notmuch) - notmuch_database_close (notmuch); - talloc_free (local); - - return ret; -} - /* Format a nice representation of 'time' relative to the current time. * * Examples include: @@ -868,6 +804,76 @@ _format_relative_date (void *ctx, time_t then) #undef HOUR #undef DAY +static int +search_command (int argc, char *argv[]) +{ + void *local = talloc_new (NULL); + notmuch_database_t *notmuch = NULL; + notmuch_query_t *query; + notmuch_thread_results_t *results; + notmuch_thread_t *thread; + notmuch_tags_t *tags; + char *query_str; + const char *relative_date; + time_t date; + notmuch_status_t ret = NOTMUCH_STATUS_SUCCESS; + + notmuch = notmuch_database_open (NULL); + if (notmuch == NULL) { + ret = 1; + goto DONE; + } + + query_str = query_string_from_args (local, argc, argv); + + query = notmuch_query_create (notmuch, query_str); + if (query == NULL) { + fprintf (stderr, "Out of memory\n"); + ret = 1; + goto DONE; + } + + for (results = notmuch_query_search_threads (query); + notmuch_thread_results_has_more (results); + notmuch_thread_results_advance (results)) + { + int first = 1; + + thread = notmuch_thread_results_get (results); + + date = notmuch_thread_get_oldest_date (thread); + relative_date = _format_relative_date (local, date); + + printf ("%s (%s) %s", + notmuch_thread_get_thread_id (thread), + relative_date, + notmuch_thread_get_subject (thread)); + + printf (" ("); + for (tags = notmuch_thread_get_tags (thread); + notmuch_tags_has_more (tags); + notmuch_tags_advance (tags)) + { + if (! first) + printf (" "); + printf ("%s", notmuch_tags_get (tags)); + first = 0; + } + printf (")\n"); + + notmuch_thread_destroy (thread); + } + + notmuch_query_destroy (query); + + DONE: + if (notmuch) + notmuch_database_close (notmuch); + talloc_free (local); + + return ret; +} + /* Get a nice, single-line summary of message. */ static const char * _get_one_line_summary (void *ctx, notmuch_message_t *message) |