diff options
author | Oliver Kiddle <opk@users.sourceforge.net> | 2003-04-18 14:53:24 +0000 |
---|---|---|
committer | Oliver Kiddle <opk@users.sourceforge.net> | 2003-04-18 14:53:24 +0000 |
commit | 101d298859c12ab10a2a0714e846fb1aff15f3a2 (patch) | |
tree | 83385e673aee8d3957956538fcc72df21b7e5787 | |
parent | 90b6dbd2e0b1b264f2c4ae906e447f4d0a9da335 (diff) | |
download | zsh-101d298859c12ab10a2a0714e846fb1aff15f3a2.tar.gz zsh-101d298859c12ab10a2a0714e846fb1aff15f3a2.tar.xz zsh-101d298859c12ab10a2a0714e846fb1aff15f3a2.zip |
merge changes from 4.1
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | Completion/Unix/Type/_pdf | 16 | ||||
-rw-r--r-- | Completion/Unix/Type/_ps | 14 | ||||
-rw-r--r-- | Completion/X/Command/.distfiles | 2 | ||||
-rw-r--r-- | Completion/X/Command/_dcop | 120 | ||||
-rw-r--r-- | Completion/X/Command/_gqview | 12 |
6 files changed, 173 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index cacd5d907..b929912ea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2003-04-18 Oliver Kiddle <opk@zsh.org> + + * users/6013: GoTaR <gotar@poczta.onet.pl>: Completion/Unix/Type/_ps, + Completion/Unix/Type/_pdf, Completion/X/Command/_gqview: + new gqview completion and complete .ps/.pdf files for more commands + +2003-04-15 Oliver Kiddle <opk@zsh.org> + + * 18443: Completion/X/Command/_dcop: new completion for dcop + 2003-03-28 Wayne Davison <wayned@users.sourceforge.net> * 18402: Src/builtin.c: Prevent "print -m" from crashing (it now 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\)' |