#!/bin/sh -efu

PROG_VERSION=0.1.2
config_file="${MAN_CONFIG:-/etc/man.conf}"

split_colon() {
	local a IFS=:
	for a in $*; do
		printf '%s ' "$a"
	done
}

suffnum=0
ignore=' '

MANPATH=
MANSECT=
COMPRES=
TROFF=
NROFF=
PAGER=

read_conf() {
	local cmd value eof=
	while [ -z "$eof" ]; do
		read -r cmd value || eof=1

		case "$cmd" in
			MANPATH)
				[ -z "${ignore##* manpath *}" ] ||
					MANPATH="${MANPATH:+$MANPATH }$value"
				;;
			MANSECT)
				[ -z "${ignore##* mansect *}" ] ||
					MANSECT="$(split_colon "$value")"
				;;
			PAGER)
				[ -z "${ignore##* pager *}" ] ||
					PAGER="$value"
				;;
			TROFF) TROFF="$value"
				;;
			NROFF) NROFF="$value"
				;;
			.*)
				[ -n "$value" ] || continue
				COMPRES="$COMPRES $cmd"
				eval "suffix$suffnum=\"\$cmd\""
				eval "uncompress$suffnum=\"\$value\""
				suffnum=$(($suffnum+1))
				;;
		esac
	done < "$config_file"
}

lang=
short_lang=
set_lang() {
	lang="${NLSPATH-}"
	[ -n "$lang" ] || lang="${LC_MESSAGES-}"
	[ -n "$lang" ] || lang="${LANG-}"
	[ "$LANG" != 'C' -a "$LANG" != 'POSIX' ] || lang=
	short_lang="$(printf '%.2s' "$lang")"

	if [ -n "${ignore##* manpath *}" -a -n "$lang" ]; then
		local path new=
		for path in $MANPATH; do
			new="${new:+$new }$path/$short_lang $path"
		done
		MANPATH="$new"
	fi
}

ll=0
pl=
set_pagesize() {
	ll="${MANWIDTH-}"
	[ "${ll:-0}" -gt 0 ] 2>/dev/null || ll="$(tput cols 2>/dev/null)" ||:
	[ "${ll:-0}" -gt 0 ] 2>/dev/null || ll="${COLUMNS-}"
	[ "${ll:-0}" -gt 0 ] 2>/dev/null || ll='0'

	pl="${MANPL-}"
	[ "${pl:-0}" -gt 0 ] 2>/dev/null || pl='1100i'
}
