aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Arun Prakash Jana <engineerarun@gmail.com>2020-05-30 06:59:45 +0530
committerGravatar Arun Prakash Jana <engineerarun@gmail.com>2020-05-30 07:01:34 +0530
commite3d90a98ceb6cbf2bd7ab3b242692b0079a7e15a (patch)
treefbe1217c8d54d02599edd2853cdf24b67082c28f
parent4d291d0ac27830afc19bfb0f4057542a06de7b23 (diff)
downloadnnn-e3d90a98ceb6cbf2bd7ab3b242692b0079a7e15a.tar.gz
Support make option O_CTX8 for 8 contexts
Note that this is not compatible with 4 contexts.
-rw-r--r--Makefile4
-rw-r--r--misc/haiku/Makefile4
-rw-r--r--src/nnn.c12
-rw-r--r--src/nnn.h12
4 files changed, 32 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 830b36a..1a2e6e7 100644
--- a/Makefile
+++ b/Makefile
@@ -61,6 +61,10 @@ ifeq ($(O_NOFIFO),1)
CPPFLAGS += -DNOFIFO
endif
+ifeq ($(O_CTX8),1)
+ CPPFLAGS += -DCTX8
+endif
+
ifeq ($(shell $(PKG_CONFIG) ncursesw && echo 1),1)
CFLAGS_CURSES ?= $(shell $(PKG_CONFIG) --cflags ncursesw)
LDLIBS_CURSES ?= $(shell $(PKG_CONFIG) --libs ncursesw)
diff --git a/misc/haiku/Makefile b/misc/haiku/Makefile
index 02d22a0..7c534e7 100644
--- a/misc/haiku/Makefile
+++ b/misc/haiku/Makefile
@@ -52,6 +52,10 @@ ifeq ($(O_NOMOUSE),1)
CPPFLAGS += -DNOMOUSE
endif
+ifeq ($(O_CTX8),1)
+ CPPFLAGS += -DCTX8
+endif
+
ifeq ($(shell $(PKG_CONFIG) ncursesw && echo 1),1)
CFLAGS_CURSES ?= $(shell $(PKG_CONFIG) --cflags ncursesw)
LDLIBS_CURSES ?= $(shell $(PKG_CONFIG) --libs ncursesw)
diff --git a/src/nnn.c b/src/nnn.c
index d0ad8f1..771d2b6 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -157,7 +157,13 @@
#define EXEC_ARGS_MAX 8
#define LIST_FILES_MAX (1 << 16)
#define SCROLLOFF 3
+
+#ifndef CTX8
#define CTX_MAX 4
+#else
+#define CTX_MAX 8
+#endif
+
#define MIN_DISPLAY_COLS ((CTX_MAX * 2) + 2) /* Two chars for [ and ] */
#define LONG_SIZE sizeof(ulong)
#define ARCHIVE_CMD_LEN 16
@@ -5738,6 +5744,12 @@ nochange:
case SEL_CTX2: // fallthrough
case SEL_CTX3: // fallthrough
case SEL_CTX4:
+#ifdef CTX8
+ case SEL_CTX5:
+ case SEL_CTX6:
+ case SEL_CTX7:
+ case SEL_CTX8:
+#endif
r = handle_context_switch(sel);
if (r < 0)
continue;
diff --git a/src/nnn.h b/src/nnn.h
index e932624..e6ee5e8 100644
--- a/src/nnn.h
+++ b/src/nnn.h
@@ -60,6 +60,12 @@ enum action {
SEL_CTX2,
SEL_CTX3,
SEL_CTX4,
+#ifdef CTX8
+ SEL_CTX5,
+ SEL_CTX6,
+ SEL_CTX7,
+ SEL_CTX8,
+#endif
SEL_PIN,
SEL_FLTR,
SEL_MFLTR,
@@ -165,6 +171,12 @@ static struct key bindings[] = {
{ '2', SEL_CTX2 },
{ '3', SEL_CTX3 },
{ '4', SEL_CTX4 },
+#ifdef CTX8
+ { '5', SEL_CTX5 },
+ { '6', SEL_CTX6 },
+ { '7', SEL_CTX7 },
+ { '8', SEL_CTX8 },
+#endif
/* Mark a path to visit later */
{ ',', SEL_PIN },
/* Filter */