--- handler.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) --- handler.c +++ handler.c 2017-04-28 13:34:40.080448389 +0000 @@ -816,6 +816,7 @@ static int text_enriched_handler(BODY *a enum { TEXT, + TEXT_GOTWC, LANGLE, TAG, BOGUS_TAG, @@ -853,7 +854,7 @@ static int text_enriched_handler(BODY *a { if (state != ST_EOF) { - if (!bytes || (wc = fgetwc(s->fpin)) == WEOF) + if (state != TEXT_GOTWC && (!bytes || (fscanf (s->fpin, "%lc", &wc)) == EOF)) state = ST_EOF; else bytes--; @@ -861,6 +862,8 @@ static int text_enriched_handler(BODY *a switch (state) { + case TEXT_GOTWC: + state = TEXT; case TEXT: switch (wc) { @@ -921,9 +924,8 @@ static int text_enriched_handler(BODY *a enriched_flush(&stte, 1); else { - ungetwc(wc, s->fpin); bytes++; - state = TEXT; + state = TEXT_GOTWC; } break; @@ -1638,7 +1640,7 @@ void mutt_decode_attachment(BODY *b, STA * strip all trailing spaces to improve interoperability; * if $text_flowed is unset, simply verbatim copy input */ -static int text_plain_handler(BODY *b, STATE *s) +static int text_plain_handler(BODY *b __attribute__((unused)), STATE *s) { char *buf = NULL; size_t l = 0, sz = 0;