From e3d90a98ceb6cbf2bd7ab3b242692b0079a7e15a Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Sat, 30 May 2020 06:59:45 +0530 Subject: [PATCH] Support make option O_CTX8 for 8 contexts Note that this is not compatible with 4 contexts. --- Makefile | 4 ++++ misc/haiku/Makefile | 4 ++++ src/nnn.c | 12 ++++++++++++ src/nnn.h | 12 ++++++++++++ 4 files changed, 32 insertions(+) diff --git a/Makefile b/Makefile index 830b36a3..1a2e6e77 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 02d22a0c..7c534e71 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 d0ad8f13..771d2b65 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 e932624b..e6ee5e86 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 */