_dmesg_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
			;;
		'-f'|'--facility')
			COMPREPLY=( $(compgen -W "kern user mail daemon auth syslog lpr news" -- $cur) )
			return 0
			;;
		'-l'|'--level'|'-n'|'--console-level')
			COMPREPLY=( $(compgen -W "emerg alert crit err warn notice info debug" -- $cur) )
			return 0
			;;
		'-s'|'--buffer-size')
			COMPREPLY=( $(compgen -W "size" -- $cur) )
			return 0
			;;
		'-h'|'--help'|'-V'|'--version')
			return 0
			;;
	esac
	OPTS="--clear
		--read-clear
		--console-off
		--show-delta
		--reltime
		--console-on
		--file
		--facility
		--human
		--kernel
		--color
		--level
		--console-level
		--nopager
		--raw
		--syslog
		--buffer-size
		--ctime
		--notime
		--userspace
		--follow
		--decode
		--help
		--version"
	COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
	return 0
}
complete -F _dmesg_module dmesg
