Bläddra i källkod

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.
Roberto E. Vargas Caballero 10 år sedan
förälder
incheckning
7e61f5e4c5
1 ändrade filer med 2 tillägg och 2 borttagningar
  1. 2 2
      st.c

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