* uip/.cvsignore: added "new".
[mmh] / sbr / fmt_rfc2047.c
index 7013cea..87fddb9 100644 (file)
@@ -71,7 +71,7 @@ decode_rfc2047 (char *str, char *dst, size_t dstlen)
     int whitespace = 0;                /* how much whitespace between encodings? */
 #ifdef HAVE_ICONV
     int use_iconv = 0;          /* are we converting encoding with iconv? */
-    iconv_t cd;
+    iconv_t cd = NULL;
     int fromutf8 = 0;
     char *saveq, *convbuf = NULL;
     size_t savedstlen;
@@ -135,7 +135,7 @@ decode_rfc2047 (char *str, char *dst, size_t dstlen)
                /* .. it can't. We'll use iconv then. */
                *pp = '\0';
                cd = iconv_open(get_charset(), startofmime);
-               fromutf8 = !strcasecmp(startofmime, "UTF-8");
+               fromutf8 = !mh_strcasecmp(startofmime, "UTF-8");
                *pp = '?';
                 if (cd == (iconv_t)-1) continue;
                use_iconv = 1;
@@ -200,7 +200,7 @@ decode_rfc2047 (char *str, char *dst, size_t dstlen)
             * empty encoded text. This ensures that we don't
             * malloc 0 bytes but skip on to the end
             */
-           if (endofmime == startofmime) {
+           if (endofmime == startofmime && use_iconv) {
                use_iconv = 0;
                iconv_close(cd);
             }