diff --git a/nnn.1 b/nnn.1 index a4beb877..350f48fd 100644 --- 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 diff --git a/src/nnn.c b/src/nnn.c index dcdafccb..b6460f94 100644 --- 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);