summaryrefslogtreecommitdiff
path: root/Src/Zle/compresult.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Zle/compresult.c')
-rw-r--r--Src/Zle/compresult.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/Src/Zle/compresult.c b/Src/Zle/compresult.c
index 43dce9276..ebfb2cc47 100644
--- a/Src/Zle/compresult.c
+++ b/Src/Zle/compresult.c
@@ -1225,6 +1225,8 @@ do_menucmp(int lst)
int
reverse_menu(UNUSED(Hookdef dummy), UNUSED(void *dummy2))
{
+ int was_meta;
+
do {
if (minfo.cur == (minfo.group)->matches) {
do {
@@ -1239,9 +1241,16 @@ reverse_menu(UNUSED(Hookdef dummy), UNUSED(void *dummy2))
((*minfo.cur)->flags & CMF_DUMMY) ||
(((*minfo.cur)->flags & (CMF_NOLIST | CMF_MULT)) &&
(!(*minfo.cur)->str || !*(*minfo.cur)->str)));
- metafy_line();
+ /* May already be metafied if called from within a selection */
+ if (zlemetaline == NULL) {
+ metafy_line();
+ was_meta = 0;
+ }
+ else
+ was_meta = 1;
do_single(*(minfo.cur));
- unmetafy_line();
+ if (!was_meta)
+ unmetafy_line();
return 0;
}