summaryrefslogtreecommitdiff
path: root/tools/lvmcmdline.c
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2015-06-19 09:44:14 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2015-06-19 09:51:48 +0200
commit3173442984dd8d31e43cb50db385f31c75cc9839 (patch)
treead7f5639ddcae0570aad3ebbe52995fa5d445e38 /tools/lvmcmdline.c
parent438a65dfdb13abd10b3311e96786770d70868de1 (diff)
downloadlvm2-3173442984dd8d31e43cb50db385f31c75cc9839.tar.gz
lvm: move hyphen mangling code
Relocate hyphen code from lvm main into lvm_run_command() so all command and library user will have it. Update WHATS_NEW with missing changes.
Diffstat (limited to 'tools/lvmcmdline.c')
-rw-r--r--tools/lvmcmdline.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
index 792dc41f8..023a3d6c8 100644
--- a/tools/lvmcmdline.c
+++ b/tools/lvmcmdline.c
@@ -1414,12 +1414,35 @@ int lvm_run_command(struct cmd_context *cmd, int argc, char **argv)
int ret = 0;
int locking_type;
int monitoring;
+ char *arg_new, *arg;
+ int i;
init_error_message_produced(0);
/* each command should start out with sigint flag cleared */
sigint_clear();
+ /* eliminate '-' from all options starting with -- */
+ for (i = 1; i < argc; ++i) {
+
+ if (argv[i][0] != '-' || argv[i][1] != '-')
+ continue;
+
+ arg_new = arg = argv[i] + 2;
+
+ while (*arg) {
+ if (*arg != '-') {
+ if (arg_new != arg)
+ *arg_new = *arg;
+ ++arg_new;
+ }
+ ++arg;
+ }
+
+ if (arg_new != arg)
+ *arg_new = 0;
+ }
+
if (!(cmd->cmd_line = _copy_command_line(cmd, argc, argv)))
return_ECMD_FAILED;