diff options
author | Mike Frysinger <vapier@gentoo.org> | 2005-09-27 03:18:00 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2005-09-27 03:18:00 +0000 |
commit | de2b93859c702032ae801cb01a816aa42c1ab0ab (patch) | |
tree | d14bfd10b0d8f1249e7b896ba18b78acf8f2ada7 /editors/awk.c | |
parent | 10a11e23ba9b03ae1827959539b12a281fe8e2a4 (diff) | |
download | busybox-w32-de2b93859c702032ae801cb01a816aa42c1ab0ab.tar.gz busybox-w32-de2b93859c702032ae801cb01a816aa42c1ab0ab.tar.bz2 busybox-w32-de2b93859c702032ae801cb01a816aa42c1ab0ab.zip |
eat misappropriated whitespace
Diffstat (limited to 'editors/awk.c')
-rw-r--r-- | editors/awk.c | 132 |
1 files changed, 66 insertions, 66 deletions
diff --git a/editors/awk.c b/editors/awk.c index 83ad9b6ee..6ef4c0f9d 100644 --- a/editors/awk.c +++ b/editors/awk.c | |||
@@ -590,7 +590,7 @@ static void skip_spaces(char **s) | |||
590 | 590 | ||
591 | while(*p == ' ' || *p == '\t' || | 591 | while(*p == ' ' || *p == '\t' || |
592 | (*p == '\\' && *(p+1) == '\n' && (++p, ++t.lineno))) { | 592 | (*p == '\\' && *(p+1) == '\n' && (++p, ++t.lineno))) { |
593 | p++; | 593 | p++; |
594 | } | 594 | } |
595 | *s = p; | 595 | *s = p; |
596 | } | 596 | } |
@@ -1079,7 +1079,7 @@ static node *parse_expr(unsigned long iexp) | |||
1079 | /* for operands and prefix-unary operators, attach them | 1079 | /* for operands and prefix-unary operators, attach them |
1080 | * to last node */ | 1080 | * to last node */ |
1081 | vn = cn; | 1081 | vn = cn; |
1082 | cn = vn->r.n = new_node(t.info); | 1082 | cn = vn->r.n = new_node(t.info); |
1083 | cn->a.n = vn; | 1083 | cn->a.n = vn; |
1084 | xtc = TC_OPERAND | TC_UOPPRE | TC_REGEXP; | 1084 | xtc = TC_OPERAND | TC_UOPPRE | TC_REGEXP; |
1085 | if (tc & (TC_OPERAND | TC_REGEXP)) { | 1085 | if (tc & (TC_OPERAND | TC_REGEXP)) { |
@@ -1090,18 +1090,18 @@ static node *parse_expr(unsigned long iexp) | |||
1090 | case TC_VARIABLE: | 1090 | case TC_VARIABLE: |
1091 | case TC_ARRAY: | 1091 | case TC_ARRAY: |
1092 | cn->info = OC_VAR; | 1092 | cn->info = OC_VAR; |
1093 | if ((v = hash_search(ahash, t.string)) != NULL) { | 1093 | if ((v = hash_search(ahash, t.string)) != NULL) { |
1094 | cn->info = OC_FNARG; | 1094 | cn->info = OC_FNARG; |
1095 | cn->l.i = v->x.aidx; | 1095 | cn->l.i = v->x.aidx; |
1096 | } else { | 1096 | } else { |
1097 | cn->l.v = newvar(t.string); | 1097 | cn->l.v = newvar(t.string); |
1098 | } | 1098 | } |
1099 | if (tc & TC_ARRAY) { | 1099 | if (tc & TC_ARRAY) { |
1100 | cn->info |= xS; | 1100 | cn->info |= xS; |
1101 | cn->r.n = parse_expr(TC_ARRTERM); | 1101 | cn->r.n = parse_expr(TC_ARRTERM); |
1102 | } | 1102 | } |
1103 | break; | 1103 | break; |
1104 | 1104 | ||
1105 | case TC_NUMBER: | 1105 | case TC_NUMBER: |
1106 | case TC_STRING: | 1106 | case TC_STRING: |
1107 | cn->info = OC_VAR; | 1107 | cn->info = OC_VAR; |
@@ -1118,7 +1118,7 @@ static node *parse_expr(unsigned long iexp) | |||
1118 | break; | 1118 | break; |
1119 | 1119 | ||
1120 | case TC_FUNCTION: | 1120 | case TC_FUNCTION: |
1121 | cn->info = OC_FUNC; | 1121 | cn->info = OC_FUNC; |
1122 | cn->r.f = newfunc(t.string); | 1122 | cn->r.f = newfunc(t.string); |
1123 | cn->l.n = condition(); | 1123 | cn->l.n = condition(); |
1124 | break; | 1124 | break; |
@@ -1209,7 +1209,7 @@ static void chain_group(void) | |||
1209 | 1209 | ||
1210 | if (c & TC_GRPSTART) { | 1210 | if (c & TC_GRPSTART) { |
1211 | while(next_token(TC_GRPSEQ | TC_GRPTERM) != TC_GRPTERM) { | 1211 | while(next_token(TC_GRPSEQ | TC_GRPTERM) != TC_GRPTERM) { |
1212 | if (t.tclass & TC_NEWLINE) continue; | 1212 | if (t.tclass & TC_NEWLINE) continue; |
1213 | rollback_token(); | 1213 | rollback_token(); |
1214 | chain_group(); | 1214 | chain_group(); |
1215 | } | 1215 | } |
@@ -2032,7 +2032,7 @@ lo_cont: | |||
2032 | 2032 | ||
2033 | static var *evaluate(node *op, var *res) | 2033 | static var *evaluate(node *op, var *res) |
2034 | { | 2034 | { |
2035 | /* This procedure is recursive so we should count every byte */ | 2035 | /* This procedure is recursive so we should count every byte */ |
2036 | static var *fnargs = NULL; | 2036 | static var *fnargs = NULL; |
2037 | static unsigned int seed = 1; | 2037 | static unsigned int seed = 1; |
2038 | static regex_t sreg; | 2038 | static regex_t sreg; |
@@ -2066,7 +2066,7 @@ static var *evaluate(node *op, var *res) | |||
2066 | opn = (short)(opinfo & OPNMASK); | 2066 | opn = (short)(opinfo & OPNMASK); |
2067 | lineno = op->lineno; | 2067 | lineno = op->lineno; |
2068 | 2068 | ||
2069 | /* execute inevitable things */ | 2069 | /* execute inevitable things */ |
2070 | op1 = op->l.n; | 2070 | op1 = op->l.n; |
2071 | if (opinfo & OF_RES1) X.v = L.v = evaluate(op1, v1); | 2071 | if (opinfo & OF_RES1) X.v = L.v = evaluate(op1, v1); |
2072 | if (opinfo & OF_RES2) R.v = evaluate(op->r.n, v1+1); | 2072 | if (opinfo & OF_RES2) R.v = evaluate(op->r.n, v1+1); |
@@ -2098,16 +2098,16 @@ static var *evaluate(node *op, var *res) | |||
2098 | 2098 | ||
2099 | /* just evaluate an expression, also used as unconditional jump */ | 2099 | /* just evaluate an expression, also used as unconditional jump */ |
2100 | case XC( OC_EXEC ): | 2100 | case XC( OC_EXEC ): |
2101 | break; | 2101 | break; |
2102 | 2102 | ||
2103 | /* branch, used in if-else and various loops */ | 2103 | /* branch, used in if-else and various loops */ |
2104 | case XC( OC_BR ): | 2104 | case XC( OC_BR ): |
2105 | op = istrue(L.v) ? op->a.n : op->r.n; | 2105 | op = istrue(L.v) ? op->a.n : op->r.n; |
2106 | break; | 2106 | break; |
2107 | 2107 | ||
2108 | /* initialize for-in loop */ | 2108 | /* initialize for-in loop */ |
2109 | case XC( OC_WALKINIT ): | 2109 | case XC( OC_WALKINIT ): |
2110 | hashwalk_init(L.v, iamarray(R.v)); | 2110 | hashwalk_init(L.v, iamarray(R.v)); |
2111 | break; | 2111 | break; |
2112 | 2112 | ||
2113 | /* get next array item */ | 2113 | /* get next array item */ |
@@ -2118,7 +2118,7 @@ static var *evaluate(node *op, var *res) | |||
2118 | case XC( OC_PRINT ): | 2118 | case XC( OC_PRINT ): |
2119 | case XC( OC_PRINTF ): | 2119 | case XC( OC_PRINTF ): |
2120 | X.F = stdout; | 2120 | X.F = stdout; |
2121 | if (op->r.n) { | 2121 | if (op->r.n) { |
2122 | X.rsm = newfile(R.s); | 2122 | X.rsm = newfile(R.s); |
2123 | if (! X.rsm->F) { | 2123 | if (! X.rsm->F) { |
2124 | if (opn == '|') { | 2124 | if (opn == '|') { |
@@ -2133,7 +2133,7 @@ static var *evaluate(node *op, var *res) | |||
2133 | } | 2133 | } |
2134 | 2134 | ||
2135 | if ((opinfo & OPCLSMASK) == OC_PRINT) { | 2135 | if ((opinfo & OPCLSMASK) == OC_PRINT) { |
2136 | if (! op1) { | 2136 | if (! op1) { |
2137 | fputs(getvar_s(V[F0]), X.F); | 2137 | fputs(getvar_s(V[F0]), X.F); |
2138 | } else { | 2138 | } else { |
2139 | while (op1) { | 2139 | while (op1) { |
@@ -2160,8 +2160,8 @@ static var *evaluate(node *op, var *res) | |||
2160 | break; | 2160 | break; |
2161 | 2161 | ||
2162 | case XC( OC_DELETE ): | 2162 | case XC( OC_DELETE ): |
2163 | X.info = op1->info & OPCLSMASK; | 2163 | X.info = op1->info & OPCLSMASK; |
2164 | if (X.info == OC_VAR) { | 2164 | if (X.info == OC_VAR) { |
2165 | R.v = op1->l.v; | 2165 | R.v = op1->l.v; |
2166 | } else if (X.info == OC_FNARG) { | 2166 | } else if (X.info == OC_FNARG) { |
2167 | R.v = &fnargs[op1->l.i]; | 2167 | R.v = &fnargs[op1->l.i]; |
@@ -2169,7 +2169,7 @@ static var *evaluate(node *op, var *res) | |||
2169 | runtime_error(EMSG_NOT_ARRAY); | 2169 | runtime_error(EMSG_NOT_ARRAY); |
2170 | } | 2170 | } |
2171 | 2171 | ||
2172 | if (op1->r.n) { | 2172 | if (op1->r.n) { |
2173 | clrvar(L.v); | 2173 | clrvar(L.v); |
2174 | L.s = getvar_s(evaluate(op1->r.n, v1)); | 2174 | L.s = getvar_s(evaluate(op1->r.n, v1)); |
2175 | hash_remove(iamarray(R.v), L.s); | 2175 | hash_remove(iamarray(R.v), L.s); |
@@ -2179,7 +2179,7 @@ static var *evaluate(node *op, var *res) | |||
2179 | break; | 2179 | break; |
2180 | 2180 | ||
2181 | case XC( OC_NEWSOURCE ): | 2181 | case XC( OC_NEWSOURCE ): |
2182 | programname = op->l.s; | 2182 | programname = op->l.s; |
2183 | break; | 2183 | break; |
2184 | 2184 | ||
2185 | case XC( OC_RETURN ): | 2185 | case XC( OC_RETURN ): |
@@ -2187,29 +2187,29 @@ static var *evaluate(node *op, var *res) | |||
2187 | break; | 2187 | break; |
2188 | 2188 | ||
2189 | case XC( OC_NEXTFILE ): | 2189 | case XC( OC_NEXTFILE ): |
2190 | nextfile = TRUE; | 2190 | nextfile = TRUE; |
2191 | case XC( OC_NEXT ): | 2191 | case XC( OC_NEXT ): |
2192 | nextrec = TRUE; | 2192 | nextrec = TRUE; |
2193 | case XC( OC_DONE ): | 2193 | case XC( OC_DONE ): |
2194 | clrvar(res); | 2194 | clrvar(res); |
2195 | break; | 2195 | break; |
2196 | 2196 | ||
2197 | case XC( OC_EXIT ): | 2197 | case XC( OC_EXIT ): |
2198 | awk_exit(L.d); | 2198 | awk_exit(L.d); |
2199 | 2199 | ||
2200 | /* -- recursive node type -- */ | 2200 | /* -- recursive node type -- */ |
2201 | 2201 | ||
2202 | case XC( OC_VAR ): | 2202 | case XC( OC_VAR ): |
2203 | L.v = op->l.v; | 2203 | L.v = op->l.v; |
2204 | if (L.v == V[NF]) | 2204 | if (L.v == V[NF]) |
2205 | split_f0(); | 2205 | split_f0(); |
2206 | goto v_cont; | 2206 | goto v_cont; |
2207 | 2207 | ||
2208 | case XC( OC_FNARG ): | 2208 | case XC( OC_FNARG ): |
2209 | L.v = &fnargs[op->l.i]; | 2209 | L.v = &fnargs[op->l.i]; |
2210 | 2210 | ||
2211 | v_cont: | 2211 | v_cont: |
2212 | res = (op->r.n) ? findvar(iamarray(L.v), R.s) : L.v; | 2212 | res = (op->r.n) ? findvar(iamarray(L.v), R.s) : L.v; |
2213 | break; | 2213 | break; |
2214 | 2214 | ||
2215 | case XC( OC_IN ): | 2215 | case XC( OC_IN ): |
@@ -2217,12 +2217,12 @@ v_cont: | |||
2217 | break; | 2217 | break; |
2218 | 2218 | ||
2219 | case XC( OC_REGEXP ): | 2219 | case XC( OC_REGEXP ): |
2220 | op1 = op; | 2220 | op1 = op; |
2221 | L.s = getvar_s(V[F0]); | 2221 | L.s = getvar_s(V[F0]); |
2222 | goto re_cont; | 2222 | goto re_cont; |
2223 | 2223 | ||
2224 | case XC( OC_MATCH ): | 2224 | case XC( OC_MATCH ): |
2225 | op1 = op->r.n; | 2225 | op1 = op->r.n; |
2226 | re_cont: | 2226 | re_cont: |
2227 | X.re = as_regex(op1, &sreg); | 2227 | X.re = as_regex(op1, &sreg); |
2228 | R.i = regexec(X.re, L.s, 0, NULL, 0); | 2228 | R.i = regexec(X.re, L.s, 0, NULL, 0); |
@@ -2231,23 +2231,23 @@ re_cont: | |||
2231 | break; | 2231 | break; |
2232 | 2232 | ||
2233 | case XC( OC_MOVE ): | 2233 | case XC( OC_MOVE ): |
2234 | /* if source is a temporary string, jusk relink it to dest */ | 2234 | /* if source is a temporary string, jusk relink it to dest */ |
2235 | if (R.v == v1+1 && R.v->string) { | 2235 | if (R.v == v1+1 && R.v->string) { |
2236 | res = setvar_p(L.v, R.v->string); | 2236 | res = setvar_p(L.v, R.v->string); |
2237 | R.v->string = NULL; | 2237 | R.v->string = NULL; |
2238 | } else { | 2238 | } else { |
2239 | res = copyvar(L.v, R.v); | 2239 | res = copyvar(L.v, R.v); |
2240 | } | 2240 | } |
2241 | break; | 2241 | break; |
2242 | 2242 | ||
2243 | case XC( OC_TERNARY ): | 2243 | case XC( OC_TERNARY ): |
2244 | if ((op->r.n->info & OPCLSMASK) != OC_COLON) | 2244 | if ((op->r.n->info & OPCLSMASK) != OC_COLON) |
2245 | runtime_error(EMSG_POSSIBLE_ERROR); | 2245 | runtime_error(EMSG_POSSIBLE_ERROR); |
2246 | res = evaluate(istrue(L.v) ? op->r.n->l.n : op->r.n->r.n, res); | 2246 | res = evaluate(istrue(L.v) ? op->r.n->l.n : op->r.n->r.n, res); |
2247 | break; | 2247 | break; |
2248 | 2248 | ||
2249 | case XC( OC_FUNC ): | 2249 | case XC( OC_FUNC ): |
2250 | if (! op->r.f->body.first) | 2250 | if (! op->r.f->body.first) |
2251 | runtime_error(EMSG_UNDEF_FUNC); | 2251 | runtime_error(EMSG_UNDEF_FUNC); |
2252 | 2252 | ||
2253 | X.v = R.v = nvalloc(op->r.f->nargs+1); | 2253 | X.v = R.v = nvalloc(op->r.f->nargs+1); |
@@ -2273,7 +2273,7 @@ re_cont: | |||
2273 | 2273 | ||
2274 | case XC( OC_GETLINE ): | 2274 | case XC( OC_GETLINE ): |
2275 | case XC( OC_PGETLINE ): | 2275 | case XC( OC_PGETLINE ): |
2276 | if (op1) { | 2276 | if (op1) { |
2277 | X.rsm = newfile(L.s); | 2277 | X.rsm = newfile(L.s); |
2278 | if (! X.rsm->F) { | 2278 | if (! X.rsm->F) { |
2279 | if ((opinfo & OPCLSMASK) == OC_PGETLINE) { | 2279 | if ((opinfo & OPCLSMASK) == OC_PGETLINE) { |
@@ -2307,37 +2307,37 @@ re_cont: | |||
2307 | setvar_i(res, L.i); | 2307 | setvar_i(res, L.i); |
2308 | break; | 2308 | break; |
2309 | 2309 | ||
2310 | /* simple builtins */ | 2310 | /* simple builtins */ |
2311 | case XC( OC_FBLTIN ): | 2311 | case XC( OC_FBLTIN ): |
2312 | switch (opn) { | 2312 | switch (opn) { |
2313 | 2313 | ||
2314 | case F_in: | 2314 | case F_in: |
2315 | R.d = (int)L.d; | 2315 | R.d = (int)L.d; |
2316 | break; | 2316 | break; |
2317 | 2317 | ||
2318 | case F_rn: | 2318 | case F_rn: |
2319 | R.d = (double)rand() / (double)RAND_MAX; | 2319 | R.d = (double)rand() / (double)RAND_MAX; |
2320 | break; | 2320 | break; |
2321 | 2321 | ||
2322 | #ifdef CONFIG_FEATURE_AWK_MATH | 2322 | #ifdef CONFIG_FEATURE_AWK_MATH |
2323 | case F_co: | 2323 | case F_co: |
2324 | R.d = cos(L.d); | 2324 | R.d = cos(L.d); |
2325 | break; | 2325 | break; |
2326 | 2326 | ||
2327 | case F_ex: | 2327 | case F_ex: |
2328 | R.d = exp(L.d); | 2328 | R.d = exp(L.d); |
2329 | break; | 2329 | break; |
2330 | 2330 | ||
2331 | case F_lg: | 2331 | case F_lg: |
2332 | R.d = log(L.d); | 2332 | R.d = log(L.d); |
2333 | break; | 2333 | break; |
2334 | 2334 | ||
2335 | case F_si: | 2335 | case F_si: |
2336 | R.d = sin(L.d); | 2336 | R.d = sin(L.d); |
2337 | break; | 2337 | break; |
2338 | 2338 | ||
2339 | case F_sq: | 2339 | case F_sq: |
2340 | R.d = sqrt(L.d); | 2340 | R.d = sqrt(L.d); |
2341 | break; | 2341 | break; |
2342 | #else | 2342 | #else |
2343 | case F_co: | 2343 | case F_co: |
@@ -2360,7 +2360,7 @@ re_cont: | |||
2360 | break; | 2360 | break; |
2361 | 2361 | ||
2362 | case F_le: | 2362 | case F_le: |
2363 | if (! op1) | 2363 | if (! op1) |
2364 | L.s = getvar_s(V[F0]); | 2364 | L.s = getvar_s(V[F0]); |
2365 | R.d = bb_strlen(L.s); | 2365 | R.d = bb_strlen(L.s); |
2366 | break; | 2366 | break; |
@@ -2403,30 +2403,30 @@ re_cont: | |||
2403 | break; | 2403 | break; |
2404 | 2404 | ||
2405 | case XC( OC_SPRINTF ): | 2405 | case XC( OC_SPRINTF ): |
2406 | setvar_p(res, awk_printf(op1)); | 2406 | setvar_p(res, awk_printf(op1)); |
2407 | break; | 2407 | break; |
2408 | 2408 | ||
2409 | case XC( OC_UNARY ): | 2409 | case XC( OC_UNARY ): |
2410 | X.v = R.v; | 2410 | X.v = R.v; |
2411 | L.d = R.d = getvar_i(R.v); | 2411 | L.d = R.d = getvar_i(R.v); |
2412 | switch (opn) { | 2412 | switch (opn) { |
2413 | case 'P': | 2413 | case 'P': |
2414 | L.d = ++R.d; | 2414 | L.d = ++R.d; |
2415 | goto r_op_change; | 2415 | goto r_op_change; |
2416 | case 'p': | 2416 | case 'p': |
2417 | R.d++; | 2417 | R.d++; |
2418 | goto r_op_change; | 2418 | goto r_op_change; |
2419 | case 'M': | 2419 | case 'M': |
2420 | L.d = --R.d; | 2420 | L.d = --R.d; |
2421 | goto r_op_change; | 2421 | goto r_op_change; |
2422 | case 'm': | 2422 | case 'm': |
2423 | R.d--; | 2423 | R.d--; |
2424 | goto r_op_change; | 2424 | goto r_op_change; |
2425 | case '!': | 2425 | case '!': |
2426 | L.d = istrue(X.v) ? 0 : 1; | 2426 | L.d = istrue(X.v) ? 0 : 1; |
2427 | break; | 2427 | break; |
2428 | case '-': | 2428 | case '-': |
2429 | L.d = -R.d; | 2429 | L.d = -R.d; |
2430 | break; | 2430 | break; |
2431 | r_op_change: | 2431 | r_op_change: |
2432 | setvar_i(X.v, R.d); | 2432 | setvar_i(X.v, R.d); |
@@ -2435,8 +2435,8 @@ re_cont: | |||
2435 | break; | 2435 | break; |
2436 | 2436 | ||
2437 | case XC( OC_FIELD ): | 2437 | case XC( OC_FIELD ): |
2438 | R.i = (int)getvar_i(R.v); | 2438 | R.i = (int)getvar_i(R.v); |
2439 | if (R.i == 0) { | 2439 | if (R.i == 0) { |
2440 | res = V[F0]; | 2440 | res = V[F0]; |
2441 | } else { | 2441 | } else { |
2442 | split_f0(); | 2442 | split_f0(); |
@@ -2451,7 +2451,7 @@ re_cont: | |||
2451 | case XC( OC_CONCAT ): | 2451 | case XC( OC_CONCAT ): |
2452 | case XC( OC_COMMA ): | 2452 | case XC( OC_COMMA ): |
2453 | opn = bb_strlen(L.s) + bb_strlen(R.s) + 2; | 2453 | opn = bb_strlen(L.s) + bb_strlen(R.s) + 2; |
2454 | X.s = (char *)xmalloc(opn); | 2454 | X.s = (char *)xmalloc(opn); |
2455 | strcpy(X.s, L.s); | 2455 | strcpy(X.s, L.s); |
2456 | if ((opinfo & OPCLSMASK) == OC_COMMA) { | 2456 | if ((opinfo & OPCLSMASK) == OC_COMMA) { |
2457 | L.s = getvar_s(V[SUBSEP]); | 2457 | L.s = getvar_s(V[SUBSEP]); |
@@ -2472,31 +2472,31 @@ re_cont: | |||
2472 | 2472 | ||
2473 | case XC( OC_BINARY ): | 2473 | case XC( OC_BINARY ): |
2474 | case XC( OC_REPLACE ): | 2474 | case XC( OC_REPLACE ): |
2475 | R.d = getvar_i(R.v); | 2475 | R.d = getvar_i(R.v); |
2476 | switch (opn) { | 2476 | switch (opn) { |
2477 | case '+': | 2477 | case '+': |
2478 | L.d += R.d; | 2478 | L.d += R.d; |
2479 | break; | 2479 | break; |
2480 | case '-': | 2480 | case '-': |
2481 | L.d -= R.d; | 2481 | L.d -= R.d; |
2482 | break; | 2482 | break; |
2483 | case '*': | 2483 | case '*': |
2484 | L.d *= R.d; | 2484 | L.d *= R.d; |
2485 | break; | 2485 | break; |
2486 | case '/': | 2486 | case '/': |
2487 | if (R.d == 0) runtime_error(EMSG_DIV_BY_ZERO); | 2487 | if (R.d == 0) runtime_error(EMSG_DIV_BY_ZERO); |
2488 | L.d /= R.d; | 2488 | L.d /= R.d; |
2489 | break; | 2489 | break; |
2490 | case '&': | 2490 | case '&': |
2491 | #ifdef CONFIG_FEATURE_AWK_MATH | 2491 | #ifdef CONFIG_FEATURE_AWK_MATH |
2492 | L.d = pow(L.d, R.d); | 2492 | L.d = pow(L.d, R.d); |
2493 | #else | 2493 | #else |
2494 | runtime_error(EMSG_NO_MATH); | 2494 | runtime_error(EMSG_NO_MATH); |
2495 | #endif | 2495 | #endif |
2496 | break; | 2496 | break; |
2497 | case '%': | 2497 | case '%': |
2498 | if (R.d == 0) runtime_error(EMSG_DIV_BY_ZERO); | 2498 | if (R.d == 0) runtime_error(EMSG_DIV_BY_ZERO); |
2499 | L.d -= (int)(L.d / R.d) * R.d; | 2499 | L.d -= (int)(L.d / R.d) * R.d; |
2500 | break; | 2500 | break; |
2501 | } | 2501 | } |
2502 | res = setvar_i(((opinfo&OPCLSMASK) == OC_BINARY) ? res : X.v, L.d); | 2502 | res = setvar_i(((opinfo&OPCLSMASK) == OC_BINARY) ? res : X.v, L.d); |
@@ -2512,20 +2512,20 @@ re_cont: | |||
2512 | } | 2512 | } |
2513 | switch (opn & 0xfe) { | 2513 | switch (opn & 0xfe) { |
2514 | case 0: | 2514 | case 0: |
2515 | R.i = (L.d > 0); | 2515 | R.i = (L.d > 0); |
2516 | break; | 2516 | break; |
2517 | case 2: | 2517 | case 2: |
2518 | R.i = (L.d >= 0); | 2518 | R.i = (L.d >= 0); |
2519 | break; | 2519 | break; |
2520 | case 4: | 2520 | case 4: |
2521 | R.i = (L.d == 0); | 2521 | R.i = (L.d == 0); |
2522 | break; | 2522 | break; |
2523 | } | 2523 | } |
2524 | setvar_i(res, (opn & 0x1 ? R.i : !R.i) ? 1 : 0); | 2524 | setvar_i(res, (opn & 0x1 ? R.i : !R.i) ? 1 : 0); |
2525 | break; | 2525 | break; |
2526 | 2526 | ||
2527 | default: | 2527 | default: |
2528 | runtime_error(EMSG_POSSIBLE_ERROR); | 2528 | runtime_error(EMSG_POSSIBLE_ERROR); |
2529 | } | 2529 | } |
2530 | if ((opinfo & OPCLSMASK) <= SHIFT_TIL_THIS) | 2530 | if ((opinfo & OPCLSMASK) <= SHIFT_TIL_THIS) |
2531 | op = op->a.n; | 2531 | op = op->a.n; |