about summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
authorOliver Kiddle <opk@users.sourceforge.net>2003-04-18 14:53:24 +0000
committerOliver Kiddle <opk@users.sourceforge.net>2003-04-18 14:53:24 +0000
commit101d298859c12ab10a2a0714e846fb1aff15f3a2 (patch)
tree83385e673aee8d3957956538fcc72df21b7e5787 /Completion
parent90b6dbd2e0b1b264f2c4ae906e447f4d0a9da335 (diff)
downloadzsh-101d298859c12ab10a2a0714e846fb1aff15f3a2.tar.gz
zsh-101d298859c12ab10a2a0714e846fb1aff15f3a2.tar.xz
zsh-101d298859c12ab10a2a0714e846fb1aff15f3a2.zip
merge changes from 4.1
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Unix/Type/_pdf16
-rw-r--r--Completion/Unix/Type/_ps14
-rw-r--r--Completion/X/Command/.distfiles2
-rw-r--r--Completion/X/Command/_dcop120
-rw-r--r--Completion/X/Command/_gqview12
5 files changed, 163 insertions, 1 deletions
diff --git a/Completion/Unix/Type/_pdf b/Completion/Unix/Type/_pdf
new file mode 100644
index 000000000..30d03e397
--- /dev/null
+++ b/Completion/Unix/Type/_pdf
@@ -0,0 +1,16 @@
+#compdef acroread pdf2dsc pdf2ps pdfimages pdfinfo pdftopbm pdftops pdftotext xpdf pdfopt pdffonts
+
+local expl ext=''
+
+# ghostscript:
+#  pdf2dsc pdf2ps pdfopt
+# xpdf:
+#  pdfimages pdfinfo pdftopbm pdftops pdftotext xpdf pdffonts
+
+if [[ "$1" == '-z' ]]; then
+  ext='(|.gz|.Z)'
+  shift
+fi
+
+_description files expl 'PDF file'
+_files "$@" "$expl[@]" -g "*.(#i)pdf$ext"
diff --git a/Completion/Unix/Type/_ps b/Completion/Unix/Type/_ps
new file mode 100644
index 000000000..2f33d235f
--- /dev/null
+++ b/Completion/Unix/Type/_ps
@@ -0,0 +1,14 @@
+#compdef ps2epsi ps2pdf psmulti pswrap ps2pdf12 ps2pdf13 ps2pdf14 ps2pdfwr ps2ps
+
+local expl ext=''
+
+# ghostscript:
+#  ps2epsi ps2pdf ps2pdf12 ps2pdf13 ps2pdf14 ps2pdfwr ps2ps
+
+if [[ "$1" == '-z' ]]; then
+  ext='(|.gz|.Z)'
+  shift
+fi
+
+_description files expl 'PostScript file'
+_files "$@" "$expl[@]" -g "*.(#i)(ps|eps)$ext"
diff --git a/Completion/X/Command/.distfiles b/Completion/X/Command/.distfiles
index 26bf2aff1..710b9ab5b 100644
--- a/Completion/X/Command/.distfiles
+++ b/Completion/X/Command/.distfiles
@@ -2,5 +2,5 @@ DISTFILES_SRC='
 .distfiles
 _gv        _netscape  _xauth     _xfig      _xrdb      _xterm     _xwit
 _nedit     _vnc       _x_utils   _xdvi      _xmodmap   _xset      _xv
-_mozilla   _xloadimage
+_dcop      _gqview    _mozilla   _xloadimage
 '
diff --git a/Completion/X/Command/_dcop b/Completion/X/Command/_dcop
new file mode 100644
index 000000000..a905c16fc
--- /dev/null
+++ b/Completion/X/Command/_dcop
@@ -0,0 +1,120 @@
+#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=( $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=( $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 "$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=( $state object )
+      else
+        if compset -S ',*'; then
+	  set -- "$@" -S ''
+	else
+	  set -- "$@" -S ,
+	fi
+        state=( $state application )
+      fi
+    ;;
+  esac
+  shift state
+done
+
+return ret
diff --git a/Completion/X/Command/_gqview b/Completion/X/Command/_gqview
new file mode 100644
index 000000000..309bc1a38
--- /dev/null
+++ b/Completion/X/Command/_gqview
@@ -0,0 +1,12 @@
+#compdef gqview
+
+_arguments \
+  '(+t -t --without-tools --with-tools)'{+t,--with-tools}'[force show of tools]' \
+  '(+t -t --without-tools --with-tools)'{-t,--without-tools}'[force hide of tools]' \
+  '(--fullscreen -f)'{-f,--fullscreen}'[start in full screen mode]' \
+  '(--slideshow -s)'{-s,--slideshow}'[start in slideshow mode]' \
+  '(--list -l)'{-l,--list}'[open collection window for command line]' \
+  '--debug[turn on debug output]' \
+  '(--version -v)'{-v,--version}'[print version info]' \
+  '(--help -h)'{-h,--help}'[show help]' \
+  '*:picture file:_files -/ -g \*.\(\#i\)\(jpg\|jpe\|jpeg\|png\|gif\|tif\|tiff\|bmp\)'