summaryrefslogtreecommitdiffstats
path: root/Completion/X/Command/_dcop
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/X/Command/_dcop')
-rw-r--r--Completion/X/Command/_dcop119
1 files changed, 0 insertions, 119 deletions
diff --git a/Completion/X/Command/_dcop b/Completion/X/Command/_dcop
deleted file mode 100644
index a0329e110..000000000
--- a/Completion/X/Command/_dcop
+++ /dev/null
@@ -1,119 +0,0 @@
-#compdef dcop dcopstart dcopfind dcopref dcopclient dcopobject
-
-local curcontext="$curcontext" desc vals arg base max=0 ret=1
-local app obj fun
-local -a state line expl
-
-case $service in
- dcop(client|object))
- state=( dcopref )
- max=2
- ;;
- dcopref) max=3 ;;
- dcopstart)
- if (( CURRENT > 2 )); then
- _urls && return
- fi
- ;;
- dcopfind)
- local cmd=$words[1]
- _arguments -C \
- '-a[print application id instead of DCOPRef]' \
- '-l[if object not found, run dcopstart and retry]' \
- '*::args:->args' && ret=0
- unset state
- words=( $cmd $words )
- (( CURRENT++ ))
- ;;
-esac
-
-if (( max && CURRENT > max )); then
- _message 'no more arguments'
- return 1
-fi
-
-if [[ -z "$state" ]]; then
- state=(application object function)
- [[ $words[2] = DCOPRef* && CURRENT -ne 2 ]]
- base=$?
- state=( ${state[CURRENT-base]:-arg} )
-
- [[ $state[1] = application && $service = dcop(|find) ]] && state+=( dcopref )
-fi
-
-while (( $#state )); do
- unset app obj fun
-
- if [[ $words[2] = (#b)DCOPRef*\(([^,]#)((#e)|,)([^\\\)]#)(*) ]]; then
- if [[ -n $match[2] ]]; then
- app=$match[1]
- if [[ -n $match[4] ]]; then
- obj=$match[3]
- [[ -n $words[3] && CURRENT -gt 3 ]] && fun=$words[3]
- fi
- fi
- else
- case $CURRENT in
- <5->) fun="$words[4]" ;&
- 4) obj="$words[3]" ;&
- 3) app="$words[2]" ;;
- esac
- fi
- vals=( ${(f)"$(_call_program dcop-$state[1]s ${(M)words[1]##*/}dcop $app $obj 2>/dev/null)"} )
-
- case "$state[1]" in
- application|object)
- [[ -n ${(M)vals:#*\(default\)} ]] && vals+=( default )
- _wanted dcop-$state[1]s expl $state[1] compadd "$@" - ${vals% \(default\)} && ret=0
- ;;
-
- function)
- [[ $service = dcopfind ]] && vals=( ${(M)vals:#bool *} )
- _wanted dcop-$state[1]s expl $state[1] compadd "$@" - ${${vals#* }%\(*} && ret=0
- ;;
-
- arg)
- arg=${${${(M)vals:#*$fun\(*}#*\(}%\)*},
- arg=${${(s.,.)arg}[CURRENT-base-3]}
- if [[ -n $arg ]]; then
- if [[ $arg = (Q(|C)String|*int )* || $arg != *\ * ]]; then
- # don't mention the argument's type
- desc="${arg##* }"
- else
- desc="${arg##* } (${arg% *})"
- fi
- case $arg in
- bool*) _wanted argument expl "$desc" compadd true false && return ;;
- (#i)*(file|path|dir)*) _wanted argument expl "$desc" _files && return ;;
- (#i)*url*) _wanted argument expl "$desc" _urls && return ;;
- *) _message -e argument "$desc" ;;
- esac
- else
- _message 'no more arguments'
- fi
- ;;
-
- dcopref)
- if ! compset -P '*\('; then
- _wanted dcoprefs expl 'dcop ref' compadd -S '' 'DCOPRef(' && ret=0
- elif compset -P '*,'; then
- if compset -S '(|\\)\)*'; then
- set -- -S '' "$@"
- else
- set -- "$@" -S"${${QIPREFIX:+)}:-\)}$compstate[quote] "
- fi
- state+=( object )
- else
- if compset -S ',*'; then
- set -- "$@" -S ''
- else
- set -- "$@" -S ,
- fi
- state+=( application )
- fi
- ;;
- esac
- shift state
-done
-
-return ret