#autoload # Utility function for completing files of a given type or any file. # In many cases you will want to call this one instead of _path_files(). local nm=$compstate[nmatches] ret=1 _path_files "$@" && ret=0 if [[ $# -ne 0 && compstate[nmatches] -eq nm ]]; then local opt opts # We didn't get any matches for those types of files described by # the `-g' or `-/' option. Now we try it again accepting all files. # First we get those options that we have to use even if then. If # we find out that the `-f' option was given, we already accepted # all files and give up immediatly. opts=() while getopts "P:S:W:F:J:V:X:f/g:" opt; do [[ "$opt" = f ]] && return [[ "$opt" = [PSWFJVX] ]] && opts=("$opts[@]" "-$opt" "$OPTARG") done _path_files "$opts[@]" && ret=0 fi return ret