_last_module()
{
	local cur prev OPTS
	COMPREPLY=()
	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	case $prev in
		'-f'|'--file')
			local IFS=$'\n'
			compopt -o filenames
			COMPREPLY=( $(compgen -f -- $cur) )
			return 0
			;;
		'-n'|'--limit')
			COMPREPLY=( $(compgen -W "number" -- $cur) )
			return 0
			;;
		'-s'|'--since'|'-t'|'--until'|'-p'|'--present')
			COMPREPLY=( $(compgen -W "number" -- $cur) )
			return 0
			;;
		'--time-format')
			COMPREPLY=( $(compgen -W "notime short full iso" -- $cur) )
			return 0
			;;
	esac
	case $cur in
		-*)
			OPTS="
				--hostlast
				--dns
				--file
				--fulltimes
				--ip
				--limit
				--nohostname
				--since
				--until
				--present
				--fullnames
				--system
				--time-format
				--help
				--version
			"
			COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
			return 0
			;;
	esac
	COMPREPLY=( $(compgen -u -- $cur) )
	return 0
}
complete -F _last_module last
