diff options
| author | vapier <vapier@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2005-09-27 03:18:00 +0000 |
|---|---|---|
| committer | vapier <vapier@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2005-09-27 03:18:00 +0000 |
| commit | 82ed9870f4eb00a85b5bf4c015b4e5e6d70c37db (patch) | |
| tree | d14bfd10b0d8f1249e7b896ba18b78acf8f2ada7 | |
| parent | 5a0077595166b8f42403db38275a6da3766a9749 (diff) | |
| download | busybox-w32-82ed9870f4eb00a85b5bf4c015b4e5e6d70c37db.tar.gz busybox-w32-82ed9870f4eb00a85b5bf4c015b4e5e6d70c37db.tar.bz2 busybox-w32-82ed9870f4eb00a85b5bf4c015b4e5e6d70c37db.zip | |
eat misappropriated whitespace
git-svn-id: svn://busybox.net/trunk/busybox@11659 69ca8d6d-28ef-0310-b511-8ec308f3f277
| -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; |
