From 2df07e6613a0da6f3b332a34620725f2773c9202 Mon Sep 17 00:00:00 2001
From: Akib Azmain Turja <akib@disroot.org>
Date: Thu, 28 Sep 2023 13:34:45 +0600
Subject: [PATCH] Support <backtab>

* eat.el (eat-term-input-event): Handle '<tab>' and '<backtab>'
events.
* eat.el (eat-term-make-keymap): Bind '<tab>' and '<backtab>'.
* eat.ti (eat-mono): Add 'kcbt' capability.
---
 eat.el                    |  10 +++++++---
 eat.ti                    |   1 +
 terminfo/65/eat-256color  | Bin 2216 -> 2220 bytes
 terminfo/65/eat-color     | Bin 2218 -> 2222 bytes
 terminfo/65/eat-mono      | Bin 2008 -> 2012 bytes
 terminfo/65/eat-truecolor | Bin 2223 -> 2227 bytes
 terminfo/e/eat-256color   | Bin 2216 -> 2220 bytes
 terminfo/e/eat-color      | Bin 2218 -> 2222 bytes
 terminfo/e/eat-mono       | Bin 2008 -> 2012 bytes
 terminfo/e/eat-truecolor  | Bin 2223 -> 2227 bytes
 10 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/eat.el b/eat.el
index 73ba772..c937792 100644
--- a/eat.el
+++ b/eat.el
@@ -4366,6 +4366,10 @@ client process may get confused."
            (send "\e\C-?"))
           ('C-M-backspace
            (send "\e\C-h"))
+          ('tab
+           (send "\t"))
+          ('backtab
+           (send "\e[Z"))
           ;; Function keys.
           ((and (pred symbolp)
                 fn-key
@@ -4651,9 +4655,9 @@ EXCEPTIONS is a list of key sequences to not bind.  Don't use
          for i from ?\C-@ to ?\C-?
          do (unless (= i meta-prefix-char)
               (bind (vector i))))
-        ;; Bind `backspace', `delete', `deletechar', and all modified
-        ;; variants.
-        (dolist (key '( backspace C-backspace
+        ;; Bind `tab', `backspace', `delete', `deletechar', and all
+        ;; modified variants.
+        (dolist (key '( tab backtab backspace C-backspace
                         M-backspace C-M-backspace
                         insert C-insert M-insert S-insert C-M-insert
                         C-S-insert M-S-insert C-M-S-insert
diff --git a/eat.ti b/eat.ti
index 7f80e0d..0923907 100644
--- a/eat.ti
+++ b/eat.ti
@@ -95,6 +95,7 @@ eat-mono|Emacs Eat without colors,
   rmam=\e[?7l,
   smxx=\e[9m,
   rmxx=\e[29m,
+  kcbt=\E[Z,
   kbs=^?,
   kcuu1=\eOA,
   kri=\e[1;2A,
diff --git a/terminfo/65/eat-256color b/terminfo/65/eat-256color
index dda98bd68ca55766c06fed82dad16bf579d7d21b..c9160593d8d3b685aa12f359c141d002e74e2309 100644
GIT binary patch
delta 271
zcmZ1>xJHm$j!B(CmVuuklTmsj_ew^tNlgENU>egLriqDSOpBN%3o@J3F9Qp%1(P7@
zElj(a4uN?mf#e0K_;tAa|Nr-xo-n;)`pEQy=|2-2Gas`UvmCP;vmUb<vmLV=voCW9
zb2M`ja~5+Ea}{$Fa~Ja@=2^^(m{&4yVBXHWkNFt$Ip%B3_n4nCzhnN!{7;^lm4$~z
zm_>?3iA9UWh{cM<iN%X0h$V_8ktKsAp9SbfJ<bxAdKQq|S|;CTk{0U)vq5|Wm;_Sj
a$n$>&RBjH-?ai^wQ<)f}Hos@x$pio;LwKG5

delta 269
zcmZ1@xI&Oyj!B(CmVuuklTmyl_ew^t|6nkQX$I58L@}m$Op^tfP3jjhfkan=Nf2uT
z({`qPVBS$6c?K$e87}|-|1G8mOwX9!GJRqC&BVma#Vo`u#jM1v#cafE#q7lF$sE8O
z&K$>_#+=7o#$3nT#@xp|jd>pPQsy<xo0)epA7Vbme2MuM^CRY0%%7Nl$ul#uaIo;R
zh_T4AsIlm=n6cQgxUu-Lgt5f3q_AYO0Ntp^S-?`w0&-i!<oit0Vx3?%h>rk$Acc-R
W|EECZX0Tk}9LqeFY4bPMZA<|E<amhy

diff --git a/terminfo/65/eat-color b/terminfo/65/eat-color
index 53ed6a6b11a953a9591430a1316e4b3607e5943b..14970b2e72034ad81d188c35b2ab03f7a4a2f238 100644
GIT binary patch
delta 279
zcmZ1_xK5B;icyV0mVuuklhI})cQ+%~B&PpBFpX&r)8vDUVoZyeCNnY{*Z*Gz7G4V`
zK?=4o?PfXz=A8tR7og(T;qw3g-(z~h^or>t(+{TqOl-`2%wo)P%xcVf%x27X%x=uS
z%puIt%t_2y%tg#q%uUQ)%#)aBF)w0X$-IGiJM%u~W6bB6uQA_ae#ZQc`5UvsKW0`I
z9u{F1DHbIbEfymdD;6gfFP0#dD3(N)43>Nrpd<BEOIYezKyGURlOR?v%Vjtl#Q*<a
ia`HzeVMaM1>CCOd3K7#_HQH>?Je7$tYV$?bn@j+q8GN7s

delta 277
zcmZ1{xJr;)icyV0mVuuklhI-$cQ+%~e=wNDG=pjKK}IpAc}$ZTnT_lJFJc0TuLP4I
z)&{2SO#8sRqd@WuRQxhr{{R15Ob?izF}-E_!t|SoiJ6O8h*^qRiCK%;h}nwSiP@7m
zfH|Bwjya7vkGYJwj=7Dwk9ivNJm#g$YnV4P?_xg0e2V!J^DX8_%&(X~F)RFHW@O=D
z;b#$Jkz-L~(PJ@Vv14&#@nZ>NiDgM)$z}mMQctyjrJ4ogwgxZ>Vs)~dhqFQa|NliN
fe`FG7lme2@+zPA^F%?$5&GyVwnKs{Gy~YFpc0qiD

diff --git a/terminfo/65/eat-mono b/terminfo/65/eat-mono
index 5d4b98b03a6adec85048e71482c697b5d9284c7d..37c6038202886a808aecd44c68cd630573f42ea1 100644
GIT binary patch
delta 240
zcmcb?e}|u2icyI{ih-FSg>mvm?rcV`NlgENU>egLrpXH##h4Z`O@7E^T>pO=Sa>a%
z1S#0Uw43P=n0FFLUVw^Uhs*!}e~;-2(<`QrOh1_ZGqExAF^e(FF{?4_F`F^lF}pGQ
zGKVlnGbb@;F&8mcF*h-HF;8Ni#k`1lCG!U6?acd_k1?NPzQ%ly`5E&&=5NgM|Cm`>
zcvys4q*#<#v{;N-tXP~_yjX%*qF54HGFb8_Uu4o}E@7z$(u#~NKvI~o6G%EU_HPzt
Op31}+wRt(KArk;dR$a;f

delta 238
zcmcb^e}kV}icyI{ih-FSg|UAlcQzx}e=wNDG=pjKLPjyBc}$ZZG8xzZU&I6wUkN5b
ztPM=tnf8HsM}g!SsQ6{L{Qv*Am>w`aV|vT<h3PjF6EhdH5VI7s60;Vw5wjJu6SF6C
z0CPBV9CI3T9&;IU9djFVAM-TkdCW_h*D!Bp-o<=~`4sad=3C5<m|rn}VwV5K%*evQ
z!p|bcBFCb}qQ_#!V#ngf;>Qxk63ddpl0Eq%lRk3+OEr*IWNZME!i=pz(wVV)vncaa
Krp@bE^_T!pBwfJ(

diff --git a/terminfo/65/eat-truecolor b/terminfo/65/eat-truecolor
index c2c86b92d7778650f40314d613956d5bccdfd538..5b08f5432596572aa21f5c65703e451cf4ec2827 100644
GIT binary patch
delta 271
zcmZ24xLJ@}j!B(CmVuuklTmsj_ew^tNlgENU>egLriqDSOpBN%3o@J3F9Qp%1(P7@
zElj(a4uN?mf#e0K_;tAa|Nr-xo-n;)`pEQy=|2-2Gas`UvmCP;vmUb<vmLV=voCW9
zb2M`ja~5+Ea}{$Fa~Ja@=2^^(m{&4yVBXHWkNFt$Ip%B3_n4nCzhnN!{7;^lm4$~z
zm_>?3iA9UWh{cM<iN%X0h$V_8ktKsAp9SbfJ+2a#dKQq|T399~N{RJ?*&sdwOadu%
a<oQ1XDmRDa_U2gTsZ5Mfo8Pk@U;+RbB6u|b

delta 269
zcmdlixL%N3j!B(CmVuuklTmyl_ew^t|6nkQX$I58L@}m$Op^tfP3jjhfkan=Nf2uT
z({`qPVBS$6c?K$e87}|-|1G8mOwX9!GJRqC&BVma#Vo`u#jM1v#cafE#q7lF$sE8O
z&K$>_#+=7o#$3nT#@xp|jd>pPQsy<xo0)epA7Vbme2MuM^CRY0%%7Nl$ul#uaIo;R
zh_T4AsIlm=n6cQgxUu-Lgt5f3q_AYO0Ntp^Rlris0&-ge%fv(}u}&}>#7BTWkU~eE
W|5KoHGgz)~j%A+8wD}wBUM2wYqj(?y

diff --git a/terminfo/e/eat-256color b/terminfo/e/eat-256color
index dda98bd68ca55766c06fed82dad16bf579d7d21b..c9160593d8d3b685aa12f359c141d002e74e2309 100644
GIT binary patch
delta 271
zcmZ1>xJHm$j!B(CmVuuklTmsj_ew^tNlgENU>egLriqDSOpBN%3o@J3F9Qp%1(P7@
zElj(a4uN?mf#e0K_;tAa|Nr-xo-n;)`pEQy=|2-2Gas`UvmCP;vmUb<vmLV=voCW9
zb2M`ja~5+Ea}{$Fa~Ja@=2^^(m{&4yVBXHWkNFt$Ip%B3_n4nCzhnN!{7;^lm4$~z
zm_>?3iA9UWh{cM<iN%X0h$V_8ktKsAp9SbfJ<bxAdKQq|S|;CTk{0U)vq5|Wm;_Sj
a$n$>&RBjH-?ai^wQ<)f}Hos@x$pio;LwKG5

delta 269
zcmZ1@xI&Oyj!B(CmVuuklTmyl_ew^t|6nkQX$I58L@}m$Op^tfP3jjhfkan=Nf2uT
z({`qPVBS$6c?K$e87}|-|1G8mOwX9!GJRqC&BVma#Vo`u#jM1v#cafE#q7lF$sE8O
z&K$>_#+=7o#$3nT#@xp|jd>pPQsy<xo0)epA7Vbme2MuM^CRY0%%7Nl$ul#uaIo;R
zh_T4AsIlm=n6cQgxUu-Lgt5f3q_AYO0Ntp^S-?`w0&-i!<oit0Vx3?%h>rk$Acc-R
W|EECZX0Tk}9LqeFY4bPMZA<|E<amhy

diff --git a/terminfo/e/eat-color b/terminfo/e/eat-color
index 53ed6a6b11a953a9591430a1316e4b3607e5943b..14970b2e72034ad81d188c35b2ab03f7a4a2f238 100644
GIT binary patch
delta 279
zcmZ1_xK5B;icyV0mVuuklhI})cQ+%~B&PpBFpX&r)8vDUVoZyeCNnY{*Z*Gz7G4V`
zK?=4o?PfXz=A8tR7og(T;qw3g-(z~h^or>t(+{TqOl-`2%wo)P%xcVf%x27X%x=uS
z%puIt%t_2y%tg#q%uUQ)%#)aBF)w0X$-IGiJM%u~W6bB6uQA_ae#ZQc`5UvsKW0`I
z9u{F1DHbIbEfymdD;6gfFP0#dD3(N)43>Nrpd<BEOIYezKyGURlOR?v%Vjtl#Q*<a
ia`HzeVMaM1>CCOd3K7#_HQH>?Je7$tYV$?bn@j+q8GN7s

delta 277
zcmZ1{xJr;)icyV0mVuuklhI-$cQ+%~e=wNDG=pjKK}IpAc}$ZTnT_lJFJc0TuLP4I
z)&{2SO#8sRqd@WuRQxhr{{R15Ob?izF}-E_!t|SoiJ6O8h*^qRiCK%;h}nwSiP@7m
zfH|Bwjya7vkGYJwj=7Dwk9ivNJm#g$YnV4P?_xg0e2V!J^DX8_%&(X~F)RFHW@O=D
z;b#$Jkz-L~(PJ@Vv14&#@nZ>NiDgM)$z}mMQctyjrJ4ogwgxZ>Vs)~dhqFQa|NliN
fe`FG7lme2@+zPA^F%?$5&GyVwnKs{Gy~YFpc0qiD

diff --git a/terminfo/e/eat-mono b/terminfo/e/eat-mono
index 5d4b98b03a6adec85048e71482c697b5d9284c7d..37c6038202886a808aecd44c68cd630573f42ea1 100644
GIT binary patch
delta 240
zcmcb?e}|u2icyI{ih-FSg>mvm?rcV`NlgENU>egLrpXH##h4Z`O@7E^T>pO=Sa>a%
z1S#0Uw43P=n0FFLUVw^Uhs*!}e~;-2(<`QrOh1_ZGqExAF^e(FF{?4_F`F^lF}pGQ
zGKVlnGbb@;F&8mcF*h-HF;8Ni#k`1lCG!U6?acd_k1?NPzQ%ly`5E&&=5NgM|Cm`>
zcvys4q*#<#v{;N-tXP~_yjX%*qF54HGFb8_Uu4o}E@7z$(u#~NKvI~o6G%EU_HPzt
Op31}+wRt(KArk;dR$a;f

delta 238
zcmcb^e}kV}icyI{ih-FSg|UAlcQzx}e=wNDG=pjKLPjyBc}$ZZG8xzZU&I6wUkN5b
ztPM=tnf8HsM}g!SsQ6{L{Qv*Am>w`aV|vT<h3PjF6EhdH5VI7s60;Vw5wjJu6SF6C
z0CPBV9CI3T9&;IU9djFVAM-TkdCW_h*D!Bp-o<=~`4sad=3C5<m|rn}VwV5K%*evQ
z!p|bcBFCb}qQ_#!V#ngf;>Qxk63ddpl0Eq%lRk3+OEr*IWNZME!i=pz(wVV)vncaa
Krp@bE^_T!pBwfJ(

diff --git a/terminfo/e/eat-truecolor b/terminfo/e/eat-truecolor
index c2c86b92d7778650f40314d613956d5bccdfd538..5b08f5432596572aa21f5c65703e451cf4ec2827 100644
GIT binary patch
delta 271
zcmZ24xLJ@}j!B(CmVuuklTmsj_ew^tNlgENU>egLriqDSOpBN%3o@J3F9Qp%1(P7@
zElj(a4uN?mf#e0K_;tAa|Nr-xo-n;)`pEQy=|2-2Gas`UvmCP;vmUb<vmLV=voCW9
zb2M`ja~5+Ea}{$Fa~Ja@=2^^(m{&4yVBXHWkNFt$Ip%B3_n4nCzhnN!{7;^lm4$~z
zm_>?3iA9UWh{cM<iN%X0h$V_8ktKsAp9SbfJ+2a#dKQq|T399~N{RJ?*&sdwOadu%
a<oQ1XDmRDa_U2gTsZ5Mfo8Pk@U;+RbB6u|b

delta 269
zcmdlixL%N3j!B(CmVuuklTmyl_ew^t|6nkQX$I58L@}m$Op^tfP3jjhfkan=Nf2uT
z({`qPVBS$6c?K$e87}|-|1G8mOwX9!GJRqC&BVma#Vo`u#jM1v#cafE#q7lF$sE8O
z&K$>_#+=7o#$3nT#@xp|jd>pPQsy<xo0)epA7Vbme2MuM^CRY0%%7Nl$ul#uaIo;R
zh_T4AsIlm=n6cQgxUu-Lgt5f3q_AYO0Ntp^Rlris0&-ge%fv(}u}&}>#7BTWkU~eE
W|5KoHGgz)~j%A+8wD}wBUM2wYqj(?y