]> git.tdb.fi Git - libs/core.git/blobdiff - source/fs/utils.h
Add common_ancestor function
[libs/core.git] / source / fs / utils.h
index f345ba7e7f3266a2bba26c298821129ae49a8635..a52e37d8ed6f3321c748d5df793ce58c77b700e3 100644 (file)
@@ -12,22 +12,15 @@ std::string basename(const Path &);
 /// Removes the last component from the path.
 Path dirname(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.
-*/
+/** 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 &);
 
 std::string basepart(const std::string &);
 
-/**
-Returns the extension part of a filename.  This includes the last dot and
-everything after it.
-*/
+/** Returns the extension part of a filename.  This includes the last dot and
+everything after it. */
 std::string extpart(const std::string &);
 
 std::string extpart(const std::string &);
 
-/**
-Fixes the case of the given path to match files / directories on the
-filesystem.
-*/
+/// Fixes the case of a path to match files / directories on the filesystem.
 Path fix_case(const Path &path);
 
 /// Reads the contents of a symbolic link
 Path fix_case(const Path &path);
 
 /// Reads the contents of a symbolic link
@@ -45,6 +38,9 @@ void rename(const Path &from, const Path &to);
 /// Makes a path relative to some base path.  That is, base/result==path.
 Path relative(const Path &path, const Path &base);
 
 /// Makes a path relative to some base path.  That is, base/result==path.
 Path relative(const Path &path, const Path &base);
 
+/// Returns the longest prefix shared by both paths.
+Path common_ancestor(const Path &, const Path &);
+
 /** Determines how many levels a path is below another.  Returns -1 if path is
 not a descendant of parent. */
 int descendant_depth(const Path &path, const Path &parent);
 /** Determines how many levels a path is below another.  Returns -1 if path is
 not a descendant of parent. */
 int descendant_depth(const Path &path, const Path &parent);