mirror of
git://sourceware.org/git/libabigail.git
synced 2024-12-16 06:54:37 +00:00
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>
This commit is contained in:
parent
c36f8028fd
commit
38d883cc74
@ -71,6 +71,8 @@ public:
|
|||||||
bool list_undefined_symbols_only;
|
bool list_undefined_symbols_only;
|
||||||
bool show_base_names;
|
bool show_base_names;
|
||||||
bool show_redundant;
|
bool show_redundant;
|
||||||
|
bool redundant_opt_set;
|
||||||
|
bool no_redundant_opt_set;
|
||||||
bool show_locs;
|
bool show_locs;
|
||||||
|
|
||||||
options(const char* program_name)
|
options(const char* program_name)
|
||||||
@ -81,6 +83,8 @@ public:
|
|||||||
list_undefined_symbols_only(),
|
list_undefined_symbols_only(),
|
||||||
show_base_names(),
|
show_base_names(),
|
||||||
show_redundant(true),
|
show_redundant(true),
|
||||||
|
redundant_opt_set(),
|
||||||
|
no_redundant_opt_set(),
|
||||||
show_locs(true)
|
show_locs(true)
|
||||||
{}
|
{}
|
||||||
}; // end struct options
|
}; // end struct options
|
||||||
@ -191,9 +195,15 @@ parse_command_line(int argc, char* argv[], options& opts)
|
|||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
else if (!strcmp(argv[i], "--redundant"))
|
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"))
|
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"))
|
else if (!strcmp(argv[i], "--no-show-locs"))
|
||||||
opts.show_locs = false;
|
opts.show_locs = false;
|
||||||
else if (!strcmp(argv[i], "--help")
|
else if (!strcmp(argv[i], "--help")
|
||||||
@ -645,6 +655,14 @@ main(int argc, char* argv[])
|
|||||||
<< opts.lib2_path << " will be ignored automatically\n";
|
<< 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());
|
ABG_ASSERT(!opts.app_path.empty());
|
||||||
if (!abigail::tools_utils::check_file(opts.app_path, cerr, opts.prog_name))
|
if (!abigail::tools_utils::check_file(opts.app_path, cerr, opts.prog_name))
|
||||||
return abigail::tools_utils::ABIDIFF_ERROR;
|
return abigail::tools_utils::ABIDIFF_ERROR;
|
||||||
|
Loading…
Reference in New Issue
Block a user