Don't stop processing cmd line after --errorlist.
Ticket #2441 (Parsing of command line arguments breaks after --errorlist) Instead of stopping processing command line options after --errorlist process them all. This way e.g. --verbose can be given also after the --errorlist.
This commit is contained in:
parent
dcc241a2b4
commit
a794edd934
|
@ -364,11 +364,9 @@ bool CmdLineParser::ParseFromArgs(int argc, const char* const argv[])
|
|||
// print all possible error messages..
|
||||
else if (strcmp(argv[i], "--errorlist") == 0)
|
||||
{
|
||||
//_cppcheck->getErrorMessages();
|
||||
_showErrorMessages = true;
|
||||
_settings->_xml = true;
|
||||
_exitAfterPrint = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
// documentation..
|
||||
|
@ -491,15 +489,17 @@ bool CmdLineParser::ParseFromArgs(int argc, const char* const argv[])
|
|||
PrintMessage("--test-2-pass doesn't work with -j option yet.");
|
||||
}
|
||||
|
||||
|
||||
if (argc <= 1)
|
||||
_showHelp = true;
|
||||
|
||||
if (_showHelp)
|
||||
{
|
||||
PrintHelp();
|
||||
return true;
|
||||
}
|
||||
else if (_pathnames.empty())
|
||||
|
||||
// Print error only if we have "real" command and expect files
|
||||
if (!_exitAfterPrint && _pathnames.empty())
|
||||
{
|
||||
PrintMessage("cppcheck: No C or C++ source files found.");
|
||||
return false;
|
||||
|
|
|
@ -45,10 +45,9 @@ bool CppCheckExecutor::parseFromArgs(CppCheck *cppcheck, int argc, const char* c
|
|||
|
||||
if (success)
|
||||
{
|
||||
if (parser.GetShowVersion())
|
||||
if (parser.GetShowVersion() && !parser.GetShowErrorMessages())
|
||||
{
|
||||
std::cout << "Cppcheck " << cppcheck->version() << std::endl;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (parser.GetShowErrorMessages())
|
||||
|
|
|
@ -77,6 +77,9 @@ private:
|
|||
TEST_CASE(templatesGcc);
|
||||
TEST_CASE(templatesVs);
|
||||
TEST_CASE(xml);
|
||||
TEST_CASE(errorlist1);
|
||||
TEST_CASE(errorlistverbose1)
|
||||
TEST_CASE(errorlistverbose2)
|
||||
TEST_CASE(unknownParam);
|
||||
}
|
||||
|
||||
|
@ -535,6 +538,35 @@ private:
|
|||
ASSERT(settings._xml);
|
||||
}
|
||||
|
||||
void errorlist1()
|
||||
{
|
||||
REDIRECT;
|
||||
const char *argv[] = {"cppcheck", "--errorlist"};
|
||||
Settings settings;
|
||||
CmdLineParser parser(&settings);
|
||||
ASSERT(parser.ParseFromArgs(2, argv));
|
||||
}
|
||||
|
||||
void errorlistverbose1()
|
||||
{
|
||||
REDIRECT;
|
||||
const char *argv[] = {"cppcheck", "--verbose", "--errorlist"};
|
||||
Settings settings;
|
||||
CmdLineParser parser(&settings);
|
||||
ASSERT(parser.ParseFromArgs(3, argv));
|
||||
ASSERT(settings._verbose);
|
||||
}
|
||||
|
||||
void errorlistverbose2()
|
||||
{
|
||||
REDIRECT;
|
||||
const char *argv[] = {"cppcheck", "--errorlist", "--verbose"};
|
||||
Settings settings;
|
||||
CmdLineParser parser(&settings);
|
||||
ASSERT(parser.ParseFromArgs(3, argv));
|
||||
ASSERT(settings._verbose);
|
||||
}
|
||||
|
||||
void unknownParam()
|
||||
{
|
||||
REDIRECT;
|
||||
|
|
Loading…
Reference in New Issue