From 684a90a0fbe89ba2039685e25dacefe94e03dea6 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Wed, 11 Sep 2019 19:53:20 +0530 Subject: [PATCH] Batch rename: prompt if selection exists --- src/nnn.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/nnn.c b/src/nnn.c index 666b9209..54a014ad 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -1220,21 +1220,27 @@ static bool batch_rename(const char *path) return ret; } - if (!selbufpos) { - if (!ndents) - return TRUE; + if (selbufpos) { + i = get_input("rename selection? [y/Y confirms]"); + if (i != 'y' && i != 'Y') { + if (!ndents) + return TRUE; + selbufpos = 0; /* Clear the selection */ + dir = TRUE; + } + } else + dir = TRUE; /* Rename entries in dir */ + + if (dir) for (i = 0; i < ndents; ++i) appendfpath(dents[i].name, NAME_MAX); - dir = TRUE; - } - selectiontofd(fd1, &count); selectiontofd(fd2, NULL); close(fd2); - if (dir) + if (dir) /* Don't retain dir entries in selection */ selbufpos = 0; spawn(editor, g_tmpfpath, NULL, path, F_CLI); @@ -1243,10 +1249,9 @@ static bool batch_rename(const char *path) if ((fd2 = open(g_tmpfpath, O_RDONLY)) == -1) goto finish; - while ((i = read(fd2, buf, sizeof(buf))) > 0) { + while ((i = read(fd2, buf, sizeof(buf))) > 0) while (i) lines += (buf[--i] == '\n'); - } if (i < 0) goto finish;