# HG changeset patch # User Simon Josefsson # Date 1106223731 0 # Node ID f946018d919ee8b9212f0f8f46608bc9a03f5701 # Parent 5dbac97b040e6d344fb9dd749136e1e8a739bed7 * base64.h (isbase64): Add. * base64.c (isb64): Rename to isbase64, use to_uchar instead of using a unsigned prototype, don't inline. (base64_decode): Use it. diff --git a/lib/ChangeLog b/lib/ChangeLog --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,11 @@ +2004-12-28 Simon Josefsson + + * base64.h (isbase64): Add. + + * base64.c (isb64): Rename to isbase64, use to_uchar instead of + using a unsigned prototype, don't inline. + (base64_decode): Use it. + 2005-01-19 Bruno Haible * sh-quote.h: New file, from GNU gettext. diff --git a/lib/base64.c b/lib/base64.c --- a/lib/base64.c +++ b/lib/base64.c @@ -274,10 +274,10 @@ B64 (252), B64 (253), B64 (254), B64 (255) }; -static inline bool -isb64 (unsigned char ch) +bool +isbase64 (char ch) { - return ch <= 255 && 0 <= b64[ch]; + return to_uchar (ch) <= 255 && 0 <= b64[to_uchar (ch)]; } /* Decode base64 encoded input array IN of length INLEN to output @@ -295,7 +295,7 @@ while (inlen >= 2) { - if (!isb64 (in[0]) || !isb64 (in[1])) + if (!isbase64 (in[0]) || !isbase64 (in[1])) break; if (outleft) @@ -319,7 +319,7 @@ } else { - if (!isb64 (in[2])) + if (!isbase64 (in[2])) break; if (outleft) @@ -339,7 +339,7 @@ } else { - if (!isb64 (in[3])) + if (!isbase64 (in[3])) break; if (outleft) diff --git a/lib/base64.h b/lib/base64.h --- a/lib/base64.h +++ b/lib/base64.h @@ -29,6 +29,8 @@ integer >= n/k, i.e., the ceiling of n/k. */ #define BASE64_LENGTH(inlen) ((((inlen) + 2) / 3) * 4) +extern bool isbase64 (char ch); + extern void base64_encode (const char *restrict in, size_t inlen, char *restrict out, size_t outlen);