Code

Make rsh.c use sq_quote_buf()
authorH. Peter Anvin <hpa@zytor.com>
Mon, 10 Oct 2005 21:46:14 +0000 (14:46 -0700)
committerJunio C Hamano <junkio@cox.net>
Mon, 10 Oct 2005 21:46:14 +0000 (14:46 -0700)
Make rsh.c use sq_quote_buf()

Signed-off-by: Junio C Hamano <junkio@cox.net>
rsh.c

diff --git a/rsh.c b/rsh.c
index dde6f9ce9d77c3425de57a2fb4687ce69bf025f1..64c48091cb32af1d8c5b2ec145ad660ab9f0a75f 100644 (file)
--- a/rsh.c
+++ b/rsh.c
@@ -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);