-/// 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. Both
+paths must be either absolute or relative. */
+MSPCORE_API Path relative(const Path &path, const Path &base);
+
+/// Returns the longest prefix shared by both paths.
+MSPCORE_API Path common_ancestor(const Path &, const Path &);