
# ___x_cmd_normpath "//usr/bin"
# ___x_cmd_normpath "//usr/local/../local/bin"
# ___x_cmd_normpath "//usr/local/../local/bin/abc\\\/abc"

___x_cmd_normpath(){
    local x_=""
    ___x_cmd_normpath_ "$@" || return $?
    printf "%s\n" "$x_"
}

___x_cmd_normpath_(){
    x_=""
    local filepath="${1%/}"
    local name=""
    local first=1
    while [ -n "$filepath" ]; do
        case "$filepath" in
            */*)
                        name="${filepath%%/*}"
                        filepath="${filepath#*/}"
                        ;;
            *)
                        filepath=""
                        name="$filepath"
        esac

        if [ -n "$first" ]; then
            first=""
            case "$name" in
                "")     x_="/"     ;;
                ~)      x_="$HOME" ;;
                .)      x_="$PWD"  ;;
                ..)
                        case "$PWD" in
                            /*/*)     x_="${PWD%/*}" ;;
                            *)        N=x M="There is no parent folder denoted in the first token" log:ret:64
                        esac
            esac
        else
            case "$name" in
                ""|.)   ;;
                ..)
                        case "$x_" in
                            /*/*)     x_="${x_%/*}" ;;
                            *)        N=x M="There is no parent folder -> $x_" log:ret:64
                        esac
                        ;;
                *)      x_="${x_}/$name"

            esac
        fi
    done
}
