don't mix declarations and code (and one ** to *[])
-emg
From 22ae7c861697a6fd7bd069cee59d8f629a5aa8e2 Mon Sep 17 00:00:00 2001
From: Evan Gates <evan.ga...@gmail.com>
Date: Thu, 5 Mar 2015 17:20:40 -0800
Subject: [PATCH] don't mix declarations and code (and one ** to *[])

---
 expr.c | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/expr.c b/expr.c
index ac0e086..aa2bea8 100644
--- a/expr.c
+++ b/expr.c
@@ -64,7 +64,8 @@ match(Val vstr, Val vregx)
 {
        regex_t re;
        regmatch_t matches[2];
-       char buf1[intlen], buf2[intlen];
+       intmax_t d;
+       char *s, *p, buf1[intlen], buf2[intlen];
        char *str = valstr(vstr, buf1, sizeof(buf1));
        char *regx = valstr(vregx, buf2, sizeof(buf2));;
        char anchreg[strlen(regx) + 2];
@@ -79,9 +80,9 @@ match(Val vstr, Val vregx)
        }
 
        if (re.re_nsub) {
-               intmax_t d;
-               char *s = str + matches[1].rm_so, *p = str + matches[1].rm_eo;
                regfree(&re);
+               s = str + matches[1].rm_so;
+               p = str + matches[1].rm_eo;
 
                *p = '\0';
                d = strtoimax(s, &p, 10);
@@ -193,11 +194,11 @@ lex(char *s, Val *v)
  * ops  is the operator stack, opp  points to one past last op    on the stack
  */
 static int
-parse(char **expr, int exprlen)
+parse(char *expr[], int exprlen)
 {
-       Val vals[exprlen], *valp = vals;
+       Val vals[exprlen], *valp = vals, v;
        int ops[exprlen], *opp = ops;
-       int i, lasttype = 0;
+       int i, type, lasttype = 0;
        char prec[] = { /* precedence of operators */
                ['|'] = 1,
                ['&'] = 2,
@@ -208,10 +209,7 @@ parse(char **expr, int exprlen)
        };
 
        for (i = 0; i < exprlen; i++) {
-               Val v;
-               int type = lex(expr[i], &v);
-
-               switch (type) {
+               switch ((type = lex(expr[i], &v))) {
                case VAL:
                        *valp++ = v;
                        break;
-- 
2.3.1

Reply via email to