alloc_ref_from_str(): factor out a common pattern of alloc_ref from string
[gitweb.git] / builtin-http-fetch.c
index 4a50dbd95ba65b471a0e26f0b46bb8b60fda1ecb..b1f33891c36fe38d855ace535cf9218fe9603541 100644 (file)
@@ -9,6 +9,7 @@ int cmd_http_fetch(int argc, const char **argv, const char *prefix)
        const char **write_ref = NULL;
        char **commit_id;
        const char *url;
+       char *rewritten_url = NULL;
        int arg = 1;
        int rc = 0;
        int get_tree = 0;
@@ -51,8 +52,14 @@ int cmd_http_fetch(int argc, const char **argv, const char *prefix)
                commits = 1;
        }
        url = argv[arg];
+       if (url && url[strlen(url)-1] != '/') {
+               rewritten_url = malloc(strlen(url)+2);
+               strcpy(rewritten_url, url);
+               strcat(rewritten_url, "/");
+               url = rewritten_url;
+       }
 
-       walker = get_http_walker(url);
+       walker = get_http_walker(url, NULL);
        walker->get_tree = get_tree;
        walker->get_history = get_history;
        walker->get_all = get_all;
@@ -73,5 +80,7 @@ int cmd_http_fetch(int argc, const char **argv, const char *prefix)
 
        walker_free(walker);
 
+       free(rewritten_url);
+
        return rc;
 }