Deleted Added
full compact
513,521d512
< case E_INTERRUPT:
< /*
< * !!!
< * Historically, <interrupt> exited the user from text input
< * mode or cancelled a colon command, and returned to command
< * mode. It also beeped the terminal, but that seems a bit
< * excessive.
< */
< goto k_escape;
529c520
< goto k_escape;
---
> /* FALLTHROUGH */
531,532c522,550
< v_event_err(sp, evp);
< goto k_escape;
---
> if (evp->e_event != E_INTERRUPT && evp->e_event != E_WRESIZE)
> v_event_err(sp, evp);
> /*
> * !!!
> * Historically, <interrupt> exited the user from text input
> * mode or cancelled a colon command, and returned to command
> * mode. It also beeped the terminal, but that seems a bit
> * excessive.
> */
> /*
> * If we are recording, morph into <escape> key so that
> * we can repeat the command safely: there is no way to
> * invalidate the repetition of an instance of a command,
> * which would be the alternative possibility.
> * If we are not recording (most likely on the command line),
> * simply discard the input and return to command mode
> * so that an INTERRUPT doesn't become for example a file
> * completion request. -aymeric
> */
> if (LF_ISSET(TXT_RECORD)) {
> evp->e_event = E_CHARACTER;
> evp->e_c = 033;
> evp->e_flags = 0;
> evp->e_value = K_ESCAPE;
> break;
> } else {
> tp->term = TERM_ESC;
> goto k_escape;
> }
542c560
< if (rcol == 0 && !LF_ISSET(TXT_REPLAY) && evp->e_c == '\0') {
---
> if (LF_ISSET(TXT_RECORD) && rcol == 0 && evp->e_c == '\0') {
1458a1477
> F_CLR(sp, SC_TINPUT);
2219d2237
< p = msg_print(sp, av[0]->bp + prefix, &nf);
2220a2239
> p = msg_print(sp, av[0]->bp + prefix, &nf);