From 8ac2e84c61fe067dc2676cbf4b29d431c209bcf8 Mon Sep 17 00:00:00 2001 From: Michael Prokop Date: Tue, 17 Apr 2007 09:21:29 +0200 Subject: [PATCH] Big rewrite of /etc/zsh/completion.d/, thanks to ft! --- debian/changelog | 7 + etc/zsh/completion.d/_debian_rules | 4 + etc/zsh/completion.d/_fbset | 15 + etc/zsh/completion.d/_grml-lang | 3 + etc/zsh/completion.d/_grml-wallpaper | 5 + .../{site-functions => completion.d}/_grmlinitd | 0 etc/zsh/{site-functions => completion.d}/_hg | 0 etc/zsh/completion.d/_iwconfig | 86 ++ etc/zsh/completion.d/debian_rules | 2 - etc/zsh/completion.d/fbset | 3 - etc/zsh/completion.d/grml-lang | 2 - etc/zsh/completion.d/grml-wallpaper | 14 - etc/zsh/completion.d/iwconfig | 88 -- etc/zsh/functions.d/grml-wallpaper | 5 + etc/zsh/zshrc | 18 +- grml-etc-core.diff | 1306 ++++++++++++++++++++ 16 files changed, 1441 insertions(+), 117 deletions(-) create mode 100644 etc/zsh/completion.d/_debian_rules create mode 100644 etc/zsh/completion.d/_fbset create mode 100644 etc/zsh/completion.d/_grml-lang create mode 100644 etc/zsh/completion.d/_grml-wallpaper rename etc/zsh/{site-functions => completion.d}/_grmlinitd (100%) rename etc/zsh/{site-functions => completion.d}/_hg (100%) create mode 100644 etc/zsh/completion.d/_iwconfig delete mode 100644 etc/zsh/completion.d/debian_rules delete mode 100644 etc/zsh/completion.d/fbset delete mode 100644 etc/zsh/completion.d/grml-lang delete mode 100644 etc/zsh/completion.d/grml-wallpaper delete mode 100644 etc/zsh/completion.d/iwconfig create mode 100644 etc/zsh/functions.d/grml-wallpaper create mode 100644 grml-etc-core.diff diff --git a/debian/changelog b/debian/changelog index 36b78d0..66d5507 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +grml-etc-core (0.2.47) unstable; urgency=low + + * Big rewrite of /etc/zsh/completion.d/, thanks to ft! + [Testing: issue201] + + -- Michael Prokop Tue, 17 Apr 2007 09:21:03 +0200 + grml-etc-core (0.2.46) unstable; urgency=low * /etc/zsh/zshrc: deactivate url-quote-magic by default and diff --git a/etc/zsh/completion.d/_debian_rules b/etc/zsh/completion.d/_debian_rules new file mode 100644 index 0000000..9a24d95 --- /dev/null +++ b/etc/zsh/completion.d/_debian_rules @@ -0,0 +1,4 @@ +#compdef debian/rules +# type debian/rules inside a source package + +words=(make -f debian/rules) _make diff --git a/etc/zsh/completion.d/_fbset b/etc/zsh/completion.d/_fbset new file mode 100644 index 0000000..f7fb0b7 --- /dev/null +++ b/etc/zsh/completion.d/_fbset @@ -0,0 +1,15 @@ +#compdef fbset +# simple completion for fbset (switch resolution on console) + +fb_modes=( + 640x480-60 640x480-72 640x480-75 640x480-90 640x480-100 + 768x576-75 + 800x600-48-lace 800x600-56 800x600-60 800x600-70 800x600-72 800x600-75 800x600-90 800x600-100 + 1024x768-43-lace 1024x768-60 1024x768-70 1024x768-72 1024x768-75 1024x768-90 1024x768-100 + 1152x864-43-lace 1152x864-47-lace 1152x864-60 1152x864-70 1152x864-75 1152x864-80 + 1280x960-75-8 1280x960-75 1280x960-75-32 + 1280x1024-43-lace 1280x1024-47-lace 1280x1024-60 1280x1024-70 1280x1024-74 1280x1024-75 + 1600x1200-60 1600x1200-66 1600x1200-76 +) + +compadd ${fb_modes} diff --git a/etc/zsh/completion.d/_grml-lang b/etc/zsh/completion.d/_grml-lang new file mode 100644 index 0000000..c78ec36 --- /dev/null +++ b/etc/zsh/completion.d/_grml-lang @@ -0,0 +1,3 @@ +#compdef grml-lang + +compadd at ch de us diff --git a/etc/zsh/completion.d/_grml-wallpaper b/etc/zsh/completion.d/_grml-wallpaper new file mode 100644 index 0000000..c84be17 --- /dev/null +++ b/etc/zsh/completion.d/_grml-wallpaper @@ -0,0 +1,5 @@ +#compdef grml-wallpaper + +dirs=(. /usr/share/grml/) +_description files expl 'set desktop wallpaper on grml system' +_files "$expl[@]" -W dirs -g '*.{jpg,png}(-.)' diff --git a/etc/zsh/site-functions/_grmlinitd b/etc/zsh/completion.d/_grmlinitd similarity index 100% rename from etc/zsh/site-functions/_grmlinitd rename to etc/zsh/completion.d/_grmlinitd diff --git a/etc/zsh/site-functions/_hg b/etc/zsh/completion.d/_hg similarity index 100% rename from etc/zsh/site-functions/_hg rename to etc/zsh/completion.d/_hg diff --git a/etc/zsh/completion.d/_iwconfig b/etc/zsh/completion.d/_iwconfig new file mode 100644 index 0000000..6731597 --- /dev/null +++ b/etc/zsh/completion.d/_iwconfig @@ -0,0 +1,86 @@ +#compdef iwconfig + +_wlan_interfaces() { + local intf + intf=$(iwconfig |& egrep 'IEEE 802.11[abg]' | cut -d' ' -f1 | tr ' ' \\n ) + # intf=$( fgrep ': ' < /proc/net/wireless | cut -d: -f1 | tr \\n ' ' | tr -s " \t" ) + _wanted interfaces expl 'wireless network interface' \ + compadd ${intf} +} + +_wlan_networks() { + networks=() + while read LINE + do + networks+=$LINE + done <<(iwlist scanning 2>/dev/null | grep ESSID | sed -e s/'.*"\(.*\)"'/'\1'/ ) + _wanted -x names expl 'network name' \ + compadd off any on ${networks} +} + +local curcontext="$curcontext" state line expl ret=1 + +_arguments -C \ + '(1 * -)--help[display help information]' \ + '(1 * -)--version[display version information]' \ + '1:network interface:_wlan_interfaces' \ + '*:parameter:->parameters' && ret=0 + +if [[ -n "$state" ]]; then + local -a arg + + case $words[CURRENT-1] in + essid) _wlan_networks;; + nwid|domain) _message -e ids 'network id' ;; + freq|channel) _message -e channels 'channel or frequency' ;; + sens) _message -e levels 'signal level' ;; + mode) + _wanted modes expl 'operating mode' compadd \ + Ad-Hoc Managed Master Repeater Secondary Monitor Auto + ;; + ap) _message -e access-points 'access point' ;; + nick*) _message -e names 'nickname' ;; + rate|bit*) _message -e bit-rates 'bit rate' ;; + rts*|frag*) _message -e sizes 'size' ;; + key|enc*) _message -e keys 'key' ;; + power) + arg=( + \*{min,max}'[modifier]' + '*off[disable power management]' + '*on[enable power management]' + '*all[receive all packets]' + 'unicast[receive unicast packets only]' + 'multicast[receive multicast and broadcast packets only]' + ) + ;& + min|max) + _values -S ' ' -w 'parameter' \ + 'period[set the period between wake ups]' \ + 'timeout[set timeout before sleep]' \ + $arg[@] && ret=0 + ;; + period|timeout) _message -e timeouts 'timeout' ;; + txpower) _message -e power 'transmit power' ;; + retry) _message -e retries 'retries' ;; + *) + _values -S ' ' -w 'option' \ + 'essid[set the network name]' \ + '(nwid domain)'{nwid,domain}'[set the network ID]' \ + '(freq channel)'{freq,channel}'[set the operating frequency or channel]' \ + 'sens[set the sensitivity threhold]' \ + 'mode[set operating mode]' \ + 'ap[register with given access point]' \ + '(nick nickname)'nick{,name}'[set the nickname]' \ + '(rate bit)'{rate,bit}'[set the bitrate]' \ + 'rts[set packet size threshold for sending RTS]' \ + 'frag[set maximum packet fragment size]' \ + \*{key,enc}'[add encryption key]' \ + '*power[manipulate power management scheme parameters]' \ + 'txpower[set transmit power]' \ + 'retry[set number of retries]' \ + 'commit[apply changes imediately]' && ret=0 + ;; + esac +fi + +return ret diff --git a/etc/zsh/completion.d/debian_rules b/etc/zsh/completion.d/debian_rules deleted file mode 100644 index 17b3d65..0000000 --- a/etc/zsh/completion.d/debian_rules +++ /dev/null @@ -1,2 +0,0 @@ - _debian_rules() { words=(make -f debian/rules) _make } - compdef _debian_rules debian/rules # type debian/rules inside a source package diff --git a/etc/zsh/completion.d/fbset b/etc/zsh/completion.d/fbset deleted file mode 100644 index 073b9f7..0000000 --- a/etc/zsh/completion.d/fbset +++ /dev/null @@ -1,3 +0,0 @@ -# simple completion for fbset (switch resolution on console) - _fbmodes() { compadd 640x480-60 640x480-72 640x480-75 640x480-90 640x480-100 768x576-75 800x600-48-lace 800x600-56 800x600-60 800x600-70 800x600-72 800x600-75 800x600-90 800x600-100 1024x768-43-lace 1024x768-60 1024x768-70 1024x768-72 1024x768-75 1024x768-90 1024x768-100 1152x864-43-lace 1152x864-47-lace 1152x864-60 1152x864-70 1152x864-75 1152x864-80 1280x960-75-8 1280x960-75 1280x960-75-32 1280x1024-43-lace 1280x1024-47-lace 1280x1024-60 1280x1024-70 1280x1024-74 1280x1024-75 1600x1200-60 1600x1200-66 1600x1200-76 } - compdef _fbmodes fbset diff --git a/etc/zsh/completion.d/grml-lang b/etc/zsh/completion.d/grml-lang deleted file mode 100644 index 73e39ca..0000000 --- a/etc/zsh/completion.d/grml-lang +++ /dev/null @@ -1,2 +0,0 @@ - _grml-lang() { compadd at ch de us ; } - compdef _grml-lang grml-lang diff --git a/etc/zsh/completion.d/grml-wallpaper b/etc/zsh/completion.d/grml-wallpaper deleted file mode 100644 index 63efa0d..0000000 --- a/etc/zsh/completion.d/grml-wallpaper +++ /dev/null @@ -1,14 +0,0 @@ - grml-wallpaper() { - if [ -f /usr/share/grml/"$1" ] ; then - Esetroot -scale /usr/share/grml/"$1" - else - Esetroot -scale $* - fi - } - - _grml-wallpaper() { - dirs=(. /usr/share/grml/) - _description files expl 'set desktop wallpaper on grml system' - _files "$expl[@]" -W dirs -g '*.{jpg,png}(-.)' - } - compdef _grml-wallpaper grml-wallpaper diff --git a/etc/zsh/completion.d/iwconfig b/etc/zsh/completion.d/iwconfig deleted file mode 100644 index c3a48f0..0000000 --- a/etc/zsh/completion.d/iwconfig +++ /dev/null @@ -1,88 +0,0 @@ -_wlan_interfaces() { - local intf - intf=$(iwconfig |& egrep 'IEEE 802.11[abg]' | cut -d' ' -f1 | tr ' ' \\n ) - # intf=$( fgrep ': ' < /proc/net/wireless | cut -d: -f1 | tr \\n ' ' | tr -s " \t" ) - _wanted interfaces expl 'wireless network interface' \ - compadd ${intf} -} - -_wlan_networks() { - networks=() - while read LINE - do - networks+=$LINE - done <<(iwlist scanning 2>/dev/null | grep ESSID | sed -e s/'.*"\(.*\)"'/'\1'/ ) - _wanted -x names expl 'network name' \ - compadd off any on ${networks} -} - -_iwconfig() { - local curcontext="$curcontext" state line expl ret=1 - - _arguments -C \ - '(1 * -)--help[display help information]' \ - '(1 * -)--version[display version information]' \ - '1:network interface:_wlan_interfaces' \ - '*:parameter:->parameters' && ret=0 - - if [[ -n "$state" ]]; then - local -a arg - - case $words[CURRENT-1] in - essid) _wlan_networks;; - nwid|domain) _message -e ids 'network id' ;; - freq|channel) _message -e channels 'channel or frequency' ;; - sens) _message -e levels 'signal level' ;; - mode) - _wanted modes expl 'operating mode' compadd \ - Ad-Hoc Managed Master Repeater Secondary Monitor Auto - ;; - ap) _message -e access-points 'access point' ;; - nick*) _message -e names 'nickname' ;; - rate|bit*) _message -e bit-rates 'bit rate' ;; - rts*|frag*) _message -e sizes 'size' ;; - key|enc*) _message -e keys 'key' ;; - power) - arg=( - \*{min,max}'[modifier]' - '*off[disable power management]' - '*on[enable power management]' - '*all[receive all packets]' - 'unicast[receive unicast packets only]' - 'multicast[receive multicast and broadcast packets only]' - ) - ;& - min|max) - _values -S ' ' -w 'parameter' \ - 'period[set the period between wake ups]' \ - 'timeout[set timeout before sleep]' \ - $arg[@] && ret=0 - ;; - period|timeout) _message -e timeouts 'timeout' ;; - txpower) _message -e power 'transmit power' ;; - retry) _message -e retries 'retries' ;; - *) - _values -S ' ' -w 'option' \ - 'essid[set the network name]' \ - '(nwid domain)'{nwid,domain}'[set the network ID]' \ - '(freq channel)'{freq,channel}'[set the operating frequency or channel]' \ - 'sens[set the sensitivity threhold]' \ - 'mode[set operating mode]' \ - 'ap[register with given access point]' \ - '(nick nickname)'nick{,name}'[set the nickname]' \ - '(rate bit)'{rate,bit}'[set the bitrate]' \ - 'rts[set packet size threshold for sending RTS]' \ - 'frag[set maximum packet fragment size]' \ - \*{key,enc}'[add encryption key]' \ - '*power[manipulate power management scheme parameters]' \ - 'txpower[set transmit power]' \ - 'retry[set number of retries]' \ - 'commit[apply changes imediately]' && ret=0 - ;; - esac - fi - - return ret -} - -compdef _iwconfig iwconfig diff --git a/etc/zsh/functions.d/grml-wallpaper b/etc/zsh/functions.d/grml-wallpaper new file mode 100644 index 0000000..3b6f855 --- /dev/null +++ b/etc/zsh/functions.d/grml-wallpaper @@ -0,0 +1,5 @@ +if [ -f /usr/share/grml/"$1" ] ; then + Esetroot -scale /usr/share/grml/"$1" +else + Esetroot -scale "$@" +fi diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index 79294d2..018914c 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -88,8 +88,16 @@ # Search path for the cd comman # cdpath=(.. ~) -# Support our own site-functions - [ -d /etc/zsh/site-functions ] && FPATH=/etc/zsh/site-functions:$FPATH +# completion functions go to /etc/zsh/completion.d +# function files may be put into /etc/zsh/functions.d, from where they +# will be automatically autoloaded. + [[ -d /etc/zsh/completion.d ]] && fpath+=( /etc/zsh/completion.d ) + if [[ -d /etc/zsh/functions.d ]] ; then + fpath+=( /etc/zsh/functions.d ) + for func in /etc/zsh/functions.d/[^_]*[^~] ; do + autoload -U ${func:t} + done + fi # automatically remove duplicates from these arrays typeset -U path cdpath fpath manpath @@ -764,12 +772,6 @@ Run "grml-tips ssl-certificate" if you need further instructions. # {{{ completion stuff -# Where to look for autoloaded function definitions - if [ -d /etc/zsh/completion.d ] ; then - local comp=/etc/zsh/completion.d - for func in $comp/*(N-.:t); . ${comp}/${func} - fi - # called later (via is4 && grmlcomp) # notice: use 'zstyle' for getting current settings # press ^Xh (control-x h) for getting tags in context; ^X? (control-x ?) to run complete_debug with trace output diff --git a/grml-etc-core.diff b/grml-etc-core.diff new file mode 100644 index 0000000..4a6d2e2 --- /dev/null +++ b/grml-etc-core.diff @@ -0,0 +1,1306 @@ +searching for changes +changeset: 150:1c8cb321138a +user: Frank Terbeck +date: Tue Apr 17 01:06:26 2007 +0200 +summary: moved /etc/zsh/site-functions/_* to /etc/zsh/completion.d/; + +diff -r b72fb5695718 -r 1c8cb321138a etc/zsh/completion.d/_grmlinitd +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/etc/zsh/completion.d/_grmlinitd Tue Apr 17 01:06:26 2007 +0200 +@@ -0,0 +1,4 @@ ++#compdef Start Restart Stop Reload ++local scripts ++scripts=( ${$(print /etc/init.d/*(x)):t} ) ++_describe "service startup script" scripts +diff -r b72fb5695718 -r 1c8cb321138a etc/zsh/completion.d/_hg +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/etc/zsh/completion.d/_hg Tue Apr 17 01:06:26 2007 +0200 +@@ -0,0 +1,481 @@ ++#compdef hg ++ ++# Zsh completion script for mercurial. Rename this file to _hg and copy ++# it into your zsh function path (/usr/share/zsh/site-functions for ++# instance) ++# ++# Copyright (C) 2005 Steve Borho ++# ++# This is free software; you can redistribute it and/or modify it under ++# the terms of the GNU General Public License as published by the Free ++# Software Foundation; either version 2 of the License, or (at your ++# option) any later version. ++# ++ ++local curcontext="$curcontext" state line ++typeset -A opt_args ++local subcmds repos tags newFiles addedFiles includeExclude commitMessage ++ ++_mq_state () { ++ case "$state" in ++ (qapplied) ++ compadd $(hg qapplied) ++ ;; ++ (qunapplied) ++ compadd $(hg qunapplied) ++ ;; ++ esac ++} ++ ++tags=($(hg tags 2> /dev/null | sed -e 's/[0-9]*:[a-f0-9]\{40\}$//; s/ *$//')) ++subcmds=($(hg -v help | sed -e '1,/^list of commands:/d' \ ++ -e '/^global options:/,$d' -e '/^ [^ ]/!d; s/[,:].*//g;')) ++ ++# A lot of commands have these arguments ++includeExclude=( ++ '*-I-[include names matching the given patterns]:dir:_files -W $(hg root) -/' ++ '*--include-[include names matching the given patterns]:dir:_files -W $(hg root) -/' ++ '*-X-[exclude names matching the given patterns]:dir:_files -W $(hg root) -/' ++ '*--exclude-[exclude names matching the given patterns]:dir:_files -W $(hg root) -/') ++ ++commitMessage=( ++ '(-m --message -l --logfile --edit)-e[edit commit message]' ++ '(-m --message -l --logfile -e)--edit[edit commit message]' ++ '(-e --edit -l --logfile --message)-m[use as commit message]:message:' ++ '(-e --edit -l --logfile -m)--message[use as commit message]:message:' ++ '(-e --edit -m --message --logfile)-l[read the commit message from ]:log file:_files' ++ '(-e --edit -m --message -l)--logfile[read the commit message from ]:log file:_files') ++ ++if [[ $service == "hg" ]]; then ++ _arguments -C -A "-*" \ ++ '(--repository)-R[repository root directory]:root:_files -/' \ ++ '(-R)--repository[repository root directory]:root:_files -/' \ ++ '--cwd[change working directory]:new working directory:_files -/' \ ++ '(--noninteractive)-y[do not prompt, assume yes for any required answers]' \ ++ '(-y)--noninteractive[do not prompt, assume yes for any required answers]' \ ++ '(--verbose)-v[enable additional output]' \ ++ '(-v)--verbose[enable additional output]' \ ++ '(--quiet)-q[suppress output]' \ ++ '(-q)--quiet[suppress output]' \ ++ '(--help)-h[display help and exit]' \ ++ '(-h)--help[display help and exit]' \ ++ '--debug[debug mode]' \ ++ '--debugger[start debugger]' \ ++ '--traceback[print traceback on exception]' \ ++ '--time[time how long the command takes]' \ ++ '--profile[profile]' \ ++ '--version[output version information and exit]' \ ++ '*::command:->subcmd' && return 0 ++ ++ if (( CURRENT == 1 )); then ++ _wanted commands expl 'hg command' compadd -a subcmds ++ return ++ fi ++ service="$words[1]" ++ curcontext="${curcontext%:*}=$service:" ++fi ++ ++case $service in ++ (add) ++ newFiles=(${(ps:\0:)"$(hg status -0un .)"}) ++ _arguments $includeExclude \ ++ '*:file:->unknown' ++ _wanted files expl 'unknown files' compadd -a newFiles ++ ;; ++ ++ (addremove) ++ _arguments $includeExclude \ ++ '*:directories:_files -/' # assume they want to add/remove a dir ++ ;; ++ ++ (forget) ++ addedFiles=(${(ps:\0:)"$(hg status -0an .)"}) ++ _arguments $includeExclude \ ++ '*:file:->added' ++ _wanted files expl 'newly added files' compadd -a addedFiles ++ ;; ++ ++ (remove|rm) ++ _arguments $includeExclude \ ++ '*:file:_files' ++ ;; ++ ++ (copy|cp) ++ _arguments $includeExclude \ ++ '(--after)-A[record a copy that has already occurred]' \ ++ '(-A)--after[record a copy that has already occurred]' \ ++ '(--force)-f[forcibly copy over an existing managed file]' \ ++ '(-f)--force[forcibly copy over an existing managed file]' \ ++ '(--parents)-p[append source path to dest]' \ ++ '(-p)--parents[append source path to dest]' \ ++ '*:files:_files' ++ ;; ++ ++ (rename|mv) ++ if (( CURRENT == 2 )); then ++ _arguments $includeExclude \ ++ '(--after)-A[record a rename that has already occurred]' \ ++ '(-A)--after[record a rename that has already occurred]' \ ++ '(--force)-f[replace destination if it exists]' \ ++ '(-F)--force[replace destination if it exists]' \ ++ '(--parents)-p[append source path to dest]' \ ++ '(-p)--parents[append source path to dest]' \ ++ '*:files:_files' ++ else ++ _arguments '*:destination:_files' ++ fi ++ ;; ++ ++ (diff) ++ _arguments $includeExclude \ ++ '*-r[revision]:revision:($tags)' \ ++ '*--rev[revision]:revision:($tags)' \ ++ '(--text)-a[treat all files as text]' \ ++ '(-a)--text[treat all files as text]' \ ++ '*:file:_files' ++ ;; ++ ++ (status|st) ++ _arguments $includeExclude \ ++ '(--no-status)-n[hide status prefix]' \ ++ '(-n)--no-status[hide status prefix]' \ ++ '(--print0)-0[end filenames with NUL, for use with xargs]' \ ++ '(-0)--print0[end filenames with NUL, for use with xargs]' \ ++ '(--modified)-m[show only modified files]' \ ++ '(-m)--modified[show only modified files]' \ ++ '(--added)-a[show only added files]' \ ++ '(-a)--added[show only added files]' \ ++ '(--removed)-r[show only removed files]' \ ++ '(-r)--removed[show only removed files]' \ ++ '(--unknown)-u[show only unknown files]' \ ++ '(-u)--unknown[show only unknown files]' \ ++ '*:search pattern, then files:_files' ++ ;; ++ ++ (revert) ++ addedFiles=(${(ps:\0:)"$(hg status -0amrn .)"}) ++ _arguments \ ++ '(--rev)-r[revision to revert to]:revision:($tags)' \ ++ '(-r)--rev[revision to revert to]:revision:($tags)' \ ++ '(--nonrecursive)-n[do not recurse into subdirectories]' \ ++ '(-n)--nonrecursive[do not recurse into subdirectories]' \ ++ '*:file:->modified' ++ _wanted files expl 'mofified files' compadd -a addedFiles ++ ;; ++ ++ (commit|ci) ++ addedFiles=(${(ps:\0:)"$(hg status -0amrn .)"}) ++ _arguments $includeExclude \ ++ '(--addremove)-A[run addremove during commit]' \ ++ '(-A)--addremove[run addremove during commit]' \ ++ '(--message)-m[use as commit message]:string:' \ ++ '(-m)--message[use as commit message]:string:' \ ++ '(--logfile)-l[read commit message from ]:.log file:_file -g \*.txt' \ ++ '(-l)--logfile[read commit message from ]:.log file:_file -g \*.txt' \ ++ '(--date)-d[record datecode as commit date]:date code:' \ ++ '(-d)--date[record datecode as commit date]:date code:' \ ++ '(--user)-u[record user as commiter]:user:' \ ++ '(-u)--user[record user as commiter]:user:' \ ++ '*:file:->modified' ++ _wanted files expl 'mofified files' compadd -a addedFiles ++ ;; ++ ++ (cat) ++ _arguments $includeExclude \ ++ '(--output)-o[print output to file with formatted name]:filespec:' \ ++ '(-o)--output[print output to file with formatted name]:filespec:' \ ++ '(--rev)-r[revision]:revision:($tags)' \ ++ '(-r)--rev[revision]:revision:($tags)' \ ++ '*:file:_files' ++ ;; ++ ++ (annotate) ++ _arguments $includeExclude \ ++ '(--rev)-r[annotate the specified revision]:revision:($tags)' \ ++ '(-r)--rev[annotate the specified revision]:revision:($tags)' \ ++ '(--text)-a[treat all files as text]' \ ++ '(-a)--text[treat all files as text]' \ ++ '(--user)-u[list the author]' \ ++ '(-u)--user[list the author]' \ ++ '(--changeset)-c[list the changeset]' \ ++ '(-c)--changeset[list the changeset]' \ ++ '(--number)-n[list the revision number (default)]' \ ++ '(-n)--number[list the revision number (default)]' \ ++ '*:files:_files' ++ ;; ++ ++ (grep) ++ _arguments $includeExclude \ ++ '*-r[search in given revision range]:revision:($tags)' \ ++ '*--rev[search in given revision range]:revision:($tags)' \ ++ '--all[print all revisions with matches]' \ ++ '(-print0)-0[end filenames with NUL, for use with xargs]' \ ++ '(-0)--print0[end filenames with NUL, for use with xargs]' \ ++ '(--ignore-case)-i[ignore case when matching]' \ ++ '(-i)--ignore-case[ignore case when matching]' \ ++ '(--files-with-matches)-l[print names of files and revs that match]' \ ++ '(-l)--files-with-matches[print names of files and revs that match]' \ ++ '(--line-number)-n[print matching line numbers]' \ ++ '(-n)--line-number[print matching line numbers]' \ ++ '(--user)-u[print user who committed change]' \ ++ '(-u)--user[print user who committed change]' \ ++ '*:search pattern:' ++ ;; ++ ++ (locate) ++ _arguments $includeExclude \ ++ '(--rev)-r[search repository as it stood at revision]:revision:($tags)' \ ++ '(-r)--rev[search repository as it stood at revision]:revision:($tags)' \ ++ '(--print0)-0[end filenames with NUL, for use with xargs]' \ ++ '(-0)--print0[end filenames with NUL, for use with xargs]' \ ++ '(--fullpath)-f[print complete paths]' \ ++ '(-f)--fullpath[print complete paths]' \ ++ '*:search pattern:' ++ ;; ++ ++ (log|history) ++ _arguments $includeExclude \ ++ '*-r[show the specified revision or range]:revision:($tags)' \ ++ '*--rev[show the specified revision or range]:revision:($tags)' \ ++ '(--no-merges -M --only-merges)-m[show only merge revisions]' \ ++ '(--no-merges -M -m)--only-merges[show only merge revisions]' \ ++ '(--only-merges -m --no-merges)-M[do not show merge revisions]' \ ++ '(--only-merges -m -M)--no-merges[do not show merge revisions]' \ ++ '(--keyword)-k[search for a keyword]:keyword:' \ ++ '(-k)--keyword[search for a keyword]:keyword:' \ ++ '(--branch)-b[show branches]' \ ++ '(-b)--branch[show branches]' \ ++ '(--patch)-p[show patch]' \ ++ '(-p)--patch[show patch]' \ ++ '*:file:_files' ++ ;; ++ ++ (update|checkout|co) ++ _arguments \ ++ '(--branch)-b[checkout the head of a specific branch]' \ ++ '(-b)--branch[checkout the head of a specific branch]' \ ++ '(-C --clean --merge)-m[allow merging of branches]' \ ++ '(-C --clean -m)--merge[allow merging of branches]' \ ++ '(-m --merge --clean)-C[overwrite locally modified files]' \ ++ '(-m --merge -C)--clean[overwrite locally modified files]' \ ++ '*:revision or tag:($tags)' ++ ;; ++ ++ (tag) ++ _arguments \ ++ '(--local)-l[make the tag local]' \ ++ '(-l)--local[make the tag local]' \ ++ '(--message)-m[message for tag commit log entry]:string:' \ ++ '(-m)--message[message for tag commit log entry]:string:' \ ++ '(--date)-d[record datecode as commit date]:date code:' \ ++ '(-d)--date[record datecode as commit date]:date code:' \ ++ '(--user)-u[record user as commiter]:user:' \ ++ '(-u)--user[record user as commiter]:user:' \ ++ '*:name, then revision:($tags)' ++ ;; ++ ++ (clone) ++ if (( CURRENT == 2 )); then ++ repos=( $(hg paths | sed -e 's/^.*= //') ) ++ _arguments \ ++ '(--no-update)-U[do not update the new working directory]' \ ++ '(-U)--no-update[do not update the new working directory]' \ ++ '(--ssh)-e[specify ssh command to use]:string:' \ ++ '(-e)--ssh[specify ssh command to use]:string:' \ ++ '--pull[use pull protocol to copy metadata]' \ ++ '--remotecmd[specify hg command to run on the remote side]:remote hg:' \ ++ '*:local repo:_files -/' ++ _wanted source expl 'source repository' compadd -a repos ++ elif (( CURRENT == 3 )); then ++ _arguments '*:dest repo:_files -/' ++ fi ++ ;; ++ ++ (rawcommit) ++ _arguments \ ++ '(--parent)-p[parent revision]:revision:($tags)' \ ++ '(-p)--parent[parent revision]:revision:($tags)' \ ++ '(--date)-d[record datecode as commit date]:date code:' \ ++ '(-d)--date[record datecode as commit date]:date code:' \ ++ '(--user)-u[record user as commiter]:user:' \ ++ '(-u)--user[record user as commiter]:user:' \ ++ '(--message)-m[use as commit message]:string:' \ ++ '(-m)--message[use as commit message]:string:' \ ++ '(--logfile)-l[read commit message from ]:.log file:_file -g \*.txt' \ ++ '(-l)--logfile[read commit message from ]:.log file:_file -g \*.txt' \ ++ '(--files)-F[file list]:file list:_files' \ ++ '(-F)--files[file list]:file list:_files' \ ++ '*:files to commit:_files' ++ ;; ++ ++ (bundle) ++ if (( CURRENT == 2 )); then ++ _arguments '*:changegroup file:_files -g \*.hg' ++ elif (( CURRENT == 3 )); then ++ _arguments '*:other repo:_files -/' ++ fi ++ ;; ++ ++ (unbundle) ++ _arguments '*:changegroup .hg file:_files -g \*.hg' ++ ;; ++ ++ (incoming) ++ _arguments \ ++ '(--patch)-p[show patch]' \ ++ '(-p)--patch[show patch]' \ ++ '(--no-merges)-M[do not show merge revisions]' \ ++ '(-M)--no-merges[do not show merge revisions]' \ ++ '(--newest-first)-n[show newest record first]' \ ++ '(-n)--newest-first[show newest record first]' \ ++ '*:mercurial repository:_files -/' ++ ;; ++ ++ (import|patch) ++ _arguments \ ++ '(--strip)-p[directory strip option for patch (default: 1)]:count:' \ ++ '(-p)--strip[directory strip option for patch (default: 1)]:count:' \ ++ '(--force)-f[skip check for outstanding uncommitted changes]' \ ++ '(-f)--force[skip check for outstanding uncommitted changes]' \ ++ '(--base)-b[base directory to read patches from]:file:_files -W $(hg root) -/' \ ++ '(-b)--base[base directory to read patches from]:file:_files -W $(hg root) -/' \ ++ '*:patch file:_files' ++ ;; ++ ++ (pull) ++ repos=( $(hg paths | sed -e 's/^.*= //') ) ++ _arguments \ ++ '(--update)-u[update working directory to tip after pull]' \ ++ '(-u)--update[update working directory to tip after pull]' \ ++ '(--ssh)-e[specify ssh command to use]:ssh command:' \ ++ '(-e)--ssh[specify ssh command to use]:ssh command:' \ ++ '--remotecmd[specify hg command to run on the remote side]:remote hg:' \ ++ '*:local repo:_files -/' ++ _wanted source expl 'source repository' compadd -a repos ++ ;; ++ ++ (outgoing) ++ _arguments \ ++ '(--patch)-p[show patch]' \ ++ '(-p)--patch[show patch]' \ ++ '(--no-merges)-M[do not show merge revisions]' \ ++ '(-M)--no-merges[do not show merge revisions]' \ ++ '(--newest-first)-n[show newest record first]' \ ++ '(-n)--newest-first[show newest record first]' \ ++ '*:local repo:_files -/' ++ _wanted source expl 'source repository' compadd -a repos ++ ;; ++ ++ (export) ++ _arguments \ ++ '(--outout)-o[print output to file with formatted name]:filespec:' \ ++ '(-o)--output[print output to file with formatted name]:filespec:' \ ++ '(--text)-a[treat all files as text]' \ ++ '(-a)--text[treat all files as text]' \ ++ '*:revision:->revs' ++ _wanted revs expl 'revision or tag' compadd -a tags ++ ;; ++ ++ (push) ++ repos=( $(hg paths | sed -e 's/^.*= //') ) ++ _arguments \ ++ '(--force)-f[force push]' \ ++ '(-f)--force[force push]' \ ++ '(--ssh)-e[specify ssh command to use]:ssh command:' \ ++ '(-e)--ssh[specify ssh command to use]:ssh command:' \ ++ '--remotecmd[specify hg command to run on the remote side]:remote hg:' \ ++ '*:local repo:_files -/' ++ _wanted source expl 'source repository' compadd -a repos ++ ;; ++ ++ (serve) ++ _arguments \ ++ '(--accesslog)-A[name of access log file]:log file:_files' \ ++ '(-A)--accesslog[name of access log file]:log file:_files' \ ++ '(--errorlog)-E[name of error log file]:log file:_files' \ ++ '(-E)--errorlog[name of error log file]:log file:_files' \ ++ '(--port)-p[listen port]:listen port:' \ ++ '(-p)--port[listen port]:listen port:' \ ++ '(--address)-a[interface address]:interface address:' \ ++ '(-a)--address[interface address]:interface address:' \ ++ '(--name)-n[name to show in web pages]:repository name:' \ ++ '(-n)--name[name to show in web pages]:repository name:' \ ++ '(--templates)-t[web template directory]:template dir:_files -/' \ ++ '(-t)--templates[web template directory]:template dir:_files -/' \ ++ '--style[web template style]:style' \ ++ '--stdio[for remote clients]' \ ++ '(--ipv6)-6[use IPv6 in addition to IPv4]' \ ++ '(-6)--ipv6[use IPv6 in addition to IPv4]' ++ ;; ++ ++ (help) ++ _wanted commands expl 'hg command' compadd -a subcmds ++ ;; ++ ++ (heads) ++ _arguments \ ++ '(--branches)-b[find branch info]' \ ++ '(-b)--branches[find branch info]' ++ ;; ++ ++ (paths) ++ _arguments '*:symbolic name:(default default-push)' ++ ;; ++ ++ (init) ++ _arguments '*:new repo directory:_files -/' ++ ;; ++ ++ (manifest) ++ _arguments '*:revision:($tags)' ++ ;; ++ ++ (parents) ++ _arguments '*:revision:($tags)' ++ ;; ++ ++ (identify|recover|root|undo|view|verify|version|ct|tags) ++ # no arguments for these commands ++ ;; ++ ++ # MQ commands ++ (qdel*|qrm|qrem*) ++ _arguments \ ++ {-k,--keep}'[keep patch file]' \ ++ {-r,--rev}'[revision]:applied patch:->qapplied' \ ++ '*:unapplied patches:->qunapplied' ++ _mq_state ++ ;; ++ ++ (qnew) ++ _arguments $commitMessage \ ++ {-f,--force}'[import uncommitted changes into patch]' \ ++ ':patch name:' ++ ;; ++ ++ (qpo*) ++ applied=( $(hg qapplied) ) ++ _arguments \ ++ (1){-a,--all}'[pop all patches]' \ ++ {-f,--force}'[forget any local changes]' \ ++ ':applied patch:->qapplied' ++ _mq_state ++ ;; ++ ++ (qpu*) ++ _arguments \ ++ (1){-a,--all}'[apply all patches]' \ ++ {-f,--force}'[apply if the patch has rejects]' \ ++ ':unapplied patch:->qunapplied' ++ _mq_state ++ ;; ++ (qref*) ++ _arguments $commitMessage $includeExclude \ ++ {-g,--git}'[use git extended diff format]' \ ++ {-s,--short}'[short refresh]' ++ ;; ++ ++ (*) ++ _message "unknown hg command completion: $service" ++ ;; ++esac +diff -r b72fb5695718 -r 1c8cb321138a etc/zsh/site-functions/_grmlinitd +--- a/etc/zsh/site-functions/_grmlinitd Sun Apr 15 22:52:43 2007 +0200 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,4 +0,0 @@ +-#compdef Start Restart Stop Reload +-local scripts +-scripts=( ${$(print /etc/init.d/*(x)):t} ) +-_describe "service startup script" scripts +diff -r b72fb5695718 -r 1c8cb321138a etc/zsh/site-functions/_hg +--- a/etc/zsh/site-functions/_hg Sun Apr 15 22:52:43 2007 +0200 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,481 +0,0 @@ +-#compdef hg +- +-# Zsh completion script for mercurial. Rename this file to _hg and copy +-# it into your zsh function path (/usr/share/zsh/site-functions for +-# instance) +-# +-# Copyright (C) 2005 Steve Borho +-# +-# This is free software; you can redistribute it and/or modify it under +-# the terms of the GNU General Public License as published by the Free +-# Software Foundation; either version 2 of the License, or (at your +-# option) any later version. +-# +- +-local curcontext="$curcontext" state line +-typeset -A opt_args +-local subcmds repos tags newFiles addedFiles includeExclude commitMessage +- +-_mq_state () { +- case "$state" in +- (qapplied) +- compadd $(hg qapplied) +- ;; +- (qunapplied) +- compadd $(hg qunapplied) +- ;; +- esac +-} +- +-tags=($(hg tags 2> /dev/null | sed -e 's/[0-9]*:[a-f0-9]\{40\}$//; s/ *$//')) +-subcmds=($(hg -v help | sed -e '1,/^list of commands:/d' \ +- -e '/^global options:/,$d' -e '/^ [^ ]/!d; s/[,:].*//g;')) +- +-# A lot of commands have these arguments +-includeExclude=( +- '*-I-[include names matching the given patterns]:dir:_files -W $(hg root) -/' +- '*--include-[include names matching the given patterns]:dir:_files -W $(hg root) -/' +- '*-X-[exclude names matching the given patterns]:dir:_files -W $(hg root) -/' +- '*--exclude-[exclude names matching the given patterns]:dir:_files -W $(hg root) -/') +- +-commitMessage=( +- '(-m --message -l --logfile --edit)-e[edit commit message]' +- '(-m --message -l --logfile -e)--edit[edit commit message]' +- '(-e --edit -l --logfile --message)-m[use as commit message]:message:' +- '(-e --edit -l --logfile -m)--message[use as commit message]:message:' +- '(-e --edit -m --message --logfile)-l[read the commit message from ]:log file:_files' +- '(-e --edit -m --message -l)--logfile[read the commit message from ]:log file:_files') +- +-if [[ $service == "hg" ]]; then +- _arguments -C -A "-*" \ +- '(--repository)-R[repository root directory]:root:_files -/' \ +- '(-R)--repository[repository root directory]:root:_files -/' \ +- '--cwd[change working directory]:new working directory:_files -/' \ +- '(--noninteractive)-y[do not prompt, assume yes for any required answers]' \ +- '(-y)--noninteractive[do not prompt, assume yes for any required answers]' \ +- '(--verbose)-v[enable additional output]' \ +- '(-v)--verbose[enable additional output]' \ +- '(--quiet)-q[suppress output]' \ +- '(-q)--quiet[suppress output]' \ +- '(--help)-h[display help and exit]' \ +- '(-h)--help[display help and exit]' \ +- '--debug[debug mode]' \ +- '--debugger[start debugger]' \ +- '--traceback[print traceback on exception]' \ +- '--time[time how long the command takes]' \ +- '--profile[profile]' \ +- '--version[output version information and exit]' \ +- '*::command:->subcmd' && return 0 +- +- if (( CURRENT == 1 )); then +- _wanted commands expl 'hg command' compadd -a subcmds +- return +- fi +- service="$words[1]" +- curcontext="${curcontext%:*}=$service:" +-fi +- +-case $service in +- (add) +- newFiles=(${(ps:\0:)"$(hg status -0un .)"}) +- _arguments $includeExclude \ +- '*:file:->unknown' +- _wanted files expl 'unknown files' compadd -a newFiles +- ;; +- +- (addremove) +- _arguments $includeExclude \ +- '*:directories:_files -/' # assume they want to add/remove a dir +- ;; +- +- (forget) +- addedFiles=(${(ps:\0:)"$(hg status -0an .)"}) +- _arguments $includeExclude \ +- '*:file:->added' +- _wanted files expl 'newly added files' compadd -a addedFiles +- ;; +- +- (remove|rm) +- _arguments $includeExclude \ +- '*:file:_files' +- ;; +- +- (copy|cp) +- _arguments $includeExclude \ +- '(--after)-A[record a copy that has already occurred]' \ +- '(-A)--after[record a copy that has already occurred]' \ +- '(--force)-f[forcibly copy over an existing managed file]' \ +- '(-f)--force[forcibly copy over an existing managed file]' \ +- '(--parents)-p[append source path to dest]' \ +- '(-p)--parents[append source path to dest]' \ +- '*:files:_files' +- ;; +- +- (rename|mv) +- if (( CURRENT == 2 )); then +- _arguments $includeExclude \ +- '(--after)-A[record a rename that has already occurred]' \ +- '(-A)--after[record a rename that has already occurred]' \ +- '(--force)-f[replace destination if it exists]' \ +- '(-F)--force[replace destination if it exists]' \ +- '(--parents)-p[append source path to dest]' \ +- '(-p)--parents[append source path to dest]' \ +- '*:files:_files' +- else +- _arguments '*:destination:_files' +- fi +- ;; +- +- (diff) +- _arguments $includeExclude \ +- '*-r[revision]:revision:($tags)' \ +- '*--rev[revision]:revision:($tags)' \ +- '(--text)-a[treat all files as text]' \ +- '(-a)--text[treat all files as text]' \ +- '*:file:_files' +- ;; +- +- (status|st) +- _arguments $includeExclude \ +- '(--no-status)-n[hide status prefix]' \ +- '(-n)--no-status[hide status prefix]' \ +- '(--print0)-0[end filenames with NUL, for use with xargs]' \ +- '(-0)--print0[end filenames with NUL, for use with xargs]' \ +- '(--modified)-m[show only modified files]' \ +- '(-m)--modified[show only modified files]' \ +- '(--added)-a[show only added files]' \ +- '(-a)--added[show only added files]' \ +- '(--removed)-r[show only removed files]' \ +- '(-r)--removed[show only removed files]' \ +- '(--unknown)-u[show only unknown files]' \ +- '(-u)--unknown[show only unknown files]' \ +- '*:search pattern, then files:_files' +- ;; +- +- (revert) +- addedFiles=(${(ps:\0:)"$(hg status -0amrn .)"}) +- _arguments \ +- '(--rev)-r[revision to revert to]:revision:($tags)' \ +- '(-r)--rev[revision to revert to]:revision:($tags)' \ +- '(--nonrecursive)-n[do not recurse into subdirectories]' \ +- '(-n)--nonrecursive[do not recurse into subdirectories]' \ +- '*:file:->modified' +- _wanted files expl 'mofified files' compadd -a addedFiles +- ;; +- +- (commit|ci) +- addedFiles=(${(ps:\0:)"$(hg status -0amrn .)"}) +- _arguments $includeExclude \ +- '(--addremove)-A[run addremove during commit]' \ +- '(-A)--addremove[run addremove during commit]' \ +- '(--message)-m[use as commit message]:string:' \ +- '(-m)--message[use as commit message]:string:' \ +- '(--logfile)-l[read commit message from ]:.log file:_file -g \*.txt' \ +- '(-l)--logfile[read commit message from ]:.log file:_file -g \*.txt' \ +- '(--date)-d[record datecode as commit date]:date code:' \ +- '(-d)--date[record datecode as commit date]:date code:' \ +- '(--user)-u[record user as commiter]:user:' \ +- '(-u)--user[record user as commiter]:user:' \ +- '*:file:->modified' +- _wanted files expl 'mofified files' compadd -a addedFiles +- ;; +- +- (cat) +- _arguments $includeExclude \ +- '(--output)-o[print output to file with formatted name]:filespec:' \ +- '(-o)--output[print output to file with formatted name]:filespec:' \ +- '(--rev)-r[revision]:revision:($tags)' \ +- '(-r)--rev[revision]:revision:($tags)' \ +- '*:file:_files' +- ;; +- +- (annotate) +- _arguments $includeExclude \ +- '(--rev)-r[annotate the specified revision]:revision:($tags)' \ +- '(-r)--rev[annotate the specified revision]:revision:($tags)' \ +- '(--text)-a[treat all files as text]' \ +- '(-a)--text[treat all files as text]' \ +- '(--user)-u[list the author]' \ +- '(-u)--user[list the author]' \ +- '(--changeset)-c[list the changeset]' \ +- '(-c)--changeset[list the changeset]' \ +- '(--number)-n[list the revision number (default)]' \ +- '(-n)--number[list the revision number (default)]' \ +- '*:files:_files' +- ;; +- +- (grep) +- _arguments $includeExclude \ +- '*-r[search in given revision range]:revision:($tags)' \ +- '*--rev[search in given revision range]:revision:($tags)' \ +- '--all[print all revisions with matches]' \ +- '(-print0)-0[end filenames with NUL, for use with xargs]' \ +- '(-0)--print0[end filenames with NUL, for use with xargs]' \ +- '(--ignore-case)-i[ignore case when matching]' \ +- '(-i)--ignore-case[ignore case when matching]' \ +- '(--files-with-matches)-l[print names of files and revs that match]' \ +- '(-l)--files-with-matches[print names of files and revs that match]' \ +- '(--line-number)-n[print matching line numbers]' \ +- '(-n)--line-number[print matching line numbers]' \ +- '(--user)-u[print user who committed change]' \ +- '(-u)--user[print user who committed change]' \ +- '*:search pattern:' +- ;; +- +- (locate) +- _arguments $includeExclude \ +- '(--rev)-r[search repository as it stood at revision]:revision:($tags)' \ +- '(-r)--rev[search repository as it stood at revision]:revision:($tags)' \ +- '(--print0)-0[end filenames with NUL, for use with xargs]' \ +- '(-0)--print0[end filenames with NUL, for use with xargs]' \ +- '(--fullpath)-f[print complete paths]' \ +- '(-f)--fullpath[print complete paths]' \ +- '*:search pattern:' +- ;; +- +- (log|history) +- _arguments $includeExclude \ +- '*-r[show the specified revision or range]:revision:($tags)' \ +- '*--rev[show the specified revision or range]:revision:($tags)' \ +- '(--no-merges -M --only-merges)-m[show only merge revisions]' \ +- '(--no-merges -M -m)--only-merges[show only merge revisions]' \ +- '(--only-merges -m --no-merges)-M[do not show merge revisions]' \ +- '(--only-merges -m -M)--no-merges[do not show merge revisions]' \ +- '(--keyword)-k[search for a keyword]:keyword:' \ +- '(-k)--keyword[search for a keyword]:keyword:' \ +- '(--branch)-b[show branches]' \ +- '(-b)--branch[show branches]' \ +- '(--patch)-p[show patch]' \ +- '(-p)--patch[show patch]' \ +- '*:file:_files' +- ;; +- +- (update|checkout|co) +- _arguments \ +- '(--branch)-b[checkout the head of a specific branch]' \ +- '(-b)--branch[checkout the head of a specific branch]' \ +- '(-C --clean --merge)-m[allow merging of branches]' \ +- '(-C --clean -m)--merge[allow merging of branches]' \ +- '(-m --merge --clean)-C[overwrite locally modified files]' \ +- '(-m --merge -C)--clean[overwrite locally modified files]' \ +- '*:revision or tag:($tags)' +- ;; +- +- (tag) +- _arguments \ +- '(--local)-l[make the tag local]' \ +- '(-l)--local[make the tag local]' \ +- '(--message)-m[message for tag commit log entry]:string:' \ +- '(-m)--message[message for tag commit log entry]:string:' \ +- '(--date)-d[record datecode as commit date]:date code:' \ +- '(-d)--date[record datecode as commit date]:date code:' \ +- '(--user)-u[record user as commiter]:user:' \ +- '(-u)--user[record user as commiter]:user:' \ +- '*:name, then revision:($tags)' +- ;; +- +- (clone) +- if (( CURRENT == 2 )); then +- repos=( $(hg paths | sed -e 's/^.*= //') ) +- _arguments \ +- '(--no-update)-U[do not update the new working directory]' \ +- '(-U)--no-update[do not update the new working directory]' \ +- '(--ssh)-e[specify ssh command to use]:string:' \ +- '(-e)--ssh[specify ssh command to use]:string:' \ +- '--pull[use pull protocol to copy metadata]' \ +- '--remotecmd[specify hg command to run on the remote side]:remote hg:' \ +- '*:local repo:_files -/' +- _wanted source expl 'source repository' compadd -a repos +- elif (( CURRENT == 3 )); then +- _arguments '*:dest repo:_files -/' +- fi +- ;; +- +- (rawcommit) +- _arguments \ +- '(--parent)-p[parent revision]:revision:($tags)' \ +- '(-p)--parent[parent revision]:revision:($tags)' \ +- '(--date)-d[record datecode as commit date]:date code:' \ +- '(-d)--date[record datecode as commit date]:date code:' \ +- '(--user)-u[record user as commiter]:user:' \ +- '(-u)--user[record user as commiter]:user:' \ +- '(--message)-m[use as commit message]:string:' \ +- '(-m)--message[use as commit message]:string:' \ +- '(--logfile)-l[read commit message from ]:.log file:_file -g \*.txt' \ +- '(-l)--logfile[read commit message from ]:.log file:_file -g \*.txt' \ +- '(--files)-F[file list]:file list:_files' \ +- '(-F)--files[file list]:file list:_files' \ +- '*:files to commit:_files' +- ;; +- +- (bundle) +- if (( CURRENT == 2 )); then +- _arguments '*:changegroup file:_files -g \*.hg' +- elif (( CURRENT == 3 )); then +- _arguments '*:other repo:_files -/' +- fi +- ;; +- +- (unbundle) +- _arguments '*:changegroup .hg file:_files -g \*.hg' +- ;; +- +- (incoming) +- _arguments \ +- '(--patch)-p[show patch]' \ +- '(-p)--patch[show patch]' \ +- '(--no-merges)-M[do not show merge revisions]' \ +- '(-M)--no-merges[do not show merge revisions]' \ +- '(--newest-first)-n[show newest record first]' \ +- '(-n)--newest-first[show newest record first]' \ +- '*:mercurial repository:_files -/' +- ;; +- +- (import|patch) +- _arguments \ +- '(--strip)-p[directory strip option for patch (default: 1)]:count:' \ +- '(-p)--strip[directory strip option for patch (default: 1)]:count:' \ +- '(--force)-f[skip check for outstanding uncommitted changes]' \ +- '(-f)--force[skip check for outstanding uncommitted changes]' \ +- '(--base)-b[base directory to read patches from]:file:_files -W $(hg root) -/' \ +- '(-b)--base[base directory to read patches from]:file:_files -W $(hg root) -/' \ +- '*:patch file:_files' +- ;; +- +- (pull) +- repos=( $(hg paths | sed -e 's/^.*= //') ) +- _arguments \ +- '(--update)-u[update working directory to tip after pull]' \ +- '(-u)--update[update working directory to tip after pull]' \ +- '(--ssh)-e[specify ssh command to use]:ssh command:' \ +- '(-e)--ssh[specify ssh command to use]:ssh command:' \ +- '--remotecmd[specify hg command to run on the remote side]:remote hg:' \ +- '*:local repo:_files -/' +- _wanted source expl 'source repository' compadd -a repos +- ;; +- +- (outgoing) +- _arguments \ +- '(--patch)-p[show patch]' \ +- '(-p)--patch[show patch]' \ +- '(--no-merges)-M[do not show merge revisions]' \ +- '(-M)--no-merges[do not show merge revisions]' \ +- '(--newest-first)-n[show newest record first]' \ +- '(-n)--newest-first[show newest record first]' \ +- '*:local repo:_files -/' +- _wanted source expl 'source repository' compadd -a repos +- ;; +- +- (export) +- _arguments \ +- '(--outout)-o[print output to file with formatted name]:filespec:' \ +- '(-o)--output[print output to file with formatted name]:filespec:' \ +- '(--text)-a[treat all files as text]' \ +- '(-a)--text[treat all files as text]' \ +- '*:revision:->revs' +- _wanted revs expl 'revision or tag' compadd -a tags +- ;; +- +- (push) +- repos=( $(hg paths | sed -e 's/^.*= //') ) +- _arguments \ +- '(--force)-f[force push]' \ +- '(-f)--force[force push]' \ +- '(--ssh)-e[specify ssh command to use]:ssh command:' \ +- '(-e)--ssh[specify ssh command to use]:ssh command:' \ +- '--remotecmd[specify hg command to run on the remote side]:remote hg:' \ +- '*:local repo:_files -/' +- _wanted source expl 'source repository' compadd -a repos +- ;; +- +- (serve) +- _arguments \ +- '(--accesslog)-A[name of access log file]:log file:_files' \ +- '(-A)--accesslog[name of access log file]:log file:_files' \ +- '(--errorlog)-E[name of error log file]:log file:_files' \ +- '(-E)--errorlog[name of error log file]:log file:_files' \ +- '(--port)-p[listen port]:listen port:' \ +- '(-p)--port[listen port]:listen port:' \ +- '(--address)-a[interface address]:interface address:' \ +- '(-a)--address[interface address]:interface address:' \ +- '(--name)-n[name to show in web pages]:repository name:' \ +- '(-n)--name[name to show in web pages]:repository name:' \ +- '(--templates)-t[web template directory]:template dir:_files -/' \ +- '(-t)--templates[web template directory]:template dir:_files -/' \ +- '--style[web template style]:style' \ +- '--stdio[for remote clients]' \ +- '(--ipv6)-6[use IPv6 in addition to IPv4]' \ +- '(-6)--ipv6[use IPv6 in addition to IPv4]' +- ;; +- +- (help) +- _wanted commands expl 'hg command' compadd -a subcmds +- ;; +- +- (heads) +- _arguments \ +- '(--branches)-b[find branch info]' \ +- '(-b)--branches[find branch info]' +- ;; +- +- (paths) +- _arguments '*:symbolic name:(default default-push)' +- ;; +- +- (init) +- _arguments '*:new repo directory:_files -/' +- ;; +- +- (manifest) +- _arguments '*:revision:($tags)' +- ;; +- +- (parents) +- _arguments '*:revision:($tags)' +- ;; +- +- (identify|recover|root|undo|view|verify|version|ct|tags) +- # no arguments for these commands +- ;; +- +- # MQ commands +- (qdel*|qrm|qrem*) +- _arguments \ +- {-k,--keep}'[keep patch file]' \ +- {-r,--rev}'[revision]:applied patch:->qapplied' \ +- '*:unapplied patches:->qunapplied' +- _mq_state +- ;; +- +- (qnew) +- _arguments $commitMessage \ +- {-f,--force}'[import uncommitted changes into patch]' \ +- ':patch name:' +- ;; +- +- (qpo*) +- applied=( $(hg qapplied) ) +- _arguments \ +- (1){-a,--all}'[pop all patches]' \ +- {-f,--force}'[forget any local changes]' \ +- ':applied patch:->qapplied' +- _mq_state +- ;; +- +- (qpu*) +- _arguments \ +- (1){-a,--all}'[apply all patches]' \ +- {-f,--force}'[apply if the patch has rejects]' \ +- ':unapplied patch:->qunapplied' +- _mq_state +- ;; +- (qref*) +- _arguments $commitMessage $includeExclude \ +- {-g,--git}'[use git extended diff format]' \ +- {-s,--short}'[short refresh]' +- ;; +- +- (*) +- _message "unknown hg command completion: $service" +- ;; +-esac +diff -r b72fb5695718 -r 1c8cb321138a etc/zsh/zshrc +--- a/etc/zsh/zshrc Sun Apr 15 22:52:43 2007 +0200 ++++ b/etc/zsh/zshrc Tue Apr 17 01:06:26 2007 +0200 +@@ -88,8 +88,16 @@ + # Search path for the cd comman + # cdpath=(.. ~) + +-# Support our own site-functions +- [ -d /etc/zsh/site-functions ] && FPATH=/etc/zsh/site-functions:$FPATH ++# completion functions go to /etc/zsh/completion.d ++# function files may be put into /etc/zsh/functions.d, from where they ++# will be automatically autoloaded. ++ [[ -d /etc/zsh/completion.d ]] && fpath+=( /etc/zsh/completion.d ) ++ if [[ -d /etc/zsh/functions.d ]] ; then ++ fpath+=( /etc/zsh/functions.d ) ++ for func in /etc/zsh/functions.d/[^_]*[^~] ; do ++ autoload -U ${func:t} ++ done ++ fi + + # automatically remove duplicates from these arrays + typeset -U path cdpath fpath manpath +@@ -764,12 +772,6 @@ Run "grml-tips ssl-certificate" if you n + + # {{{ completion stuff + +-# Where to look for autoloaded function definitions +- if [ -d /etc/zsh/completion.d ] ; then +- local comp=/etc/zsh/completion.d +- for func in $comp/*(N-.:t); . ${comp}/${func} +- fi +- + # called later (via is4 && grmlcomp) + # notice: use 'zstyle' for getting current settings + # press ^Xh (control-x h) for getting tags in context; ^X? (control-x ?) to run complete_debug with trace output + +changeset: 151:af23f3eb99d9 +tag: tip +user: Frank Terbeck +date: Tue Apr 17 01:27:50 2007 +0200 +summary: converting zsh completion functions to match common conventions. + +diff -r 1c8cb321138a -r af23f3eb99d9 etc/zsh/completion.d/_debian_rules +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/etc/zsh/completion.d/_debian_rules Tue Apr 17 01:27:50 2007 +0200 +@@ -0,0 +1,4 @@ ++#compdef debian/rules ++# type debian/rules inside a source package ++ ++words=(make -f debian/rules) _make +diff -r 1c8cb321138a -r af23f3eb99d9 etc/zsh/completion.d/_fbset +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/etc/zsh/completion.d/_fbset Tue Apr 17 01:27:50 2007 +0200 +@@ -0,0 +1,15 @@ ++#compdef fbset ++# simple completion for fbset (switch resolution on console) ++ ++fb_modes=( ++ 640x480-60 640x480-72 640x480-75 640x480-90 640x480-100 ++ 768x576-75 ++ 800x600-48-lace 800x600-56 800x600-60 800x600-70 800x600-72 800x600-75 800x600-90 800x600-100 ++ 1024x768-43-lace 1024x768-60 1024x768-70 1024x768-72 1024x768-75 1024x768-90 1024x768-100 ++ 1152x864-43-lace 1152x864-47-lace 1152x864-60 1152x864-70 1152x864-75 1152x864-80 ++ 1280x960-75-8 1280x960-75 1280x960-75-32 ++ 1280x1024-43-lace 1280x1024-47-lace 1280x1024-60 1280x1024-70 1280x1024-74 1280x1024-75 ++ 1600x1200-60 1600x1200-66 1600x1200-76 ++) ++ ++compadd ${fb_modes} +diff -r 1c8cb321138a -r af23f3eb99d9 etc/zsh/completion.d/_grml-lang +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/etc/zsh/completion.d/_grml-lang Tue Apr 17 01:27:50 2007 +0200 +@@ -0,0 +1,3 @@ ++#compdef grml-lang ++ ++compadd at ch de us +diff -r 1c8cb321138a -r af23f3eb99d9 etc/zsh/completion.d/_grml-wallpaper +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/etc/zsh/completion.d/_grml-wallpaper Tue Apr 17 01:27:50 2007 +0200 +@@ -0,0 +1,5 @@ ++#compdef grml-wallpaper ++ ++dirs=(. /usr/share/grml/) ++_description files expl 'set desktop wallpaper on grml system' ++_files "$expl[@]" -W dirs -g '*.{jpg,png}(-.)' +diff -r 1c8cb321138a -r af23f3eb99d9 etc/zsh/completion.d/_iwconfig +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/etc/zsh/completion.d/_iwconfig Tue Apr 17 01:27:50 2007 +0200 +@@ -0,0 +1,86 @@ ++#compdef iwconfig ++ ++_wlan_interfaces() { ++ local intf ++ intf=$(iwconfig |& egrep 'IEEE 802.11[abg]' | cut -d' ' -f1 | tr ' ' \\n ) ++ # intf=$( fgrep ': ' < /proc/net/wireless | cut -d: -f1 | tr \\n ' ' | tr -s " \t" ) ++ _wanted interfaces expl 'wireless network interface' \ ++ compadd ${intf} ++} ++ ++_wlan_networks() { ++ networks=() ++ while read LINE ++ do ++ networks+=$LINE ++ done <<(iwlist scanning 2>/dev/null | grep ESSID | sed -e s/'.*"\(.*\)"'/'\1'/ ) ++ _wanted -x names expl 'network name' \ ++ compadd off any on ${networks} ++} ++ ++local curcontext="$curcontext" state line expl ret=1 ++ ++_arguments -C \ ++ '(1 * -)--help[display help information]' \ ++ '(1 * -)--version[display version information]' \ ++ '1:network interface:_wlan_interfaces' \ ++ '*:parameter:->parameters' && ret=0 ++ ++if [[ -n "$state" ]]; then ++ local -a arg ++ ++ case $words[CURRENT-1] in ++ essid) _wlan_networks;; ++ nwid|domain) _message -e ids 'network id' ;; ++ freq|channel) _message -e channels 'channel or frequency' ;; ++ sens) _message -e levels 'signal level' ;; ++ mode) ++ _wanted modes expl 'operating mode' compadd \ ++ Ad-Hoc Managed Master Repeater Secondary Monitor Auto ++ ;; ++ ap) _message -e access-points 'access point' ;; ++ nick*) _message -e names 'nickname' ;; ++ rate|bit*) _message -e bit-rates 'bit rate' ;; ++ rts*|frag*) _message -e sizes 'size' ;; ++ key|enc*) _message -e keys 'key' ;; ++ power) ++ arg=( ++ \*{min,max}'[modifier]' ++ '*off[disable power management]' ++ '*on[enable power management]' ++ '*all[receive all packets]' ++ 'unicast[receive unicast packets only]' ++ 'multicast[receive multicast and broadcast packets only]' ++ ) ++ ;& ++ min|max) ++ _values -S ' ' -w 'parameter' \ ++ 'period[set the period between wake ups]' \ ++ 'timeout[set timeout before sleep]' \ ++ $arg[@] && ret=0 ++ ;; ++ period|timeout) _message -e timeouts 'timeout' ;; ++ txpower) _message -e power 'transmit power' ;; ++ retry) _message -e retries 'retries' ;; ++ *) ++ _values -S ' ' -w 'option' \ ++ 'essid[set the network name]' \ ++ '(nwid domain)'{nwid,domain}'[set the network ID]' \ ++ '(freq channel)'{freq,channel}'[set the operating frequency or channel]' \ ++ 'sens[set the sensitivity threhold]' \ ++ 'mode[set operating mode]' \ ++ 'ap[register with given access point]' \ ++ '(nick nickname)'nick{,name}'[set the nickname]' \ ++ '(rate bit)'{rate,bit}'[set the bitrate]' \ ++ 'rts[set packet size threshold for sending RTS]' \ ++ 'frag[set maximum packet fragment size]' \ ++ \*{key,enc}'[add encryption key]' \ ++ '*power[manipulate power management scheme parameters]' \ ++ 'txpower[set transmit power]' \ ++ 'retry[set number of retries]' \ ++ 'commit[apply changes imediately]' && ret=0 ++ ;; ++ esac ++fi ++ ++return ret +diff -r 1c8cb321138a -r af23f3eb99d9 etc/zsh/completion.d/debian_rules +--- a/etc/zsh/completion.d/debian_rules Tue Apr 17 01:06:26 2007 +0200 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,2 +0,0 @@ +- _debian_rules() { words=(make -f debian/rules) _make } +- compdef _debian_rules debian/rules # type debian/rules inside a source package +diff -r 1c8cb321138a -r af23f3eb99d9 etc/zsh/completion.d/fbset +--- a/etc/zsh/completion.d/fbset Tue Apr 17 01:06:26 2007 +0200 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,3 +0,0 @@ +-# simple completion for fbset (switch resolution on console) +- _fbmodes() { compadd 640x480-60 640x480-72 640x480-75 640x480-90 640x480-100 768x576-75 800x600-48-lace 800x600-56 800x600-60 800x600-70 800x600-72 800x600-75 800x600-90 800x600-100 1024x768-43-lace 1024x768-60 1024x768-70 1024x768-72 1024x768-75 1024x768-90 1024x768-100 1152x864-43-lace 1152x864-47-lace 1152x864-60 1152x864-70 1152x864-75 1152x864-80 1280x960-75-8 1280x960-75 1280x960-75-32 1280x1024-43-lace 1280x1024-47-lace 1280x1024-60 1280x1024-70 1280x1024-74 1280x1024-75 1600x1200-60 1600x1200-66 1600x1200-76 } +- compdef _fbmodes fbset +diff -r 1c8cb321138a -r af23f3eb99d9 etc/zsh/completion.d/grml-lang +--- a/etc/zsh/completion.d/grml-lang Tue Apr 17 01:06:26 2007 +0200 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,2 +0,0 @@ +- _grml-lang() { compadd at ch de us ; } +- compdef _grml-lang grml-lang +diff -r 1c8cb321138a -r af23f3eb99d9 etc/zsh/completion.d/grml-wallpaper +--- a/etc/zsh/completion.d/grml-wallpaper Tue Apr 17 01:06:26 2007 +0200 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,14 +0,0 @@ +- grml-wallpaper() { +- if [ -f /usr/share/grml/"$1" ] ; then +- Esetroot -scale /usr/share/grml/"$1" +- else +- Esetroot -scale $* +- fi +- } +- +- _grml-wallpaper() { +- dirs=(. /usr/share/grml/) +- _description files expl 'set desktop wallpaper on grml system' +- _files "$expl[@]" -W dirs -g '*.{jpg,png}(-.)' +- } +- compdef _grml-wallpaper grml-wallpaper +diff -r 1c8cb321138a -r af23f3eb99d9 etc/zsh/completion.d/iwconfig +--- a/etc/zsh/completion.d/iwconfig Tue Apr 17 01:06:26 2007 +0200 ++++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +@@ -1,88 +0,0 @@ +-_wlan_interfaces() { +- local intf +- intf=$(iwconfig |& egrep 'IEEE 802.11[abg]' | cut -d' ' -f1 | tr ' ' \\n ) +- # intf=$( fgrep ': ' < /proc/net/wireless | cut -d: -f1 | tr \\n ' ' | tr -s " \t" ) +- _wanted interfaces expl 'wireless network interface' \ +- compadd ${intf} +-} +- +-_wlan_networks() { +- networks=() +- while read LINE +- do +- networks+=$LINE +- done <<(iwlist scanning 2>/dev/null | grep ESSID | sed -e s/'.*"\(.*\)"'/'\1'/ ) +- _wanted -x names expl 'network name' \ +- compadd off any on ${networks} +-} +- +-_iwconfig() { +- local curcontext="$curcontext" state line expl ret=1 +- +- _arguments -C \ +- '(1 * -)--help[display help information]' \ +- '(1 * -)--version[display version information]' \ +- '1:network interface:_wlan_interfaces' \ +- '*:parameter:->parameters' && ret=0 +- +- if [[ -n "$state" ]]; then +- local -a arg +- +- case $words[CURRENT-1] in +- essid) _wlan_networks;; +- nwid|domain) _message -e ids 'network id' ;; +- freq|channel) _message -e channels 'channel or frequency' ;; +- sens) _message -e levels 'signal level' ;; +- mode) +- _wanted modes expl 'operating mode' compadd \ +- Ad-Hoc Managed Master Repeater Secondary Monitor Auto +- ;; +- ap) _message -e access-points 'access point' ;; +- nick*) _message -e names 'nickname' ;; +- rate|bit*) _message -e bit-rates 'bit rate' ;; +- rts*|frag*) _message -e sizes 'size' ;; +- key|enc*) _message -e keys 'key' ;; +- power) +- arg=( +- \*{min,max}'[modifier]' +- '*off[disable power management]' +- '*on[enable power management]' +- '*all[receive all packets]' +- 'unicast[receive unicast packets only]' +- 'multicast[receive multicast and broadcast packets only]' +- ) +- ;& +- min|max) +- _values -S ' ' -w 'parameter' \ +- 'period[set the period between wake ups]' \ +- 'timeout[set timeout before sleep]' \ +- $arg[@] && ret=0 +- ;; +- period|timeout) _message -e timeouts 'timeout' ;; +- txpower) _message -e power 'transmit power' ;; +- retry) _message -e retries 'retries' ;; +- *) +- _values -S ' ' -w 'option' \ +- 'essid[set the network name]' \ +- '(nwid domain)'{nwid,domain}'[set the network ID]' \ +- '(freq channel)'{freq,channel}'[set the operating frequency or channel]' \ +- 'sens[set the sensitivity threhold]' \ +- 'mode[set operating mode]' \ +- 'ap[register with given access point]' \ +- '(nick nickname)'nick{,name}'[set the nickname]' \ +- '(rate bit)'{rate,bit}'[set the bitrate]' \ +- 'rts[set packet size threshold for sending RTS]' \ +- 'frag[set maximum packet fragment size]' \ +- \*{key,enc}'[add encryption key]' \ +- '*power[manipulate power management scheme parameters]' \ +- 'txpower[set transmit power]' \ +- 'retry[set number of retries]' \ +- 'commit[apply changes imediately]' && ret=0 +- ;; +- esac +- fi +- +- return ret +-} +- +-compdef _iwconfig iwconfig +diff -r 1c8cb321138a -r af23f3eb99d9 etc/zsh/functions.d/grml-wallpaper +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/etc/zsh/functions.d/grml-wallpaper Tue Apr 17 01:27:50 2007 +0200 +@@ -0,0 +1,5 @@ ++if [ -f /usr/share/grml/"$1" ] ; then ++ Esetroot -scale /usr/share/grml/"$1" ++else ++ Esetroot -scale "$@" ++fi + -- 2.1.4