tRemove ATTR_GFX and tselcs - st - [fork] customized build of st, the simple te… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 1629363f2d009a0c0d61209e4126ff09fa0e11a4 | |
parent 6b315558f8095b91988d5b305ed06e082da48889 | |
Author: Roberto E. Vargas Caballero <[email protected]> | |
Date: Tue, 29 Apr 2014 08:58:10 +0200 | |
Remove ATTR_GFX and tselcs | |
ATTR_GFX was used long time ago to detect when terminal was in | |
graphic mode. Today graphic mode is implemented using a charset | |
pointer, so ATTR_GFX is not needed anymore because graphic | |
condition can be detected directly checking if current charset | |
is GRAPHICS C0. | |
Diffstat: | |
M st.c | 30 ++++++++---------------------- | |
1 file changed, 8 insertions(+), 22 deletions(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -94,12 +94,11 @@ enum glyph_attribute { | |
ATTR_REVERSE = 1, | |
ATTR_UNDERLINE = 2, | |
ATTR_BOLD = 4, | |
- ATTR_GFX = 8, | |
- ATTR_ITALIC = 16, | |
- ATTR_BLINK = 32, | |
- ATTR_WRAP = 64, | |
- ATTR_WIDE = 128, | |
- ATTR_WDUMMY = 256, | |
+ ATTR_ITALIC = 8, | |
+ ATTR_BLINK = 16, | |
+ ATTR_WRAP = 32, | |
+ ATTR_WIDE = 64, | |
+ ATTR_WDUMMY = 128, | |
}; | |
enum cursor_movement { | |
t@@ -396,7 +395,6 @@ static void techo(char *, int); | |
static bool tcontrolcode(uchar ); | |
static void tdectest(char ); | |
static int32_t tdefcolor(int *, int *, int); | |
-static void tselcs(void); | |
static void tdeftran(char); | |
static inline bool match(uint, uint); | |
static void ttynew(void); | |
t@@ -1535,7 +1533,7 @@ tsetchar(char *c, Glyph *attr, int x, int y) { | |
/* | |
* The table is proudly stolen from rxvt. | |
*/ | |
- if(attr->mode & ATTR_GFX) { | |
+ if(term.trantbl[term.charset] == CS_GRAPHIC0) { | |
if(BETWEEN(c[0], 0x41, 0x7e) && vt100_0[c[0] - 0x41]) { | |
c = vt100_0[c[0] - 0x41]; | |
} | |
t@@ -2317,9 +2315,7 @@ void | |
tdeftran(char ascii) { | |
char c, (*bp)[2]; | |
static char tbl[][2] = { | |
- {'0', CS_GRAPHIC0}, {'1', CS_GRAPHIC1}, {'A', CS_UK}, | |
- {'B', CS_USA}, {'<', CS_MULTI}, {'K', CS_GER}, | |
- {'5', CS_FIN}, {'C', CS_FIN}, | |
+ {'0', CS_GRAPHIC0}, {'B', CS_USA}, | |
{0, 0} | |
}; | |
t@@ -2332,13 +2328,6 @@ tdeftran(char ascii) { | |
term.trantbl[term.icharset] = (*bp)[1]; | |
} | |
-void | |
-tselcs(void) { | |
- MODBIT(term.c.attr.mode, | |
- term.trantbl[term.charset] == CS_GRAPHIC0, | |
- ATTR_GFX); | |
-} | |
- | |
bool | |
tcontrolcode(uchar ascii) { | |
static char question[UTF_SIZ] = "?"; | |
t@@ -2377,11 +2366,9 @@ tcontrolcode(uchar ascii) { | |
return 1; | |
case '\016': /* SO */ | |
term.charset = 0; | |
- tselcs(); | |
break; | |
case '\017': /* SI */ | |
term.charset = 1; | |
- tselcs(); | |
break; | |
case '\032': /* SUB */ | |
tsetchar(question, &term.c.attr, term.c.x, term.c.y); | |
t@@ -2506,7 +2493,6 @@ tputc(char *c, int len) { | |
return; | |
} else if(term.esc & ESC_ALTCHARSET) { | |
tdeftran(ascii); | |
- tselcs(); | |
} else if(term.esc & ESC_TEST) { | |
tdectest(ascii); | |
} else { | |
t@@ -2593,7 +2579,7 @@ tputc(char *c, int len) { | |
/* | |
* Display control codes only if we are in graphic mode | |
*/ | |
- if(control && !(term.c.attr.mode & ATTR_GFX)) | |
+ if(control && term.trantbl[term.charset] != CS_GRAPHIC0) | |
return; | |
if(sel.ob.x != -1 && BETWEEN(term.c.y, sel.ob.y, sel.oe.y)) | |
selclear(NULL); |