JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
Fix disabling of bold and fastblink
authorMichael Forney <mforney@mforney.org>
Sat, 26 Jul 2014 07:48:15 +0000 (00:48 -0700)
committerRoberto E. Vargas Caballero <k0ga@shike2.com>
Sat, 26 Jul 2014 08:13:11 +0000 (10:13 +0200)
According to ECMA-48¹ 8.3.117, an attribute value of 21 is "doubly
underlined", while 22 is "normal colour or normal intensity (neither
bold nor faint)".

Additionally, 25 is "steady (not blinking)", which likely means neither
slow blink nor fast blink.

¹: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>

st.c

diff --git a/st.c b/st.c
index 546db41..0c917fd 100644 (file)
--- a/st.c
+++ b/st.c
@@ -1718,11 +1718,8 @@ tsetattr(int *attr, int l) {
                case 9:
                        term.c.attr.mode |= ATTR_STRUCK;
                        break;
                case 9:
                        term.c.attr.mode |= ATTR_STRUCK;
                        break;
-               case 21:
-                       term.c.attr.mode &= ~ATTR_BOLD;
-                       break;
                case 22:
                case 22:
-                       term.c.attr.mode &= ~ATTR_FAINT;
+                       term.c.attr.mode &= ~(ATTR_BOLD | ATTR_FAINT);
                        break;
                case 23:
                        term.c.attr.mode &= ~ATTR_ITALIC;
                        break;
                case 23:
                        term.c.attr.mode &= ~ATTR_ITALIC;
@@ -1731,10 +1728,7 @@ tsetattr(int *attr, int l) {
                        term.c.attr.mode &= ~ATTR_UNDERLINE;
                        break;
                case 25:
                        term.c.attr.mode &= ~ATTR_UNDERLINE;
                        break;
                case 25:
-                       term.c.attr.mode &= ~ATTR_BLINK;
-                       break;
-               case 26:
-                       term.c.attr.mode &= ~ATTR_FASTBLINK;
+                       term.c.attr.mode &= ~(ATTR_BLINK | ATTR_FASTBLINK);
                        break;
                case 27:
                        term.c.attr.mode &= ~ATTR_REVERSE;
                        break;
                case 27:
                        term.c.attr.mode &= ~ATTR_REVERSE;