Do not mark as invalid UTF8 control codes - st - Personal fork of st
 (HTM) git clone git://git.drkhsh.at/st.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 7e61f5e4c514a233250442263b62d887c9e5ca9c
 (DIR) parent 9984ad4ba730b043d064095dca42b490904e38f3
 (HTM) Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
       Date:   Mon, 17 Aug 2015 11:25:38 +0200
       
       Do not mark as invalid UTF8 control codes
       
       wcwidth() returns -1 for all the non visible characters, but it doesn't
       necessarilly mean that they are incorrect. It only means that they are not
       printable.
       
       Diffstat:
         M st.c                                |       4 ++--
       
       1 file changed, 2 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/st.c b/st.c
       @@ -2895,15 +2895,15 @@ tputc(Rune u)
                int width, len;
                Glyph *gp;
        
       +        control = ISCONTROL(u);
                len = utf8encode(u, c);
       -        if ((width = wcwidth(u)) == -1) {
       +        if (!control && (width = wcwidth(u)) == -1) {
                        memcpy(c, "\357\277\275", 4); /* UTF_INVALID */
                        width = 1;
                }
        
                if (IS_SET(MODE_PRINT))
                        tprinter(c, len);
       -        control = ISCONTROL(u);
        
                /*
                 * STR sequence must be checked before anything else