]> Kevux Git Server - rit/commitdiff
Windows: Disambiguate DOS style paths from SSH URLs.
authorJohannes Sixt <johannes.sixt@telecom.at>
Fri, 30 Nov 2007 21:51:10 +0000 (22:51 +0100)
committerJohannes Sixt <johannes.sixt@telecom.at>
Thu, 26 Jun 2008 06:45:08 +0000 (08:45 +0200)
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>
connect.c
transport.c

index e92af29..574f42f 100644 (file)
--- a/connect.c
+++ b/connect.c
@@ -529,7 +529,7 @@ struct child_process *git_connect(int fd[2], const char *url_orig,
                end = host;
 
        path = strchr(end, c);
-       if (path) {
+       if (path && !has_dos_drive_prefix(end)) {
                if (c == ':') {
                        protocol = PROTO_SSH;
                        *path++ = '\0';
index 3ff8519..4145eed 100644 (file)
@@ -709,7 +709,8 @@ static int is_local(const char *url)
 {
        const char *colon = 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)