aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto E. Vargas Caballero <k0ga@shike2.com>2014-04-26 09:24:04 +0200
committerRoberto E. Vargas Caballero <k0ga@shike2.com>2014-04-28 18:38:05 +0200
commit43d74ef362b7dc5da3232cdc9412981ea6386df6 (patch)
tree4764b8e5732aebf9bea8e022277635608b44062b
parent3764f38fc805a8846bd18f1d555a10227fd14e29 (diff)
downloadst-43d74ef362b7dc5da3232cdc9412981ea6386df6.tar.gz
st-43d74ef362b7dc5da3232cdc9412981ea6386df6.tar.bz2
Create a function for DEC test
Almost of the sequences execute their action in a separate function, which is good because helps to read the full set of sequences faster.
-rw-r--r--st.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/st.c b/st.c
index 9a979ea..2945c1b 100644
--- a/st.c
+++ b/st.c
@@ -394,6 +394,7 @@ static void tsetmode(bool, bool, int *, int);
static void tfulldirt(void);
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);
@@ -2426,6 +2427,19 @@ tcontrolcode(uchar ascii) {
}
void
+tdectest(char c) {
+ static char E[UTF_SIZ] = "E";
+ int x, y;
+
+ if(c == '8') { /* DEC screen alignment test. */
+ for(x = 0; x < term.col; ++x) {
+ for(y = 0; y < term.row; ++y)
+ tsetchar(E, &term.c.attr, x, y);
+ }
+ }
+}
+
+void
tputc(char *c, int len) {
uchar ascii;
bool control;
@@ -2504,15 +2518,7 @@ tputc(char *c, int len) {
tdeftran(ascii);
tselcs();
} else if(term.esc & ESC_TEST) {
- if(ascii == '8') { /* DEC screen alignment test. */
- char E[UTF_SIZ] = "E";
- int x, y;
-
- for(x = 0; x < term.col; ++x) {
- for(y = 0; y < term.row; ++y)
- tsetchar(E, &term.c.attr, x, y);
- }
- }
+ tdectest(ascii);
} else {
switch(ascii) {
case '[':