From: Jiang Xin Date: Wed, 18 Sep 2013 09:02:12 GMT Subject: Re: [PATCH v3 2/3] relative_path should honor DOS and UNC paths Message-ID: In-Reply-To: 2013/9/18 Junio C Hamano : > Jiang Xin writes: > >> diff --git a/compat/mingw.h b/compat/mingw.h >> index bd0a88b..06e9f49 100644 >> --- a/compat/mingw.h >> +++ b/compat/mingw.h >> @@ -311,6 +311,15 @@ int winansi_fprintf(FILE *stream, const char *format, ...) __attribute__((format >> >> #define has_dos_drive_prefix(path) (isalpha(*(path)) && (path)[1] == ':') >> #define is_dir_sep(c) ((c) == '/' || (c) == '\\') >> +static inline int is_unc_path(const char *path) >> +{ >> + if (!is_dir_sep(*path) || !is_dir_sep(*(path+1)) || is_dir_sep(*(path+2))) >> + return 0; A UNC path must start with two slashes, but not three or more slashes. > > If path[1] == '\0', it would be !is_dir_sep() and we end up > inspecting past the end of the string? The funciton "is_unc_path" will return false (0), if path is "", "/", "//", "///three/slashes/", or "/usr/local". So the problem is ? -- Jiang Xin