From 70320635b4b50b1e84f70e17bf40f107d140bdcf Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Tue, 26 Sep 2023 23:08:54 +0200 Subject: [PATCH] 52189: ignore compadd -M if -U also specified as they don't make sense together This fixes df completion. --- ChangeLog | 4 ++++ Completion/Unix/Type/_umountable | 3 ++- Src/Zle/complete.c | 4 +++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index cfc1a2841..a933a5186 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2023-10-10 Oliver Kiddle + * 52189: Completion/Unix/Type/_umountable, Src/Zle/complete.c: + ignore compadd -M if -U also specified as they don't make + sense together, this fixes df completion + * 52217: Completion/BSD/Command/_freebsd-update, Completion/BSD/Command/_ipfw, Completion/BSD/Command/_pfctl, Completion/BSD/Command/_sockstat, Completion/Unix/Command/_cmp, diff --git a/Completion/Unix/Type/_umountable b/Completion/Unix/Type/_umountable index 6e4988e2d..0111555b6 100644 --- a/Completion/Unix/Type/_umountable +++ b/Completion/Unix/Type/_umountable @@ -1,6 +1,6 @@ #autoload local tmp -local dev_tmp dpath_tmp mp_tmp mline +local -a dev_tmp dpath_tmp mp_tmp mline case "$OSTYPE" in linux*) @@ -15,6 +15,7 @@ irix*) ;; freebsd*|dragonfly*) /sbin/mount | while read mline; do + [[ $mline[(w)1] = map ]] && continue dev_tmp+=( $mline[(w)1] ) mp_tmp+=( $mline[(w)3] ) done diff --git a/Src/Zle/complete.c b/Src/Zle/complete.c index 96ad7b3f1..342611f1f 100644 --- a/Src/Zle/complete.c +++ b/Src/Zle/complete.c @@ -829,7 +829,9 @@ bin_compadd(char *name, char **argv, UNUSED(Options ops), UNUSED(int func)) ca_args: - if (mstr && (match = parse_cmatcher(name, mstr)) == pcm_err) { + if (mstr && (dat.aflags & CAF_MATCH) && + (match = parse_cmatcher(name, mstr)) == pcm_err) + { zsfree(mstr); zfree(dat.dpar, dparsize); return 1;