In OpenBSD, the erase character is ^?

^H is accepted in a few places, like here (because of CTRL_H) but
it is absolutely not the canonical tty 'character erase' character,
which is implied in your text by placing it next to kill and the
canonical tty werase default ^U

It was vague, and I guess OK.  But your increasing precision is making
it wrong.

Klemens Nanni <[email protected]> wrote:

> On Mon, Jun 22, 2020 at 06:33:30PM -0600, Theo de Raadt wrote:
> > > +character erase (^H) and line kill (^U) characters
> > 
> > ^H is wrong
> How so?  It is currently hardcoded as such in engine.c:cmd_keyboard():
> 
> 1188         switch (ch) {
> 1189         case KEY_ENTER:
> 1190         case 0x0a:
> 1191         case 0x0d:
> 1192         {
> 1193                 struct command * c = command_set(NULL, NULL);
> 1194                 c->exec(cmdbuf);
> 1195                 break;
> 1196         }
> 1197         case KEY_BACKSPACE:
> 1198         case KEY_DC:
> 1199         case CTRL_H:
> 1200                 if (cmd_len > 0) {
> 1201                         cmdbuf[--cmd_len] = 0;
> 1202                 } else
> 1203                         beep();
> 1204                 break;
> 1205         case 0x1b:
> 1206         case CTRL_G:
> 1207                 if (cmd_len > 0) {
> 1208                         cmdbuf[0] = '\0';
> 1209                         cmd_len = 0;
> 1210                 } else
> 1211                         command_set(NULL, NULL);
> 1212                 break;
> 1213         default:
> 1214                 break;
> 1215         }
> 1216 }
> 

Reply via email to