diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-02-03 14:16:06 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-02-03 14:16:06 -0800 |
commit | e01c6b15c97e30baedc45021e6dcbd90140616cd (patch) | |
tree | ef740ad7bbef152f294149f3ad10f95de0919025 /path.c | |
parent | ebcdd635c58e89dbf931a9f90a1b248fb5e90315 (diff) | |
parent | e7d5ce816579723150c341116737fb51d8e33eb3 (diff) | |
download | git-e01c6b15c97e30baedc45021e6dcbd90140616cd.tar.gz |
Merge branch 'js/dirname-basename'
dirname() emulation has been added, as Msys2 lacks it.
* js/dirname-basename:
mingw: avoid linking to the C library's isalpha()
t0060: loosen overly strict expectations
t0060: verify that basename() and dirname() work as expected
compat/basename.c: provide a dirname() compatibility function
compat/basename: make basename() conform to POSIX
Refactor skipping DOS drive prefixes
Diffstat (limited to 'path.c')
-rw-r--r-- | path.c | 14 |
1 files changed, 5 insertions, 9 deletions
@@ -782,13 +782,10 @@ const char *relative_path(const char *in, const char *prefix, else if (!prefix_len) return in; - if (have_same_root(in, prefix)) { + if (have_same_root(in, prefix)) /* bypass dos_drive, for "c:" is identical to "C:" */ - if (has_dos_drive_prefix(in)) { - i = 2; - j = 2; - } - } else { + i = j = has_dos_drive_prefix(in); + else { return in; } @@ -943,11 +940,10 @@ const char *remove_leading_path(const char *in, const char *prefix) int normalize_path_copy_len(char *dst, const char *src, int *prefix_len) { char *dst0; + int i; - if (has_dos_drive_prefix(src)) { + for (i = has_dos_drive_prefix(src); i > 0; i--) *dst++ = *src++; - *dst++ = *src++; - } dst0 = dst; if (is_dir_sep(*src)) { |