From 91c56ed27a7e191a257778af831e3d491cdb995c Mon Sep 17 00:00:00 2001 From: Philip Sequeira Date: Mon, 16 Sep 2024 04:13:38 -0400 Subject: 53095: fix completion for chmod/chown --reference with escaped filename --- ChangeLog | 4 ++++ Completion/Unix/Command/_chmod | 4 ++-- Completion/Unix/Command/_chown | 6 +++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index f1f23bd31..d397fc249 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2024-09-18 Oliver Kiddle + * Philip Sequeira: 53095: Completion/Unix/Command/_chmod, + Completion/Unix/Command/_chown: fix completion for chmod/chown + --reference with escaped filename + * 53094: configure.ac, Src/signals.h: remove unused autoconf tests * 53093: Src/input.c: silence compiler warning when USE_LSEEK diff --git a/Completion/Unix/Command/_chmod b/Completion/Unix/Command/_chmod index 42e3fa63b..693f348dc 100644 --- a/Completion/Unix/Command/_chmod +++ b/Completion/Unix/Command/_chmod @@ -67,13 +67,13 @@ case "$variant" in ;; esac -_arguments -C -s -S $aopts "$args[@]" && ret=0 +_arguments -C -s -S -0 $aopts "$args[@]" && ret=0 case "$state" in files) if [[ -n $opt_args[--reference] ]]; then zmodload -F zsh/stat b:zstat 2>/dev/null - typeset -i8 ref=$(zstat +mode $opt_args[--reference]) + typeset -i8 ref=$(zstat +mode $opt_args[--reference]:Q) _wanted files expl file _files -g "*(-.^f${ref#??})" && ret=0 elif [[ $line[1] = [0-7]## ]]; then _wanted files expl file _files -g "*(-.^f$line[1])" && ret=0 diff --git a/Completion/Unix/Command/_chown b/Completion/Unix/Command/_chown index 4362d6e75..bcc6aec2f 100644 --- a/Completion/Unix/Command/_chown +++ b/Completion/Unix/Command/_chown @@ -71,7 +71,7 @@ case "$variant" in esac (( $+words[(r)--reference*] )) || args+=( '(--reference)1: :->owner' ) -_arguments -C -s -S $aopts "$args[@]" '*: :->files' && ret=0 +_arguments -C -s -S -0 $aopts "$args[@]" '*: :->files' && ret=0 case $state in owner) @@ -95,8 +95,8 @@ case $state in (( $+opt_args[-h] || $+opt_args[--no-dereference] )) || deref="-" if (( $+opt_args[--reference] )); then zmodload -F zsh/stat b:zstat 2>/dev/null - usr=$(zstat +uid $opt_args[--reference]) - grp=$(zstat +gid $opt_args[--reference]) + usr=$(zstat +uid $opt_args[--reference]:Q) + grp=$(zstat +gid $opt_args[--reference]:Q) _wanted files expl file _files -g "*($deref^u$usr,$deref^g$grp)" && ret=0 return ret fi -- cgit 1.4.1