From d6ff630498bbbeb4cd7d28ba4b540724f7c7ed86 Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 2 Aug 2018 18:35:21 +0000 Subject: [PATCH] Log command arguments. --- cmd.c | 13 +++++++++++++ tmux.h | 1 + window.c | 3 +-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/cmd.c b/cmd.c index ff32d5dd..b90d5ea2 100644 --- a/cmd.c +++ b/cmd.c @@ -201,6 +201,15 @@ const struct cmd_entry *cmd_table[] = { NULL }; +void +cmd_log_argv(int argc, char **argv, const char *prefix) +{ + int i; + + for (i = 0; i < argc; i++) + log_debug("%s: argv[%d]=%s", prefix, i, argv[i]); +} + int cmd_pack_argv(int argc, char **argv, char *buf, size_t len) { @@ -209,6 +218,7 @@ cmd_pack_argv(int argc, char **argv, char *buf, size_t len) if (argc == 0) return (0); + cmd_log_argv(argc, argv, __func__); *buf = '\0'; for (i = 0; i < argc; i++) { @@ -241,9 +251,11 @@ cmd_unpack_argv(char *buf, size_t len, int argc, char ***argv) arglen = strlen(buf) + 1; (*argv)[i] = xstrdup(buf); + buf += arglen; len -= arglen; } + cmd_log_argv(argc, *argv, __func__); return (0); } @@ -402,6 +414,7 @@ retry: xasprintf(cause, "unknown command: %s", name); return (NULL); } + cmd_log_argv(argc, argv, entry->name); args = args_parse(entry->args.template, argc, argv); if (args == NULL) diff --git a/tmux.h b/tmux.h index 423189f2..8c3a2364 100644 --- a/tmux.h +++ b/tmux.h @@ -1760,6 +1760,7 @@ int cmd_find_from_mouse(struct cmd_find_state *, int cmd_find_from_nothing(struct cmd_find_state *, int); /* cmd.c */ +void cmd_log_argv(int, char **, const char *); int cmd_pack_argv(int, char **, char *, size_t); int cmd_unpack_argv(char *, size_t, int, char ***); char **cmd_copy_argv(int, char **); diff --git a/window.c b/window.c index 3b9469fe..db6ff8c9 100644 --- a/window.c +++ b/window.c @@ -920,8 +920,7 @@ window_pane_spawn(struct window_pane *wp, int argc, char **argv, log_debug("%s: shell=%s", __func__, wp->shell); log_debug("%s: cmd=%s", __func__, cmd); log_debug("%s: cwd=%s", __func__, cwd); - for (i = 0; i < wp->argc; i++) - log_debug("%s: argv[%d]=%s", __func__, i, wp->argv[i]); + cmd_log_argv(wp->argc, wp->argv, __func__); environ_log(env, "%s: environment ", __func__); memset(&ws, 0, sizeof ws);