Create a function for DEC test
authorRoberto E. Vargas Caballero <k0ga@shike2.com>
Sat, 26 Apr 2014 07:24:04 +0000 (09:24 +0200)
committerRoberto E. Vargas Caballero <k0ga@shike2.com>
Mon, 28 Apr 2014 16:38:05 +0000 (18:38 +0200)
Almost of the sequences execute their action in a separate function,
which is good because helps to read the full set of sequences
faster.

st.c

diff --git a/st.c b/st.c
index 9a979ea..2945c1b 100644 (file)
--- 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);
@@ -2425,6 +2426,19 @@ tcontrolcode(uchar ascii) {
        return 1;
 }
 
+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;
@@ -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 '[':