#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 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