#include "mutt.h"
#include "mime.h"
-#define BAD -1
-
/* raw bytes to null-terminated base 64 string */
void mutt_to_base64 (unsigned char *out, const unsigned char *in, size_t len,
size_t olen)
do {
digit1 = in[0];
- if (digit1 > 127 || base64val (digit1) == BAD)
+ if (base64val(digit1) < 0)
return -1;
digit2 = in[1];
- if (digit2 > 127 || base64val (digit2) == BAD)
+ if (base64val(digit2) < 0)
return -1;
digit3 = in[2];
- if (digit3 > 127 || ((digit3 != '=') && (base64val (digit3) == BAD)))
+ if (digit3 != '=' && base64val(digit3) < 0)
return -1;
digit4 = in[3];
- if (digit4 > 127 || ((digit4 != '=') && (base64val (digit4) == BAD)))
+ if (digit4 != '=' && base64val(digit4) < 0)
return -1;
in += 4;
/* digits are already sanity-checked */
- *out++ = (base64val (digit1) << 2) | (base64val (digit2) >> 4);
+ *out++ = (base64val(digit1) << 2) | (base64val(digit2) >> 4);
len++;
if (digit3 != '=') {
- *out++ = ((base64val (digit2) << 4) & 0xf0) | (base64val (digit3) >> 2);
+ *out++ = ((base64val(digit2) << 4) & 0xf0) | (base64val(digit3) >> 2);
len++;
if (digit4 != '=') {
- *out++ = ((base64val (digit3) << 6) & 0xc0) | base64val (digit4);
+ *out++ = ((base64val(digit3) << 6) & 0xc0) | base64val(digit4);
len++;
}
}
- }
- while (*in && digit4 != '=');
+ } while (*in && digit4 != '=');
return len;
}