diff options
author | Christian Couder <chriscool@tuxfamily.org> | 2006-09-11 06:59:22 +0200 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-09-10 22:47:30 -0700 |
commit | 86257aa324d04694408ad806989690979456f29a (patch) | |
tree | bae4aa0e26b35249d434edea718c9feb3cc644dd /quote.c | |
parent | 8be683520e5a00cb7bd67acfd71d9346c33305b2 (diff) | |
download | git-86257aa324d04694408ad806989690979456f29a.tar.gz |
Move add_to_string to "quote.c" and make it extern.
So that this function may be used in places other than "rsh.c".
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'quote.c')
-rw-r--r-- | quote.c | 29 |
1 files changed, 29 insertions, 0 deletions
@@ -106,6 +106,35 @@ char *sq_quote_argv(const char** argv, int count) return buf; } +/* + * Append a string to a string buffer, with or without shell quoting. + * Return true if the buffer overflowed. + */ +int add_to_string(char **ptrp, int *sizep, const char *str, int quote) +{ + char *p = *ptrp; + int size = *sizep; + int oc; + int err = 0; + + if (quote) + oc = sq_quote_buf(p, size, str); + else { + oc = strlen(str); + memcpy(p, str, (size <= oc) ? size - 1 : oc); + } + + if (size <= oc) { + err = 1; + oc = size - 1; + } + + *ptrp += oc; + **ptrp = '\0'; + *sizep -= oc; + return err; +} + char *sq_dequote(char *arg) { char *dst = arg; |