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