commit - 88930849b9f3a3fbc9a395f21d4b47c2b1e11ae8
commit + 55aa433f8f1327733b5f8695d0f211c8c3ab8077
blob - d78c06a5d79487bdde5bcf29258b85c61328dd2f
blob + 7dcf584964c0faeedfd4bcc0337a56535601d897
--- include/parser.h
+++ include/parser.h
void parser_init(struct tab *, parserfn);
int parser_parse(struct tab *, const char *, size_t);
+int parser_parsef(struct tab *, const char *, ...);
int parser_free(struct tab *);
int parser_serialize(struct tab *, FILE *);
blob - 45201b7cab3fcfecf1c0847838242ecdac11e89e
blob + f28aa10423a0b52f2045f8f71c9cf209dc54b784
--- parser/parser.c
+++ parser/parser.c
}
int
+parser_parsef(struct tab *tab, const char *fmt, ...)
+{
+ char *s;
+ va_list ap;
+ int r;
+
+ va_start(ap, fmt);
+ r = vasprintf(&s, fmt, ap);
+ va_end(ap);
+
+ if (r == -1)
+ return 0;
+
+ r = parser_parse(tab, s, strlen(s));
+ free(s);
+ return r;
+}
+
+int
parser_free(struct tab *tab)
{
int r;