]> Sergey Matveev's repositories - nnn.git/commitdiff
Revert "Use a fixed key , for pinning dir"
authorArun Prakash Jana <engineerarun@gmail.com>
Wed, 25 Dec 2019 16:47:50 +0000 (22:17 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Wed, 25 Dec 2019 16:47:50 +0000 (22:17 +0530)
This reverts commit 4d17b82950907727550d8e1ab2f608a4974c8c62.

src/nnn.c

index 83184fd401bfbcd539cbb7ee45df54c73bb8a31a..5e19413e1ac4b77650e540f8da7e9c3b4c68806e 100644 (file)
--- 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)) {