diff options
author | Roberto E. Vargas Caballero | 2014-01-31 17:04:18 +0100 |
---|---|---|
committer | Roberto E. Vargas Caballero | 2014-02-02 19:42:01 +0100 |
commit | a8d5870073af14aa08032ab8520c5fe17bb8a1e8 (patch) | |
tree | 2049ab201b85e13af9e9d9e2092175732f359d9c | |
parent | 21d905c076735783b41eec55f31d933129fd9f22 (diff) | |
download | st-a8d5870073af14aa08032ab8520c5fe17bb8a1e8.tar.gz st-a8d5870073af14aa08032ab8520c5fe17bb8a1e8.tar.xz st-a8d5870073af14aa08032ab8520c5fe17bb8a1e8.zip |
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.
-rw-r--r-- | st.c | 24 |
1 files changed, 10 insertions, 14 deletions
@@ -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 |