mirror of
https://github.com/git/git.git
synced 2024-05-10 01:26:31 +02:00
quote: add sq_append_quote_argv_pretty()
sq_quote_argv_pretty() builds a "pretty" string from the given argv. It inserts whitespace before each value, rather than just between them, so the resulting string always has a leading space. Lets give callers an option to not have the leading space or have to ltrim() it later. Create sq_append_quote_argv_pretty() to convert an argv into a pretty, quoted if necessary, string with space delimiters and without a leading space. Convert the existing sq_quote_argv_pretty() to use this new routine while preserving the leading space behavior. Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
ad43e37839
commit
c2b890aca5
18
quote.c
18
quote.c
|
@ -84,12 +84,28 @@ void sq_quote_argv(struct strbuf *dst, const char **argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Legacy function to append each argv value, quoted as necessasry,
|
||||||
|
* with whitespace before each value. This results in a leading
|
||||||
|
* space in the result.
|
||||||
|
*/
|
||||||
void sq_quote_argv_pretty(struct strbuf *dst, const char **argv)
|
void sq_quote_argv_pretty(struct strbuf *dst, const char **argv)
|
||||||
|
{
|
||||||
|
if (argv[0])
|
||||||
|
strbuf_addch(dst, ' ');
|
||||||
|
sq_append_quote_argv_pretty(dst, argv);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Append each argv value, quoted as necessary, with whitespace between them.
|
||||||
|
*/
|
||||||
|
void sq_append_quote_argv_pretty(struct strbuf *dst, const char **argv)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; argv[i]; i++) {
|
for (i = 0; argv[i]; i++) {
|
||||||
strbuf_addch(dst, ' ');
|
if (i > 0)
|
||||||
|
strbuf_addch(dst, ' ');
|
||||||
sq_quote_buf_pretty(dst, argv[i]);
|
sq_quote_buf_pretty(dst, argv[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
1
quote.h
1
quote.h
|
@ -40,6 +40,7 @@ void sq_quotef(struct strbuf *, const char *fmt, ...);
|
||||||
*/
|
*/
|
||||||
void sq_quote_buf_pretty(struct strbuf *, const char *src);
|
void sq_quote_buf_pretty(struct strbuf *, const char *src);
|
||||||
void sq_quote_argv_pretty(struct strbuf *, const char **argv);
|
void sq_quote_argv_pretty(struct strbuf *, const char **argv);
|
||||||
|
void sq_append_quote_argv_pretty(struct strbuf *dst, const char **argv);
|
||||||
|
|
||||||
/* This unwraps what sq_quote() produces in place, but returns
|
/* This unwraps what sq_quote() produces in place, but returns
|
||||||
* NULL if the input does not look like what sq_quote would have
|
* NULL if the input does not look like what sq_quote would have
|
||||||
|
|
Loading…
Reference in New Issue