char *c, *ob;
char *buf, *ob;
int mutt_convert_string (char *s, size_t len, const char *from, const char *to){  iconv_t cd;  const char *repls[] = { "\357\277\275", "?", 0 };  if (!s || !*s)    return 0;  if (to && from && (cd = mutt_iconv_open (to, from)) != (iconv_t)-1)   {    int n;    const char *ib;    char *c, *ob;    size_t ibl, obl;    const char **inrepls = 0;    char *outrepl = 0;    if (mutt_is_utf8 (to))      outrepl = "\357\277\275";    else if (mutt_is_utf8 (from))      inrepls = repls;    else      outrepl = "?";          n = strlen (s);    c = safe_malloc (n);    memcpy (c, s, n);    ib = c, ibl = n, ob = s, obl = len ? len-1 : n;    mutt_iconv (cd, &ib, &ibl, &ob, &obl, inrepls, outrepl);    free (c);    iconv_close (cd);    *ob = '\0';    return 0;  }  else    return -1;}