Re: [PATCH] submodule--helper: normalize funny urls
From: Junio C Hamano <hidden>
Date: 2016-10-18 17:15:22
Junio C Hamano [off-list ref] writes:
Stefan Beller [off-list ref] writes:quoted
+static void strip_url_ending(char *url, size_t *_len) +{ + int check_url_stripping = 1; + size_t len = _len ? *_len : strlen(url); + + while (check_url_stripping) { + check_url_stripping = 0; + if (is_dir_sep(url[len-2]) && url[len-1] == '.') {This is "strip /. at the end" it seems. Does anything in the loop control guarantees 2 <= len at this point?quoted
+ url[len-2] = '\0'; + len -= 2; + check_url_stripping = 1; + } + + if (is_dir_sep(url[len-1])) {This is "strip / at the end" it seems. Does anything in the loop control guarantees 1 <= len at this point?quoted
+ url[len-1] = '\0'; + len--; + check_url_stripping = 1; + } + }
I also somehow find the "check-url-stripping" variable ugly.
while (URL still has something that could be stripped) {
if (ends with "/.") {
strip "/.";
continue;
}
if (ends with "/") {
strip "/";
continue;
}
break;
}
perhaps?