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';
--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;
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;
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;