Remove duplicated code in strhandle - st - Simple Terminal
Log
Files
Refs
README
LICENSE
---
commit a8d5870073af14aa08032ab8520c5fe17bb8a1e8
parent 21d905c076735783b41eec55f31d933129fd9f22
Author: Roberto E. Vargas Caballero 
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:
  st.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