diff --git a/compat/mingw.h b/compat/mingw.h index 738865c6c0..d5ba56ac6f 100644 --- a/compat/mingw.h +++ b/compat/mingw.h @@ -359,6 +359,7 @@ HANDLE winansi_get_osfhandle(int fd); */ #define has_dos_drive_prefix(path) (isalpha(*(path)) && (path)[1] == ':') +#define has_unc_prefix(path) (*(path) == '\\' && (path)[1] == '\\') #define is_dir_sep(c) ((c) == '/' || (c) == '\\') static inline char *mingw_find_last_dir_sep(const char *path) { diff --git a/git-compat-util.h b/git-compat-util.h index 4fe10cc146..6af19397e5 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -335,6 +335,14 @@ static inline int git_has_dos_drive_prefix(const char *path) #define has_dos_drive_prefix git_has_dos_drive_prefix #endif +#ifndef has_unc_prefix +static inline int git_has_unc_prefix(const char *path) +{ + return 0; +} +#define has_unc_prefix git_has_unc_prefix +#endif + #ifndef is_dir_sep static inline int git_is_dir_sep(int c) { diff --git a/path.c b/path.c index 56317a66be..e89d07f79f 100644 --- a/path.c +++ b/path.c @@ -704,7 +704,7 @@ int normalize_path_copy_len(char *dst, const char *src, int *prefix_len) { char *dst0; - if (has_dos_drive_prefix(src)) { + if (has_unc_prefix(src) || has_dos_drive_prefix(src)) { *dst++ = *src++; *dst++ = *src++; }