diff options
| author | Johannes Schindelin <johannes.schindelin@gmx.de> | 2024-07-13 21:08:20 +0000 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2024-07-13 16:23:36 -0700 |
| commit | 193eda7507d0ccb2fe6fd42b403c56ecc205e546 (patch) | |
| tree | 78c49fc2f26f9fe7f04bf84222c0aa36b3d60af6 /dir.c | |
| parent | strvec: declare the `strvec_push_nodup()` function globally (diff) | |
| download | git-193eda7507d0ccb2fe6fd42b403c56ecc205e546.tar.gz git-193eda7507d0ccb2fe6fd42b403c56ecc205e546.zip | |
win32: override `fspathcmp()` with a directory separator-aware version
On Windows, the backslash is the directory separator, even if the
forward slash can be used, too, at least since Windows NT.
This means that the paths `a/b` and `a\b` are equivalent, and
`fspathcmp()` needs to be made aware of that fact.
Note that we have to override both `fspathcmp()` and `fspathncmp()`, and
the former cannot be a mere pre-processor constant that transforms calls
to `fspathcmp(a, b)` into `fspathncmp(a, b, (size_t)-1)` because the
function `report_collided_checkout()` in `unpack-trees.c` wants to
assign `list.cmp = fspathcmp`.
Also note that `fspatheq()` does _not_ need to be overridden because it
calls `fspathcmp()` internally.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'dir.c')
| -rw-r--r-- | dir.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -95,7 +95,7 @@ int count_slashes(const char *s) return cnt; } -int fspathcmp(const char *a, const char *b) +int git_fspathcmp(const char *a, const char *b) { return ignore_case ? strcasecmp(a, b) : strcmp(a, b); } @@ -105,7 +105,7 @@ int fspatheq(const char *a, const char *b) return !fspathcmp(a, b); } -int fspathncmp(const char *a, const char *b, size_t count) +int git_fspathncmp(const char *a, const char *b, size_t count) { return ignore_case ? strncasecmp(a, b, count) : strncmp(a, b, count); } |
