From f336af1711f86e8b00e85eec3b3f73f7a8e4bed0 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Mon, 10 Oct 2005 14:46:14 -0700 Subject: [PATCH] Make rsh.c use sq_quote_buf() Make rsh.c use sq_quote_buf() Signed-off-by: Junio C Hamano --- rsh.c | 46 +++++----------------------------------------- 1 file changed, 5 insertions(+), 41 deletions(-) diff --git a/rsh.c b/rsh.c index dde6f9ce9..64c48091c 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); -- 2.26.2