X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=quote.c;h=fc93435727db3b0634c390965258200c61d8b59b;hb=377bee3424ba871278d230ed296f74ccac8ad607;hp=848d174cc56be32483ba6c73f9b06bc398ed6437;hpb=b0e67fffb42059cc5dca6f58c376a2ffc5fb4520;p=git.git diff --git a/quote.c b/quote.c index 848d174cc..fc9343572 100644 --- a/quote.c +++ b/quote.c @@ -72,7 +72,7 @@ void sq_quote_argv(struct strbuf *dst, const char** argv, size_t maxlen) } } -char *sq_dequote_step(char *arg, char **next) +static char *sq_dequote_step(char *arg, char **next) { char *dst = arg; char *src = arg; @@ -213,7 +213,7 @@ static size_t quote_c_style_counted(const char *name, ssize_t maxlen, int ch; len = next_quote_pos(p, maxlen); - if (len == maxlen || !p[len]) + if (len == maxlen || (maxlen < 0 && !p[len])) break; if (!no_dq && p == name) @@ -223,6 +223,8 @@ static size_t quote_c_style_counted(const char *name, ssize_t maxlen, EMIT('\\'); p += len; ch = (unsigned char)*p++; + if (maxlen >= 0) + maxlen -= len + 1; if (sq_lookup[ch] >= ' ') { EMIT(sq_lookup[ch]); } else {