From a02de849a090e73fcd0074772f96a5cd09881e56 Mon Sep 17 00:00:00 2001 From: Erik Skultety Date: Fri, 4 Sep 2015 11:19:55 +0200 Subject: [PATCH] virsh: Do not make interactive mode default Currently, we set interactive mode as default possibly reverting the setting after we parse the command line arguments. There's nothing particulary wrong with that, but a call to vshReadlineInit is performed always in the global initializer just because the default mode is interactive. Rather than moving vshReadlineInit call somewhere else (because another client might want to implement interactive mode only), we could make the decision if we're about to run in interactive mode once the command line is parsed. --- tools/virsh.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/virsh.c b/tools/virsh.c index 513c22cde2..bb12dec93d 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -787,7 +787,9 @@ virshParseArgv(vshControl *ctl, int argc, char **argv) longindex = -1; } - if (argc > optind) { + if (argc == optind) { + ctl->imode = true; + } else { /* parse command */ ctl->imode = false; if (argc - optind == 1) { @@ -847,7 +849,6 @@ main(int argc, char **argv) memset(ctl, 0, sizeof(vshControl)); memset(&virshCtl, 0, sizeof(virshControl)); ctl->name = "virsh"; /* hardcoded name of the binary */ - ctl->imode = true; /* default is interactive mode */ ctl->log_fd = -1; /* Initialize log file descriptor */ ctl->debug = VSH_DEBUG_DEFAULT; ctl->hooks = &hooks; -- GitLab