Browse Source

Support archiving files in selection

master
Arun Prakash Jana 6 years ago
parent
commit
d9977c5ea1
No known key found for this signature in database GPG Key ID: A75979F35C080412
3 changed files with 20 additions and 6 deletions
  1. +1
    -1
      README.md
  2. +1
    -1
      nnn.1
  3. +18
    -4
      src/nnn.c

+ 1
- 1
README.md View File

@@ -236,7 +236,7 @@ Press <kbd>?</kbd> in `nnn` to see the list anytime.
Y Select all
P Copy selection X Delete selection
V Move selection ^X Delete entry
f Archive entry F List archive
f Archive files F List archive
^F Extract archive m M Brief/full media info
e Edit in EDITOR p Open in PAGER
ORDER TOGGLES


+ 1
- 1
nnn.1 View File

@@ -113,7 +113,7 @@ Delete files from selection
.It Ic ^X
Delete entry
.It Ic f
Archive entry
Archive files
.It Ic F
List files in archive
.It Ic ^F


+ 18
- 4
src/nnn.c View File

@@ -2300,7 +2300,7 @@ static bool show_help(char *path)
"cY Select all\n"
"cP Copy selection X Delete selection\n"
"cV Move selection ^X Delete entry\n"
"cf Archive entry F List archive\n"
"cf Archive files F List archive\n"
"b^F Extract archive m M Brief/full media info\n"
"ce Edit in EDITOR p Open in PAGER\n"
"1ORDER TOGGLES\n"
@@ -3512,7 +3512,7 @@ nochange:
{
switch (sel) {
case SEL_ARCHIVE:
tmp = xreadline(dents[cur].name, "name: ");
tmp = xreadline(NULL, "archive name: ");
break;
case SEL_OPENWITH:
tmp = xreadline(NULL, "open with: ");
@@ -3545,10 +3545,24 @@ nochange:
/* newpath is used as temporary buffer */
if (!getutil(utils[APACK])) {
printmsg("utility missing");
continue;
goto nochange;
}

spawn(utils[APACK], tmp, dents[cur].name, path, F_NORMAL);
r = get_input("archive selection (else current)? [s]");
if (r == 's') {
if (!cpsafe())
goto nochange;

snprintf(g_buf, CMD_LEN_MAX,
#ifdef __linux__
"xargs -0 -a %s %s %s",
#else
"cat %s | xargs -0 -o %s %s",
#endif
g_cppath, utils[APACK], tmp);
spawn("sh", "-c", g_buf, path, F_NORMAL | F_SIGINT);
} else
spawn(utils[APACK], tmp, dents[cur].name, path, F_NORMAL);
break;
case SEL_OPENWITH:
dir = NULL;


Loading…
Cancel
Save