diff options
Diffstat (limited to 'pattern.c')
| -rw-r--r-- | pattern.c | 22 |
1 files changed, 12 insertions, 10 deletions
@@ -34,16 +34,18 @@ static pat_t *bp_simplepattern(file_t *f, const char *str); pat_t *new_pat(file_t *f, const char *start, const char *end, size_t minlen, ssize_t maxlen, enum pattype_e type) { static size_t next_pat_id = 1; - allocated_pat_t *tracker = new(allocated_pat_t); - tracker->next = f->pats; - f->pats = tracker; - tracker->pat.type = type; - tracker->pat.start = start; - tracker->pat.end = end; - tracker->pat.min_matchlen = minlen; - tracker->pat.max_matchlen = maxlen; - tracker->pat.id = next_pat_id++; - return &tracker->pat; + pat_t *pat = new(pat_t); + *pat = (pat_t){ + .next = f->pats, + .type = type, + .start = start, + .end = end, + .min_matchlen = minlen, + .max_matchlen = maxlen, + .id = next_pat_id++, + }; + f->pats = pat; + return pat; } // |
