aboutsummaryrefslogtreecommitdiff
path: root/libs/uibase/include
diff options
context:
space:
mode:
Diffstat (limited to 'libs/uibase/include')
-rw-r--r--libs/uibase/include/uibase/filesystemutilities.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/libs/uibase/include/uibase/filesystemutilities.h b/libs/uibase/include/uibase/filesystemutilities.h
index a98ba7b..b492687 100644
--- a/libs/uibase/include/uibase/filesystemutilities.h
+++ b/libs/uibase/include/uibase/filesystemutilities.h
@@ -43,6 +43,20 @@ QDLLEXPORT bool validFileName(const QString& name);
*/
QDLLEXPORT QString resolveFileCaseInsensitive(const QString& path);
+/**
+ * @brief Case-insensitively resolve every component of an absolute path.
+ *
+ * Unlike resolveFileCaseInsensitive(), walks each directory component and
+ * matches it case-insensitively against the real filesystem, so a path like
+ * `mods/foo/meshes/dlc01/bar.nif` resolves correctly when the on-disk
+ * directory is `meshes/DLC01/`.
+ *
+ * On Windows, returns the cleaned path as-is.
+ * On Linux, returns the first walk that resolves each component; if any
+ * component has no case-insensitive match, returns the cleaned input path.
+ */
+QDLLEXPORT QString resolvePathCaseInsensitive(const QString& path);
+
} // namespace MOBase
#endif // FILESYSTEM_H