Commit 6b52b7eb authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

metalink: simplify the hex parsing function

... and now it avoids using the libcurl toupper() function
parent f9e51fb5
Loading
Loading
Loading
Loading
+8 −14
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
#ifdef USE_METALINK

#include <sys/stat.h>
#include <stdlib.h>

#ifdef HAVE_FCNTL_H
#  include <fcntl.h>
@@ -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);
}

/*