shithub: trueawk

Download patch

ref: acde9cddfda6e49d5093c6deee0076c6415d6ded
parent: 5dab2871759082fb9037c23af5e9387bb6366e1d
parent: e9530b76f3c6b264732e87fa56bf39737792cb19
author: ozan yigit <ozan.yigit@gmail.com>
date: Sun Jun 23 17:13:57 EDT 2024

rewrite of if-else chain as switch

--- a/b.c
+++ b/b.c
@@ -369,36 +369,49 @@
 
 /* BUG: should advance by utf-8 char even if makes no sense */
 
-	if ((c = *p++) == 't') {
+	switch ((c = *p++)) {
+	case 't':
 		c = '\t';
-	} else if (c == 'n') {
+		break;
+	case 'n':
 		c = '\n';
-	} else if (c == 'f') {
+		break;
+	case 'f':
 		c = '\f';
-	} else if (c == 'r') {
+		break;
+	case 'r':
 		c = '\r';
-	} else if (c == 'b') {
+		break;
+	case 'b':
 		c = '\b';
-	} else if (c == 'v') {
+		break;
+	case 'v':
 		c = '\v';
-	} else if (c == 'a') {
+		break;
+	case 'a':
 		c = '\a';
-	} else if (c == '\\') {
+		break;
+	case '\\':
 		c = '\\';
-	} else if (c == 'x') {	/* 2 hex digits follow */
-		c = hexstr(&p, 2);	/* this adds a null if number is invalid */
-	} else if (c == 'u') {	/* unicode char number up to 8 hex digits */
+		break;
+	case 'x': /* 2 hex digits follow */
+		c = hexstr(&p, 2); /* this adds a null if number is invalid */
+		break;
+	case 'u': /* unicode char number up to 8 hex digits */
 		c = hexstr(&p, 8);
-	} else if (isoctdigit(c)) {	/* \d \dd \ddd */
-		int n = c - '0';
-		if (isoctdigit(*p)) {
-			n = 8 * n + *p++ - '0';
-			if (isoctdigit(*p))
+		break;
+	default:
+		if (isoctdigit(c)) { /* \d \dd \ddd */
+			int n = c - '0';
+			if (isoctdigit(*p)) {
 				n = 8 * n + *p++ - '0';
+				if (isoctdigit(*p))
+					n = 8 * n + *p++ - '0';
+			}
+			c = n;
 		}
-		c = n;
-	} /* else */
-		/* c = c; */
+	}
+
 	*pp = p;
 	return c;
 }
--