From cd7748f8e48db2ee90e7e2ff2548b2f2033ffb92 Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Mon, 15 Apr 2019 12:42:29 +0200 Subject: [PATCH] BUG: bad '#line' directives for dynamicCode (fixes #1282) - now suppress any '#line' if the input number number is invalid (ie, an empty set of tokens) --- .../dynamicLibrary/dynamicCode/dynamicCodeContext.C | 11 ++++++++--- .../dynamicLibrary/dynamicCode/dynamicCodeContext.H | 9 +++++---- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/OpenFOAM/db/dynamicLibrary/dynamicCode/dynamicCodeContext.C b/src/OpenFOAM/db/dynamicLibrary/dynamicCode/dynamicCodeContext.C index 36e8407afb0..089948e6f04 100644 --- a/src/OpenFOAM/db/dynamicLibrary/dynamicCode/dynamicCodeContext.C +++ b/src/OpenFOAM/db/dynamicLibrary/dynamicCode/dynamicCodeContext.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | + \\ / A nd | Copyright (C) 2019 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- | Copyright (C) 2011-2016 OpenFOAM Foundation @@ -124,11 +124,16 @@ Foam::dynamicCodeContext::dynamicCodeContext(const dictionary& dict) void Foam::dynamicCodeContext::addLineDirective ( string& code, - const label lineNum, + label lineNum, const fileName& name ) { - code = "#line " + Foam::name(lineNum + 1) + " \"" + name + "\"\n" + code; + ++lineNum; // Change from 0-based to 1-based + + if (lineNum > 0 && !name.empty()) + { + code = "#line " + Foam::name(lineNum) + " \"" + name + "\"\n" + code; + } } diff --git a/src/OpenFOAM/db/dynamicLibrary/dynamicCode/dynamicCodeContext.H b/src/OpenFOAM/db/dynamicLibrary/dynamicCode/dynamicCodeContext.H index 60acd3bb5a8..38d4dd80066 100644 --- a/src/OpenFOAM/db/dynamicLibrary/dynamicCode/dynamicCodeContext.H +++ b/src/OpenFOAM/db/dynamicLibrary/dynamicCode/dynamicCodeContext.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | + \\ / A nd | Copyright (C) 2019 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- | Copyright (C) 2011-2016 OpenFOAM Foundation @@ -80,7 +80,7 @@ public: // Constructors //- Construct from a dictionary - dynamicCodeContext(const dictionary&); + dynamicCodeContext(const dictionary& dict); // Member functions @@ -128,10 +128,11 @@ public: } //- Helper: add \#line directive + // The lineNum is 0-based. No-op if the lineNum is negative. static void addLineDirective ( - string&, - const label lineNum, + string& code, + label lineNum, const fileName& name ); }; -- GitLab