瀏覽代碼

Replace multiple if with switch

master
Arun Prakash Jana 6 年之前
父節點
當前提交
74a0dc0a97
沒有發現已知的金鑰在資料庫的簽署中 GPG 金鑰 ID: A75979F35C080412
共有 1 個檔案被更改,包括 13 行新增21 行删除
  1. +13
    -21
      nnn.c

+ 13
- 21
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);


Loading…
取消
儲存