diff --git a/src/ansi.c b/src/ansi.c index d15867b..83bf608 100644 --- a/src/ansi.c +++ b/src/ansi.c @@ -1573,7 +1573,21 @@ StringEnd() curr->w_hstatus = 0; } if (curr->w_string != curr->w_stringp) - curr->w_hstatus = SaveStr(curr->w_string); + { +#ifdef UTF8 + if (curr->w_encoding == UTF8) + { + int len = RecodeBuf(curr->w_string, curr->w_stringp - curr->w_string, + 0, curr->w_encoding, 0); + curr->w_hstatus = malloc(len + 1); + RecodeBuf(curr->w_string, curr->w_stringp - curr->w_string, 0, curr->w_encoding, + curr->w_hstatus); + curr->w_hstatus[len] = 0; + } + else +#endif + curr->w_hstatus = SaveStr(curr->w_string); + } WindowChanged(curr, 'h'); break; case PM: