use a proper "hack" for iconv functions:
[apps/madmutt.git] / charset.c
index 63bc81c..14e79f4 100644 (file)
--- a/charset.c
+++ b/charset.c
@@ -253,27 +253,6 @@ int mutt_chscmp (const char *s, const char *chs)
 }
 
 
-#ifndef HAVE_ICONV
-
-iconv_t iconv_open (const char *tocode, const char *fromcode)
-{
-  return (iconv_t) (-1);
-}
-
-size_t iconv (iconv_t cd, const char **inbuf, size_t * inbytesleft,
-              char **outbuf, size_t * outbytesleft)
-{
-  return 0;
-}
-
-int iconv_close (iconv_t cd)
-{
-  return 0;
-}
-
-#endif /* !HAVE_ICONV */
-
-
 /*
  * Like iconv_open, but canonicalises the charsets
  */
@@ -326,7 +305,7 @@ size_t mutt_iconv (iconv_t cd, const char **inbuf, size_t * inbytesleft,
   size_t obl = *outbytesleft;
 
   for (;;) {
-    ret1 = iconv (cd, &ib, &ibl, &ob, &obl);
+    ret1 = my_iconv(cd, &ib, &ibl, &ob, &obl);
     if (ret1 != (size_t) - 1)
       ret += ret1;
     if (ibl && obl && errno == EILSEQ) {
@@ -340,7 +319,7 @@ size_t mutt_iconv (iconv_t cd, const char **inbuf, size_t * inbytesleft,
           char *ob1 = ob;
           size_t obl1 = obl;
 
-          iconv (cd, &ib1, &ibl1, &ob1, &obl1);
+          my_iconv(cd, &ib1, &ibl1, &ob1, &obl1);
           if (!ibl1) {
             ++ib, --ibl;
             ob = ob1, obl = obl1;
@@ -354,7 +333,7 @@ size_t mutt_iconv (iconv_t cd, const char **inbuf, size_t * inbytesleft,
       /* Replace the output */
       if (!outrepl)
         outrepl = "?";
-      iconv (cd, 0, 0, &ob, &obl);
+      my_iconv(cd, 0, 0, &ob, &obl);
       if (obl) {
         int n = str_len (outrepl);
 
@@ -366,7 +345,7 @@ size_t mutt_iconv (iconv_t cd, const char **inbuf, size_t * inbytesleft,
         ++ib, --ibl;
         ob += n, obl -= n;
         ++ret;
-        iconv (cd, 0, 0, 0, 0); /* for good measure */
+        my_iconv(cd, 0, 0, 0, 0); /* for good measure */
         continue;
       }
     }
@@ -512,7 +491,7 @@ int fgetconv (FGETCONV * _fc)
   if (fc->ibl) {
     size_t obl = sizeof (fc->bufo);
 
-    iconv (fc->cd, (const char **) &fc->ib, &fc->ibl, &fc->ob, &obl);
+    my_iconv(fc->cd, (const char **) &fc->ib, &fc->ibl, &fc->ob, &obl);
     if (fc->p < fc->ob)
       return (unsigned char) *(fc->p)++;
   }
@@ -584,8 +563,8 @@ static size_t convert_string (const char *f, size_t flen,
     return (size_t) (-1);
   obl = 4 * flen + 1;
   ob = buf = mem_malloc (obl);
-  n = iconv (cd, &f, &flen, &ob, &obl);
-  if (n == (size_t) (-1) || iconv (cd, 0, 0, &ob, &obl) == (size_t) (-1)) {
+  n = my_iconv(cd, &f, &flen, &ob, &obl);
+  if (n == (size_t) (-1) || my_iconv(cd, 0, 0, &ob, &obl) == (size_t) (-1)) {
     e = errno;
     mem_free (&buf);
     iconv_close (cd);