Remove RCS keywords, since they no longer work after git migration.
[mmh] / sbr / fmt_rfc2047.c
index 0eb71bd..6f208a1 100644 (file)
@@ -2,8 +2,6 @@
 /*
  * fmt_rfc2047.c -- decode RFC-2047 header format 
  *
- * $Id$
- *
  * This code is Copyright (c) 2002, by the authors of nmh.  See the
  * COPYRIGHT file in the root directory of the nmh distribution for
  * complete copyright information.
@@ -71,7 +69,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 +133,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;
@@ -196,6 +194,15 @@ decode_rfc2047 (char *str, char *dst, size_t dstlen)
            }
 
 #ifdef HAVE_ICONV
+           /*
+            * empty encoded text. This ensures that we don't
+            * malloc 0 bytes but skip on to the end
+            */
+           if (endofmime == startofmime && use_iconv) {
+               use_iconv = 0;
+               iconv_close(cd);
+            }
+
            if (use_iconv) {
                saveq = q;
                savedstlen = dstlen;