Windows: Disambiguate DOS style paths from SSH URLs.
If on Windows a path is specified as C:/path, then this is also a valid SSH URL. To disambiguate between the two interpretations we take an URL that looks like a path with a drive letter as a local URL. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
This commit is contained in:
parent
6ed807f843
commit
be501813d2
@ -529,7 +529,7 @@ struct child_process *git_connect(int fd[2], const char *url_orig,
|
|||||||
end = host;
|
end = host;
|
||||||
|
|
||||||
path = strchr(end, c);
|
path = strchr(end, c);
|
||||||
if (path) {
|
if (path && !has_dos_drive_prefix(end)) {
|
||||||
if (c == ':') {
|
if (c == ':') {
|
||||||
protocol = PROTO_SSH;
|
protocol = PROTO_SSH;
|
||||||
*path++ = '\0';
|
*path++ = '\0';
|
||||||
|
@ -709,7 +709,8 @@ static int is_local(const char *url)
|
|||||||
{
|
{
|
||||||
const char *colon = strchr(url, ':');
|
const char *colon = strchr(url, ':');
|
||||||
const char *slash = strchr(url, '/');
|
const char *slash = strchr(url, '/');
|
||||||
return !colon || (slash && slash < colon);
|
return !colon || (slash && slash < colon) ||
|
||||||
|
has_dos_drive_prefix(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int is_file(const char *url)
|
static int is_file(const char *url)
|
||||||
|
Loading…
Reference in New Issue
Block a user