aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-02-22 05:35:26 +0530
committerGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-02-22 05:35:26 +0530
commita8388ab60b0dda80002fa890a891d86e4fb440b0 (patch)
tree59ce94b5f50e2df45317b93bea2bb510d2b2a93d
parent95d0eb6a172a88844a7e102305734d5bd5e34877 (diff)
downloadnnn-a8388ab60b0dda80002fa890a891d86e4fb440b0.tar.gz
Add target norl to drop libreadline
-rw-r--r--Makefile10
-rw-r--r--README.md2
-rw-r--r--src/nnn.c10
3 files changed, 18 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index 07a7d5f..4e35c6a 100644
--- a/Makefile
+++ b/Makefile
@@ -22,7 +22,7 @@ CFLAGS += -Wall -Wextra -Wno-unused-parameter
CFLAGS += $(CFLAGS_OPTIMIZATION)
CFLAGS += $(CFLAGS_CURSES)
-LDLIBS += -lreadline $(LDLIBS_CURSES)
+LDLIBS += $(LDLIBS_CURSES)
DISTFILES = src nnn.1 Makefile README.md LICENSE
SRC = src/nnn.c
@@ -33,10 +33,14 @@ all: $(BIN)
$(SRC): src/nnn.h
$(BIN): $(SRC)
- $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
+ $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS) -lreadline
debug: $(SRC)
- $(CC) -DDBGMODE -g $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $(BIN) $^ $(LDLIBS)
+ $(CC) -DDBGMODE -g $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $(BIN) $^ $(LDLIBS) -lreadline
+
+norl: $(SRC)
+ $(CC) -DNORL $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $(BIN) $^ $(LDLIBS)
+ $(STRIP) $(BIN)
install: all
$(INSTALL) -m 0755 -d $(DESTDIR)$(PREFIX)/bin
diff --git a/README.md b/README.md
index acda89b..e316674 100644
--- a/README.md
+++ b/README.md
@@ -135,7 +135,7 @@ Intrigued? Find out [HOW](https://github.com/jarun/nnn/wiki/performance-factors)
#### Library dependencies
-`nnn` needs a curses library with wide character support (like ncursesw), libreadline and standard libc.
+`nnn` needs a curses library with wide character support (like ncursesw), libreadline and standard libc. It's possible to drop libreadline using the Makefile target `norl`.
#### Utility dependencies
diff --git a/src/nnn.c b/src/nnn.c
index 10f9e6e..89d7ded 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -79,8 +79,10 @@
#include <locale.h>
#include <pwd.h>
#include <stdio.h>
+#ifndef NORL
#include <readline/history.h>
#include <readline/readline.h>
+#endif
#include <regex.h>
#include <signal.h>
#include <stdarg.h>
@@ -3879,11 +3881,14 @@ nochange:
}
break;
default: /* SEL_RUNCMD */
+#ifndef NORL
if (cfg.picker) {
/* readline prompt breaks the interface, use stock */
+#endif
tmp = xreadline(NULL, "> ");
if (tmp[0])
spawn(shell, "-c", tmp, path, F_NORMAL | F_SIGINT);
+#ifndef NORL
} else {
exitcurses();
@@ -3909,6 +3914,7 @@ nochange:
free(tmp);
}
}
+#endif
}
/* Continue in navigate-as-you-type mode, if enabled */
@@ -4243,6 +4249,7 @@ int main(int argc, char *argv[])
crc8init();
#endif
+#ifndef NORL
/* Bind TAB to cycling */
rl_variable_bind("completion-ignore-case", "on");
#ifdef __linux__
@@ -4251,6 +4258,7 @@ int main(int argc, char *argv[])
rl_bind_key('\t', rl_complete);
#endif
read_history(NULL);
+#endif
#ifdef DBGMODE
enabledbg();
@@ -4261,7 +4269,9 @@ int main(int argc, char *argv[])
browse(ipath);
exitcurses();
+#ifndef NORL
write_history(NULL);
+#endif
if (cfg.pickraw) {
if (copybufpos) {