

case "$___X_CMD_SHELL" in
    dash|"")
        if ___x_cmd_hascmd bash; then
            ___x_cmd_wchar___getloop_native(){
                trap "printf '\003\n'" INT
                DISABLE_SIGINT="$DISABLE_SIGINT" exec bash "$___X_CMD_ROOT_MOD/wchar/lib/readloop/ash"
            }
        else
            ___x_cmd_wchar___getloop_native(){
                . "$___X_CMD_ROOT_MOD/wchar/lib/readloop/dash"
            }
        fi
        ;;
    zsh)
        ___x_cmd_wchar___getloop_native(){
            . "$___X_CMD_ROOT_MOD/wchar/lib/readloop/zsh"
        }
        ;;
    *)
        ___x_cmd_wchar___getloop_native(){
            . "$___X_CMD_ROOT_MOD/wchar/lib/readloop/ash"
        }
esac

___x_cmd_wchar___getloop()(
    ___x_cmd_wchar___getloop_native
)

___x_cmd_wchar_readloop(){
    ___x_cmd_wchar___getloop | {
        # read -r PID_OF_GETLOOP
        ___x_cmd_cmds_awk \
            -f "$___X_CMD_ROOT_MOD/awk/lib/core.awk"     \
            -f "$___X_CMD_ROOT_MOD/awk/lib/u/u8wc.awk"
    }
}

___x_cmd_wchar_visloop(){
    {
        ___x_cmd pidofsubshell
        ___x_cmd_wchar___getloop
    } | (
        read -r PID_OF_GETLOOP
        trap "" INT
        # x:warn "pid: $PID_OF_GETLOOP"
        ___x_cmd cawk \
            -f "$___X_CMD_ROOT_MOD/awk/lib/u/wcwidth.awk"  \
            -f "$___X_CMD_ROOT_MOD/awk/lib/u/u8wc.awk"      \
            -f "$___X_CMD_ROOT_MOD/wchar/lib/readloop/visloop.awk"
        kill -s TERM "$PID_OF_GETLOOP"
        # kill -9 "$PID_OF_GETLOOP"
    )
}

