Browse Source

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.
Roberto E. Vargas Caballero 11 năm trước cách đây
mục cha
commit
a8d5870073
1 tập tin đã thay đổi với 10 bổ sung14 xóa
  1. 10 14
      st.c

+ 10 - 14
st.c

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