optimize column width calculation and utf-8 encode for ASCII
[st.git] / st.c
diff --git a/st.c b/st.c
index c161497..1414f98 100644 (file)
--- a/st.c
+++ b/st.c
@@ -2307,15 +2307,13 @@ tputc(Rune u)
        Glyph *gp;
 
        control = ISCONTROL(u);
-       if (!IS_SET(MODE_UTF8 | MODE_SIXEL)) {
+       if (u < 127 || !IS_SET(MODE_UTF8 | MODE_SIXEL)) {
                c[0] = u;
                width = len = 1;
        } else {
                len = utf8encode(u, c);
-               if (!control && (width = wcwidth(u)) == -1) {
-                       memcpy(c, "\357\277\275", 4); /* UTF_INVALID */
+               if (!control && (width = wcwidth(u)) == -1)
                        width = 1;
-               }
        }
 
        if (IS_SET(MODE_PRINT))