git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 6/6] http-push: add trailing slash at arg-parse time, instead of later on

From
Tay Ray Chuan <rctay89@gmail.com>
Date
Nov 19, 2010, 12:46 UTC
Message-ID
<1290170790-2200-7-git-send-email-rctay89@gmail.com>
In-Reply-To
<1290170790-2200-6-git-send-email-rctay89@gmail.com>

That way, we don't have to update repo->path and repo->path_len again after adding the trailing slash.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
---
 http-push.c |   15 ++-------------
 1 files changed, 2 insertions(+), 13 deletions(-)
diff --git a/http-push.c b/http-push.c
index 1c34b00..a10891e 100644
--- a/http-push.c
+++ b/http-push.c
@@ -1799,7 +1799,6 @@ int main(int argc, char **argv)
 	int new_refs;
 	struct ref *ref, *local_refs;
 	struct remote *remote;
-	char *rewritten_url = NULL;
 
 	git_extract_argv0_path(argv[0]);
 
@@ -1845,8 +1844,8 @@ int main(int argc, char **argv)
 		}
 		if (!repo->url) {
 			char *path = strstr(arg, "//");
-			repo->url = arg;
-			repo->path_len = strlen(arg);
+			str_end_url_with_slash(arg, &repo->url);
+			repo->path_len = strlen(repo->url);
 			if (path) {
 				repo->path = strchr(path+2, '/');
 				if (repo->path)
@@ -1882,15 +1881,6 @@ int main(int argc, char **argv)
 	remote->url[remote->url_nr++] = repo->url;
 	http_init(remote);
 
-	if (repo->url && repo->url[strlen(repo->url)-1] != '/') {
-		rewritten_url = xmalloc(strlen(repo->url)+2);
-		strcpy(rewritten_url, repo->url);
-		strcat(rewritten_url, "/");
-		repo->path = rewritten_url + (repo->path - repo->url);
-		repo->path_len++;
-		repo->url = rewritten_url;
-	}
-
 #ifdef USE_CURL_MULTI
 	is_running_queue = 0;
 #endif
@@ -2098,7 +2088,6 @@ int main(int argc, char **argv)
 	}
 
  cleanup:
-	free(rewritten_url);
 	if (info_ref_lock)
 		unlock_remote(info_ref_lock);
 	free(repo);
-- 
1.7.3.67.g2a10b
Previous: Tay Ray ChuanNext: Jonathan Nieder
Message 10 of 15 in “Normalise directory names when pushing to some WebDAV servers”
  1. Normalise directory names when pushing to some WebDAV serversGabriel Corona, Nov 19, 2010
  2. Tay Ray ChuanNov 19, 2010
  3. Jonathan NiederNov 19, 2010
  4. 0/6 http (dumb): end urls with slashTay Ray Chuan, Nov 19, 2010
  5. 1/6 shift end_url_with_slash() from http.[ch] to url.[ch]Tay Ray Chuan, Nov 19, 2010
  6. 2/6 url: add str wrapper for end_url_with_slash()Tay Ray Chuan, Nov 19, 2010
  7. 3/6 http-push: Normalise directory names when pushing to some WebDAV serversTay Ray Chuan, Nov 19, 2010
  8. 4/6 http-backend: use end_url_with_slash()Tay Ray Chuan, Nov 19, 2010
  9. 5/6 http-push: check path length before using itTay Ray Chuan, Nov 19, 2010
  10. 6/6 http-push: add trailing slash at arg-parse time, instead of later onTay Ray Chuan, Nov 19, 2010
  11. Jonathan NiederNov 19, 2010
  12. Tay Ray ChuanNov 20, 2010
  13. Jonathan NiederNov 19, 2010
  14. Junio C HamanoNov 19, 2010
  15. Tay Ray ChuanNov 20, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.