From 6b52b7eb2beedf82482209db2192e3620ea32bca Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 2 Nov 2016 00:08:36 +0100 Subject: metalink: simplify the hex parsing function ... and now it avoids using the libcurl toupper() function --- src/tool_metalink.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/tool_metalink.c b/src/tool_metalink.c index 985e7c323..f4173562f 100644 --- a/src/tool_metalink.c +++ b/src/tool_metalink.c @@ -24,6 +24,7 @@ #ifdef USE_METALINK #include +#include #ifdef HAVE_FCNTL_H # include @@ -92,8 +93,6 @@ struct win32_crypto_hash { # error "Can't compile METALINK support without a crypto library." #endif -#include "strcase.h" - #define ENABLE_CURLX_PRINTF /* use our own printf() functions */ #include "curlx.h" @@ -563,18 +562,13 @@ int Curl_digest_final(digest_context *context, unsigned char *result) static unsigned char hex_to_uint(const char *s) { - int v[2]; - int i; - for(i = 0; i < 2; ++i) { - v[i] = Curl_raw_toupper(s[i]); - if('0' <= v[i] && v[i] <= '9') { - v[i] -= '0'; - } - else if('A' <= v[i] && v[i] <= 'Z') { - v[i] -= 'A'-10; - } - } - return (unsigned char)((v[0] << 4) | v[1]); + char buf[3]; + unsigned long val; + buf[0] = s[0]; + buf[1] = s[1]; + buf[2] = 0; + val = strtoul(buf, NULL, 16); + return (unsigned char)(val&0xff); } /* -- cgit v1.2.3