http: create function end_url_with_slash
The logic to append a slash to the url if necessary in quote_ref_url
(added in 113106e
"http.c: use strbuf API in quote_ref_url") has been
moved to a new function, end_url_with_slash.
The method takes a strbuf, the URL, and the path to be appended to the
URL. It first adds the URL to the strbuf. It then appends a slash
if the URL does not end with a slash.
The check on ref in quote_ref_url for a slash at the beginning has been
removed as a result of using end_url_with_slash. This check is not
needed, because slashes will be quoted anyway.
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e917674597
commit
5ace994f33
12
http.c
12
http.c
@ -620,6 +620,7 @@ void finish_all_active_slots(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Helpers for modifying and creating URLs */
|
||||||
static inline int needs_quote(int ch)
|
static inline int needs_quote(int ch)
|
||||||
{
|
{
|
||||||
if (((ch >= 'A') && (ch <= 'Z'))
|
if (((ch >= 'A') && (ch <= 'Z'))
|
||||||
@ -640,15 +641,20 @@ static inline int hex(int v)
|
|||||||
return 'A' + v - 10;
|
return 'A' + v - 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void end_url_with_slash(struct strbuf *buf, const char *url)
|
||||||
|
{
|
||||||
|
strbuf_addstr(buf, url);
|
||||||
|
if (buf->len && buf->buf[buf->len - 1] != '/')
|
||||||
|
strbuf_addstr(buf, "/");
|
||||||
|
}
|
||||||
|
|
||||||
static char *quote_ref_url(const char *base, const char *ref)
|
static char *quote_ref_url(const char *base, const char *ref)
|
||||||
{
|
{
|
||||||
struct strbuf buf = STRBUF_INIT;
|
struct strbuf buf = STRBUF_INIT;
|
||||||
const char *cp;
|
const char *cp;
|
||||||
int ch;
|
int ch;
|
||||||
|
|
||||||
strbuf_addstr(&buf, base);
|
end_url_with_slash(&buf, base);
|
||||||
if (buf.len && buf.buf[buf.len - 1] != '/' && *ref != '/')
|
|
||||||
strbuf_addstr(&buf, "/");
|
|
||||||
|
|
||||||
for (cp = ref; (ch = *cp) != 0; cp++)
|
for (cp = ref; (ch = *cp) != 0; cp++)
|
||||||
if (needs_quote(ch))
|
if (needs_quote(ch))
|
||||||
|
Loading…
Reference in New Issue
Block a user