diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2016-08-03 21:38:50 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2016-08-03 21:38:50 +0300 |
commit | f591d307d9af95bfa0ccda4d5eb76a674447ba39 (patch) | |
tree | 65c8e2259634653566fc2c49ec996ff416330361 /re.c | |
parent | 9907a598dca8f129422c42f8c4fa3b4e2c988221 (diff) | |
download | egawk-f591d307d9af95bfa0ccda4d5eb76a674447ba39.tar.gz egawk-f591d307d9af95bfa0ccda4d5eb76a674447ba39.tar.bz2 egawk-f591d307d9af95bfa0ccda4d5eb76a674447ba39.zip |
Restore typed regexp code in a new branch.
Diffstat (limited to 're.c')
-rw-r--r-- | re.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -351,10 +351,14 @@ re_update(NODE *t) /* regex was compiled with settings matching IGNORECASE */ if ((t->re_flags & CONSTANT) != 0) { /* it's a constant, so just return it as is */ - assert(t->type == Node_regex); + assert(t->type == Node_regex || t->type == Node_typedregex); return t->re_reg; } t1 = t->re_exp; + if (t1->type == Node_typedregex) { + assert((t1->re_flags & CONSTANT) != 0); + return t1->re_reg; + } if (t->re_text != NULL) { /* if contents haven't changed, just return it */ if (cmp_nodes(t->re_text, t1) == 0) |