aboutsummaryrefslogtreecommitdiffhomepage
path: root/notmuch-search.c
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2011-01-31 05:26:04 +1000
committerGravatar Carl Worth <cworth@cworth.org>2011-03-09 15:10:03 -0800
commit0b1ddc5f6652bde99d63d9d553777b3d926694cf (patch)
treeba702a46212315712cc89dfe9cd33a3fd32ee4a9 /notmuch-search.c
parentf14d4c55ce95edacd4c04318f1d729fef0207aec (diff)
json: Fix search result with no matches to be a valid json object.
In the original json code, search matching nothing would return a valid, empty json array (that is, "[]"). I broke this in commit 6dcb7592e32ed5140ea0c0357ce78d6a37af6066 when adding support for --output=threads|messages|tags. This time, while fixing the bug also add a test to the test suite to help avoid future regressions.
Diffstat (limited to 'notmuch-search.c')
-rw-r--r--notmuch-search.c29
1 files changed, 13 insertions, 16 deletions
diff --git a/notmuch-search.c b/notmuch-search.c
index a91b2311..8b901210 100644
--- a/notmuch-search.c
+++ b/notmuch-search.c
@@ -72,7 +72,7 @@ static const search_format_t format_text = {
"%s", " ",
")", "\n",
"",
- "\n",
+ "",
};
static void
@@ -182,15 +182,15 @@ do_search_threads (const search_format_t *format,
if (threads == NULL)
return 1;
+ fputs (format->results_start, stdout);
+
for (;
notmuch_threads_valid (threads);
notmuch_threads_move_to_next (threads))
{
int first_tag = 1;
- if (first_thread)
- fputs (format->results_start, stdout);
- else
+ if (! first_thread)
fputs (format->item_sep, stdout);
thread = notmuch_threads_get (threads);
@@ -236,8 +236,7 @@ do_search_threads (const search_format_t *format,
notmuch_thread_destroy (thread);
}
- if (! first_thread)
- fputs (format->results_end, stdout);
+ fputs (format->results_end, stdout);
return 0;
}
@@ -255,15 +254,15 @@ do_search_messages (const search_format_t *format,
if (messages == NULL)
return 1;
+ fputs (format->results_start, stdout);
+
for (;
notmuch_messages_valid (messages);
notmuch_messages_move_to_next (messages))
{
message = notmuch_messages_get (messages);
- if (first_message)
- fputs (format->results_start, stdout);
- else
+ if (! first_message)
fputs (format->item_sep, stdout);
if (output == OUTPUT_FILES) {
@@ -281,8 +280,7 @@ do_search_messages (const search_format_t *format,
notmuch_messages_destroy (messages);
- if (! first_message)
- fputs (format->results_end, stdout);
+ fputs (format->results_end, stdout);
return 0;
}
@@ -310,15 +308,15 @@ do_search_tags (notmuch_database_t *notmuch,
if (tags == NULL)
return 1;
+ fputs (format->results_start, stdout);
+
for (;
notmuch_tags_valid (tags);
notmuch_tags_move_to_next (tags))
{
tag = notmuch_tags_get (tags);
- if (first_tag)
- fputs (format->results_start, stdout);
- else
+ if (! first_tag)
fputs (format->item_sep, stdout);
format->item_id (tags, "", tag);
@@ -331,8 +329,7 @@ do_search_tags (notmuch_database_t *notmuch,
if (messages)
notmuch_messages_destroy (messages);
- if (! first_tag)
- fputs (format->results_end, stdout);
+ fputs (format->results_end, stdout);
return 0;
}