shell: do not play duplicated definition games to shrink the executable
[gitweb.git] / builtin-http-fetch.c
index 4a50dbd95ba65b471a0e26f0b46bb8b60fda1ecb..3a062487a7eacd01ed824b46a9124dd343cd2e60 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;
@@ -17,7 +18,7 @@ int cmd_http_fetch(int argc, const char **argv, const char *prefix)
        int get_verbosely = 0;
        int get_recover = 0;
 
-       git_config(git_default_config);
+       git_config(git_default_config, NULL);
 
        while (arg < argc && argv[arg][0] == '-') {
                if (argv[arg][1] == 't') {
@@ -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;
 }