From: H. Peter Anvin Date: Mon, 10 Oct 2005 21:46:14 +0000 (-0700) Subject: Make rsh.c use sq_quote_buf() X-Git-Tag: v0.99.9~166 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=f336af1711f86e8b00e85eec3b3f73f7a8e4bed0;p=git.git Make rsh.c use sq_quote_buf() Make rsh.c use sq_quote_buf() Signed-off-by: Junio C Hamano --- diff --git a/rsh.c b/rsh.c index dde6f9ce..64c48091 100644 --- a/rsh.c +++ b/rsh.c @@ -1,52 +1,16 @@ -#include "rsh.h" - #include #include #include +#include "rsh.h" +#include "quote.h" #include "cache.h" #define COMMAND_SIZE 4096 /* - * Write a shell-quoted version of a string into a buffer, and - * return bytes that ought to be output excluding final null. - */ -static int shell_quote(char *buf, int nmax, const char *str) -{ - char ch; - int nq; - int oc = 0; - - while ( (ch = *str++) ) { - nq = 0; - if ( strchr(" !\"#$%&\'()*;<=>?[\\]^`{|}", ch) ) - nq = 1; - - if ( nq ) { - if ( nmax > 1 ) { - *buf++ = '\\'; - nmax--; - } - oc++; - } - - if ( nmax > 1 ) { - *buf++ = ch; - nmax--; - } - oc++; - } - - if ( nmax ) - *buf = '\0'; - - return oc; -} - -/* - * Append a string to a string buffer, with or without quoting. Return true - * if the buffer overflowed. + * Append a string to a string buffer, with or without shell quoting. + * Return true if the buffer overflowed. */ static int add_to_string(char **ptrp, int *sizep, const char *str, int quote) { @@ -56,7 +20,7 @@ static int add_to_string(char **ptrp, int *sizep, const char *str, int quote) int err = 0; if ( quote ) { - oc = shell_quote(p, size, str); + oc = sq_quote_buf(p, size, str); } else { oc = strlen(str); memcpy(p, str, (oc >= size) ? size-1 : oc);