# shellcheck shell=dash

___x_cmd_tz_xrun(){
    local arg
    while [ $# -gt 0 ]; do
        case "$1" in
            -list|-v)           ___x_cmd_tz___run "$1"; return 0 ;;
            -m|-q)              arg="$arg $1"; shift ;;
            --when|-when)       arg="$arg -when $2"; shift 2 ;;
            -*)                 N=tz M="Unknown argument -> $1" log:ret:64 ;;
            *)                  break ;;
        esac
    done

    local data;
    if [ $# -eq 0 ]; then
        data="$(___x_cmd_tz_loc_get)" || true
    else
        data="$( ___x_cmd_tz_id "$@" )"
    fi

    local TZ_LIST=""
    local line; while read -r line; do
        TZ_LIST="${TZ_LIST};${line#* }"
    done <<A
$data
A

    TZ_LIST="${TZ_LIST#;}" ___x_cmd_tz_xrun___evalrun
}

___x_cmd_tz_xrun___evalrun(){
    eval ___x_cmd_tz___run "$arg"
}
