
trap 'stty -raw 2>/dev/null;' EXIT
stty raw 2>/dev/null

trap "printf '\003\n'" INT
IFS="$(printf "\n")"
while true; do
    if read -rsn 1 ch; then
        printf "%s\n" "$ch"
    else
        # ctrl c
        printf "%s\n" "$___X_CMD_UNSEENCHAR_003"
    fi
done 2>/dev/null

stty -raw 2>/dev/null
