[PATCH v2] abicompat: Add prompt message for abnormal operation
Dodji Seketeli
dodji@seketeli.org
Tue Nov 9 10:18:23 GMT 2021
Hello,
tangmeng <tangmeng@uniontech.com> a écrit:
> When using abicompat, if the --redundant option and --no-redundant
> option are used at the same time, no error will be prompted, the
> actual option will prevail.
>
> This patch provides a error to notify the user that error.
>
> * tools/abicompat.cc (parse_command_line): Notify the user when --redundant
> and --no-redundant are used at the same time
>
> Signed-off-by: tangmeng <tangmeng@uniontech.com>
Thanks for the patch!
I have applied a slightly modified version to yours that does
essentially the same thing. Only minor nits have been picked. Please
find the applied patch below.
Thanks again!
Cheers,
>From 38d883cc7425cc945a8f51fd4cb66e90e2d8d825 Mon Sep 17 00:00:00 2001
From: tangmeng <tangmeng@uniontech.com>
Date: Fri, 5 Nov 2021 17:38:28 +0800
Subject: [PATCH] abicompat: Add prompt message for abnormal operation
When using abicompat, if the --redundant option and --no-redundant
option are used at the same time, no error is prompted and none of the
options have an impact.
This patch emits an error message in that case.
* tools/abicompat.cc (parse_command_line): Notify the user
when --redundant and --no-redundant are used at the same time
Signed-off-by: tangmeng <tangmeng@uniontech.com>
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
---
tools/abicompat.cc | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/tools/abicompat.cc b/tools/abicompat.cc
index cf944a49..addd03a9 100644
--- a/tools/abicompat.cc
+++ b/tools/abicompat.cc
@@ -71,6 +71,8 @@ public:
bool list_undefined_symbols_only;
bool show_base_names;
bool show_redundant;
+ bool redundant_opt_set;
+ bool no_redundant_opt_set;
bool show_locs;
options(const char* program_name)
@@ -81,6 +83,8 @@ public:
list_undefined_symbols_only(),
show_base_names(),
show_redundant(true),
+ redundant_opt_set(),
+ no_redundant_opt_set(),
show_locs(true)
{}
}; // end struct options
@@ -191,9 +195,15 @@ parse_command_line(int argc, char* argv[], options& opts)
++i;
}
else if (!strcmp(argv[i], "--redundant"))
- opts.show_redundant = true;
+ {
+ opts.show_redundant = true;
+ opts.redundant_opt_set = true;
+ }
else if (!strcmp(argv[i], "--no-redundant"))
- opts.show_redundant = false;
+ {
+ opts.show_redundant = false;
+ opts.no_redundant_opt_set = true;
+ }
else if (!strcmp(argv[i], "--no-show-locs"))
opts.show_locs = false;
else if (!strcmp(argv[i], "--help")
@@ -645,6 +655,14 @@ main(int argc, char* argv[])
<< opts.lib2_path << " will be ignored automatically\n";
}
+ if (opts.redundant_opt_set && opts.no_redundant_opt_set)
+ {
+ emit_prefix(argv[0], cerr)
+ << "ERROR: The \'--redundant\' and '--no-redundant' option are in conflict. "
+ << "Please select only one option to use.\n";
+ return 1;
+ }
+
ABG_ASSERT(!opts.app_path.empty());
if (!abigail::tools_utils::check_file(opts.app_path, cerr, opts.prog_name))
return abigail::tools_utils::ABIDIFF_ERROR;
--
2.32.0
--
Dodji
More information about the Libabigail
mailing list