* \author Teemu Murtola <teemu.murtola@gmail.com>
* \ingroup module_utility
*/
-#include "gromacs/utility/path.h"
+#include "gmxpre.h"
+
+#include "path.h"
#include <cctype>
#include <cerrno>
#include <algorithm>
+#include <sys/stat.h>
+
#include "config.h"
-#include <sys/stat.h>
#ifdef GMX_NATIVE_WINDOWS
#include <direct.h>
#else
#endif
#endif
-#include "gromacs/fileio/futil.h"
+#include "gromacs/utility/futil.h"
#include "gromacs/utility/stringutil.h"
namespace
{
-//! \addtogroup module_utility
-//! \{
-
//! Directory separator to use when joining paths.
const char cDirSeparator = '/';
//! Directory separators to use when parsing paths.
return std::strchr(cDirSeparators, chr);
}
-//! \}
-
} // namespace
namespace gmx
return path.substr(pos+1);
}
+std::string Path::stripExtension(const std::string &path)
+{
+ size_t dirSeparatorPos = path.find_last_of(cDirSeparators);
+ size_t extPos = path.find_last_of('.');
+ if (extPos == std::string::npos
+ || (dirSeparatorPos != std::string::npos && extPos < dirSeparatorPos))
+ {
+ return path;
+ }
+ return path.substr(0, extPos);
+}
+
std::string Path::normalize(const std::string &path)
{
std::string result(path);