diff options
author | Jameson Graef Rollins <jrollins@finestructure.net> | 2011-05-06 12:03:04 -0700 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2011-06-01 16:30:29 -0700 |
commit | 049ac914f9041df54bfdbcb43f9356c4e74c1279 (patch) | |
tree | 309203c30790f60f9b757e8e39c5496dee48d26d /notmuch-search.c | |
parent | 593d96ff1d2c7f3f175cd6b258e02e9f4ce2392d (diff) |
Fix missing final newline in notmuch search output
A previous commit to fix json formatting for null results
(0b1ddc5f6652bde99d63d9d553777b3d926694cf) accidentally introduced a
regression that removed trailing newlines for non-json output. (There
wasn't a good test for this previously, but there is now). The
problem is due to the fundamental differences in formatting between
the json and non-json outputs. The only way to fix this was to add a
new formatting field that represents the string to output at the end
of a null result.
All output formatting tests should pass now, (in particular, the 4
recent test failures introduced to show this bug).
Diffstat (limited to 'notmuch-search.c')
-rw-r--r-- | notmuch-search.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/notmuch-search.c b/notmuch-search.c index 8b90121..69af617 100644 --- a/notmuch-search.c +++ b/notmuch-search.c @@ -48,6 +48,7 @@ typedef struct search_format { const char *item_sep; const char *item_end; const char *results_end; + const char *results_null; } search_format_t; static void @@ -72,6 +73,7 @@ static const search_format_t format_text = { "%s", " ", ")", "\n", "", + "\n", "", }; @@ -98,6 +100,7 @@ static const search_format_t format_json = { "]", ",\n", "}", "]\n", + "]\n", }; static void @@ -236,7 +239,10 @@ do_search_threads (const search_format_t *format, notmuch_thread_destroy (thread); } - fputs (format->results_end, stdout); + if (first_thread) + fputs (format->results_null, stdout); + else + fputs (format->results_end, stdout); return 0; } @@ -280,7 +286,10 @@ do_search_messages (const search_format_t *format, notmuch_messages_destroy (messages); - fputs (format->results_end, stdout); + if (first_message) + fputs (format->results_null, stdout); + else + fputs (format->results_end, stdout); return 0; } @@ -329,7 +338,10 @@ do_search_tags (notmuch_database_t *notmuch, if (messages) notmuch_messages_destroy (messages); - fputs (format->results_end, stdout); + if (first_tag) + fputs (format->results_null, stdout); + else + fputs (format->results_end, stdout); return 0; } |