diff options
author | Tim Mayberry <mojofunk@gmail.com> | 2007-09-04 09:01:12 +0000 |
---|---|---|
committer | Tim Mayberry <mojofunk@gmail.com> | 2007-09-04 09:01:12 +0000 |
commit | 26c4c12fb79e40f908b0357a063bb94d104f9f69 (patch) | |
tree | f863352de723eab20cc638863d7918b287ca0b3b /libs | |
parent | 54b17ddfd7b1eb886545af0624c19df329ae32df (diff) |
Add path::branch_path to the PBD::sys::path class
This is basically equivalent to Glib::path_get_dirname but returning an
empty string(path) if a path doesn't contain any directory components rather
than "."
git-svn-id: svn://localhost/ardour2/trunk@2403 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/pbd/filesystem.cc | 18 | ||||
-rw-r--r-- | libs/pbd/pbd/filesystem.h | 7 |
2 files changed, 25 insertions, 0 deletions
diff --git a/libs/pbd/filesystem.cc b/libs/pbd/filesystem.cc index 2412b76761..6aaaec1d81 100644 --- a/libs/pbd/filesystem.cc +++ b/libs/pbd/filesystem.cc @@ -58,6 +58,24 @@ path::operator/=(const char* rhs) return *this; } +path +path::branch_path () const +{ + string dir = Glib::path_get_dirname (m_path); + + /* + * glib returns "." to signify that the path + * has no directory components(branch path) + * whereas boost::filesystem returns an empty + * string + */ + if(dir == ".") + { + return ""; + } + return dir; +} + bool exists (const path & p) { diff --git a/libs/pbd/pbd/filesystem.h b/libs/pbd/pbd/filesystem.h index 8de57e4ea7..a5b0ed5b28 100644 --- a/libs/pbd/pbd/filesystem.h +++ b/libs/pbd/pbd/filesystem.h @@ -86,6 +86,13 @@ public: const string to_string() const { return m_path; } + /** + * @returns the directory component of a path without any trailing + * path separator or an empty string if the path has no directory + * component(branch path). + */ + path branch_path () const; + private: string m_path; |