]> git.ozlabs.org Git - ccan/blobdiff - ccan/base64/base64.c
base64: fix for unsigned chars (e.g. ARM).
[ccan] / ccan / base64 / base64.c
index af078bc76ef5d6535b48ed15fb70e07f5f454bfa..c28e0da2a496dcbdd09abf7688caf5bbc37e117d 100644 (file)
@@ -31,7 +31,7 @@ static int8_t sixbit_from_b64(const base64_maps_t *maps,
        int8_t ret;
 
        ret = maps->decode_map[(unsigned char)b64letter];
-       if (ret == (char)0xff) {
+       if (ret == '\xff') {
                errno = EDOM;
                return -1;
        }
@@ -41,7 +41,7 @@ static int8_t sixbit_from_b64(const base64_maps_t *maps,
 
 bool base64_char_in_alphabet(const base64_maps_t *maps, const char b64char)
 {
-       return (maps->decode_map[(const unsigned char)b64char] != (char)0xff);
+       return (maps->decode_map[(const unsigned char)b64char] != '\xff');
 }
 
 void base64_init_maps(base64_maps_t *dest, const char src[64])
@@ -118,7 +118,7 @@ size_t base64_decoded_length(size_t srclen)
        return ((srclen+3)/4*3);
 }
 
-int base64_decode_quartet_using_maps(const base64_maps_t *maps, char dest[3],
+ssize_t base64_decode_quartet_using_maps(const base64_maps_t *maps, char dest[3],
                                     const char src[4])
 {
        signed char a;
@@ -143,7 +143,7 @@ int base64_decode_quartet_using_maps(const base64_maps_t *maps, char dest[3],
 }
 
 
-int base64_decode_tail_using_maps(const base64_maps_t *maps, char dest[3],
+ssize_t base64_decode_tail_using_maps(const base64_maps_t *maps, char dest[3],
                                  const char * src, const size_t srclen)
 {
        char longsrc[4];
@@ -178,7 +178,7 @@ ssize_t base64_decode_using_maps(const base64_maps_t *maps,
 {
        ssize_t dest_offset = 0;
        ssize_t i;
-       size_t more;
+       ssize_t more;
 
        if (destlen < base64_decoded_length(srclen)) {
                errno = EOVERFLOW;
@@ -209,7 +209,7 @@ ssize_t base64_decode_using_maps(const base64_maps_t *maps,
 /**
  * base64_maps_rfc4648 - pregenerated maps struct for rfc4648
  */
-static const base64_maps_t base64_maps_rfc4648 = {
+const base64_maps_t base64_maps_rfc4648 = {
   "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
 
   "\xff\xff\xff\xff\xff" /* 0 */                                       \