diff options
author | Campbell Barton <campbell@blender.org> | 2022-01-28 05:59:06 +0300 |
---|---|---|
committer | Campbell Barton <campbell@blender.org> | 2022-01-28 06:50:16 +0300 |
commit | 7475012e24ad02c116ad2dcdcd7b36ca60f62103 (patch) | |
tree | 0604fbf6f8a7e894b9860e8dea17a49a3cfa9156 /source/blender/blenlib/BLI_path_util.h | |
parent | f2b24272dd7c8dd0ed13604b082247fda970e069 (diff) |
Cleanup: rename BLI_paths_equal to BLI_path_cmp_normalized
Changes to recent addition: c85c52f2ce478ab0e30c5e93fd5a5cb812db232f.
Having both BLI_paths_equal and BLI_path_cmp made it ambiguous
which should be used, as `BLI_paths_equal` wasn't the equivalent to
`BLI_path_cmp(..) == 0` as it is for string equals macro `STREQ(..)`.
It's also a more specialized function which is not used for path
comparison throughout Blender's internal path handling logic.
Instead rename this `BLI_path_cmp_normalized` and return the result of
`BLI_path_cmp` to make it clear paths are modified before comparison.
Also add comments about the conventions for Blender's path comparison
as well as a possible equivalent to Python's `os.path.samefile`
for checking if two paths point to the same location on the file-system.
Diffstat (limited to 'source/blender/blenlib/BLI_path_util.h')
-rw-r--r-- | source/blender/blenlib/BLI_path_util.h | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/source/blender/blenlib/BLI_path_util.h b/source/blender/blenlib/BLI_path_util.h index a2bb8ca47c5..3c40a311f6f 100644 --- a/source/blender/blenlib/BLI_path_util.h +++ b/source/blender/blenlib/BLI_path_util.h @@ -381,11 +381,6 @@ void BLI_path_normalize_unc(char *path_16, int maxlen); #endif /** - * Returns true if the given paths are equal. - */ -bool BLI_paths_equal(const char *p1, const char *p2); - -/** * Appends a suffix to the string, fitting it before the extension * * string = Foo.png, suffix = 123, separator = _ @@ -409,6 +404,19 @@ bool BLI_path_suffix(char *string, size_t maxlen, const char *suffix, const char # define BLI_path_ncmp strncmp #endif +/** + * Returns the result of #BLI_path_cmp with both paths normalized and slashes made native. + * + * \note #BLI_path_cmp is used for Blender's internal logic to consider paths to be the same + * #BLI_path_cmp_normalized may be used in when handling other kinds of paths + * (e.g. importers/exporters) but should be used consistently. + * + * Checking the normalized paths is not a guarantee the paths reference different files. + * An equivalent to Python's `os.path.samefile` could be supported for checking if paths + * point to the same location on the file-system (following symbolic-links). + */ +int BLI_path_cmp_normalized(const char *p1, const char *p2); + /* These values need to be hard-coded in structs, dna does not recognize defines */ /* also defined in `DNA_space_types.h`. */ #ifndef FILE_MAXDIR |