diff options
| -rw-r--r-- | st.c | 60 | 
1 files changed, 46 insertions, 14 deletions
@@ -89,15 +89,19 @@ char *argv0;  #define VT102ID "\033[?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 { @@ -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; @@ -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; @@ -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;  | 
