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

22
st.c
View File

@ -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:
return;
}
fprintf(stderr, "erresc: unknown str ");
strdump();
/* die(""); */
break;
}
}
void