aboutsummaryrefslogtreecommitdiffhomepage
path: root/notmuch-search.c
diff options
context:
space:
mode:
authorGravatar Jani Nikula <jani@nikula.org>2012-12-17 00:05:11 +0200
committerGravatar David Bremner <bremner@debian.org>2012-12-18 17:04:06 -0400
commit69408c35ff23292a045a58b9833b8dfe74fa0fda (patch)
tree12b15c4082860aa8fbbc306a35f19b07a26812e5 /notmuch-search.c
parent64122c31fa4a4d652fa61d639d250c99f534e17f (diff)
cli: add --format=text0 to notmuch search
Add new format text0, which is otherwise the same as text, but use the null character as separator instead of the newline character. This is similar to find(1) -print0 option, and works together with the xargs(1) -0 option.
Diffstat (limited to 'notmuch-search.c')
-rw-r--r--notmuch-search.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/notmuch-search.c b/notmuch-search.c
index 77049154..0b0a879e 100644
--- a/notmuch-search.c
+++ b/notmuch-search.c
@@ -305,8 +305,12 @@ notmuch_search_command (void *ctx, int argc, char *argv[])
int exclude = EXCLUDE_TRUE;
unsigned int i;
- enum { NOTMUCH_FORMAT_JSON, NOTMUCH_FORMAT_TEXT, NOTMUCH_FORMAT_SEXP }
- format_sel = NOTMUCH_FORMAT_TEXT;
+ enum {
+ NOTMUCH_FORMAT_JSON,
+ NOTMUCH_FORMAT_TEXT,
+ NOTMUCH_FORMAT_TEXT0,
+ NOTMUCH_FORMAT_SEXP
+ } format_sel = NOTMUCH_FORMAT_TEXT;
notmuch_opt_desc_t options[] = {
{ NOTMUCH_OPT_KEYWORD, &sort, "sort", 's',
@@ -317,6 +321,7 @@ notmuch_search_command (void *ctx, int argc, char *argv[])
(notmuch_keyword_t []){ { "json", NOTMUCH_FORMAT_JSON },
{ "sexp", NOTMUCH_FORMAT_SEXP },
{ "text", NOTMUCH_FORMAT_TEXT },
+ { "text0", NOTMUCH_FORMAT_TEXT0 },
{ 0, 0 } } },
{ NOTMUCH_OPT_INT, &notmuch_format_version, "format-version", 0, 0 },
{ NOTMUCH_OPT_KEYWORD, &output, "output", 'o',
@@ -346,6 +351,13 @@ notmuch_search_command (void *ctx, int argc, char *argv[])
case NOTMUCH_FORMAT_TEXT:
format = sprinter_text_create (ctx, stdout);
break;
+ case NOTMUCH_FORMAT_TEXT0:
+ if (output == OUTPUT_SUMMARY) {
+ fprintf (stderr, "Error: --format=text0 is not compatible with --output=summary.\n");
+ return 1;
+ }
+ format = sprinter_text0_create (ctx, stdout);
+ break;
case NOTMUCH_FORMAT_JSON:
format = sprinter_json_create (ctx, stdout);
break;