st

fork of suckless's simple terminal
Index Commits Files Refs README LICENSE
commit 43d74ef362b7dc5da3232cdc9412981ea6386df6
parent 3764f38fc805a8846bd18f1d555a10227fd14e29
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date:   Sat, 26 Apr 2014 09:24:04 +0200

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.

Diffstat:
Mst.c | 24+++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git 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 '[':