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
>
>

Reply via email to