diff --git a/applications/utilities/miscellaneous/foamFormatConvert/foamFormatConvert.C b/applications/utilities/miscellaneous/foamFormatConvert/foamFormatConvert.C index 81971b85f5..b024745f42 100644 --- a/applications/utilities/miscellaneous/foamFormatConvert/foamFormatConvert.C +++ b/applications/utilities/miscellaneous/foamFormatConvert/foamFormatConvert.C @@ -191,7 +191,7 @@ int main(int argc, char *argv[]) << endl; } - int oldFlag = entry::disableFunctionEntries; + const int oldFlag = entry::disableFunctionEntries; if (!enableEntries) { // By default disable dictionary expansion for fields diff --git a/applications/utilities/preProcessing/changeDictionary/changeDictionary.C b/applications/utilities/preProcessing/changeDictionary/changeDictionary.C index d9a7fbb8fc..ea80da840f 100644 --- a/applications/utilities/preProcessing/changeDictionary/changeDictionary.C +++ b/applications/utilities/preProcessing/changeDictionary/changeDictionary.C @@ -464,7 +464,7 @@ int main(int argc, char *argv[]) << endl; } - int oldFlag = entry::disableFunctionEntries; + const int oldFlag = entry::disableFunctionEntries; if (!enableEntries) { // By default disable dictionary expansion for fields diff --git a/applications/utilities/preProcessing/foamUpgradeCyclics/foamUpgradeCyclics.C b/applications/utilities/preProcessing/foamUpgradeCyclics/foamUpgradeCyclics.C index bca1b7a394..b35b5b3707 100644 --- a/applications/utilities/preProcessing/foamUpgradeCyclics/foamUpgradeCyclics.C +++ b/applications/utilities/preProcessing/foamUpgradeCyclics/foamUpgradeCyclics.C @@ -500,7 +500,7 @@ int main(int argc, char *argv[]) IOobjectList objects(runTime, runTime.timeName()); - int oldFlag = entry::disableFunctionEntries; + const int oldFlag = entry::disableFunctionEntries; if (!enableEntries) { // By default disable dictionary expansion for fields diff --git a/src/OpenFOAM/db/dictionary/entry/entryIO.C b/src/OpenFOAM/db/dictionary/entry/entryIO.C index e4a5a1a73b..86afb024ba 100644 --- a/src/OpenFOAM/db/dictionary/entry/entryIO.C +++ b/src/OpenFOAM/db/dictionary/entry/entryIO.C @@ -283,15 +283,21 @@ bool Foam::entry::New(dictionary& parentDict, Istream& is) } else if (functionEntries::inputModeEntry::protect()) { - // read and discard the entry + // Read and discard the entry. + // Disable function/variable expansion to avoid side-effects + const int oldFlag = entry::disableFunctionEntries; + entry::disableFunctionEntries = 1; + if (nextToken == token::BEGIN_BLOCK) { - dictionaryEntry dummy(keyword, parentDict, is); + dictionaryEntry dummy("dummy", parentDict, is); } else { - primitiveEntry dummy(keyword, parentDict, is); + primitiveEntry dummy("dummy", parentDict, is); } + + entry::disableFunctionEntries = oldFlag; return true; } else if (functionEntries::inputModeEntry::error())