http-fetch: rework url handling
Do away with a second url variable, rewritten_url, and make url non-const. This is safe because the functions called with url (ie. get_http_walker() and walker_fetch()) do not modify it (ie. marked with const char *). Also, replace code that adds a trailing slash with a call to str_end_url_with_slash(). Signed-off-by: Tay Ray Chuan <rctay89@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Tay Ray Chuan committed
Nov 25, 2010 at 16:21 UTC
6f5185bd2d87dff587e4900aa022f6f9bd088f20
1 file changed
+5
-11
http-fetch.c
+5
-11
@@ -14,8 +14,7 @@ int main(int argc, const char **argv)
14
int commits;
15
const char **write_ref = NULL;
16
char **commit_id;
17
- const char *url;
18
- char *rewritten_url = NULL;
17
+ char *url = NULL;
18
int arg = 1;
19
int rc = 0;
20
int get_tree = 0;
@@ -57,19 +56,14 @@ int main(int argc, const char **argv)
56
commit_id = (char **) &argv[arg++];
57
commits = 1;
58
}
60
- url = argv[arg];
59
+
60
+ if (argv[arg])
61
+ str_end_url_with_slash(argv[arg], &url);
62
63
prefix = setup_git_directory();
64
65
git_config(git_default_config, NULL);
66
66
- if (url && url[strlen(url)-1] != '/') {
67
- rewritten_url = xmalloc(strlen(url)+2);
68
- strcpy(rewritten_url, url);
69
- strcat(rewritten_url, "/");
70
- url = rewritten_url;
71
- }
72
-
67
http_init(NULL);
68
walker = get_http_walker(url);
69
walker->get_tree = get_tree;
@@ -93,7 +87,7 @@ int main(int argc, const char **argv)
87
walker_free(walker);
88
http_cleanup();
89
96
- free(rewritten_url);
90
+ free(url);
91
92
return rc;
93
}