Commit ac728c24 by Simon

Handle ssh:// and git:// urls containing a '~' character.

For such a path '/~/...' the leading '/' is stripped so the server will
get a path starting with '~' and correctly handle it.
parent c400bac4
...@@ -50,6 +50,8 @@ static int gen_proto(git_buf *request, const char *cmd, const char *url) ...@@ -50,6 +50,8 @@ static int gen_proto(git_buf *request, const char *cmd, const char *url)
} }
repo = delim; repo = delim;
if (repo[1] == '~')
++repo;
delim = strchr(url, ':'); delim = strchr(url, ':');
if (delim == NULL) if (delim == NULL)
......
...@@ -66,6 +66,8 @@ static int gen_proto(git_buf *request, const char *cmd, const char *url) ...@@ -66,6 +66,8 @@ static int gen_proto(git_buf *request, const char *cmd, const char *url)
if (!git__prefixcmp(url, prefix_ssh)) { if (!git__prefixcmp(url, prefix_ssh)) {
url = url + strlen(prefix_ssh); url = url + strlen(prefix_ssh);
repo = strchr(url, '/'); repo = strchr(url, '/');
if (repo && repo[1] == '~')
++repo;
} else { } else {
repo = strchr(url, ':'); repo = strchr(url, ':');
if (repo) repo++; if (repo) repo++;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment