Jeff King <peff@xxxxxxxx> writes: > Otherwise, callers must do so or risk triggering warnings > -Wchar-subscript (and rightfully so; a signed char might > cause us to use a bogus negative index into the > hexval_table). > > While we are dropping the now-unnecessary casts from the > caller in urlmatch.c, we can get rid of similar casts in > actually parsing the hex by using the hexval() helper, which > implicitly casts to unsigned (but note that we cannot > implement isxdigit in terms of hexval(), as it also casts > its return value to unsigned). > > Signed-off-by: Jeff King <peff@xxxxxxxx> > --- > The patch that added more calls to isxdigit later in the series actually > got reworked. So this is purely a cleanup and can be dropped if need be, > though I still think it is an improvement. Yes, thanks. > > git-compat-util.h | 2 +- > urlmatch.c | 8 ++++---- > 2 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/git-compat-util.h b/git-compat-util.h > index fb41118..44890d5 100644 > --- a/git-compat-util.h > +++ b/git-compat-util.h > @@ -677,7 +677,7 @@ extern const unsigned char sane_ctype[256]; > #define iscntrl(x) (sane_istest(x,GIT_CNTRL)) > #define ispunct(x) sane_istest(x, GIT_PUNCT | GIT_REGEX_SPECIAL | \ > GIT_GLOB_SPECIAL | GIT_PATHSPEC_MAGIC) > -#define isxdigit(x) (hexval_table[x] != -1) > +#define isxdigit(x) (hexval_table[(unsigned char)(x)] != -1) > #define tolower(x) sane_case((unsigned char)(x), 0x20) > #define toupper(x) sane_case((unsigned char)(x), 0) > #define is_pathspec_magic(x) sane_istest(x,GIT_PATHSPEC_MAGIC) > diff --git a/urlmatch.c b/urlmatch.c > index 3d4c54b..618d216 100644 > --- a/urlmatch.c > +++ b/urlmatch.c > @@ -43,11 +43,11 @@ static int append_normalized_escapes(struct strbuf *buf, > from_len--; > if (ch == '%') { > if (from_len < 2 || > - !isxdigit((unsigned char)from[0]) || > - !isxdigit((unsigned char)from[1])) > + !isxdigit(from[0]) || > + !isxdigit(from[1])) > return 0; > - ch = hexval_table[(unsigned char)*from++] << 4; > - ch |= hexval_table[(unsigned char)*from++]; > + ch = hexval(*from++) << 4; > + ch |= hexval(*from++); > from_len -= 2; > was_esc = 1; > } -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html