workaround a stupid issue in how decoding is performed in mutt *sigh*
[apps/madmutt.git] / lib-mime / rfc2047.c
index a4d3b19..a2629a9 100644 (file)
@@ -69,9 +69,9 @@ convert_string(const char *from, const char *f, ssize_t flen,
 
     obl = 4 * flen + 1;
     ob = buf = p_new(char, obl);
-    n = my_iconv(cd, &f, &flen, &ob, &obl);
+    n = mutt_iconv(cd, &f, &flen, &ob, &obl);
 
-    if (n < 0 || my_iconv(cd, 0, 0, &ob, &obl) < 0) {
+    if (n < 0 || mutt_iconv(cd, 0, 0, &ob, &obl) < 0) {
         int e = errno;
         iconv_close(cd);
         errno = e;
@@ -100,7 +100,7 @@ char *mutt_choose_charset(const char *fromcode, const char *charsets,
     const char *p = charsets;
 
     while (*p) {
-        char cset[SHORT_STRING];
+        char cset[STRING];
         const char *q;
         char *s;
         ssize_t slen, n;
@@ -266,14 +266,14 @@ static size_t try_block(const char *d, ssize_t dlen,
 
         ob = buf1;
 
-        if (my_iconv(cd, &ib, &ibl, &ob, &obl) < 0
-        ||  my_iconv(cd, 0, 0, &ob, &obl) < 0)
+        if (mutt_iconv(cd, &ib, &ibl, &ob, &obl) < 0
+        ||  mutt_iconv(cd, 0, 0, &ob, &obl) < 0)
         {
             assert (errno == E2BIG && ib > d);
             iconv_close(cd);
             return (ib - d == dlen) ? dlen : ib - d + 1;
         }
-        iconv_close (cd);
+        iconv_close(cd);
     } else {
         if (dlen > obl)
             return obl + 1;
@@ -331,10 +331,10 @@ encode_block(char *s, char *d, ssize_t dlen,
         cd = mutt_iconv_open(tocode, fromcode, 0);
         assert (cd != MUTT_ICONV_ERROR);
         ib = d, ibl = dlen, ob = buf1, obl = sizeof(buf1) - m_strlen(tocode);
-        n1 = my_iconv(cd, &ib, &ibl, &ob, &obl);
-        n2 = my_iconv(cd, 0, 0, &ob, &obl);
+        n1 = mutt_iconv(cd, &ib, &ibl, &ob, &obl);
+        n2 = mutt_iconv(cd, 0, 0, &ob, &obl);
         assert (n1 >= 0 && n2 >= 0);
-        iconv_close (cd);
+        iconv_close(cd);
         return (*encoder)(s, buf1, ob - buf1, tocode);
     } else {
         return (*encoder)(s, d, dlen, tocode);
@@ -561,13 +561,13 @@ static void _rfc2047_encode_string(char **pd, int encode_specials, int col)
     ssize_t elen;
     const char *charsets;
 
-    if (!Charset || !*pd)
+    if (!mod_cset.charset || !*pd)
         return;
 
-    charsets = m_strisempty(SendCharset) ? "UTF-8" : SendCharset;
+    charsets = m_strisempty(mod_cset.send_charset) ? "utf-8" : mod_cset.send_charset;
 
     rfc2047_encode(*pd, m_strlen(*pd), col,
-                   Charset, charsets, &e, &elen,
+                   mod_cset.charset, charsets, &e, &elen,
                    encode_specials ? RFC822Specials : NULL);
 
     p_delete(pd);
@@ -667,7 +667,7 @@ rfc2047_decode_word(char *d, size_t len, const char *p, const char *end)
     *q = '\0';
 
     if (*charset)
-        mutt_convert_string(&d0, charset, Charset, M_ICONV_HOOK_FROM);
+        mutt_convert_string(&d0, charset, mod_cset.charset, M_ICONV_HOOK_FROM);
     m_strcpy(d, len, d0);
     p_delete(&d0);
     return 0;
@@ -786,7 +786,7 @@ void rfc2047_decode(char **pd)
                 n -= m, s += m;
             }
 
-            if (mime_which_token(AssumedCharset, -1) == MIME_US_ASCII) {
+            if (mime_which_token(mod_cset.assumed_charset, -1) == MIME_US_ASCII) {
                 char *t;
 
                 t = p_dupstr(s, n);