diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2015-06-19 09:44:14 +0200 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2015-06-19 09:51:48 +0200 |
commit | 3173442984dd8d31e43cb50db385f31c75cc9839 (patch) | |
tree | ad7f5639ddcae0570aad3ebbe52995fa5d445e38 /tools/lvmcmdline.c | |
parent | 438a65dfdb13abd10b3311e96786770d70868de1 (diff) | |
download | lvm2-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.c | 23 |
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; |