Skip to content

Commit ad8c1e2

Browse files
committed
dump: output language to dumpfile
1 parent 9f50611 commit ad8c1e2

File tree

5 files changed

+30
-14
lines changed

5 files changed

+30
-14
lines changed

cli/cmdlineparser.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -527,9 +527,9 @@ bool CmdLineParser::parseFromArgs(int argc, const char* const argv[])
527527
}
528528

529529
if (str == "c")
530-
mSettings->enforcedLang = Settings::C;
530+
mSettings->enforcedLang = Settings::Language::C;
531531
else if (str == "c++")
532-
mSettings->enforcedLang = Settings::CPP;
532+
mSettings->enforcedLang = Settings::Language::CPP;
533533
else {
534534
printError("unknown language '" + str + "' enforced.");
535535
return false;

lib/cppcheck.cpp

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,8 +260,24 @@ static void createDumpFile(const Settings& settings,
260260
std::ofstream fout(getCtuInfoFileName(dumpFile));
261261
}
262262

263+
std::string language;
264+
switch (settings.enforcedLang) {
265+
case Settings::Language::C:
266+
language = " language=\"c\"";
267+
break;
268+
case Settings::Language::CPP:
269+
language = " language=\"cpp\"";
270+
break;
271+
case Settings::Language::None:
272+
if (Path::isCPP(filename))
273+
language = " language=\"cpp\"";
274+
else if (Path::isC(filename))
275+
language = " language=\"c\"";
276+
break;
277+
}
278+
263279
fdump << "<?xml version=\"1.0\"?>" << std::endl;
264-
fdump << "<dumps>" << std::endl;
280+
fdump << "<dumps" << language << ">" << std::endl;
265281
fdump << " <platform"
266282
<< " name=\"" << settings.platformString() << '\"'
267283
<< " char_bit=\"" << settings.char_bit << '\"'

lib/settings.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Settings::Settings()
4949
debugtemplate(false),
5050
debugwarnings(false),
5151
dump(false),
52-
enforcedLang(None),
52+
enforcedLang(Language::None),
5353
exceptionHandling(false),
5454
exitCode(0),
5555
force(false),

lib/tokenlist.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,8 @@ void TokenList::determineCppC()
121121
mIsC = Path::isC(getSourceFilePath());
122122
mIsCpp = Path::isCPP(getSourceFilePath());
123123
} else {
124-
mIsC = mSettings->enforcedLang == Settings::C || (mSettings->enforcedLang == Settings::None && Path::isC(getSourceFilePath()));
125-
mIsCpp = mSettings->enforcedLang == Settings::CPP || (mSettings->enforcedLang == Settings::None && Path::isCPP(getSourceFilePath()));
124+
mIsC = mSettings->enforcedLang == Settings::Language::C || (mSettings->enforcedLang == Settings::Language::None && Path::isC(getSourceFilePath()));
125+
mIsCpp = mSettings->enforcedLang == Settings::Language::CPP || (mSettings->enforcedLang == Settings::Language::None && Path::isCPP(getSourceFilePath()));
126126
}
127127

128128
if (mIsCpp) {

test/testcmdlineparser.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -418,17 +418,17 @@ class TestCmdlineParser : public TestFixture {
418418
REDIRECT;
419419
{
420420
const char * const argv[] = {"cppcheck", "file.cpp"};
421-
settings.enforcedLang = Settings::None;
421+
settings.enforcedLang = Settings::Language::None;
422422
ASSERT(defParser.parseFromArgs(2, argv));
423-
ASSERT_EQUALS(Settings::None, settings.enforcedLang);
423+
ASSERT_EQUALS(Settings::Language::None, settings.enforcedLang);
424424
ASSERT_EQUALS("", GET_REDIRECT_OUTPUT);
425425
}
426426
CLEAR_REDIRECT_OUTPUT;
427427
{
428428
const char * const argv[] = {"cppcheck", "-x", "c++", "file.cpp"};
429-
settings.enforcedLang = Settings::None;
429+
settings.enforcedLang = Settings::Language::None;
430430
ASSERT(defParser.parseFromArgs(4, argv));
431-
ASSERT_EQUALS(Settings::CPP, settings.enforcedLang);
431+
ASSERT_EQUALS(Settings::Language::CPP, settings.enforcedLang);
432432
ASSERT_EQUALS("", GET_REDIRECT_OUTPUT);
433433
}
434434
CLEAR_REDIRECT_OUTPUT;
@@ -446,17 +446,17 @@ class TestCmdlineParser : public TestFixture {
446446
CLEAR_REDIRECT_OUTPUT;
447447
{
448448
const char * const argv[] = {"cppcheck", "--language=c++", "file.cpp"};
449-
settings.enforcedLang = Settings::None;
449+
settings.enforcedLang = Settings::Language::None;
450450
ASSERT(defParser.parseFromArgs(3, argv));
451-
ASSERT_EQUALS(Settings::CPP, settings.enforcedLang);
451+
ASSERT_EQUALS(Settings::Language::CPP, settings.enforcedLang);
452452
ASSERT_EQUALS("", GET_REDIRECT_OUTPUT);
453453
}
454454
CLEAR_REDIRECT_OUTPUT;
455455
{
456456
const char * const argv[] = {"cppcheck", "--language=c", "file.cpp"};
457-
settings.enforcedLang = Settings::None;
457+
settings.enforcedLang = Settings::Language::None;
458458
ASSERT(defParser.parseFromArgs(3, argv));
459-
ASSERT_EQUALS(Settings::C, settings.enforcedLang);
459+
ASSERT_EQUALS(Settings::Language::C, settings.enforcedLang);
460460
ASSERT_EQUALS("", GET_REDIRECT_OUTPUT);
461461
}
462462
CLEAR_REDIRECT_OUTPUT;

0 commit comments

Comments
 (0)