]> Sergey Matveev's repositories - nnn.git/commitdiff
Show all selected files on M
authorArun Prakash Jana <engineerarun@gmail.com>
Fri, 29 Nov 2019 03:08:11 +0000 (08:38 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Fri, 29 Nov 2019 03:08:11 +0000 (08:38 +0530)
README.md
src/nnn.c

index 22fae94eb80e79178135b57957d40bcfd7dcdff8..9e776c2356e5f5ebfe85e790344556fa043780c0 100644 (file)
--- a/README.md
+++ b/README.md
@@ -211,8 +211,8 @@ The list below is from the **dev branch**. Press <kbd>?</kbd> in `nnn` to see th
  FILES
            ^O  Open with...      n  Create new/link
             D  File details  ^R F2  Rename/duplicate
-   Space ^J/a  Select entry/all  r  Batch rename
-         m ^K  Sel range, clear  M  Show sel buf
+   Space ^J/a  Sel toggle/all    r  Batch rename
+         m ^K  Sel range, clear  M  List selection
             P  Copy selection    K  Edit, flush sel
             V  Move selection    w  Copy/move sel as
             X  Del selection    ^X  Del entry
index 255656ca4edf6902bddb6aabb06e30fa9cf5a64c..ce63afdbaf6d8f4bbd7d52ff2c60dd9e84d0462e 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -581,6 +581,7 @@ static int dentfind(const char *fname, int n);
 static void move_cursor(int target, int ignore_scrolloff);
 static inline bool getutil(char *util);
 static size_t mkpath(const char *dir, const char *name, char *out);
+static void updateselbuf(const char *path, char *newpath);
 
 /* Functions */
 
@@ -929,17 +930,22 @@ static size_t seltofile(int fd, uint *pcount)
 }
 
 /* List selection from selection buffer */
-static bool listselbuf(void)
+static bool listselbuf(const char *path, char *newpath)
 {
        int fd;
        size_t pos;
+       uint oldpos = selbufpos;
+
+       updateselbuf(path, newpath);
 
        if (!selbufpos)
                return FALSE;
 
        fd = create_tmp_file();
-       if (fd == -1)
+       if (fd == -1) {
+               selbufpos = oldpos;
                return FALSE;
+       }
 
        pos = seltofile(fd, NULL);
 
@@ -948,6 +954,7 @@ static bool listselbuf(void)
                spawn(pager, g_tmpfpath, NULL, NULL, F_CLI);
        unlink(g_tmpfpath);
 
+       selbufpos = oldpos;
        return TRUE;
 }
 
@@ -3435,8 +3442,8 @@ static void show_help(const char *path)
                "1FILES\n"
                 "b^O  Open with...      n  Create new/link\n"
                  "cD  File details  ^R F2  Rename/duplicate\n"
-        "3Space ^J/a  Select entry/all  r  Batch rename\n"
-              "9m ^K  Sel range, clear  M  Show sel buf\n"
+        "3Space ^J/a  Sel toggle/all    r  Batch rename\n"
+              "9m ^K  Sel range, clear  M  List selection\n"
                  "cP  Copy selection    K  Edit, flush sel\n"
                  "cV  Move selection    w  Copy/move sel as\n"
                  "cX  Del selection    ^X  Del entry\n"
@@ -4841,7 +4848,7 @@ nochange:
                                }
                        continue;
                case SEL_SELLIST:
-                       if (listselbuf() || listselfile()) {
+                       if (listselbuf(path, newpath) || listselfile()) {
                                if (cfg.filtermode)
                                        presel = FILTER;
                                break;