diff --git a/src/modal.c b/src/modal.c index c0e5eae..0e4f055 100644 --- a/src/modal.c +++ b/src/modal.c @@ -106,10 +106,10 @@ write_rule(Rule *r, char *s, int create) } static int -apply_rule(Rule *r, char **regs, char *s) +apply_rule(Rule *r, char *s) { unsigned int i, id; - char c, *a = r->a, *b = r->b, *origin = dst_, *reg; + char c, *a = r->a, *b = r->b, *origin = dst_, *reg, *regs[0x08]; /* phase: clean registers */ for(i = 0; i < r->ptr; i++) regs[i] = NULL; @@ -198,7 +198,7 @@ compile_rule(Rule *r, int id, char *src) static int rewrite(void) { - char c, last = 0, *cap, *s = src_, *regs[0x08]; + char c, last = 0, *cap, *s = src_; while(*s == ' ') s++; while((c = *s)) { if(spacer(last)) { @@ -214,11 +214,11 @@ rewrite(void) if(c == '?' && s[1] == '(') { cap = walk(s + 1), compile_rule(&lambda, -1, s + 2), s = cap; while(*s == ' ') s++; - return apply_rule(&lambda, regs, s); + return apply_rule(&lambda, s); } /* phase: match */ for(r = rules; r < rules_; r++) - if(apply_rule(r, regs, s)) return 1; + if(apply_rule(r, s)) return 1; } *dst_++ = last = c; s++;