#include <unistd.h>
#include <errno.h>
+#include <lib-lib/mem.h>
+
#include "mutt.h"
#include "charset.h"
#include "ascii.h"
len = str_len (s);
ib = s, ibl = len + 1;
obl = MB_LEN_MAX * ibl;
- ob = buf = mem_malloc (obl + 1);
+ ob = buf = xmalloc(obl + 1);
mutt_iconv (cd, &ib, &ibl, &ob, &obl, inrepls, outrepl);
iconv_close (cd);
*ob = '\0';
- mem_free (ps);
+ p_delete(ps);
*ps = buf;
str_adjust (ps);
cd = mutt_iconv_open (to, from, flags);
if (cd != (iconv_t) - 1) {
- fc = mem_malloc (sizeof (struct fgetconv_s));
+ fc = p_new(struct fgetconv_s, 1);
fc->p = fc->ob = fc->bufo;
fc->ib = fc->bufi;
fc->ibl = 0;
fc->inrepls = mutt_is_utf8 (to) ? repls : repls + 1;
}
else
- fc = mem_malloc (sizeof (struct fgetconv_not));
+ fc = p_new(struct fgetconv_not, 1);
fc->file = file;
fc->cd = cd;
return (FGETCONV *) fc;
if (fc->cd != (iconv_t) - 1)
iconv_close (fc->cd);
- mem_free (_fc);
+ p_delete(_fc);
}
const char *mutt_get_first_charset (const char *charset)
if (cd == (iconv_t) (-1))
return (size_t) (-1);
obl = 4 * flen + 1;
- ob = buf = mem_malloc (obl);
+ ob = buf = xmalloc(obl);
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);
+ p_delete(&buf);
iconv_close (cd);
errno = e;
return (size_t) (-1);
n = c1 ? c1 - c : str_len (c);
if (!n)
continue;
- fromcode = mem_malloc (n + 1);
- strfcpy (fromcode, c, n + 1);
+ fromcode = p_dupstr(c, n);
m = convert_string (u, ulen, fromcode, Charset, &s, &slen);
- mem_free (&fromcode);
+ p_delete(&fromcode);
if (m != (size_t) (-1)) {
- mem_free (ps);
+ p_delete(ps);
*ps = s;
return 0;
}