summaryrefslogtreecommitdiffstats
path: root/cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'cmd.c')
-rw-r--r--cmd.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/cmd.c b/cmd.c
index 8a977023..f6023c20 100644
--- a/cmd.c
+++ b/cmd.c
@@ -357,25 +357,27 @@ cmd_free_argv(int argc, char **argv)
char *
cmd_stringify_argv(int argc, char **argv)
{
- char *buf;
+ char *buf = NULL, *s;
+ size_t len = 0;
int i;
- size_t len;
if (argc == 0)
return (xstrdup(""));
- len = 0;
- buf = NULL;
-
for (i = 0; i < argc; i++) {
- len += strlen(argv[i]) + 1;
+ s = args_escape(argv[i]);
+ log_debug("%s: %u %s = %s", __func__, i, argv[i], s);
+
+ len += strlen(s) + 1;
buf = xrealloc(buf, len);
if (i == 0)
*buf = '\0';
else
strlcat(buf, " ", len);
- strlcat(buf, argv[i], len);
+ strlcat(buf, s, len);
+
+ free(s);
}
return (buf);
}