diff options
Diffstat (limited to 'decode.c')
-rw-r--r-- | decode.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/decode.c b/decode.c index 2604f73..8578c41 100644 --- a/decode.c +++ b/decode.c @@ -90,11 +90,6 @@ static const char Base64[64] = { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" }; -static uint8_t unbase64(char ch) { - const char *ptr = strchr(Base64, ch); - return (ptr ? ptr - Base64 : 0); -} - static void decodeBase64(struct Buffer *dst, const char *src) { while (src[0] && src[1] && src[2] && src[3]) { if (!strchr(Base64, src[0])) { @@ -104,7 +99,7 @@ static void decodeBase64(struct Buffer *dst, const char *src) { uint32_t bits = 0; for (int i = 0; i < 4; ++i) { bits <<= 6; - bits |= unbase64(src[i]); + bits |= strchr(Base64, src[i]) - Base64; } *bufferDest(dst, 1) = bits >> 16; if (src[2] != '=') *bufferDest(dst, 1) = bits >> 8; @@ -116,8 +111,7 @@ static void decodeBase64(struct Buffer *dst, const char *src) { static char unhex(char ch) { if (ch <= '9') return ch - '0'; if (ch <= 'F') return 0xA + ch - 'A'; - if (ch <= 'f') return 0xA + ch - 'a'; - return 0; + return 0xA + ch - 'a'; } static void decodeQ(struct Buffer *dst, const char *src) { |