diff options
Diffstat (limited to 'Completion/Unix')
-rw-r--r-- | Completion/Unix/Command/_hexdump | 35 | ||||
-rw-r--r-- | Completion/Unix/Command/_last | 42 |
2 files changed, 60 insertions, 17 deletions
diff --git a/Completion/Unix/Command/_hexdump b/Completion/Unix/Command/_hexdump new file mode 100644 index 000000000..f700ca683 --- /dev/null +++ b/Completion/Unix/Command/_hexdump @@ -0,0 +1,35 @@ +#compdef hexdump hd + +local -a args fmts optpar +fmts=( + {--one-byte-octal,-b}'[one-byte octal display]' + {--one-byte-char,-c}'[one-byte character display]' + {--two-bytes-decimal,-d}'[two-byte decimal display]' + {--two-bytes-octal,-o}'[two-byte octal display]' + {--two-bytes-hex,-x}'[two-byte hexadecimal display]' + {--format=,-e+}'[specify format string to be used for displaying data]:format' + {--format-file=,-f+}'[specify file that contains format strings]:file:_files' +) +args=( + '(H -n --length)'{--length=,-n+}'[interpret only specified amount of input]:length (bytes)' + '(H -s --skip)'{--skip=,-s+}'[skip specified bytes at the beginning]:offset (bytes)' + '(H -v --no-squeezing)'{--no-squeezing,-v}'[output identical lines]' +) + +[[ $service = hexdump ]] && fmts+=( {--canonical,-C}'[canonical hex+ASCII display]' ) + +if [[ $OSTYPE = linux* ]]; then + args+=( + '(-L --color)'{-L+,--color=}'[interpret color formatting specifiers colors are enabled by default]:mode' + + H + '(- *)'{-h,--help}'[display usage information]' + '(- *)'{-V,--version}'[display version information]' + ) +else + # strip long options by taking every second element + print -v fmts -f '%2$s' -- "$fmts[@]" + print -v args -f '%2$s' -- "$args[@]" + optpar=( -A "-*" ) +fi + +_arguments -s -S $optpar '*:file:_files' $args + '(formats)' '(H)'$^fmts diff --git a/Completion/Unix/Command/_last b/Completion/Unix/Command/_last index f198e0fff..2013cc1c2 100644 --- a/Completion/Unix/Command/_last +++ b/Completion/Unix/Command/_last @@ -4,19 +4,20 @@ local pattern arg args ttys ttys=( /dev/tty*(N) /dev/pts/*(N) reboot ) ttys=( ${ttys#/dev/} ) +[[ $OSTYPE = linux-gnu ]] || args=( -A "-*" ) for pattern arg in \ - '(solaris*|linux-gnu)' '-a[display hostname in last column]' \ - '((free|net|open)bsd*|darwin*|dragonfly*|linux-gnu)' '-h[limit sessions by hostname]:host:_hosts' \ - '((free|open)bsd*|linux-gnu)' '-s[report duration in seconds]' \ - '(freebsd*|openbsd*)' '-d[limit sessions to those active at snapshot time]:time ([[CC]YY][MMDD]hhmm[.SS])' \ - '((net|free|open)bsd*|darwin*|dragonfly*)' '-t[limit sessions by tty]:tty:_ttys -D' \ + '(solaris*|linux-gnu)' '(--hostlast)-a[display hostname in last column]' \ + '((free|net|open)bsd*|darwin*|dragonfly*)' '-h+[limit sessions by hostname]:host:_hosts' \ + '((free|open)bsd*)' '-s[report duration in seconds]' \ + '(freebsd*|openbsd*)' '-d+[limit sessions to those active at snapshot time]:time ([[CC]YY][MMDD]hhmm[.SS])' \ + '((net|free|open)bsd*|darwin*|dragonfly*)' '-t+[limit sessions by tty]:tty:_ttys -D' \ 'openbsd*' '-c[calculate total time]' \ - '^darwin*' '-f[specify account file]:file:_files' \ - '(solaris*|linux-gnu|freebsd*|openbsd*)' '-n[specify number of lines to show]:number' \ + '^darwin*' '(--file)-f+[specify account file]:file:_files' \ + '(solaris*|linux-gnu|freebsd*|openbsd*)' '(--limit)-n+[specify number of lines to show]:number' \ '((open|net)bsd*|dragonfly*)' '-T[show more detailed time information including year and seconds]' \ 'netbsd*' '-x[assume file is in wtmpx(5) format]' \ 'netbsd*' '-n[show IP of remote hosts]' \ - 'freebsd*' '-w[show seconds in durarion field]' \ + 'freebsd*' '-w[show seconds in duration field]' \ 'freebsd*' '-y[show year in session start time]' do [[ $OSTYPE = $~pattern ]] && args+=( $arg ) @@ -32,14 +33,21 @@ case $OSTYPE in ;; linux-gnu) args+=( - '-R[suppress display of hostname field]' - '-d[translate IP to hostname]' - '-F[show full login and logout times and dates]' - '-i[show IP of remote hosts]' - '-o[read old-format wtmp]' - '-t[limit sessions to those active at snapshot time]:time (YYYYMMDDhhmmss)' - '-w[show full user and domain names]' - '-x[display shutdown/runlevel entries]' + '(-a)--hostlast[display hostname in last column]' + '(-d --dns -i --ip)'{-d,--dns}'[translate IP to hostname]' + '(-f)--file=[specify account file]:file:_files' + '(-F --fulltimes)'{-F,--fulltimes}'[show full login and logout times and dates]' + '(-i --ip -d --dns)'{-i,--ip}'[show IP of remote hosts]' + '(-n)--limit=[specify number of lines to show]:number' + '(-R --nohostname)'{-R,--nohostname}'[suppress display of hostname field]' + '(-s --since)'{-s+,--since=}'[display lines since the specified time]:time (YYYYMMDDhhmmss)' + '(-t --until)'{-t+,--until=}'[display lines until the specified time]:time (YYYYMMDDhhmmss)' + '(-p --present)'{-p+,--present=}'[display who were present at the specified time]:time (YYYYMMDDhhmmss)' + '(-w --fullnames)'{-w,--fullnames}'[show full user and domain names]' + '(-x --system)'{-x,--system}'[display shutdown/runlevel entries]' + '--time-format=[show timestamps in the specified format]:format:(notime short full iso)' + '(- *)'{-h,--help}'[display usage information]' + '(- *)'{-V,--version}'[display version information]' ) ;; esac @@ -50,4 +58,4 @@ else args+=( '*:user:_users' ) fi -_arguments -s $args +_arguments -s -S $args |