summaryrefslogtreecommitdiff
path: root/contrib/povray
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/povray')
-rw-r--r--contrib/povray107
1 files changed, 57 insertions, 50 deletions
diff --git a/contrib/povray b/contrib/povray
index c69b0db4..4a4df011 100644
--- a/contrib/povray
+++ b/contrib/povray
@@ -1,59 +1,66 @@
-# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
-# ex: ts=8 sw=8 noet filetype=sh
-#
# povray completion by "David Necas (Yeti)" <yeti@physics.muni.cz>
+have povray || have xpovray || have spovray &&
_povray()
{
- local cur prev povcur pfx oext defoext
- defoext=png # default output extension, if cannot be determined FIXME
+ local cur prev povcur pfx oext defoext
+ defoext=png # default output extension, if cannot be determined FIXME
- COMPREPLY=()
- povcur=`_get_cword`
- prev=${COMP_WORDS[COMP_CWORD-1]}
+ COMPREPLY=()
+ povcur=`_get_cword`
+ prev=${COMP_WORDS[COMP_CWORD-1]}
- _expand || return 0
+ _expand || return 0
- case $povcur in
- [-+]I*)
- cur="${povcur#[-+]I}" # to confuse _filedir
- pfx="${povcur%"$cur"}"
- _filedir pov
- COMPREPLY=( ${COMPREPLY[@]/#/$pfx} )
- return 0
- ;;
- [-+]O*)
- # guess what output file type user may want
- case $( ( IFS=$'\n'; echo "${COMP_WORDS[*]}" | grep '^[-+]F' ) ) in
- [-+]FN) oext=png ;;
- [-+]FP) oext=ppm ;;
- [-+]F[CT]) oext=tga ;;
- *) oext=$defoext ;;
+ case $povcur in
+ [-+]I*)
+ cur="${povcur#[-+]I}" # to confuse _filedir
+ pfx="${povcur%"$cur"}"
+ _filedir pov
+ COMPREPLY=( ${COMPREPLY[@]/#/$pfx} )
+ return 0
+ ;;
+ [-+]O*)
+ # guess what output file type user may want
+ case $( ( IFS=$'\n'; echo "${COMP_WORDS[*]}" | grep '^[-+]F' ) ) in
+ [-+]FN) oext=png ;;
+ [-+]FP) oext=ppm ;;
+ [-+]F[CT]) oext=tga ;;
+ *) oext=$defoext ;;
+ esac
+ # complete filename corresponding to previously specified +I
+ COMPREPLY=( $( ( IFS=$'\n'; echo "${COMP_WORDS[*]}" | grep '^[-+]I' ) ) )
+ COMPREPLY=( ${COMPREPLY[@]#[-+]I} )
+ COMPREPLY=( ${COMPREPLY[@]/%.pov/.$oext} )
+ cur="${povcur#[-+]O}" # to confuse _filedir
+ pfx="${povcur%"$cur"}"
+ _filedir $oext
+ COMPREPLY=( ${COMPREPLY[@]/#/$pfx} )
+ return 0
+ ;;
+ *.ini\[|*.ini\[*[^]]) # sections in .ini files
+ cur="${povcur#*\[}"
+ pfx="${povcur%\["$cur"}" # prefix == filename
+ [ -r "$pfx" ] || return 0
+ COMPREPLY=( $(sed -e 's/^[[:space:]]*\[\('"$cur"'[^]]*\]\).*$/\1/' \
+ -e 't' -e 'd' -- "$pfx") )
+ # to prevent [bar] expand to nothing. can be done more easily?
+ COMPREPLY=( "${COMPREPLY[@]/#/$pfx[}" )
+ return 0
+ ;;
+ *)
+ cur="$povcur"
+ _filedir '?(ini|pov)'
+ return 0
+ ;;
esac
- # complete filename corresponding to previously specified +I
- COMPREPLY=( $( ( IFS=$'\n'; echo "${COMP_WORDS[*]}" | grep '^[-+]I' ) ) )
- COMPREPLY=( ${COMPREPLY[@]#[-+]I} )
- COMPREPLY=( ${COMPREPLY[@]/%.pov/.$oext} )
- cur="${povcur#[-+]O}" # to confuse _filedir
- pfx="${povcur%"$cur"}"
- _filedir $oext
- COMPREPLY=( ${COMPREPLY[@]/#/$pfx} )
- return 0
- ;;
- *.ini\[|*.ini\[*[^]]) # sections in .ini files
- cur="${povcur#*\[}"
- pfx="${povcur%\["$cur"}" # prefix == filename
- [ -r "$pfx" ] || return 0
- COMPREPLY=( $(sed -e 's/^[[:space:]]*\[\('"$cur"'[^]]*\]\).*$/\1/' -e 't' -e 'd' -- "$pfx") )
- # to prevent [bar] expand to nothing. can be done more easily?
- COMPREPLY=( "${COMPREPLY[@]/#/$pfx[}" )
- return 0
- ;;
- *)
- cur="$povcur"
- _filedir '?(ini|pov)'
- return 0
- ;;
- esac
-}
+} &&
complete -F _povray $filenames povray xpovray spovray
+
+# Local variables:
+# mode: shell-script
+# sh-basic-offset: 4
+# sh-indent-comment: t
+# indent-tabs-mode: nil
+# End:
+# ex: ts=4 sw=4 et filetype=sh