| From 594c1fec1644fdf291aa0ff23de20db65c4cfadf Mon Sep 17 00:00:00 2001 |
| From: David Teigland <teigland@redhat.com> |
| Date: Wed, 17 Nov 2021 10:40:27 -0600 |
| Subject: [PATCH 13/23] display: ignore --reportformat |
| |
| Using the option would do nothing useful but would |
| print extraneous braces. |
| |
| tools/command-lines.in | 12 ++++++------ |
| tools/lvmcmdline.c | 15 +++++++++++++++ |
| 2 files changed, 21 insertions(+), 6 deletions(-) |
| |
| diff --git a/tools/command-lines.in b/tools/command-lines.in |
| index 10b23e75d..00ac08934 100644 |
| |
| |
| @@ -1359,10 +1359,10 @@ OO: --aligned, --all, --binary, --colon, --columns, |
| --configreport ConfigReport, --foreign, --history, --ignorelockingfailure, |
| --logonly, --maps, --noheadings, |
| --nosuffix, --options String, --sort String, --readonly, |
| |
| +--segments, --select String, --separator String, |
| --shared, --unbuffered, --units Units |
| OP: VG|LV|Tag ... |
| -IO: --partial, --ignoreskippedcluster |
| +IO: --partial, --ignoreskippedcluster, --reportformat ReportFmt |
| ID: lvdisplay_general |
| |
| --- |
| @@ -1590,10 +1590,10 @@ pvdisplay |
| OO: --aligned, --all, --binary, --colon, --columns, --configreport ConfigReport, |
| --foreign, --ignorelockingfailure, |
| --logonly, --maps, --noheadings, --nosuffix, --options String, |
| |
| +--readonly, --select String, --separator String, --shared, |
| --short, --sort String, --unbuffered, --units Units |
| OP: PV|Tag ... |
| -IO: --ignoreskippedcluster |
| +IO: --ignoreskippedcluster, --reportformat ReportFmt |
| ID: pvdisplay_general |
| |
| --- |
| @@ -1809,10 +1809,10 @@ vgdisplay |
| OO: --activevolumegroups, --aligned, --binary, --colon, --columns, |
| --configreport ConfigReport, --foreign, --ignorelockingfailure, |
| --logonly, --noheadings, --nosuffix, |
| |
| +--options String, --readonly, --select String, |
| --shared, --short, --separator String, --sort String, --unbuffered, --units Units |
| OP: VG|Tag ... |
| -IO: --partial, --ignoreskippedcluster |
| +IO: --partial, --ignoreskippedcluster, --reportformat ReportFmt |
| ID: vgdisplay_general |
| |
| --- |
| diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c |
| index 1e12bedca..1727ba089 100644 |
| |
| |
| @@ -3058,6 +3058,7 @@ int lvm_run_command(struct cmd_context *cmd, int argc, char **argv) |
| int i; |
| int skip_hyphens; |
| int refresh_done = 0; |
| + int io; |
| |
| /* Avoid excessive access to /etc/localtime and set TZ variable for glibc |
| * so it does not need to check /etc/localtime everytime that needs that info */ |
| @@ -3140,6 +3141,20 @@ int lvm_run_command(struct cmd_context *cmd, int argc, char **argv) |
| if (!(cmd->command = _find_command(cmd, cmd->name, &argc, argv))) |
| return EINVALID_CMD_LINE; |
| |
| + /* |
| + * If option --foo is set which is listed in IO (ignore option) in |
| + * command-lines.in, then unset foo. Commands won't usually use an |
| + * ignored option, but there can be shared code that checks for --foo, |
| + * and should not find it to be set. |
| + */ |
| + for (io = 0; io < cmd->command->io_count; io++) { |
| + int opt = cmd->command->ignore_opt_args[io].opt; |
| + if (arg_is_set(cmd, opt)) { |
| + log_debug("Ignore opt %d", opt); |
| + cmd->opt_arg_values[opt].count = 0; |
| + } |
| + } |
| + |
| /* |
| * Remaining position args after command name and --options are removed. |
| */ |
| -- |
| 2.31.1 |
| |