summaryrefslogtreecommitdiffstats
path: root/cmd.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2019-05-25 18:41:51 +0100
committerThomas Adam <thomas@xteddy.org>2019-05-25 18:41:51 +0100
commit463bd8abb9248c31214c951221c3cf96dbffb56e (patch)
treeea7bd85988b7dedd4bb24c72743e3b473f3c8fa7 /cmd.c
parenta69211aff5968f2bf71f0471cc67124dbd4597dd (diff)
parenta65a6d62d19136e20ce6e6ec72d676a334dcc914 (diff)
Merge branch 'obsd-master'
Diffstat (limited to 'cmd.c')
-rw-r--r--cmd.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/cmd.c b/cmd.c
index e3dd9853..81073ec1 100644
--- a/cmd.c
+++ b/cmd.c
@@ -204,13 +204,20 @@ const struct cmd_entry *cmd_table[] = {
NULL
};
-void
-cmd_log_argv(int argc, char **argv, const char *prefix)
+void printflike(3, 4)
+cmd_log_argv(int argc, char **argv, const char *fmt, ...)
{
- int i;
+ char *prefix;
+ va_list ap;
+ int i;
+
+ va_start(ap, fmt);
+ xvasprintf(&prefix, fmt, ap);
+ va_end(ap);
for (i = 0; i < argc; i++)
log_debug("%s: argv[%d]=%s", prefix, i, argv[i]);
+ free(prefix);
}
void
@@ -244,7 +251,7 @@ cmd_pack_argv(int argc, char **argv, char *buf, size_t len)
if (argc == 0)
return (0);
- cmd_log_argv(argc, argv, __func__);
+ cmd_log_argv(argc, argv, "%s", __func__);
*buf = '\0';
for (i = 0; i < argc; i++) {
@@ -281,7 +288,7 @@ cmd_unpack_argv(char *buf, size_t len, int argc, char ***argv)
buf += arglen;
len -= arglen;
}
- cmd_log_argv(argc, *argv, __func__);
+ cmd_log_argv(argc, *argv, "%s", __func__);
return (0);
}
@@ -373,9 +380,9 @@ cmd_get_alias(const char *name)
static const struct cmd_entry *
cmd_find(const char *name, char **cause)
{
- const struct cmd_entry **loop, *entry, *found = NULL;
- int ambiguous;
- char s[BUFSIZ];
+ const struct cmd_entry **loop, *entry, *found = NULL;
+ int ambiguous;
+ char s[BUFSIZ];
ambiguous = 0;
for (loop = cmd_table; *loop != NULL; loop++) {
@@ -436,7 +443,7 @@ cmd_parse(int argc, char **argv, const char *file, u_int line, char **cause)
entry = cmd_find(name, cause);
if (entry == NULL)
return (NULL);
- cmd_log_argv(argc, argv, entry->name);
+ cmd_log_argv(argc, argv, "%s: %s", __func__, entry->name);
args = args_parse(entry->args.template, argc, argv);
if (args == NULL)