瀏覽代碼

Added more readline bindings (#452)

master
Ethan R Mischievous Meerkat 4 年之前
父節點
當前提交
812368cce6
共有 1 個檔案被更改,包括 27 行新增0 行删除
  1. +27
    -0
      src/nnn.c

+ 27
- 0
src/nnn.c 查看文件

@@ -2409,6 +2409,11 @@ static char *xreadline(const char *prefill, const char *prompt)
case '\n': // fallthrough
case '\r':
goto END;
case CONTROL('D'):
if (pos < len)
++pos;
else
continue; // fallthrough
case 127: // fallthrough
case '\b': /* rhel25 sends '\b' for backspace */
if (pos > 0) {
@@ -2418,6 +2423,28 @@ static char *xreadline(const char *prefill, const char *prompt)
} // fallthrough
case '\t': /* TAB breaks cursor position, ignore it */
continue;
case CONTROL('F'):
if (pos < len)
++pos;
continue;
case CONTROL('B'):
if (pos > 0)
--pos;
continue;
case CONTROL('W'):
printprompt(prompt);
do {
if (pos == 0)
break;
memmove(buf + pos - 1, buf + pos,
(len - pos) * WCHAR_T_WIDTH);
--pos, --len;
} while (buf[pos-1] != ' ' && buf[pos-1] != '/');
continue;
case CONTROL('K'):
printprompt(prompt);
len = pos;
continue;
case CONTROL('L'):
printprompt(prompt);
len = pos = 0;


Loading…
取消
儲存