mirror of
https://github.com/jarun/nnn.git
synced 2025-01-15 21:36:42 +00:00
Patch #1386: make bsdtar the default archive handler
This commit is contained in:
parent
8fb7feb61c
commit
e104b749be
19
src/nnn.c
19
src/nnn.c
|
@ -750,7 +750,7 @@ static char mv[] = "mv -i";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Archive commands */
|
/* Archive commands */
|
||||||
static const char * const archive_cmd[] = {"atool -a", "bsdtar -acvf", "zip -r", "tar -acvf"};
|
static const char * const archive_cmd[] = {"bsdtar -acvf", "atool -a", "zip -r", "tar -acvf"};
|
||||||
|
|
||||||
/* Tokens used for path creation */
|
/* Tokens used for path creation */
|
||||||
#define TOK_BM 0
|
#define TOK_BM 0
|
||||||
|
@ -2720,9 +2720,9 @@ static void get_archive_cmd(char *cmd, const char *archive)
|
||||||
{
|
{
|
||||||
uchar_t i = 3;
|
uchar_t i = 3;
|
||||||
|
|
||||||
if (getutil(utils[UTIL_ATOOL]))
|
if (getutil(utils[UTIL_BSDTAR]))
|
||||||
i = 0;
|
i = 0;
|
||||||
else if (getutil(utils[UTIL_BSDTAR]))
|
else if (getutil(utils[UTIL_ATOOL]))
|
||||||
i = 1;
|
i = 1;
|
||||||
else if (is_suffix(archive, ".zip"))
|
else if (is_suffix(archive, ".zip"))
|
||||||
i = 2;
|
i = 2;
|
||||||
|
@ -4642,10 +4642,11 @@ static bool handle_archive(char *fpath /* in-out param */, char op)
|
||||||
char arg[] = "-tvf"; /* options for tar/bsdtar to list files */
|
char arg[] = "-tvf"; /* options for tar/bsdtar to list files */
|
||||||
char *util, *outdir = NULL;
|
char *util, *outdir = NULL;
|
||||||
bool x_to = FALSE;
|
bool x_to = FALSE;
|
||||||
|
bool is_bsdtar = getutil(utils[UTIL_BSDTAR]);
|
||||||
bool is_atool = getutil(utils[UTIL_ATOOL]);
|
bool is_atool = getutil(utils[UTIL_ATOOL]);
|
||||||
|
|
||||||
if (op == 'x') {
|
if (op == 'x') {
|
||||||
outdir = xreadline(is_atool ? "." : xbasename(fpath), messages[MSG_NEW_PATH]);
|
outdir = xreadline((!is_bsdtar && is_atool) ? "." : xbasename(fpath), messages[MSG_NEW_PATH]);
|
||||||
if (!outdir || !*outdir) { /* Cancelled */
|
if (!outdir || !*outdir) { /* Cancelled */
|
||||||
printwait(messages[MSG_CANCEL], NULL);
|
printwait(messages[MSG_CANCEL], NULL);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -4662,14 +4663,14 @@ static bool handle_archive(char *fpath /* in-out param */, char op)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_atool) {
|
if (is_bsdtar) {
|
||||||
util = utils[UTIL_ATOOL];
|
|
||||||
arg[1] = op;
|
|
||||||
arg[2] = '\0';
|
|
||||||
} else if (getutil(utils[UTIL_BSDTAR])) {
|
|
||||||
util = utils[UTIL_BSDTAR];
|
util = utils[UTIL_BSDTAR];
|
||||||
if (op == 'x')
|
if (op == 'x')
|
||||||
arg[1] = op;
|
arg[1] = op;
|
||||||
|
} else if (is_atool) {
|
||||||
|
util = utils[UTIL_ATOOL];
|
||||||
|
arg[1] = op;
|
||||||
|
arg[2] = '\0';
|
||||||
} else if (is_suffix(fpath, ".zip")) {
|
} else if (is_suffix(fpath, ".zip")) {
|
||||||
util = utils[UTIL_UNZIP];
|
util = utils[UTIL_UNZIP];
|
||||||
arg[1] = (op == 'l') ? 'v' /* verbose listing */ : '\0';
|
arg[1] = (op == 'l') ? 'v' /* verbose listing */ : '\0';
|
||||||
|
|
Loading…
Reference in a new issue