aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/nnn.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/nnn.c b/src/nnn.c
index 83184fd..5e19413 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -327,7 +327,7 @@ static struct entry *dents;
static blkcnt_t ent_blocks;
static blkcnt_t dir_blocks;
static ulong num_files;
-static kv bookmark[BM_MAX + 1];
+static kv bookmark[BM_MAX];
static kv plug[PLUGIN_MAX];
static uchar g_tmpfplen;
static uchar blk_shift = BLK_SHIFT_512;
@@ -4215,6 +4215,7 @@ static void redraw(char *path)
static void browse(char *ipath, const char *session)
{
char newpath[PATH_MAX] __attribute__ ((aligned));
+ char mark[PATH_MAX] __attribute__ ((aligned));
char rundir[PATH_MAX] __attribute__ ((aligned));
char runfile[NAME_MAX + 1] __attribute__ ((aligned));
char *path, *lastdir, *lastname, *dir, *tmp;
@@ -4243,7 +4244,7 @@ static void browse(char *ipath, const char *session)
g_ctx[0].c_cfg = cfg; /* current configuration */
}
- newpath[0] = rundir[0] = runfile[0] = '\0';
+ newpath[0] = rundir[0] = runfile[0] = mark[0] = '\0';
presel = cfg.filtermode ? FILTER : 0;
@@ -4636,14 +4637,16 @@ nochange:
r = get_input(NULL);
if (!get_kv_val(bookmark, newpath, r, BM_MAX, TRUE)) {
- if (r == ',' && bookmark[BM_MAX].val)
- xstrlcpy(newpath, bookmark[BM_MAX].val, PATH_MAX);
+ if (r == ',' && mark[0])
+ xstrlcpy(newpath, mark, PATH_MAX);
else {
printwait(messages[MSG_INVALID_KEY], &presel);;
goto nochange;
}
}
+
+
if (!xdiraccess(newpath)) {
printwait(messages[MSG_ACCESS], &presel);
goto nochange;
@@ -4664,9 +4667,8 @@ nochange:
setdirwatch();
goto begin;
case SEL_PIN:
- bookmark[BM_MAX].val = xrealloc(bookmark[BM_MAX].val, strlen(path));
- xstrlcpy(bookmark[BM_MAX].val, path, PATH_MAX);
- printwait(bookmark[BM_MAX].val, &presel);
+ xstrlcpy(mark, path, PATH_MAX);
+ printwait(mark, &presel);
goto nochange;
case SEL_FLTR:
/* Unwatch dir if we are still in a filtered view */
@@ -5601,7 +5603,6 @@ static void cleanup(void)
free(cfgdir);
free(initpath);
free(bmstr);
- free(bookmark[BM_MAX].val);
free(pluginstr);
unlink(g_pipepath);
@@ -5741,7 +5742,6 @@ int main(int argc, char *argv[])
fprintf(stderr, "%s\n", env_cfg[NNN_BMS]);
return _FAILURE;
}
- bookmark[BM_MAX].key = ','; /* Set key for pinned dir */
/* Parse plugins string */
if (!parsekvpair(plug, &pluginstr, "NNN_PLUG", PLUGIN_MAX)) {