
xrc ls

## Section: locate document: lsname, ls, exact
___x_cmd_tldr_listname(){
    local l; local i=0; ___x_cmd_tldr_list "$@" | {
        while read -r l; do
            i=$(( i + 1 ))
            [ "$i" -lt 100 ] || break
            case "$l" in
                *".md")
                        l="${l#*/}"
                        l="${l%".md"}"
                    ;;
            esac
            printf "%s\n" "$l"
        done
    }
}

___x_cmd_tldr_list(){
    if ___x_cmd_is_stdout2tty && ___x_cmd_runmode_allow_chatty; then
        ___x_cmd_tldr_list___app "$@"
    else
        ___x_cmd_tldr_list_raw "$@"
    fi
}

___x_cmd_tldr_list_raw(){
    ___x_cmd_tldr_version_pages_ || return $?
    ___x_cmd_tldr_pages_prepare en || return $?

    local cmd="${1}"
    ___x_cmd_tldr_list___inner "$cmd" "${___X_CMD_TLDR_DIR_DATA}/${___X_CMD_TLDR_PAGES_VERSION}/pages.en"
    ___x_cmd_tldr_list___inner "$cmd" "${___X_CMD_TLDR_DIR_DATA}/lang/${___X_CMD_TLDR_LANG_VERSION}"
}

___x_cmd_tldr_list___inner(){(
    local cmd="${1}"
    local dirpath="${2}"
    ___x_cmd_cmds_cd "$dirpath" 2>/dev/null || return $?
    local i; for i in */* ; do
        case "$cmd" in
            "")  printf "%s\n" "$i" ;;
            */*)
                case "$i" in
                    *"${cmd}"*)     printf "%s\n" "$i" ;;
                esac
                ;;
            *)
                case "$i" in
                    *"/${cmd}"*.md) printf "%s\n" "$i" ;;
                    ${cmd}*/*)      printf "%s\n" "$i" ;;
                esac
                ;;
        esac
    done 2>/dev/null
)}

___x_cmd_tldr_list___allfile_pages(){
    ___x_cmd_tldr_pages_prepare || return $?
    local dirpath="${___X_CMD_TLDR_DIR_DATA}/${___X_CMD_TLDR_PAGES_VERSION}";   [ -d "$dirpath" ] || return $?
    command find "$dirpath" -mindepth 3 -type f -printf "%P\n" 2>/dev/null || {
        local l; command find "$dirpath" -mindepth 3 -type f 2>/dev/null | while read -r l; do
            printf "%s\n" "${l#"${dirpath}/"}"
        done
    }
}

___x_cmd_tldr_list___app(){
    local x_=""
    local ___X_CMD_PICK_SHBIN_CODE="xrc tldr;"
    ___x_cmd storeread_  ___x_cmd pick --col 6 --ctrl-c-clear  ___x_cmd_tldr_list_raw  "$@"

    local data="$x_"
    if [ -n "$data" ]; then
        ___x_cmd tldr --cat "$data"
    fi
}
