diff options
Diffstat (limited to 'Src/Zle')
-rw-r--r-- | Src/Zle/compresult.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/Src/Zle/compresult.c b/Src/Zle/compresult.c index 2dabe2c35..43dce9276 100644 --- a/Src/Zle/compresult.c +++ b/Src/Zle/compresult.c @@ -683,11 +683,19 @@ instmatch(Cmatch m, int *scs) mod_export int hasbrpsfx(Cmatch m, char *pre, char *suf) { - METACHECK(); + int was_meta; if (m->flags & CMF_ALL) return 1; - else { + + /* May not be metafied if calculating whether to show a list. */ + if (zlemetaline == NULL) { + was_meta = 0; + metafy_line(); + } else + was_meta = 1; + + { char *op = lastprebr, *os = lastpostbr; VARARR(char, oline, zlemetall); int oll = zlemetall, ocs = zlemetacs, ole = lastend, opcs = brpcs, oscs = brscs, ret; @@ -717,6 +725,8 @@ hasbrpsfx(Cmatch m, char *pre, char *suf) lastprebr = op; lastpostbr = os; + if (!was_meta) + unmetafy_line(); return ret; } } |