diff options
author | Oliver Kiddle <opk@zsh.org> | 2023-09-26 23:08:54 +0200 |
---|---|---|
committer | Oliver Kiddle <opk@zsh.org> | 2023-10-11 01:06:50 +0200 |
commit | 70320635b4b50b1e84f70e17bf40f107d140bdcf (patch) | |
tree | 1cc25c768b07ea9fe565c3aac15b45f5fcdff6bb | |
parent | 985952e2f616c816e24c4cf5aee70416e4f23e07 (diff) | |
download | zsh-70320635b4b50b1e84f70e17bf40f107d140bdcf.tar.gz zsh-70320635b4b50b1e84f70e17bf40f107d140bdcf.zip |
52189: ignore compadd -M if -U also specified as they don't make sense together
This fixes df completion.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | Completion/Unix/Type/_umountable | 3 | ||||
-rw-r--r-- | Src/Zle/complete.c | 4 |
3 files changed, 9 insertions, 2 deletions
@@ -1,5 +1,9 @@ 2023-10-10 Oliver Kiddle <opk@zsh.org> + * 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; |