function __fish_complete_tar -d "Peek inside of archives and list all files" set -l cmd (commandline -poc) set -e cmd[1] for i in $cmd switch $i case '-*' continue case '*.tar.bz' '*.tar.bz2' '*.tbz' '*.tbz2' if test -f $i set -l file_list (tar -jt <$i) printf (_ "%s\tArchived file\n") $file_list end return case '*.tar.gz' '*.tgz' if test -f $i set -l file_list (tar -it <$i) printf (_ "%s\tArchived file\n") $file_list end return case '*.tar' if test -f $i set -l file_list (tar -t <$i) printf (_ "%s\tArchived file\n") $file_list end return end end end