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.
This commit is contained in:
Roberto E. Vargas Caballero 2014-01-31 17:04:18 +01:00
parent 21d905c076
commit a8d5870073
1 changed files with 10 additions and 14 deletions

24
st.c
View File

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