function isatty -d "Tests if a file descriptor is a tty"
	set -l fd 0
	if count $argv >/dev/null
		switch $argv[1]

			case -h --h --he --hel --help
				__fish_print_help isatty
				return 0

			case stdin ''
				set fd 0

			case stdout
				set fd 1

			case stderr
				set fd 2

			case '*'
				set fd $argv[1]

		end
	end

	# Use `command test` because `builtin test` doesn't open the regular fd's.
	# See https://github.com/fish-shell/fish-shell/issues/1228
	command test -t "$fd"

end