]> Sergey Matveev's repositories - nnn.git/commitdiff
Fix #526: persistent session
authorArun Prakash Jana <engineerarun@gmail.com>
Fri, 17 Apr 2020 23:24:07 +0000 (04:54 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Fri, 17 Apr 2020 23:24:07 +0000 (04:54 +0530)
nnn.1
src/nnn.c

diff --git a/nnn.1 b/nnn.1
index a4beb877850b0e2528cd8f517b163188a22ad2c7..350f48fd26990640e8c94570321b1b7f566211ee 100644 (file)
--- a/nnn.1
+++ b/nnn.1
@@ -109,7 +109,7 @@ supports the following options:
         load a session by name
 .Pp
 .Fl S
-        start in disk usage analyzer mode
+        persistent session
 .Pp
 .Fl "t secs"
         idle timeout in seconds to lock terminal
@@ -160,7 +160,8 @@ Sessions can be loaded dynamically from within a running
 instance, or with a program option.
 .Pp
 When a session is loaded dynamically, the last working session is saved
-automatically to a dedicated -- "last session" -- session file.
+automatically to a dedicated -- "last session" -- session file. The "last
+session" is also used in persistent session mode.
 .Pp
 All the session files are located by session name in the directory
 .Pp
index dcdafccb84c46cdf45bd89e838c53e1f6e868668..b6460f94dd645ec183688136af89d355033bd216 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -6245,6 +6245,9 @@ nochange:
                                        break; // fallthrough
                        }
 
+                       if (session && *session == '@' && !session[1])
+                               save_session(TRUE, NULL);
+
                        /* CD on Quit */
                        /* In vim picker mode, clear selection and exit */
                        /* Picker mode: reset buffer or clear file */
@@ -6531,7 +6534,7 @@ static void usage(void)
                " -r      use advcpmv patched cp, mv\n"
                " -R      no rollover at edges\n"
                " -s name load session by name\n"
-               " -S      du mode\n"
+               " -S      persistent session\n"
                " -t secs timeout to lock\n"
                " -T key  sort order [a/d/e/r/s/t/v]\n"
                " -V      show version\n"
@@ -6696,10 +6699,6 @@ int main(int argc, char *argv[])
                case 'c':
                        cfg.cliopener = 1;
                        break;
-               case 'S':
-                       cfg.blkorder = 1;
-                       nftw_fn = sum_bsize;
-                       blk_shift = ffs(S_BLKSIZE) - 1; // fallthrough
                case 'd':
                        cfg.showdetail = 1;
                        printptr = &printent_long;
@@ -6770,6 +6769,9 @@ int main(int argc, char *argv[])
                        if (env_opts_id < 0)
                                session = optarg;
                        break;
+               case 'S':
+                       session = "@";
+                       break;
                case 't':
                        if (env_opts_id < 0)
                                idletimeout = atoi(optarg);