diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2006-10-30 12:57:52 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2006-10-30 12:57:52 +0000 |
commit | 9986ebfd3334ac58f81259d2ec276379c4c020ec (patch) | |
tree | 09820e1dc3c182a522ced6fc39bb4bbb6eac88ca /Src/Zle/compresult.c | |
parent | ff9f2bb88e60e77e8b6d7670ec90651ac4ae5cec (diff) | |
download | zsh-9986ebfd3334ac58f81259d2ec276379c4c020ec.tar.gz zsh-9986ebfd3334ac58f81259d2ec276379c4c020ec.tar.xz zsh-9986ebfd3334ac58f81259d2ec276379c4c020ec.zip |
obscure crash with hasbrpsfx()
Diffstat (limited to 'Src/Zle/compresult.c')
-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; } } |