[git commit] bc: simplify bc_lex_comment()

Denys Vlasenko vda.linux at googlemail.com
Wed Dec 5 14:43:35 UTC 2018


commit: https://git.busybox.net/busybox/commit/?id=bc5ce66617b6aa32b0ff7b51435cfc2c00c8ea89
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
bc_lex_token                                        1369    1344     -25

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 miscutils/bc.c | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/miscutils/bc.c b/miscutils/bc.c
index dd01f5409..ecd19cb0b 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -3090,24 +3090,27 @@ static BcStatus bc_lex_comment(BcLex *l)
 {
 	size_t i, nls = 0;
 	const char *buf = l->buf;
-	bool end = false;
-	char c;
 
 	l->t.t = BC_LEX_WHITESPACE;
-
-	for (i = ++l->i; !end; i += !end) {
-
-		for (c = buf[i]; c != '*' && c != 0; c = buf[++i]) nls += (c == '\n');
-
-		if (c == 0 || buf[i + 1] == '\0') {
+	i = ++l->i;
+	for (;;) {
+		char c = buf[i];
+ check_star:
+		if (c == '*') {
+			c = buf[++i];
+			if (c == '/')
+				break;
+			goto check_star;
+		}
+		if (c == '\0') {
 			l->i = i;
 			return BC_STATUS_LEX_NO_COMMENT_END;
 		}
-
-		end = buf[i + 1] == '/';
+		nls += (c == '\n');
+		i++;
 	}
 
-	l->i = i + 2;
+	l->i = i + 1;
 	l->line += nls;
 
 	return BC_STATUS_SUCCESS;


More information about the busybox-cvs mailing list