#include <lib-lib/str.h>
#include <lib-lib/ascii.h>
+#include <lib-mime/mime.h>
+
#include "mutt.h"
-#include "mime.h"
#include "charset.h"
#include "rfc2047.h"
#include "thread.h"
if (!dlen)
break;
else if (dlen == 1) {
- *s++ = B64Chars[(*d >> 2) & 0x3f];
- *s++ = B64Chars[(*d & 0x03) << 4];
+ *s++ = __m_b64chars[(*d >> 2) & 0x3f];
+ *s++ = __m_b64chars[(*d & 0x03) << 4];
*s++ = '=';
*s++ = '=';
break;
}
else if (dlen == 2) {
- *s++ = B64Chars[(*d >> 2) & 0x3f];
- *s++ = B64Chars[((*d & 0x03) << 4) | ((d[1] >> 4) & 0x0f)];
- *s++ = B64Chars[(d[1] & 0x0f) << 2];
+ *s++ = __m_b64chars[(*d >> 2) & 0x3f];
+ *s++ = __m_b64chars[((*d & 0x03) << 4) | ((d[1] >> 4) & 0x0f)];
+ *s++ = __m_b64chars[(d[1] & 0x0f) << 2];
*s++ = '=';
break;
}
else {
- *s++ = B64Chars[(*d >> 2) & 0x3f];
- *s++ = B64Chars[((*d & 0x03) << 4) | ((d[1] >> 4) & 0x0f)];
- *s++ = B64Chars[((d[1] & 0x0f) << 2) | ((d[2] >> 6) & 0x03)];
- *s++ = B64Chars[d[2] & 0x3f];
+ *s++ = __m_b64chars[(*d >> 2) & 0x3f];
+ *s++ = __m_b64chars[((*d & 0x03) << 4) | ((d[1] >> 4) & 0x0f)];
+ *s++ = __m_b64chars[((d[1] & 0x0f) << 2) | ((d[2] >> 6) & 0x03)];
+ *s++ = __m_b64chars[d[2] & 0x3f];
d += 3, dlen -= 3;
}
}
for (; pp < pp1; pp++) {
if (*pp == '_')
*pd++ = ' ';
- else if (*pp == '=' &&
- (!(pp[1] & ~127) && hexval (pp[1]) != -1) &&
- (!(pp[2] & ~127) && hexval (pp[2]) != -1)) {
+ else if (*pp == '=' && hexval(pp[1]) >= 0 && hexval(pp[2]) >= 0) {
*pd++ = (hexval (pp[1]) << 4) | hexval (pp[2]);
pp += 2;
}
for (; pp < pp1; pp++) {
if (*pp == '=')
break;
- if ((*pp & ~127) || (c = base64val (*pp)) == -1)
+ if ((c = base64val(*pp)) < 0)
continue;
if (k + 6 >= 8) {
k -= 2;
if (charset)
mutt_convert_string (&d0, charset, Charset, M_ICONV_HOOK_FROM);
- strfcpy (d, d0, len);
+ m_strcpy(d, len, d0);
p_delete(&charset);
p_delete(&d0);
return (0);