add support to report a mouse events via stdin with esc-sequences: #4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
an xterm-like mouse reporting. A bugs reports to [email protected]
getc()
{
stty raw
dd bs=1 count=1 2>/dev/null
stty cooked
}
handle_mouse()
{
local c
c="
getc"[ "$c" = "[" ] || return
c="
getc"[ "$c" = "M" ] || return
b="
getc"x="
getc"y="
getc"b=
printf "%u" "'$b"x=
printf "%u" "'$x"y=
printf "%u" "'$y"b=$(($b - 32))
x=$(($x - 32))
y=$(($y - 32))
echo "$b $x $y"
}
stty -echo
printf '\033[?1000h'
ESC="
printf '\033'"while true ; do
c="
getc"if [ "$c" = "$ESC" ] ; then
handle_mouse
fi
if [ "$c" = "q" ] ; then
break
fi
done
printf '\033[?1000l'
stty echo
echo