nano

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

commit 29f2e3181a23f23cd4c93aee89ba8195c8759e54
parent 8255696b4570dd7da4dd5eefa660f2fa0774f2ba
Author: Benno Schulenberg <bensberg@telfort.nl>
Date:   Fri, 27 Dec 2019 16:20:04 +0100

tweaks: rename a function and its parameter, to be more fitting

Also, avoid calling a case-changing function when it's not needed.
And elide a default case that can never occur (because the function
always gets called with one of the four letters).

Diffstat:
Msrc/proto.h | 2+-
Msrc/winio.c | 24+++++++++++-------------
2 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/src/proto.h b/src/proto.h @@ -610,7 +610,7 @@ void implant(const char *string); #endif int get_kbinput(WINDOW *win, bool showcursor); int parse_kbinput(WINDOW *win); -int arrow_from_abcd(int kbinput); +int arrow_from_ABCD(int letter); int parse_escape_sequence(WINDOW *win, int kbinput); int get_byte_kbinput(int kbinput); int get_control_kbinput(int kbinput); diff --git a/src/winio.c b/src/winio.c @@ -809,7 +809,7 @@ int convert_sequence(const int *seq, size_t length, int *consumed) case 'C': /* Esc O 1 ; 2 C == Shift-Right on Terminal. */ case 'D': /* Esc O 1 ; 2 D == Shift-Left on Terminal. */ shift_held = TRUE; - return arrow_from_abcd(seq[4]); + return arrow_from_ABCD(seq[4]); case 'P': /* Esc O 1 ; 2 P == F13 on Gnome Terminal. */ case 'Q': /* Esc O 1 ; 2 Q == F14 on Gnome Terminal. */ case 'R': /* Esc O 1 ; 2 R == F15 on Gnome Terminal. */ @@ -863,7 +863,7 @@ int convert_sequence(const int *seq, size_t length, int *consumed) case 'B': /* Esc O B == Down on VT100/VT320. */ case 'C': /* Esc O C == Right on VT100/VT320. */ case 'D': /* Esc O D == Left on VT100/VT320. */ - return arrow_from_abcd(seq[1]); + return arrow_from_ABCD(seq[1]); case 'F': /* Esc O F == End on Gnome and Xfce Terminal. */ return KEY_END; case 'H': /* Esc O H == Home on Gnome and Xfce Terminal. */ @@ -963,7 +963,7 @@ int convert_sequence(const int *seq, size_t length, int *consumed) case 'C': /* Esc [ 1 ; 2 C == Shift-Right on xterm. */ case 'D': /* Esc [ 1 ; 2 D == Shift-Left on xterm. */ shift_held = TRUE; - return arrow_from_abcd(seq[4]); + return arrow_from_ABCD(seq[4]); #ifndef NANO_TINY case 'F': /* Esc [ 1 ; 2 F == Shift-End on xterm. */ return SHIFT_END; @@ -1182,7 +1182,7 @@ int convert_sequence(const int *seq, size_t length, int *consumed) case 'B': /* Esc [ B == Down on the same. */ case 'C': /* Esc [ C == Right on the same. */ case 'D': /* Esc [ D == Left on the same. */ - return arrow_from_abcd(seq[1]); + return arrow_from_ABCD(seq[1]); case 'F': /* Esc [ F == End on FreeBSD console/Eterm. */ return KEY_END; case 'G': /* Esc [ G == PageDown on FreeBSD console. */ @@ -1235,7 +1235,7 @@ int convert_sequence(const int *seq, size_t length, int *consumed) case 'c': /* Esc [ c == Shift-Right on rxvt/Eterm. */ case 'd': /* Esc [ d == Shift-Left on rxvt/Eterm. */ shift_held = TRUE; - return arrow_from_abcd(seq[1]); + return arrow_from_ABCD(toupper(seq[1])); case '[': if (length > 2) { *consumed = 3; @@ -1258,19 +1258,17 @@ int convert_sequence(const int *seq, size_t length, int *consumed) /* Return the equivalent arrow-key value for the first four letters * in the alphabet, common to many escape sequences. */ -int arrow_from_abcd(int kbinput) +int arrow_from_ABCD(int letter) { - switch (tolower(kbinput)) { - case 'a': + switch (letter) { + case 'A': return KEY_UP; - case 'b': + case 'B': return KEY_DOWN; - case 'c': + case 'C': return KEY_RIGHT; - case 'd': - return KEY_LEFT; default: - return ERR; + return KEY_LEFT; } }