1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-18 15:21:16 +02:00

41825/0002: _stat: Complete -x options to zsh/stat's 'zstat'.

This commit is contained in:
Daniel Shahaf 2017-10-07 01:03:18 +00:00 committed by Daniel Shahaf
parent c68cfb1c36
commit 57cfa8b160
2 changed files with 24 additions and 15 deletions

View file

@ -1,5 +1,8 @@
2017-10-11 Daniel Shahaf <d.s@xxxxxxxxxxxxxxxxxx>
* 41825/0002: Completion/Zsh/Command/_stat: Complete -x options
to zsh/stat's 'zstat'.
* 41825/0001: Completion/Zsh/Command/_stat: Only complete 'stat'
if it's provided by the zsh/stat builtin.

View file

@ -2,24 +2,30 @@
local expl ret=1
if [[ "$words[CURRENT-1]" = -[AH] ]]; then
_arrays
elif [[ $service == zstat ]] ||
if [[ $service == zstat ]] ||
(( ${+builtins[stat]} )) ||
{ (( ! ${+builtins} )) && [[ $(type -w stat) == '*: builtin' ]] }
then
_tags files options || return 1
while _tags; do
_requested files && _files && ret=0
_requested options &&
{ ! zstyle -T ":completion:${curcontext}:options" prefix-needed ||
[[ "$PREFIX[1]" = + || ret -eq 1 ]] } &&
_all_labels options expl 'inode element' \
compadd - +device +inode +mode +nlink +uid +gid +rdev \
+size +atime +mtime +ctime +blksize +block +link
(( ret )) || return 0
done
_arguments -s -S : \
'(-H)-A[assign the results to array, don'\''t print]:array variable:_parameters -g "*array*"' \
- set1 \
+device +inode +mode +nlink +uid +gid +rdev \
+size +atime +mtime +ctime +blksize +block +link \
'(-A)-H[assign the results to associative array, don'\''t print]:associative array variable:_parameters -g "*association*"' \
'(:)-f[stat a file descriptor]:file descriptor:_file_descriptors' \
'(-s)-F:strftime(3) format string:_date_formats zsh' \
'(-s)-g[show times in GMT/UTC]' \
'-L[don'\''t dereference symbolic links; use lstat(2)]' \
'(-N)-n[always show names of files]' \
'(-n)-N[never show names of files]' \
'-o[print file modes in octal rather than decimal]' \
'-r[print raw data]' \
'-s[print mode,uid,gid and times as strings]' \
'(-T)-t[always show type names]' \
'(-t)-T[never show type names]' \
'*:files to stat:_files' \
- set2 \
'-l[list stat types]'
else
# TODO: system-specific completion
# TODO: choose this codepath if 'command stat ...' or '=stat ...' is used