commit 32ab43a9ffa97eaea6865c9fe70d4743160f9a61
parent c48b8d02a12e9ce074dbdc295a91238b38e372b5
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date: Sat, 30 May 2020 05:56:12 +0530
Handle number of contexts in a generic fashion
This supports using a power of 2 number of contexts like 2, 4 or 8.
Note that the number of contexts are not backward compatible. So if
user is having 8 contexts and plans to use 4, his sessions with > 1
contexts open may break.
We can have a make option to enable 8 contexts. 4 remains default.
Diffstat:
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/nnn.c b/src/nnn.c
@@ -152,13 +152,13 @@
#define _ALIGNMENT 0x10 /* 16-byte alignment */
#define _ALIGNMENT_MASK 0xF
#define TMP_LEN_MAX 64
-#define CTX_MAX 4
#define DOT_FILTER_LEN 7
#define ASCII_MAX 128
#define EXEC_ARGS_MAX 8
#define LIST_FILES_MAX (1 << 16)
#define SCROLLOFF 3
-#define MIN_DISPLAY_COLS 10
+#define CTX_MAX 4
+#define MIN_DISPLAY_COLS ((CTX_MAX * 2) + 2) /* Two chars for [ and ] */
#define LONG_SIZE sizeof(ulong)
#define ARCHIVE_CMD_LEN 16
#define BLK_SHIFT_512 9
@@ -251,10 +251,10 @@ typedef struct {
uint selmode : 1; /* Set when selecting files */
uint showdetail : 1; /* Clear to show fewer file info */
uint ctxactive : 1; /* Context active or not */
- uint reserved1 : 3;
+ uint reserved1 : 2;
/* The following settings are global */
- uint curctx : 2; /* Current context number */
uint dircolor : 1; /* Current status of dir color */
+ uint curctx : 3; /* Current context number */
uint picker : 1; /* Write selection to user-specified file */
uint pickraw : 1; /* Write selection to sdtout before exit */
uint nonavopen : 1; /* Open file on right arrow or `l` */