From a18617bbd16e8bdcb6055d1b563ad8ee237c9f7b Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Wed, 11 Mar 2020 19:54:51 +0100 Subject: [PATCH] ENH: add line number for dictionary getCheck errors --- applications/test/dictionary2/Test-dictionary2.C | 4 +++- src/OpenFOAM/db/dictionary/dictionary.C | 13 +++++++++---- src/OpenFOAM/db/dictionary/dictionary.H | 2 +- src/OpenFOAM/db/dictionary/dictionaryTemplates.C | 8 ++++---- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/applications/test/dictionary2/Test-dictionary2.C b/applications/test/dictionary2/Test-dictionary2.C index 744831fa088..2f3a58da37c 100644 --- a/applications/test/dictionary2/Test-dictionary2.C +++ b/applications/test/dictionary2/Test-dictionary2.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2017-2019 OpenCFD Ltd. + Copyright (C) 2017-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -352,6 +352,7 @@ int main(int argc, char *argv[]) ( "good 3.14159;\n" "negative -3.14159;\n" + "neg2 -3.14159;\n" "empty;\n" // "bad text;\n" // always fails // "bad 3.14159 1234;\n" // fails for readScalar @@ -386,6 +387,7 @@ int main(int argc, char *argv[]) try_getCheckScalar(dict2, "good", scalarRange::gt0()); try_getCheckScalar(dict2, "negative", scalarRange::gt0()); + try_getCheckScalar(dict2, "neg2", scalarRange::gt0()); try_getCheckScalar(dict2, "good", greaterOp1<scalar>(0)); try_getCheckScalar(dict2, "negative", greaterOp1<scalar>(0)); diff --git a/src/OpenFOAM/db/dictionary/dictionary.C b/src/OpenFOAM/db/dictionary/dictionary.C index 4b07aca7fc4..75c74cc9096 100644 --- a/src/OpenFOAM/db/dictionary/dictionary.C +++ b/src/OpenFOAM/db/dictionary/dictionary.C @@ -338,7 +338,11 @@ void Foam::dictionary::checkITstream } -void Foam::dictionary::raiseBadInput(const word& keyword) const +void Foam::dictionary::raiseBadInput +( + const ITstream& is, + const word& keyword +) const { // Can use FatalIOError instead of SafeFatalIOError // since predicate checks are not used at the earliest stages @@ -347,10 +351,11 @@ void Foam::dictionary::raiseBadInput(const word& keyword) const "", // functionName "", // sourceFileName 0, // sourceFileLineNumber - *this // ios + this->name(), // ioFileName + is.lineNumber(), // ioStartLineNumber + -1 // ioEndLineNumber ) - << "Entry '" << keyword << "' with invalid input in dictionary " - << name() << nl << nl + << "Entry '" << keyword << "' with invalid input" << nl << exit(FatalIOError); } diff --git a/src/OpenFOAM/db/dictionary/dictionary.H b/src/OpenFOAM/db/dictionary/dictionary.H index 9df99994ef0..22f8a84f95d 100644 --- a/src/OpenFOAM/db/dictionary/dictionary.H +++ b/src/OpenFOAM/db/dictionary/dictionary.H @@ -357,7 +357,7 @@ private: //- Emit IOError about bad input for the entry - void raiseBadInput(const word& keyword) const; + void raiseBadInput(const ITstream& is, const word& keyword) const; //- The case-relative dictionary name. Uses FOAM_CASE fileName relativeName(const bool caseTag=false) const; diff --git a/src/OpenFOAM/db/dictionary/dictionaryTemplates.C b/src/OpenFOAM/db/dictionary/dictionaryTemplates.C index e08f1e83e66..4d5f38bc17c 100644 --- a/src/OpenFOAM/db/dictionary/dictionaryTemplates.C +++ b/src/OpenFOAM/db/dictionary/dictionaryTemplates.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2017-2019 OpenCFD Ltd. + Copyright (C) 2017-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -229,7 +229,7 @@ T Foam::dictionary::getCheckOrDefault if (!pred(val)) { - raiseBadInput(keyword); + raiseBadInput(is, keyword); } return val; @@ -284,7 +284,7 @@ T Foam::dictionary::getCheckOrAdd if (!pred(val)) { - raiseBadInput(keyword); + raiseBadInput(is, keyword); } return val; @@ -362,7 +362,7 @@ bool Foam::dictionary::readCheck if (!pred(val)) { - raiseBadInput(keyword); + raiseBadInput(is, keyword); } return true; -- GitLab