diff options
author | H. Peter Anvin <hpa@zytor.com> | 2005-10-10 14:46:14 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-10-10 14:46:14 -0700 |
commit | f336af1711f86e8b00e85eec3b3f73f7a8e4bed0 (patch) | |
tree | 90dba66d0a2c389980c78711a775f8c3727c17da /rsh.c | |
parent | 977ed47d86c40683a1b84f5226d589e924e95785 (diff) | |
download | git-f336af1711f86e8b00e85eec3b3f73f7a8e4bed0.tar.gz |
Make rsh.c use sq_quote_buf()
Make rsh.c use sq_quote_buf()
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'rsh.c')
-rw-r--r-- | rsh.c | 46 |
1 files changed, 5 insertions, 41 deletions
@@ -1,52 +1,16 @@ -#include "rsh.h" - #include <string.h> #include <sys/types.h> #include <sys/socket.h> +#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); |