diff --git a/src/OpenFOAM/db/IOobject/IOobject.C b/src/OpenFOAM/db/IOobject/IOobject.C index 4f30c4bee9677045f1a6f58c46ee1935232e1c7f..f3062e9be05706324d1261e4722003273c22bc28 100644 --- a/src/OpenFOAM/db/IOobject/IOobject.C +++ b/src/OpenFOAM/db/IOobject/IOobject.C @@ -40,7 +40,7 @@ namespace Foam char Foam::IOobject::scopeSeparator ( #ifdef _WIN32 - // Windows: using ':' for scoping conflicts with d:/path etc + // Windows: using ':' causes scoping conflicts with d:/path etc Foam::debug::infoSwitch("scopeSeparator", '_') #else Foam::debug::infoSwitch("scopeSeparator", ':') @@ -467,10 +467,19 @@ const Foam::fileName& Foam::IOobject::caseName() const Foam::fileName Foam::IOobject::path() const { // A file is 'outside' of the case if it has been specified using an - // absolute path (starts with '/') + // absolute path - if (instance().starts_with('/')) + const auto first = instance().find('/'); + + if + ( + first == 0 + #ifdef _WIN32 + || (first == 2 && instance()[1] == ':') // Eg, d:/path + #endif + ) { + // Absolute path (starts with '/' or 'd:/') return instance(); }