STYLE: emit warning about using deprecated "~OpenFOAM" expansion

- Within strings it is preferable to use the "<etc>" instead.
  Most use cases for the old "~OpenFOAM" expansion have been obsoleted
  by the #includeEtc directive.
This commit is contained in:
Mark Olesen
2018-11-23 13:12:33 +01:00
parent ac03307258
commit 1456a8ca1d
6 changed files with 34 additions and 11 deletions

View File

@ -69,7 +69,7 @@ int main(int argc, char *argv[])
argList::addNote
(
"Locate user/group/other file with semantics similar to the "
"~OpenFOAM/fileName expansion."
"<etc>/fileName expansion."
);
argList args(argc, argv, false, true);

View File

@ -33,8 +33,8 @@
# - requires rsync
#
# Note
# The foamCopySettings.rc (found with the ~OpenFOAM expansion) can be used
# to add any custom rsync options.
# The foamCopySettings.rc (found via foamEtcFile) can be used to add any
# custom rsync options.
#------------------------------------------------------------------------------
Script=${0##*/}
@ -51,8 +51,8 @@ Usage: $Script srcDir dstDir
- requires rsync
Note
The $Script.rc (found via the ~OpenFOAM expansion - see foamEtcFile)
can be used to add any custom rsync options.
The $Script.rc (found via foamEtcFile) can be used to add any
custom rsync options.
USAGE
exit 1

View File

@ -162,7 +162,7 @@ bool Foam::dynamicCode::resolveTemplates
}
}
// Not found - fallback to ~OpenFOAM expansion
// Not found - fallback to <etc> expansion
if (file.empty())
{
file = findEtcFile(codeTemplateDirName/templateName);
@ -423,7 +423,7 @@ bool Foam::dynamicCode::copyOrCreateFiles(const bool verbose) const
<< "Could not find the code template(s): "
<< badFiles << nl
<< "Under the $" << codeTemplateEnvName
<< " directory or via via the ~OpenFOAM/"
<< " directory or via via the <etc>/"
<< codeTemplateDirName << " expansion"
<< exit(FatalError);
}

View File

@ -76,7 +76,7 @@ Description
Note
- The document browser used is defined by the \b FOAM_DOC_BROWSER
environment variable or the <tt>Documentation/docBrowser</tt> entry
in the <tt>~OpenFOAM/controlDict</tt> file.
in the <tt>\<etc\>/controlDict</tt> file.
The \%f token is used as a placeholder for the file name.
- The valid (mandatory) arguments can be adjusted
via the addArgument static method instead of directly

View File

@ -26,6 +26,7 @@ License
#include "stringOps.H"
#include "typeInfo.H"
#include "etcFiles.H"
#include "Pstream.H"
#include "StringStream.H"
#include "OSstream.H"
#include "OSspecific.H"
@ -92,8 +93,8 @@ static void expandLeadingTag(std::string& s, const char b, const char e)
// Expand a leading tilde
// ~/ => home directory
// ~OpenFOAM => user/group/other OpenFOAM directory
// ~user => home directory for specified user
// Deprecated ~OpenFOAM => <etc> instead
static void expandLeadingTilde(std::string& s)
{
if (s[0] != '~')
@ -121,6 +122,24 @@ static void expandLeadingTilde(std::string& s)
if (user == "OpenFOAM")
{
// Compat Warning
const int version(1806);
// Single warning (on master) with guard to avoid Pstream::master()
// when Pstream has not yet been initialized
if (Pstream::parRun() ? Pstream::master() : true)
{
std::cerr
<< nl
<< "--> FOAM Warning :" << nl
<< " Found [v" << version << "] '"
<< "~OpenFOAM" << "' string expansion instead of '"
<< "<etc>" << "' in string\n\"" << s << "\"\n" << nl
<< std::endl;
error::warnAboutAge("expansion", version);
}
s = findEtcFile(file);
}
else

View File

@ -228,7 +228,6 @@ namespace stringOps
// -# tilde expansion
// - leading "~/" : home directory
// - leading "~user" : home directory for specified user
// - leading "~OpenFOAM" : user/group/other OpenFOAM directory
//
// Supports default and alternative values as per the POSIX shell.
// \code
@ -245,6 +244,9 @@ namespace stringOps
// - Malformed entries (eg, brace mismatch, sigil followed by bad chars)
// are left as is.
//
// \note Deprecated(2018-11) Use "<etc>" instead of the rarely used
// "~OpenFOAM" expansion
//
// \sa
// Foam::findEtcFile
string expand
@ -268,7 +270,6 @@ namespace stringOps
// -# tilde expansion
// - leading "~/" : home directory
// - leading "~user" : home directory for specified user
// - leading "~OpenFOAM" : user/group/other OpenFOAM directory
//
// Supports default and alternative values as per the POSIX shell.
// \code
@ -285,6 +286,9 @@ namespace stringOps
// - Malformed entries (eg, brace mismatch, sigil followed by bad chars)
// are left as is.
//
// \note Deprecated(2018-11) Use "<etc>" instead of the rarely used
// "~OpenFOAM" expansion
//
// \sa
// Foam::findEtcFile
void inplaceExpand