From a1b43ae830882fa18c01662837e08b81aa6b5f1e Mon Sep 17 00:00:00 2001
From: Arun Prakash Jana <engineerarun@gmail.com>
Date: Wed, 5 Aug 2020 20:05:27 +0530
Subject: [PATCH] Show locaiton in context color

---
 src/nnn.c | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/src/nnn.c b/src/nnn.c
index 6e0935c..1407672 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -304,7 +304,7 @@ typedef struct {
 	uint runplugin  : 1;  /* Choose plugin mode */
 	uint runctx     : 2;  /* The context in which plugin is to be run */
 	uint selmode    : 1;  /* Set when selecting files */
-	uint ctxcolor   : 1;  /* Show dirs in context colors */
+	uint oldcolor   : 1;  /* Show dirs in context colors */
 	uint reserved   : 14;
 } runstate;
 
@@ -1648,7 +1648,7 @@ static bool initcurses(void *oldmask)
 				if (sep)
 					*sep = '\0';
 
-				if (!(g_state.ctxcolor || init_fcolors())) {
+				if (!(g_state.oldcolor || init_fcolors())) {
 					exitcurses();
 					fprintf(stderr, "NNN_FCOLORS!\n");
 					return FALSE;
@@ -1657,10 +1657,10 @@ static bool initcurses(void *oldmask)
 				colors = sep; /* Detect if 8 colors fallback is appended */
 				if (colors)
 					++colors;
-				g_state.ctxcolor = 1;
+				g_state.oldcolor = 1;
 			}
 		} else
-			g_state.ctxcolor = 1;
+			g_state.oldcolor = 1;
 
 		/* Get and set the context colors */
 		for (uchar i = 0; i <  CTX_MAX; ++i) {
@@ -3438,19 +3438,19 @@ static void printent(const struct entry *ent, uint namecols, bool sel)
 		break;
 	case S_IFDIR:
 		pair = C_DIR;
-		if (!g_state.ctxcolor)
+		if (!g_state.oldcolor)
 			attrs |= A_BOLD;
 		ind = '/';
 		break;
 	case S_IFLNK:
 		if (ent->flags & DIR_OR_LINK_TO_DIR) {
-			if (!g_state.ctxcolor)
+			if (!g_state.oldcolor)
 				attrs |= A_BOLD;
 			ind = '/';
 		} else
 			ind = '@';
 
-		if (g_state.ctxcolor)
+		if (g_state.oldcolor)
 			attrs |= A_DIM;
 		else
 			pair = (ent->flags & SYM_ORPHAN) ? C_ORP : C_LNK;
@@ -3475,7 +3475,7 @@ static void printent(const struct entry *ent, uint namecols, bool sel)
 		break;
 	}
 
-	if (!g_state.ctxcolor) {
+	if (!g_state.oldcolor) {
 		if (ent->flags & FILE_MISSING)
 			pair = C_MIS;
 
@@ -3513,8 +3513,8 @@ static void printent_long(const struct entry *ent, uint namecols, bool sel)
 	bool ln = FALSE;
 	char ind1 = '\0', ind2 = '\0';
 	uchar pair = 0;
-	int attrs = sel ? A_REVERSE | (g_state.ctxcolor ? A_DIM : COLOR_PAIR(C_MIS))
-			: (g_state.ctxcolor ? A_DIM : COLOR_PAIR(C_MIS));
+	int attrs = sel ? A_REVERSE | (g_state.oldcolor ? A_DIM : COLOR_PAIR(C_MIS))
+			: (g_state.oldcolor ? A_DIM : COLOR_PAIR(C_MIS));
 	uint len;
 	char *size;
 
@@ -3539,7 +3539,7 @@ static void printent_long(const struct entry *ent, uint namecols, bool sel)
 	switch (ent->mode & S_IFMT) {
 	case S_IFDIR:
 		pair = C_DIR;
-		if (!g_state.ctxcolor)
+		if (!g_state.oldcolor)
 			attrs |= A_BOLD;
 		ind2 = '/'; // fallthrough
 	case S_IFREG:
@@ -3574,7 +3574,7 @@ static void printent_long(const struct entry *ent, uint namecols, bool sel)
 		pair = (ent->flags & SYM_ORPHAN) ? C_ORP : C_LNK;
 		ind1 = '@';
 		ind2 = (ent->flags & DIR_OR_LINK_TO_DIR) ? '/' : '@';
-		if (ind2 == '/' && !g_state.ctxcolor)
+		if (ind2 == '/' && !g_state.oldcolor)
 			attrs |= A_BOLD; // fallthrough
 	case S_IFSOCK:
 		if (!ind1) {
@@ -3608,7 +3608,7 @@ static void printent_long(const struct entry *ent, uint namecols, bool sel)
 
 	addstr("  ");
 
-	if (g_state.ctxcolor) {
+	if (g_state.oldcolor) {
 		if (!ln) {
 			attroff(A_DIM);
 			attrs ^=  A_DIM;
@@ -5428,7 +5428,7 @@ static void draw_line(char *path, int ncols)
 
 	ncols = adjust_cols(ncols);
 
-	if (g_state.ctxcolor && (pdents[last].flags & DIR_OR_LINK_TO_DIR)) {
+	if (g_state.oldcolor && (pdents[last].flags & DIR_OR_LINK_TO_DIR)) {
 		attron(COLOR_PAIR(cfg.curctx + 1) | A_BOLD);
 		dir = TRUE;
 	}
@@ -5436,7 +5436,7 @@ static void draw_line(char *path, int ncols)
 	move(2 + last - curscroll, 0);
 	printptr(&pdents[last], ncols, false);
 
-	if (g_state.ctxcolor && (pdents[cur].flags & DIR_OR_LINK_TO_DIR)) {
+	if (g_state.oldcolor && (pdents[cur].flags & DIR_OR_LINK_TO_DIR)) {
 		if (!dir)  {/* First file is not a directory */
 			attron(COLOR_PAIR(cfg.curctx + 1) | A_BOLD);
 			dir = TRUE;
@@ -5505,7 +5505,7 @@ static void redraw(char *path)
 	}
 	addstr("] "); /* 10 chars printed for contexts - "[1 2 3 4] " */
 
-	attron(A_UNDERLINE);
+	attron(A_UNDERLINE | COLOR_PAIR(cfg.curctx + 1));
 
 	/* Print path */
 	i = (int)xstrlen(path);
@@ -5535,14 +5535,14 @@ static void redraw(char *path)
 		addnstr(base, ncols - (MIN_DISPLAY_COLS + i));
 	}
 
-	attroff(A_UNDERLINE);
+	attroff(A_UNDERLINE | COLOR_PAIR(cfg.curctx + 1));
 
 	/* Go to first entry */
 	move(2, 0);
 
 	ncols = adjust_cols(ncols);
 
-	if (g_state.ctxcolor) {
+	if (g_state.oldcolor) {
 		attron(COLOR_PAIR(cfg.curctx + 1) | A_BOLD);
 		g_state.dircolor = 1;
 	}
@@ -7286,7 +7286,7 @@ int main(int argc, char *argv[])
 			cfg.cliopener = 1;
 			break;
 		case 'C':
-			g_state.ctxcolor = 1;
+			g_state.oldcolor = 1;
 			break;
 		case 'd':
 			cfg.showdetail = 1;