# shellcheck shell=dash

___x_cmd_less___main(){
    [ "$#" -gt 0 ] || {
        ___x_cmd_cmds less
        return
    }

    local op="$1"; shift
    case "$op" in
        --autoview)
            ___x_cmd_less___autoview "$@" ;;
        --autoview-all)
            ___x_cmd_less___autoview_all "$@" ;;
        *)
            ___x_cmd_cmds less "$op" "$@" ;;
    esac
}

___x_cmd_less___autoview(){
    local n="${1:-20}"
    local content=""
    content="$(___x_cmd_cmds head -n "$n")"

    {
        printf "%s\n" "$content"
        cat
    } | ___x_cmd_less___autoview_all

    # Only display first 20 lines ...
    # printf "%s\n" "$content"
}

___x_cmd_less___autoview_all(){
    # if </dev/null ___x_cmd_cmds less --use-color >/dev/null ; then
    if (___x_cmd_cmds less --help | grep 'use-color' ) 1>/dev/null 2>/dev/null; then
        local prompt="Press q to QUIT, h for HELP"
        case "$LANG" in
            zh_CN*)     prompt="q 退出 | h 帮助"
        esac
        ___x_cmd_cmds less -r --use-color --prompt "$prompt"
    else
        ___x_cmd_cmds less -R
    fi
}
