aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-12-03 19:12:29 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2018-12-05 15:43:35 +0100
commitbc5ce66617b6aa32b0ff7b51435cfc2c00c8ea89 (patch)
treeda0c698853a3f91b992531ae607896f79b17d7fd
parentc1c2470f843c0b8218dd3611330a941b00d0cc34 (diff)
downloadbusybox-w32-bc5ce66617b6aa32b0ff7b51435cfc2c00c8ea89.tar.gz
busybox-w32-bc5ce66617b6aa32b0ff7b51435cfc2c00c8ea89.tar.bz2
busybox-w32-bc5ce66617b6aa32b0ff7b51435cfc2c00c8ea89.zip
bc: simplify bc_lex_comment()
function old new delta bc_lex_token 1369 1344 -25 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--miscutils/bc.c25
1 files 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)
3090{ 3090{
3091 size_t i, nls = 0; 3091 size_t i, nls = 0;
3092 const char *buf = l->buf; 3092 const char *buf = l->buf;
3093 bool end = false;
3094 char c;
3095 3093
3096 l->t.t = BC_LEX_WHITESPACE; 3094 l->t.t = BC_LEX_WHITESPACE;
3097 3095 i = ++l->i;
3098 for (i = ++l->i; !end; i += !end) { 3096 for (;;) {
3099 3097 char c = buf[i];
3100 for (c = buf[i]; c != '*' && c != 0; c = buf[++i]) nls += (c == '\n'); 3098 check_star:
3101 3099 if (c == '*') {
3102 if (c == 0 || buf[i + 1] == '\0') { 3100 c = buf[++i];
3101 if (c == '/')
3102 break;
3103 goto check_star;
3104 }
3105 if (c == '\0') {
3103 l->i = i; 3106 l->i = i;
3104 return BC_STATUS_LEX_NO_COMMENT_END; 3107 return BC_STATUS_LEX_NO_COMMENT_END;
3105 } 3108 }
3106 3109 nls += (c == '\n');
3107 end = buf[i + 1] == '/'; 3110 i++;
3108 } 3111 }
3109 3112
3110 l->i = i + 2; 3113 l->i = i + 1;
3111 l->line += nls; 3114 l->line += nls;
3112 3115
3113 return BC_STATUS_SUCCESS; 3116 return BC_STATUS_SUCCESS;