Pārlūkot izejas kodu

Group similar options in browse()

master
Arun Prakash Jana pirms 6 gadiem
vecāks
revīzija
d029918282
Šim parakstam datu bāzē netika atrasta zināma atslēga GPG atslēgas ID: A75979F35C080412
2 mainītis faili ar 39 papildinājumiem un 53 dzēšanām
  1. +37
    -51
      src/nnn.c
  2. +2
    -2
      src/nnn.h

+ 37
- 51
src/nnn.c Parādīt failu

@@ -2017,13 +2017,13 @@ static bool handle_archive(char *fpath, char *arg, char *dir)
* the binary size by around a hundred bytes. This would only
* have increased as we keep adding new options.
*/
static int show_help(char *path)
static bool show_help(char *path)
{
if (g_tmpfpath[0])
xstrlcpy(g_tmpfpath + g_tmpfplen - 1, "/.nnnXXXXXX", HOME_LEN_MAX - g_tmpfplen);
else {
printmsg(messages[STR_NOHOME_ID]);
return -1;
return FALSE;
}

int i = 0, fd = mkstemp(g_tmpfpath);
@@ -2062,7 +2062,7 @@ static int show_help(char *path)
"eR Run custom script L Lock terminal\n"};

if (fd == -1)
return -1;
return FALSE;

start = end = helpstr;
while (*end) {
@@ -2134,7 +2134,7 @@ static int show_help(char *path)
get_output(NULL, 0, "cat", g_tmpfpath, NULL, TRUE);
unlink(g_tmpfpath);
refresh();
return 0;
return TRUE;
}

static int sum_bsizes(const char *fpath, const struct stat *sb,
@@ -2933,17 +2933,19 @@ nochange:
goto nochange;
}
break;
case SEL_LIST: // fallthrough
case SEL_EXTRACT: // fallthrough
case SEL_MEDIA: // fallthrough
case SEL_FMEDIA: // fallthrough
case SEL_ARCHIVELS: // fallthrough
case SEL_EXTRACT: // fallthrough
case SEL_RENAMEALL: // fallthrough
case SEL_RUNEDIT: // fallthrough
case SEL_RUNPAGE: // fallthrough
case SEL_RUNPAGE:
if (!ndents)
break; // fallthrough
case SEL_REDRAW: // fallthrough
case SEL_HELP: // fallthrough
case SEL_LOCK:
{
if (!ndents)
break;

mkpath(path, dents[cur].name, newpath, PATH_MAX);

switch(sel) {
@@ -2953,12 +2955,23 @@ nochange:
case SEL_FMEDIA:
r = show_mediainfo(newpath, "-f");
break;
case SEL_LIST:
case SEL_ARCHIVELS:
r = handle_archive(newpath, "-l", path);
break;
case SEL_EXTRACT:
r = handle_archive(newpath, "-x", path);
break;
case SEL_REDRAW:
if (ndents)
copycurname();
goto begin;
case SEL_RENAMEALL:
if ((r = getutil(utils[VIDIR])))
spawn(utils[VIDIR], ".", NULL, path, F_NORMAL);
break;
case SEL_HELP:
r = show_help(path);
break;
case SEL_RUNEDIT:
r = TRUE;
spawn(editor, editor_arg, dents[cur].name, path, F_NORMAL);
@@ -2971,29 +2984,26 @@ nochange:
r = TRUE;
spawn(utils[LOCKER], NULL, NULL, NULL, F_NORMAL | F_SIGINT);
break;
default:
r = TRUE;
break;
default: /* unreachable */
goto nochange;
}

if (r == FALSE) {
printmsg("utility missing");
if (!r) {
printmsg("required utility missing");
goto nochange;
}

/* In case of successful archive extract, reload contents */
if (sel == SEL_EXTRACT) {
/* Continue in navigate-as-you-type mode, if enabled */
if (cfg.filtermode)
presel = FILTER;
/* In case of successful operation, reload contents */

/* Save current */
copycurname();
/* Continue in navigate-as-you-type mode, if enabled */
if (cfg.filtermode)
presel = FILTER;

/* Repopulate as directory content may have changed */
goto begin;
}
break;
/* Save current */
copycurname();

/* Repopulate as directory content may have changed */
goto begin;
}
case SEL_FSIZE:
cfg.sizeorder ^= 1;
@@ -3043,11 +3053,6 @@ nochange:
if (ndents)
copycurname();
goto begin;
case SEL_REDRAW:
/* Save current */
if (ndents)
copycurname();
goto begin;
case SEL_COPY:
if (!ndents)
goto nochange;
@@ -3374,25 +3379,6 @@ nochange:
close(fd);
xstrlcpy(lastname, tmp, NAME_MAX + 1);
goto begin;
case SEL_RENAMEALL:
if (!getutil(utils[VIDIR])) {
printmsg("utility missing");
goto nochange;
}

spawn(utils[VIDIR], ".", NULL, path, F_NORMAL);

/* Save current */
if (ndents)
copycurname();
goto begin;
case SEL_HELP:
show_help(path);

/* Continue in navigate-as-you-type mode, if enabled */
if (cfg.filtermode)
presel = FILTER;
break;
case SEL_RUN: // fallthrough
case SEL_RUNSCRIPT:
if (sel == SEL_RUNSCRIPT) {


+ 2
- 2
src/nnn.h Parādīt failu

@@ -61,7 +61,7 @@ enum action {
SEL_FMEDIA,
SEL_LAUNCH,
SEL_ARCHIVE,
SEL_LIST,
SEL_ARCHIVELS,
SEL_EXTRACT,
SEL_FSIZE, /* file size */
SEL_ASIZE, /* apparent size */
@@ -170,7 +170,7 @@ static struct key bindings[] = {
/* Create archive */
{ 'f', SEL_ARCHIVE },
/* List archive */
{ 'F', SEL_LIST },
{ 'F', SEL_ARCHIVELS },
/* Extract archive */
{ CONTROL('F'), SEL_EXTRACT },
/* Toggle sort by size */


Notiek ielāde…
Atcelt
Saglabāt