aboutsummaryrefslogtreecommitdiffhomepage
path: root/notmuch-search.c
diff options
context:
space:
mode:
authorGravatar Jameson Graef Rollins <jrollins@finestructure.net>2011-05-06 12:03:04 -0700
committerGravatar Carl Worth <cworth@cworth.org>2011-06-01 16:30:29 -0700
commit049ac914f9041df54bfdbcb43f9356c4e74c1279 (patch)
tree309203c30790f60f9b757e8e39c5496dee48d26d /notmuch-search.c
parent593d96ff1d2c7f3f175cd6b258e02e9f4ce2392d (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.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/notmuch-search.c b/notmuch-search.c
index 8b901210..69af6171 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;
}