return result;
}
+int descendant_depth(const Path &path, const Path &parent)
+{
+ Path::Iterator i=path.begin();
+ Path::Iterator j=parent.begin();
+ for(; (i!=path.end() && j!=parent.end() && *i==*j); ++i, ++j) ;
+
+ if(j!=parent.end())
+ return -1;
+
+ int result = 0;
+ for(; i!=path.end(); ++i)
+ ++result;
+
+ return result;
+}
+
} // namespace FS
} // namespace Msp
/// Makes a path relative to some base path. That is, base/result==path.
Path relative(const Path &path, const Path &base);
+/** 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);
+
} // namespace FS
} // namespace Msp