# include "config.h"
#endif
+#include <lib-lib/macros.h>
+
#include "mutt.h"
#include "mbyte.h"
#include "charset.h"
-#include "lib/intl.h"
#include <errno.h>
static size_t wcrtomb_iconv (char *s, wchar_t wc, iconv_t cd)
{
char buf[MB_LEN_MAX];
- ICONV_CONST char *ib;
+ const char *ib;
char *ob;
size_t ibl, obl, r;
ib = buf;
ob = s;
obl = MB_LEN_MAX;
- r = iconv (cd, &ib, &ibl, &ob, &obl);
+ r = my_iconv(cd, &ib, &ibl, &ob, &obl);
}
else {
ib = "";
ibl = 1;
ob = buf;
obl = sizeof (buf);
- r = iconv (cd, &ib, &ibl, &ob, &obl);
+ r = my_iconv(cd, &ib, &ibl, &ob, &obl);
}
return ob - s;
}
mbstate_t * ps, iconv_t cd)
{
static mbstate_t mbstate;
- ICONV_CONST char *ib, *ibmax;
+ const char *ib, *ibmax;
char *ob, *t;
size_t ibl, obl, k, r;
char bufi[8], bufo[6];
ibl = 1;
for (;;) {
- r = iconv (cd, &ib, &ibl, &ob, &obl);
+ r = my_iconv(cd, &ib, &ibl, &ob, &obl);
if (ob > bufo && (!k || ib > bufi + k)) {
/* we have a character */
- memset (ps, 0, sizeof (*ps));
+ p_clear(ps, 1);
utf8rtowc (pwc, bufo, ob - bufo, &mbstate);
return (pwc && *pwc) ? (ib - (k ? bufi + k : s)) : 0;
}
}
else {
/* save the state and give up */
- memset (ps, 0, sizeof (*ps));
+ p_clear(ps, 1);
if (ibl <= sizeof (mbstate_t)) /* need extra condition here! */
memcpy (ps, ib, ibl);
return (size_t) (-2);
return mbrtowc_iconv (pwc, s, n, ps, charset_to_utf8);
else {
if (!s) {
- memset (ps, 0, sizeof (*ps));
+ p_clear(ps, 1);
return 0;
}
if (!n)
#endif /* !HAVE_WC_FUNCS */
-wchar_t replacement_char ()
+wchar_t replacement_char (void)
{
return Charset_is_utf8 ? 0xfffd : '?';
}