diff --git a/src/sampling/sampledSurface/readers/ensight/ensightSurfaceReader.C b/src/sampling/sampledSurface/readers/ensight/ensightSurfaceReader.C index 25f1b63e5b3236d539ff2b53b299092a72d7e745..f84279514175bb7b1f7274b31f0287bde6837782 100644 --- a/src/sampling/sampledSurface/readers/ensight/ensightSurfaceReader.C +++ b/src/sampling/sampledSurface/readers/ensight/ensightSurfaceReader.C @@ -127,16 +127,24 @@ Foam::fileName Foam::ensightSurfaceReader::replaceMask ( const fileName& fName, const label timeIndex -) const +) { fileName result(fName); - std::ostringstream oss; - label nMask = stringOps::count(fName, '*'); - const std::string maskStr(nMask, '*'); - oss << std::setfill('0') << std::setw(nMask) << timeIndex; - const word indexStr = oss.str(); - result.replace(maskStr, indexStr); + const auto nMask = stringOps::count(fName, '*'); + + // If there are any '*' chars, they are assumed to be contiguous + // Eg, data/******/geometry + + if (nMask) + { + std::ostringstream oss; + oss << std::setfill('0') << std::setw(nMask) << timeIndex; + + const std::string maskStr(nMask, '*'); + const std::string indexStr = oss.str(); + result.replace(maskStr, indexStr); + } return result; } diff --git a/src/sampling/sampledSurface/readers/ensight/ensightSurfaceReader.H b/src/sampling/sampledSurface/readers/ensight/ensightSurfaceReader.H index da725dc315efbae37d8f50fda3a759f4798dd5ca..ec120d79230d03d2cd140cbaefcb9cb0518002cc 100644 --- a/src/sampling/sampledSurface/readers/ensight/ensightSurfaceReader.H +++ b/src/sampling/sampledSurface/readers/ensight/ensightSurfaceReader.H @@ -112,12 +112,12 @@ protected: //- Read and check a section header void debugSection(const word& expected, IFstream& is) const; - //- Replace the mask with an 0 padded string - fileName replaceMask + //- Replace the '*' mask chars with a 0 padded string. + static fileName replaceMask ( const fileName& fName, const label timeIndex - ) const; + ); //- Read (and discard) geometry file header. // \return information about node/element id handling @@ -158,10 +158,11 @@ public: //- Runtime type information TypeName("ensight"); + // Constructors //- Construct from fileName - ensightSurfaceReader(const fileName& fName); + explicit ensightSurfaceReader(const fileName& fName); //- Destructor