summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 977ed47)
raw | patch | inline | side by side (parent: 977ed47)
author | H. Peter Anvin <hpa@zytor.com> | |
Mon, 10 Oct 2005 21:46:14 +0000 (14:46 -0700) | ||
committer | Junio 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>
Signed-off-by: Junio C Hamano <junkio@cox.net>
rsh.c | patch | blob | history |
index dde6f9ce9d77c3425de57a2fb4687ce69bf025f1..64c48091cb32af1d8c5b2ec145ad660ab9f0a75f 100644 (file)
--- a/rsh.c
+++ b/rsh.c
-#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)
{
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);