commit a62dbf093a9b39c86702a70c71f0d6307e238237
parent 900513710f3e71d62dd2d9d8635b2ce2210acdd4
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date: Wed, 25 Aug 2021 00:47:52 +0530
Fix NULL file name handling
Diffstat:
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/nnn.c b/src/nnn.c
@@ -4163,7 +4163,7 @@ static void savecurctx(char *path, char *curname, int nextctx)
context *ctxr = &g_ctx[nextctx];
/* Save current context */
- if (ndents)
+ if (curname)
xstrsncpy(g_ctx[tmpcfg.curctx].c_name, curname, NAME_MAX + 1);
else
g_ctx[tmpcfg.curctx].c_name[0] = '\0';
@@ -4345,7 +4345,8 @@ static void set_smart_ctx(int ctx, char *nextpath, char **path, char **lastname,
--ctx;
/* Deactivate the new context and build from scratch */
g_ctx[ctx].c_cfg.ctxactive = 0;
- savecurctx(nextpath, pdents[cur].name, ctx);
+ DPRINTF_S(nextpath);
+ savecurctx(nextpath, ndents ? pdents[cur].name : NULL, ctx);
*path = g_ctx[ctx].c_path;
*lastdir = g_ctx[ctx].c_last;
*lastname = g_ctx[ctx].c_name;
@@ -6589,7 +6590,7 @@ nochange:
if (r >= CTX_MAX)
sel = SEL_BACK;
else if (r >= 0 && r != cfg.curctx) {
- savecurctx(path, pdents[cur].name, r);
+ savecurctx(path, ndents ? pdents[cur].name : NULL, r);
/* Reset the pointers */
path = g_ctx[r].c_path;
@@ -6970,7 +6971,7 @@ nochange:
r = handle_context_switch(sel);
if (r < 0)
continue;
- savecurctx(path, pdents[cur].name, r);
+ savecurctx(path, ndents ? pdents[cur].name : NULL, r);
/* Reset the pointers */
path = g_ctx[r].c_path;