summaryrefslogtreecommitdiff
path: root/urlmatch.c
diff options
context:
space:
mode:
authorRené Scharfe <l.s.r@web.de>2017-07-08 08:59:19 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-07-09 16:43:01 (GMT)
commit50533135622a80b0326c7e93067e136072bef5eb (patch)
tree0e6c773ec82340927d3479481523a47a48abd939 /urlmatch.c
parent8c8e978f5719c6a58fb998742207bf907f963143 (diff)
downloadgit-50533135622a80b0326c7e93067e136072bef5eb.zip
git-50533135622a80b0326c7e93067e136072bef5eb.tar.gz
git-50533135622a80b0326c7e93067e136072bef5eb.tar.bz2
urlmatch: use hex2chr() in append_normalized_escapes()
Simplify the code by using hex2chr() to convert and check for invalid characters at the same time instead of doing that sequentially with one table lookup for each. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'urlmatch.c')
-rw-r--r--urlmatch.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/urlmatch.c b/urlmatch.c
index 4bbde92..3e42bd7 100644
--- a/urlmatch.c
+++ b/urlmatch.c
@@ -42,12 +42,12 @@ static int append_normalized_escapes(struct strbuf *buf,
from_len--;
if (ch == '%') {
- if (from_len < 2 ||
- !isxdigit(from[0]) ||
- !isxdigit(from[1]))
+ if (from_len < 2)
return 0;
- ch = hexval(*from++) << 4;
- ch |= hexval(*from++);
+ ch = hex2chr(from);
+ if (ch < 0)
+ return 0;
+ from += 2;
from_len -= 2;
was_esc = 1;
}