summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-09-29 11:35:53 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-09-29 11:35:53 +0800
commit9500e8d6215f584f7c6a41d56d530e3c4c237dd2 (patch)
treeb9da922fe6f902b6e328be2f10cbf44493b59ae4
parent4e4b3afffb7b8852797007348715a5287fba05a7 (diff)
downloadpttbbs-9500e8d6215f584f7c6a41d56d530e3c4c237dd2.tar
pttbbs-9500e8d6215f584f7c6a41d56d530e3c4c237dd2.tar.gz
pttbbs-9500e8d6215f584f7c6a41d56d530e3c4c237dd2.tar.bz2
pttbbs-9500e8d6215f584f7c6a41d56d530e3c4c237dd2.tar.lz
pttbbs-9500e8d6215f584f7c6a41d56d530e3c4c237dd2.tar.xz
pttbbs-9500e8d6215f584f7c6a41d56d530e3c4c237dd2.tar.zst
pttbbs-9500e8d6215f584f7c6a41d56d530e3c4c237dd2.zip
* vtkbd: add support of rxvt style HOME/END
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@4892 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--pttbbs/common/sys/vtkbd.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/pttbbs/common/sys/vtkbd.c b/pttbbs/common/sys/vtkbd.c
index c6b0a3f5..58b78419 100644
--- a/pttbbs/common/sys/vtkbd.c
+++ b/pttbbs/common/sys/vtkbd.c
@@ -35,6 +35,7 @@
* http://invisible-island.net/xterm/ctlseqs/ctlseqs.html
* http://invisible-island.net/xterm/xterm.faq.html
* http://www.vim.org/htmldoc/term.html
+ * http://wiki.archlinux.org/index.php/Why_don%27t_my_Home_and_End_keys_work_in_terminals%3F
* http://yz.kiev.ua/www/etc/putty/Section3.5.html
* PuTTY Source < terminal.c, term_key() >
* Termcap
@@ -80,6 +81,7 @@
* - (SCO) End/PgDn/Home/PgUp/Ins <Esc> [ <FGHIL>
* - (SCO) Del <0x7F>
* - (Xterm) HOME/END <Esc> <[O> <HF>
+ - (rxvt) HOME/END <Esc> [ <78> ~
* - (putty-rxvt) HOME <Esc> [ H
* - (putty-rxvt) END <Esc> O w
* - (Old Term?) Home/Ins/Del/End/PgUp/PgDn: <Esc> [ <214536> ~ // not supported
@@ -260,6 +262,15 @@ vtkbd_process(int c, VtkbdCtx *ctx)
ctx->esc_arg = KEY_DEL + (c - '3');
return KEY_INCOMPLETE;
+ case '7':
+ ctx->state = VKSTATE_TLIDE;
+ ctx->esc_arg = KEY_HOME;
+ return KEY_INCOMPLETE;
+ case '8':
+ ctx->state = VKSTATE_TLIDE;
+ ctx->esc_arg = KEY_END;
+ return KEY_INCOMPLETE;
+
case 'Z':
ctx->state = VKSTATE_NORMAL;
return KEY_STAB;