sprinter: add text0 formatter for null character separated text

Same as the text formatter, but with each field separated by a null
character rather than a newline character.
This commit is contained in:
Jani Nikula 2012-12-17 00:05:10 +02:00 committed by David Bremner
parent 1358f93a9f
commit 64122c31fa
2 changed files with 28 additions and 0 deletions

View file

@ -67,6 +67,14 @@ text_separator (struct sprinter *sp)
fputc ('\n', sptxt->stream);
}
static void
text0_separator (struct sprinter *sp)
{
struct sprinter_text *sptxt = (struct sprinter_text *) sp;
fputc ('\0', sptxt->stream);
}
static void
text_set_prefix (struct sprinter *sp, const char *prefix)
{
@ -133,3 +141,17 @@ sprinter_text_create (const void *ctx, FILE *stream)
res->stream = stream;
return &res->vtable;
}
struct sprinter *
sprinter_text0_create (const void *ctx, FILE *stream)
{
struct sprinter *sp;
sp = sprinter_text_create (ctx, stream);
if (! sp)
return NULL;
sp->separator = text0_separator;
return sp;
}

View file

@ -67,6 +67,12 @@ typedef struct sprinter {
struct sprinter *
sprinter_text_create (const void *ctx, FILE *stream);
/* Create a new unstructured printer that emits the text format for
* "notmuch search", with each field separated by a null character
* instead of the newline character. */
struct sprinter *
sprinter_text0_create (const void *ctx, FILE *stream);
/* Create a new structure printer that emits JSON. */
struct sprinter *
sprinter_json_create (const void *ctx, FILE *stream);