aboutsummaryrefslogtreecommitdiffhomepage
path: root/sprinter.h
diff options
context:
space:
mode:
authorGravatar Austin Clements <amdragon@MIT.EDU>2012-08-02 21:14:49 -0400
committerGravatar David Bremner <bremner@debian.org>2012-08-03 20:21:29 -0300
commit14883b07003b9ed4223cd8f2c03b301fddae07bd (patch)
tree216ab7263c82a84aff4a03aa1ce759148cc07080 /sprinter.h
parent624d1897ce70fde8a41f2ea245db2a5e27f16ce1 (diff)
sprinter: Add a string_len method
This method allows callers to output strings with specific lengths. It's useful both for strings with embedded NULs (which JSON can represent, though parser support is apparently spotty), and non-terminated strings.
Diffstat (limited to 'sprinter.h')
-rw-r--r--sprinter.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/sprinter.h b/sprinter.h
index 6680d419..5f431757 100644
--- a/sprinter.h
+++ b/sprinter.h
@@ -23,11 +23,14 @@ typedef struct sprinter {
*/
void (*end) (struct sprinter *);
- /* Print one string/integer/boolean/null element (possibly inside a
- * list or map, followed or preceded by separators).
- * For string, the char * must be UTF-8 encoded.
+ /* Print one string/integer/boolean/null element (possibly inside
+ * a list or map, followed or preceded by separators). For string
+ * and string_len, the char * must be UTF-8 encoded. string_len
+ * allows non-terminated strings and strings with embedded NULs
+ * (though the handling of the latter is format-dependent).
*/
void (*string) (struct sprinter *, const char *);
+ void (*string_len) (struct sprinter *, const char *, size_t);
void (*integer) (struct sprinter *, int);
void (*boolean) (struct sprinter *, notmuch_bool_t);
void (*null) (struct sprinter *);