瀏覽代碼

Use libreadline at command prompt

master
Arun Prakash Jana 5 年之前
父節點
當前提交
94e4201dc1
沒有發現已知的金鑰在資料庫的簽署中 GPG Key ID: A75979F35C080412
共有 4 個文件被更改,包括 42 次插入5 次删除
  1. +1
    -1
      Makefile
  2. +2
    -2
      README.md
  3. +23
    -0
      packagecore.yaml
  4. +16
    -2
      src/nnn.c

+ 1
- 1
Makefile 查看文件

@@ -22,7 +22,7 @@ CFLAGS += -Wall -Wextra -Wno-unused-parameter
CFLAGS += $(CFLAGS_OPTIMIZATION)
CFLAGS += $(CFLAGS_CURSES)

LDLIBS += $(LDLIBS_CURSES)
LDLIBS += -lreadline $(LDLIBS_CURSES)

DISTFILES = src nnn.1 Makefile README.md LICENSE
SRC = src/nnn.c


+ 2
- 2
README.md 查看文件

@@ -133,7 +133,7 @@ Intrigued? Find out [HOW](https://github.com/jarun/nnn/wiki/performance-factors)

#### Dependencies

`nnn` needs a curses library with wide character support (like ncursesw) and standard libc.
`nnn` needs a curses library with wide character support (like ncursesw), libreadline and standard libc.

#### From a package manager

@@ -167,7 +167,7 @@ Packages for Arch Linux, CentOS, Debian, Fedora, Solus, and Ubuntu are available

To cook yourself, download the [latest stable release](https://github.com/jarun/nnn/releases/latest) or clone this repository (*risky*). Then install the dependencies and compile (e.g. on Ubuntu 16.04):

$ sudo apt-get install pkg-config libncursesw5-dev
$ sudo apt-get install pkg-config libncursesw5-dev libreadline6-dev
$ make
$ sudo make install



+ 23
- 0
packagecore.yaml 查看文件

@@ -14,6 +14,7 @@ packages:
- pkg-config
deps:
- ncurses
- readline
container: "base/archlinux"
centos7.2:
builddeps:
@@ -21,8 +22,10 @@ packages:
- gcc
- pkgconfig
- ncurses-devel
- readline-devel
deps:
- ncurses
- readline
commands:
pre:
- yum install epel-release
@@ -32,8 +35,10 @@ packages:
- gcc
- pkgconfig
- ncurses-devel
- readline-devel
deps:
- ncurses
- readline
commands:
pre:
- yum install epel-release
@@ -43,8 +48,10 @@ packages:
- gcc
- pkgconfig
- ncurses-devel
- readline-devel
deps:
- ncurses
- readline
commands:
pre:
- yum install epel-release
@@ -54,48 +61,60 @@ packages:
- gcc
- pkg-config
- libncursesw5-dev
- libreadline-dev
deps:
- libncursesw5
- libreadline-common
fedora25:
builddeps:
- make
- gcc
- pkgconfig
- ncurses-devel
- readline-devel
deps:
- ncurses
- readline
fedora26:
builddeps:
- make
- gcc
- pkg-config
- ncurses-devel
- readline-devel
deps:
- ncurses
- readline
fedora27:
builddeps:
- make
- gcc
- pkg-config
- ncurses-devel
- readline-devel
deps:
- ncurses
- readline
fedora28:
builddeps:
- make
- gcc
- pkg-config
- ncurses-devel
- readline-devel
deps:
- ncurses
- readline
fedora29:
builddeps:
- make
- gcc
- pkg-config
- ncurses-devel
- readline-devel
deps:
- ncurses
- readline
# opensuse42.3:
# builddeps:
# - make
@@ -110,13 +129,17 @@ packages:
- gcc
- pkg-config
- libncursesw5-dev
- libreadline6-dev
deps:
- libncursesw5
- libreadline6
ubuntu18.04:
builddeps:
- make
- gcc
- pkg-config
- libncursesw5-dev
- libreadline-dev
deps:
- libncursesw5
- libreadline7

+ 16
- 2
src/nnn.c 查看文件

@@ -78,6 +78,8 @@
#endif
#include <locale.h>
#include <pwd.h>
#include <readline/history.h>
#include <readline/readline.h>
#include <regex.h>
#include <signal.h>
#include <stdarg.h>
@@ -3710,9 +3712,14 @@ nochange:
}
break;
default: /* SEL_RUNCMD */
tmp = xreadline(NULL, "> ");
if (tmp && tmp[0])
exitcurses();
tmp = readline("nnn> ");
refresh();
if (tmp && tmp[0]) {
spawn(shell, "-c", tmp, path, F_NORMAL | F_SIGINT);
add_history(tmp);
free(tmp);
}
}

/* Continue in navigate-as-you-type mode, if enabled */
@@ -4022,6 +4029,11 @@ int main(int argc, char *argv[])
setlocale(LC_ALL, "");
crc8init();

/* Bind TAB to cycling */
rl_variable_bind("completion-ignore-case", "on");
rl_bind_key('\t', rl_menu_complete);
read_history(NULL);

#ifdef DEBUGMODE
enabledbg();
#endif
@@ -4031,6 +4043,8 @@ int main(int argc, char *argv[])
browse(ipath);
exitcurses();

write_history(NULL);

if (cfg.pickraw) {
if (copybufpos) {
opt = selectiontofd(1);


Loading…
取消
儲存