# shellcheck shell=dash

# Section: cat
___x_cmd_tldr_cat(){
    local x_=;  ___x_cmd_tldr_lang get_ || return $?
    local pages="pages.$x_"
    arg:init tldr 'x tldr -h'
    [ -n "$1" ] || M="Please provide the correct candidate value" arg:ret:64

    ___x_cmd_tldr_pages_prepare || return $?

    local IFS="-";  local cmd="$*"
    IFS="$___X_CMD_UNSEENCHAR_NEWLINE"
    local x_file=;  ___x_cmd_tldr_exact___getfile_pages_ "${cmd%.md*}.md" "$pages" || return $?
    if [ -z "$x_file" ]; then
        [ "$x_" = en ] || {
            ___X_CMD_TLDR_LANG_PREFERED=en ___x_cmd_tldr_cat "$@"
            return
        }

        ___x_cmd_tldr_exact___getfile_pages_ "$cmd" pages.en
        [ -z "$x_file" ] || {
            tldr:warn "Here are some similar commands of '$cmd'"
            ___X_CMD_TLDR_APP_DATA="$x_file" ___x_cmd_tldr_app_partial
            return 1
        }

        ___x_cmd_tldr_exact___getfile_lang_ "$cmd"
        [ -f "$x_file" ] || {
            case "$cmd" in
                x-*)    shift; ___x_cmd_tldr_cat_form_xcmd "$@"; return ;;
                *)      N=tldr M="Not found $cmd" log:ret:1 ;;
            esac
        }
        ___x_cmd_cmds_cat "$x_file"
        return

    elif [ "$x_file" = "${x_file#*"${___X_CMD_UNSEENCHAR_NEWLINE}"}" ]; then
        ___x_cmd_tldr_which_ "$x_file"
        [ -f "$x_file" ] || return $?
        ___x_cmd_tldr_cat_awk "$x_file"
    else
        tldr:info "Here are several document for [cmd=$cmd]"
        ___X_CMD_TLDR_APP_DATA="$x_file" ___x_cmd_tldr_app_partial
    fi
}

___x_cmd_tldr_cat_awk(){
    arg:init tldr 'x tldr -h'
    arg:1:nonempty

    local NO_COLOR="$NO_COLOR"
    { ___x_cmd_is_stdout2tty && ___x_cmd_runmode_allow_chatty; } || NO_COLOR=1

    [ "$___X_CMD_TLDR_ENABLE_COLOR" != 1 ] || NO_COLOR=""

    local filepath="$1"
    tldr:debug "filepath=$filepath"
    ___x_cmd tty update
    ___X_CMD_TLDR_LANG_IGNORE="$___X_CMD_TLDR_LANG_IGNORE" \
    ___x_cmd awk0 \
    -v COLUMNS="${___X_CMD_TLDR_COLUMNS:-$COLUMNS}" \
    -v NO_COLOR="$NO_COLOR" \
    -v NO_BACKGROUND="$___X_CMD_TLDR_NO_BACKGROUND" \
    -v FILEPATH="$filepath" \
    -f "$___X_CMD_ROOT_MOD/awk/lib/k.awk"              \
    -f "$___X_CMD_ROOT_MOD/awk/lib/ui/ui.awk"          \
    -f "$___X_CMD_ROOT_MOD/awk/lib/u/wcwidth.awk"      \
    -f "$___X_CMD_ROOT_MOD/tui/lib/comp/share.awk"     \
    -f "$___X_CMD_ROOT_MOD/tldr/lib/awk/tldr.util.awk" \
    -f "$___X_CMD_ROOT_MOD/tldr/lib/awk/tldr.main.awk"
}

## EndSection
