Commit Diff


commit - 88930849b9f3a3fbc9a395f21d4b47c2b1e11ae8
commit + 55aa433f8f1327733b5f8695d0f211c8c3ab8077
blob - d78c06a5d79487bdde5bcf29258b85c61328dd2f
blob + 7dcf584964c0faeedfd4bcc0337a56535601d897
--- include/parser.h
+++ include/parser.h
@@ -23,6 +23,7 @@ typedef void (*parserfn)(struct parser *);
 
 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
@@ -37,6 +37,25 @@ parser_parse(struct tab *tab, const char *chunk, size_
 }
 
 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;