On Tue, Oct 28, 2014 at 12:54 PM, Dmitrij D. Czarkoff <czark...@gmail.com> wrote: > Helpful when new Unicode codepoints are not recognized by libc.
I do agree that this is the right approach. There is however another instance of a wcwidth call on line st.c:3443 that should be handled as well (maybe with abs in that particular case?). > --- > st.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/st.c b/st.c > index 23dd7f1..ad52280 100644 > --- a/st.c > +++ b/st.c > @@ -2576,7 +2576,10 @@ tputc(char *c, int len) { > unicodep = ascii = *c; > } else { > utf8decode(c, &unicodep, UTF_SIZ); > - width = wcwidth(unicodep); > + if ((width = wcwidth(unicodep)) == -1) { > + c = "\357\277\275"; /* UTF_INVALID */ > + width = 1; > + } > control = ISCONTROLC1(unicodep); > ascii = unicodep; > } > -- > 2.1.2 > >