[hackers] [st] Reorder and extend glyph attributes || Anders Eurenius

From: <git_AT_suckless.org>
Date: Fri, 27 Jun 2014 14:05:28 +0200

commit 50e6355e0d6c9843b51ac4711980401205ce06c1
Author: Anders Eurenius <aes_AT_spotify.com>
Date: Sat Jun 21 20:29:36 2014 +0200

    Reorder and extend glyph attributes
    
    Faint, invisible, struck and fast blink are added as glyph attributes.
    Since there's an edit here, let's take the opportunity to reorder them
    so that they correspond to the two's power of the corresponding escape
    code. (just for neatness, let's hope that property never gets used for
    anything.)
    
    Signed-off-by: Roberto E. Vargas Caballero <k0ga_AT_shike2.com>

diff --git a/st.c b/st.c
index 2b6b717..9637834 100644
--- a/st.c
+++ b/st.c
_AT_@ -89,15 +89,19 @@ char *argv0;
 #define VT102ID "[?6c"
 
 enum glyph_attribute {
- ATTR_NULL = 0,
- ATTR_REVERSE = 1,
- ATTR_UNDERLINE = 2,
- ATTR_BOLD = 4,
- ATTR_ITALIC = 8,
+ ATTR_NULL = 0,
+ ATTR_BOLD = 1,
+ ATTR_FAINT = 2,
+ ATTR_ITALIC = 4,
+ ATTR_UNDERLINE = 8,
         ATTR_BLINK = 16,
- ATTR_WRAP = 32,
- ATTR_WIDE = 64,
- ATTR_WDUMMY = 128,
+ ATTR_FASTBLINK = 32,
+ ATTR_REVERSE = 64,
+ ATTR_INVISIBLE = 128,
+ ATTR_STRUCK = 256,
+ ATTR_WRAP = 512,
+ ATTR_WIDE = 1024,
+ ATTR_WDUMMY = 2048,
 };
 
 enum cursor_movement {
_AT_@ -1681,15 +1685,25 @@ tsetattr(int *attr, int l) {
         for(i = 0; i < l; i++) {
                 switch(attr[i]) {
                 case 0:
- term.c.attr.mode &= ~(ATTR_REVERSE | ATTR_UNDERLINE \
- | ATTR_BOLD | ATTR_ITALIC \
- | ATTR_BLINK);
+ term.c.attr.mode &= ~(
+ ATTR_BOLD |
+ ATTR_FAINT |
+ ATTR_ITALIC |
+ ATTR_UNDERLINE |
+ ATTR_BLINK |
+ ATTR_FASTBLINK |
+ ATTR_REVERSE |
+ ATTR_INVISIBLE |
+ ATTR_STRUCK );
                         term.c.attr.fg = defaultfg;
                         term.c.attr.bg = defaultbg;
                         break;
                 case 1:
                         term.c.attr.mode |= ATTR_BOLD;
                         break;
+ case 2:
+ term.c.attr.mode |= ATTR_FAINT;
+ break;
                 case 3:
                         term.c.attr.mode |= ATTR_ITALIC;
                         break;
_AT_@ -1697,16 +1711,26 @@ tsetattr(int *attr, int l) {
                         term.c.attr.mode |= ATTR_UNDERLINE;
                         break;
                 case 5: /* slow blink */
- case 6: /* rapid blink */
                         term.c.attr.mode |= ATTR_BLINK;
                         break;
+ case 6: /* rapid blink */
+ term.c.attr.mode |= ATTR_FASTBLINK;
+ break;
                 case 7:
                         term.c.attr.mode |= ATTR_REVERSE;
                         break;
+ case 8:
+ term.c.attr.mode |= ATTR_INVISIBLE;
+ break;
+ case 9:
+ term.c.attr.mode |= ATTR_STRUCK;
+ break;
                 case 21:
- case 22:
                         term.c.attr.mode &= ~ATTR_BOLD;
                         break;
+ case 22:
+ term.c.attr.mode &= ~ATTR_FAINT;
+ break;
                 case 23:
                         term.c.attr.mode &= ~ATTR_ITALIC;
                         break;
_AT_@ -1714,12 +1738,20 @@ tsetattr(int *attr, int l) {
                         term.c.attr.mode &= ~ATTR_UNDERLINE;
                         break;
                 case 25:
- case 26:
                         term.c.attr.mode &= ~ATTR_BLINK;
                         break;
+ case 26:
+ term.c.attr.mode &= ~ATTR_FASTBLINK;
+ break;
                 case 27:
                         term.c.attr.mode &= ~ATTR_REVERSE;
                         break;
+ case 28:
+ term.c.attr.mode &= ~ATTR_INVISIBLE;
+ break;
+ case 29:
+ term.c.attr.mode &= ~ATTR_STRUCK;
+ break;
                 case 38:
                         if ((idx = tdefcolor(attr, &i, l)) >= 0)
                                 term.c.attr.fg = idx;
Received on Fri Jun 27 2014 - 14:05:28 CEST

This archive was generated by hypermail 2.3.0 : Fri Jun 27 2014 - 14:12:07 CEST