st

fork of suckless's simple terminal
Index Commits Files Refs README LICENSE
commit a8d5870073af14aa08032ab8520c5fe17bb8a1e8
parent 21d905c076735783b41eec55f31d933129fd9f22
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date:   Fri, 31 Jan 2014 17:04:18 +0100

Remove duplicated code in strhandle

The error condition was duplicated in two different switches.
This new version centralized the error handling in only one place.

Diffstat:
Mst.c | 24++++++++++--------------
1 file changed, 10 insertions(+), 14 deletions(-)
diff --git a/st.c b/st.c
@@ -2152,20 +2152,21 @@ csireset(void) {
 void
 strhandle(void) {
     char *p = NULL;
-    int i, j, narg;
+    int j, narg, par;
 
     strparse();
     narg = strescseq.narg;
+    par = atoi(strescseq.args[0]);
 
     switch(strescseq.type) {
     case ']': /* OSC -- Operating System Command */
-        switch(i = atoi(strescseq.args[0])) {
+        switch(par) {
         case 0:
         case 1:
         case 2:
             if(narg > 1)
                 xsettitle(strescseq.args[1]);
-            break;
+            return;
         case 4: /* color set */
             if(narg < 3)
                 break;
@@ -2182,25 +2183,20 @@ strhandle(void) {
                  */
                 redraw(0);
             }
-            break;
-        default:
-            fprintf(stderr, "erresc: unknown str ");
-            strdump();
-            break;
+            return;
         }
         break;
     case 'k': /* old title set compatibility */
         xsettitle(strescseq.args[0]);
-        break;
+        return;
     case 'P': /* DSC -- Device Control String */
     case '_': /* APC -- Application Program Command */
     case '^': /* PM -- Privacy Message */
-    default:
-        fprintf(stderr, "erresc: unknown str ");
-        strdump();
-        /* die(""); */
-        break;
+        return;
     }
+
+    fprintf(stderr, "erresc: unknown str ");
+    strdump();
 }
 
 void