Sync OpenBSD patchset 184:

Detect backspace by looking at termios VERASE and translate it into \177
(which matches screen's behaviour if not its termcap/terminfo entry). The
terminfo kbs cap is often wrong or missing so it can't be used, and just
assuming \177 may be wrong.
This commit is contained in:
Tiago Cunha
2009-07-28 22:37:02 +00:00
parent 2aa4d47312
commit 361801aaaa
5 changed files with 27 additions and 9 deletions

View File

@ -1,4 +1,4 @@
/* $Id: mode-key.c,v 1.15 2009-07-23 23:29:53 tcunha Exp $ */
/* $Id: mode-key.c,v 1.16 2009-07-28 22:37:02 tcunha Exp $ */
/*
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
@ -70,7 +70,7 @@ mode_key_lookup_vi(struct mode_key_data *mdata, int key)
mdata->flags &= ~MODEKEY_EDITMODE;
return (MODEKEYCMD_NONE);
case '\010':
case '\177':
case KEYC_BSPACE:
return (MODEKEYCMD_BACKSPACE);
case '\011':
return (MODEKEYCMD_COMPLETE);
@ -84,7 +84,7 @@ mode_key_lookup_vi(struct mode_key_data *mdata, int key)
switch (key) {
case '\010':
case '\177':
case KEYC_BSPACE:
return (MODEKEYCMD_LEFT);
case KEYC_DC:
return (MODEKEYCMD_DELETE);
@ -151,7 +151,7 @@ mode_key_lookup_emacs(struct mode_key_data *mdata, int key)
{
switch (key) {
case '\010':
case '\177':
case KEYC_BSPACE:
return (MODEKEYCMD_BACKSPACE);
case '\004':
case KEYC_DC: