# Programmable bash_completion file for the main office applications # It is based on /etc/profile.d/complete.bash from SUSE Linux 10.1 _def=; _dir=; _file=; _nosp= if complete -o default _nullcommand &> /dev/null ; then _def="-o default" _dir="-o dirnames" _file="-o filenames" fi _minusdd="-d ${_dir}" _minusdf="-d ${_file}" if complete -o nospace _nullcommand &> /dev/null ; then _nosp="-o nospace" _minusdd="${_nosp} ${_dir}" _minusdf="${_nosp} ${_dir}" fi complete -r _nullcommand &> /dev/null # General expanding shell function @OFFICE_SHELL_FUNCTION@ () { # bash `complete' is broken because you can not combine # -d, -f, and -X pattern without missing directories. local c=${COMP_WORDS[COMP_CWORD]} local a="${COMP_LINE}" local e s g=0 cd dc t="" local IFS shopt -q extglob && g=1 test $g -eq 0 && shopt -s extglob # Don't be fooled by the bash parser if extglob is off by default cd='*-?(c)d*' dc='*-d?(c)*' case "${1##*/}" in @BASH_COMPLETION_SUFFIXES_CHECKS@ *) e='!*' esac case "$(complete -p ${1##*/} 2> /dev/null)" in *-d*) ;; *) s="-S/" esac IFS=' ' case "$c" in \$\(*\)) eval COMPREPLY=\(${c}\) ;; \$\(*) COMPREPLY=($(compgen -c -P '$(' -S ')' -- ${c#??})) ;; \`*\`) eval COMPREPLY=\(${c}\) ;; \`*) COMPREPLY=($(compgen -c -P '\`' -S '\`' -- ${c#?})) ;; \$\{*\}) eval COMPREPLY=\(${c}\) ;; \$\{*) COMPREPLY=($(compgen -v -P '${' -S '}' -- ${c#??})) ;; \$*) COMPREPLY=($(compgen -v -P '$' -- ${c#?})) ;; \~*/*) COMPREPLY=($(compgen -f -X "$e" -- ${c})) ;; \~*) COMPREPLY=($(compgen -u ${s} -- ${c})) ;; *@*) COMPREPLY=($(compgen -A hostname -P '@' -S ':' -- ${c#*@})) ;; *[*?[]*) COMPREPLY=($(compgen -G "${c}")) ;; *[?*+\!@]\(*\)*) if test $g -eq 0 ; then COMPREPLY=($(compgen -f -X "$e" -- $c)) test $g -eq 0 && shopt -u extglob return fi COMPREPLY=($(compgen -G "${c}")) ;; *) if test "$c" = ".." ; then COMPREPLY=($(compgen -d -X "$e" -S / ${_nosp} -- $c)) else for s in $(compgen -f -X "$e" -- $c) ; do if test -d $s ; then COMPREPLY=(${COMPREPLY[@]} $(compgen -f -X "$e" -S / -- $s)) elif test -z "$t" ; then COMPREPLY=(${COMPREPLY[@]} $s) else case "$(file -b $s 2> /dev/null)" in $t) COMPREPLY=(${COMPREPLY[@]} $s) ;; esac fi done fi ;; esac test $g -eq 0 && shopt -u extglob } complete -d -X '.[^./]*' -F @OFFICE_SHELL_FUNCTION@ ${_file} \ @BASH_COMPLETION_OOO_APPS@ unset _def _dir _file _nosp _minusdd _minusdf