Also moves the environment variable handling code out to the only
test that needs it and simplifies it; some Perl versions were giving
warnings from splitting an undef value.
* konrad/clean-up-msi:
Add test for macro expansion in file names
Reduce scope of some variables
Convert substitutionName to std::string
Use bool for more clarity
Remove unneeded errlogFlush()
Manage psubFile with new/delete
Convert copy to std::string
Use std::list for patternList
Convert patternNode.var to std::string
Convert fullname to std::string
Convert inputFile.filename to std::string
Simplify inputConstruct()
Use std::list for pathList
Use std::list for inputFileList
Constructor for struct inputData
Simplify catMacroReplacements()
Constructor for struct subInfo
Add some const keywords
Convert MSI to C++
Test expansion of empty patterns with MSI
We need to ensure the allocated resources stick around until
the last instance using them doesn't need them anymore. Sharing
a raw pointer by exporting it as a global variable is not
compatible with cleaning up at all. For now we remove the
clean-up code.
Note: This fixes a segfault during IOC shutdown when using both
pyDevSup and pyepics. See the discussion on
https://epics.anl.gov/tech-talk/2019/msg00778.php for details.
When a custom copy constructor is defined the assignment operator
also needs to be defined explicitly. For this simple class the
implicit copy ctor/assignment operator are sufficient, though. This
fixes a warning emitted by GCC9.
... in which Apple moved the Perl headers into XCode.
This should also make the build a little more forgiving on other
architectures that have incomplete Perl installations; it gives up
trying to build the Perl bindings with a warning if perl.h is missing.
It's unsafe and generates obnoxious warnings on modern compilers.
This also replaces internal useage with epicsTempFile().
There appears to be no external code that calls this routine.
Add proper equals() method for DBD::Recfield and DBD::Recordtype.
In Parser::parse_recordtype() check for and re-use a declaration
(i.e. an empty recordtype object) when parsing a later definition
of the same recordtype.