nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit 838b175d4fbb0433763665fcd2497033ba4f696a
parent ba1f99058236142bab3cbd0cb593d06c3bd9acef
Author: Benno Schulenberg <bensberg@telfort.nl>
Date:   Tue, 23 Jan 2018 19:32:13 +0100

input: recognize escape sequences for <Shift+PageUp> and <Shift+PageDown>

This fixes the first part of https://savannah.gnu.org/bugs/?52960.

Diffstat:
Msrc/winio.c | 14++++++++++++++
1 file changed, 14 insertions(+), 0 deletions(-)

diff --git a/src/winio.c b/src/winio.c @@ -1090,12 +1090,26 @@ int convert_sequence(const int *seq, size_t length, int *consumed) * Esc [ 5 ^ == PageUp on Eterm. */ if (length > 2 && (seq[2] == '~' || seq[2] == '^')) return KEY_PPAGE; +#ifndef NANO_TINY + else if (length > 4 && seq[2] == ';' && + seq[3] == '2' && seq[4] == '~') { + *consumed = 5; + return shiftaltup; + } +#endif break; case '6': /* Esc [ 6 ~ == PageDown on VT220/VT320/ * Linux console/xterm/Terminal; * Esc [ 6 ^ == PageDown on Eterm. */ if (length > 2 && (seq[2] == '~' || seq[2] == '^')) return KEY_NPAGE; +#ifndef NANO_TINY + else if (length > 4 && seq[2] == ';' && + seq[3] == '2' && seq[4] == '~') { + *consumed = 5; + return shiftaltdown; + } +#endif break; case '7': /* Esc [ 7 ~ == Home on Eterm/rxvt; * Esc [ 7 $ == Shift-Home on Eterm/rxvt;