From ab918fba9bda3670b3306cfc8db06de0e48d00f1 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Thu, 23 Jul 2009 23:53:32 +0200 Subject: [PATCH] introduce fileName::clean() method - still needs more fleshing out, but introduce the method for now and add more code later (without recompiling everything else). --- src/OpenFOAM/global/argList/argList.C | 3 +-- .../primitives/strings/fileName/fileName.C | 21 +++++++++++++++++++ .../primitives/strings/fileName/fileName.H | 7 +++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/OpenFOAM/global/argList/argList.C b/src/OpenFOAM/global/argList/argList.C index 01feb13dfc..37caa6ddb3 100644 --- a/src/OpenFOAM/global/argList/argList.C +++ b/src/OpenFOAM/global/argList/argList.C @@ -127,8 +127,7 @@ void Foam::argList::getRootCase() if (iter != options_.end()) { casePath = iter(); - casePath.removeRepeated('/'); - casePath.removeTrailing('/'); + casePath.clean(); // handle degenerate form and '-case .' like no -case specified if (casePath.empty() || casePath == ".") diff --git a/src/OpenFOAM/primitives/strings/fileName/fileName.C b/src/OpenFOAM/primitives/strings/fileName/fileName.C index 6d930e9fe8..ac6dc75025 100644 --- a/src/OpenFOAM/primitives/strings/fileName/fileName.C +++ b/src/OpenFOAM/primitives/strings/fileName/fileName.C @@ -55,6 +55,27 @@ Foam::fileName::Type Foam::fileName::type() const } +bool Foam::fileName::clean() +{ + bool changed = false; + + changed = this->removeRepeated('/') || changed; + changed = this->removeTrailing('/') || changed; + + return changed; +} + + +// Return string with repeated characters removed +Foam::fileName Foam::fileName::clean() const +{ + fileName fName(*this); + fName.clean(); + return fName; +} + + + // Return file name (part beyond last /) // // behaviour compared to /usr/bin/basename: diff --git a/src/OpenFOAM/primitives/strings/fileName/fileName.H b/src/OpenFOAM/primitives/strings/fileName/fileName.H index a47f53ed80..709e70920b 100644 --- a/src/OpenFOAM/primitives/strings/fileName/fileName.H +++ b/src/OpenFOAM/primitives/strings/fileName/fileName.H @@ -128,6 +128,13 @@ public: //- Is this character valid for a fileName? inline static bool valid(char); + //- Cleanup file name + // eg, remove repeated slashes, etc. + bool clean(); + + //- Cleanup file name + // eg, remove repeated slashes, etc. + fileName clean() const; // Interogation