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).
const char *item_sep;
const char *item_end;
const char *results_end;
const char *item_sep;
const char *item_end;
const char *results_end;
+ const char *results_null;
} search_format_t;
static void
} search_format_t;
static void
"%s", " ",
")", "\n",
"",
"%s", " ",
")", "\n",
"",
notmuch_thread_destroy (thread);
}
notmuch_thread_destroy (thread);
}
- fputs (format->results_end, stdout);
+ if (first_thread)
+ fputs (format->results_null, stdout);
+ else
+ fputs (format->results_end, stdout);
notmuch_messages_destroy (messages);
notmuch_messages_destroy (messages);
- fputs (format->results_end, stdout);
+ if (first_message)
+ fputs (format->results_null, stdout);
+ else
+ fputs (format->results_end, stdout);
if (messages)
notmuch_messages_destroy (messages);
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);