]> git.tdb.fi Git - libs/core.git/blobdiff - source/utils.h
Refactor the API
[libs/core.git] / source / utils.h
index a828c92e3ed76e21a90efe22b3d7de2c985b7506..a6d956869bf633d531d35e24636b8b37519e35f4 100644 (file)
@@ -13,28 +13,36 @@ namespace FS {
 
 class Path;
 
-struct Filename
-{
-       std::string base;
-       std::string ext;
-};
+/// Extracts the last component of the path.
+std::string basename(const Path &);
 
+/// Removes the last component from the path.
+Path dirname(const Path &);
+
+/**
+Returns the base part of a filename.  This includes everything up to the last
+dot, but not the dot itself.
+*/
+std::string basepart(const std::string &);
+
+/**
+Returns the extension part of a filename.  This includes the last dot and
+everything after it.
+*/
+std::string extpart(const std::string &);
+
+/**
+Fixes the case of the given path to match files / directories on the
+filesystem.
+*/
 Path fix_case(const Path &path);
 
 /// Removes a file
 void unlink(const Path &path);
 
-Filename splitext(const std::string &);
-int fnmatch(const std::string &, const Path &);
-
 /// Makes a path relative to some base path.  That is, base/result==path.
 Path relative(const Path &path, const Path &base);
 
-std::string basename(const std::string &);
-
-inline bool is_windows_drive(const std::string &p)
-{ return (p.size()==2 && ((p[0]>='A' && p[0]<='Z') || (p[0]>='a' && p[0]<='z')) && p[1]==':'); }
-
 } // namespace FS
 } // namespace Msp