From 74a0dc0a97e05702b18d4df7547ca7dc59f507c8 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Wed, 4 Jul 2018 19:02:47 +0530 Subject: [PATCH] Replace multiple if with switch --- nnn.c | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/nnn.c b/nnn.c index b1366994..fa4c177b 100644 --- a/nnn.c +++ b/nnn.c @@ -1213,35 +1213,30 @@ xreadline(char *fname, char *prompt) if ((r = get_wch(ch)) != ERR) { if (r == OK) { - if (*ch == KEY_ENTER || *ch == '\n' || *ch == '\r') - break; - - if (*ch == '\b') { + switch (*ch) { + case KEY_ENTER: //fallthrough + case '\n': //fallthrough + case '\r': + goto END; + case '\b': /* some old curses (e.g. rhel25) still send '\b' for backspace */ if (pos > 0) { memmove(buf + pos - 1, buf + pos, (len - pos) << 2); --len, --pos; - } + } //fallthrough + case '\t': /* TAB breaks cursor position, ignore it */ continue; - } - - if (*ch == CONTROL('L')) { + case CONTROL('L'): clearprompt(); printprompt(prompt); len = pos = 0; continue; - } - - if (*ch == CONTROL('A')) { + case CONTROL('A'): pos = 0; continue; - } - - if (*ch == CONTROL('E')) { + case CONTROL('E'): pos = len; continue; - } - - if (*ch == CONTROL('U')) { + case CONTROL('U'): clearprompt(); printprompt(prompt); memmove(buf, buf + pos, (len - pos) << 2); @@ -1254,10 +1249,6 @@ xreadline(char *fname, char *prompt) if (keyname(*ch)[0] == '^') continue; - /* TAB breaks cursor position, ignore it */ - if (*ch == '\t') - continue; - if (pos < NAME_MAX - 1) { memmove(buf + pos + 1, buf + pos, (len - pos) << 2); buf[pos] = *ch; @@ -1293,6 +1284,7 @@ xreadline(char *fname, char *prompt) } } +END: buf[len] = '\0'; if (old_curs != ERR) curs_set(old_curs);