p = mutt_str_substr_dup(c, c + size);
if (mutt_ch_convert_string(&p, Charset, "utf-8", 0) == 0)
{
- c = p;
- size = mutt_str_strlen(c) + 1;
+ size = mutt_str_strlen(p) + 1;
}
}
char *tmp = mutt_str_strdup(*c);
if (mutt_ch_convert_string(&tmp, "utf-8", Charset, 0) == 0)
{
- mutt_str_replace(c, tmp);
+ FREE(c);
+ *c = tmp;
}
else
{
#endif
else
{
- snprintf(err->data, err->dsize, _("%s: unknown type"), MuttVars[idx].name);
+ snprintf(err->data, err->dsize, _("%s: unknown type"), (idx >= 0) ? MuttVars[idx].name : "unknown");
r = -1;
break;
}
s = mutt_str_substr_dup(u, u + ulen);
int m = mutt_ch_convert_string(&s, fromcode, Charset, 0);
FREE(&fromcode);
+ FREE(&s);
if (m == 0)
{
return 0;