aboutsummaryrefslogtreecommitdiff
path: root/editors/awk.c
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2005-09-27 03:18:00 +0000
committerMike Frysinger <vapier@gentoo.org>2005-09-27 03:18:00 +0000
commitde2b93859c702032ae801cb01a816aa42c1ab0ab (patch)
treed14bfd10b0d8f1249e7b896ba18b78acf8f2ada7 /editors/awk.c
parent10a11e23ba9b03ae1827959539b12a281fe8e2a4 (diff)
downloadbusybox-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.c132
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
2033static var *evaluate(node *op, var *res) 2033static 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
2211v_cont: 2211v_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;
2226re_cont: 2226re_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;