From ebbc088e13e1bf0dbf8eb08b00519602c176f864 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 29 Mar 2009 11:44:44 +0200 Subject: quote: implement "sq_dequote_many" to unwrap many args in one string The sq_dequote() function does not allow parsing a string with more than one single-quoted parameter easily; use its code to implement a new API sq_dequote_step() to allow the caller iterate through such a string to parse them one-by-one. The original sq_dequote() becomes a thin wrapper around it. Signed-off-by: Christian Couder Signed-off-by: Junio C Hamano --- quote.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'quote.h') diff --git a/quote.h b/quote.h index c5eea6f18e..2315105fa3 100644 --- a/quote.h +++ b/quote.h @@ -39,6 +39,14 @@ extern void sq_quote_argv(struct strbuf *, const char **argv, size_t maxlen); */ extern char *sq_dequote(char *); +/* + * Same as the above, but can be used to unwrap many arguments in the + * same string separated by space. "next" is changed to point to the + * next argument that should be passed as first parameter. When there + * is no more argument to be dequoted, "next" is updated to point to NULL. + */ +extern char *sq_dequote_step(char *arg, char **next); + extern int unquote_c_style(struct strbuf *, const char *quoted, const char **endp); extern size_t quote_c_style(const char *name, struct strbuf *, FILE *, int no_dq); extern void quote_two_c_style(struct strbuf *, const char *, const char *, int); -- cgit v1.3-5-g9baa