Re: [PATCH 1/4] quote: implement "sq_dequote_many" to unwrap many args in one string

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Christian Couder <chriscool@xxxxxxxxxxxxx> writes:

> @@ -92,6 +92,8 @@ char *sq_dequote(char *arg)
>  		switch (*++src) {
>  		case '\0':
>  			*dst = 0;
> +			if (next)
> +				*next = 0;

	*next = NULL;

>  			return arg;
>  		case '\\':
>  			c = *++src;



> diff --git a/quote.h b/quote.h
> index c5eea6f..c2f98e7 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 unwraps many arguments in the same string

"can unwrap"

> + * separated by space. "next" is changed to point to the next argument
> + * that should be passed as first parameter. When there are no more
> + * arguments to be dequoted, then "next" is changed to point to NULL.
> + */
> +extern char *sq_dequote_many(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);

I think dequote_many() is misnamed, as it only does one but has a slightly
more helpful interface than the bare sq_dequote() when the caller is
willing to dequote many.  It probably should be called dequote_step().

But do not send in replacements just yet.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux