mirror of
https://github.com/jarun/nnn.git
synced 2024-11-24 20:01:27 +00:00
Combine cases
SEL_CDHOME, SEL_CDBEGIN, SEL_CDLAST, SEL_VISIT
This commit is contained in:
parent
78048d6ef0
commit
c400a19268
46
src/nnn.c
46
src/nnn.c
|
@ -2826,14 +2826,21 @@ nochange:
|
|||
cur = ndents - 1;
|
||||
break;
|
||||
case SEL_CDHOME:
|
||||
dir = getenv("HOME");
|
||||
if (dir == NULL) {
|
||||
clearprompt();
|
||||
goto nochange;
|
||||
} // fallthrough
|
||||
dir = xgetenv("HOME", path); // fallthrough
|
||||
case SEL_CDBEGIN:
|
||||
if (sel == SEL_CDBEGIN)
|
||||
dir = ipath;
|
||||
dir = ipath; // fallthrough
|
||||
case SEL_CDLAST:
|
||||
if (sel == SEL_CDLAST)
|
||||
dir = lastdir; // fallthrough
|
||||
case SEL_VISIT:
|
||||
if (sel == SEL_VISIT)
|
||||
dir = mark;
|
||||
|
||||
if (dir[0] == '\0') {
|
||||
printmsg("not set");
|
||||
goto nochange;
|
||||
}
|
||||
|
||||
if (!xdiraccess(dir))
|
||||
goto nochange;
|
||||
|
@ -2841,33 +2848,12 @@ nochange:
|
|||
if (strcmp(path, dir) == 0)
|
||||
break;
|
||||
|
||||
/* SEL_CDLAST: dir pointing to lastdir */
|
||||
xstrlcpy(newpath, dir, PATH_MAX);
|
||||
|
||||
/* Save last working directory */
|
||||
xstrlcpy(lastdir, path, PATH_MAX);
|
||||
xstrlcpy(path, dir, PATH_MAX);
|
||||
lastname[0] = '\0';
|
||||
DPRINTF_S(path);
|
||||
setdirwatch();
|
||||
goto begin;
|
||||
case SEL_CDLAST: // fallthrough
|
||||
case SEL_VISIT:
|
||||
if (sel == SEL_VISIT) {
|
||||
if (strcmp(mark, path) == 0)
|
||||
break;
|
||||
|
||||
tmp = mark;
|
||||
} else
|
||||
tmp = lastdir;
|
||||
|
||||
if (tmp[0] == '\0') {
|
||||
printmsg("not set");
|
||||
goto nochange;
|
||||
}
|
||||
|
||||
if (!xdiraccess(tmp))
|
||||
goto nochange;
|
||||
|
||||
xstrlcpy(newpath, tmp, PATH_MAX);
|
||||
xstrlcpy(lastdir, path, PATH_MAX);
|
||||
xstrlcpy(path, newpath, PATH_MAX);
|
||||
lastname[0] = '\0';
|
||||
DPRINTF_S(path);
|
||||
|
|
|
@ -48,6 +48,7 @@ enum action {
|
|||
SEL_CDHOME,
|
||||
SEL_CDBEGIN,
|
||||
SEL_CDLAST,
|
||||
SEL_VISIT,
|
||||
SEL_LEADER,
|
||||
SEL_CYCLE,
|
||||
SEL_CTX1,
|
||||
|
@ -55,7 +56,6 @@ enum action {
|
|||
SEL_CTX3,
|
||||
SEL_CTX4,
|
||||
SEL_PIN,
|
||||
SEL_VISIT,
|
||||
SEL_FLTR,
|
||||
SEL_MFLTR,
|
||||
SEL_TOGGLEDOT,
|
||||
|
@ -141,6 +141,8 @@ static struct key bindings[] = {
|
|||
{ '&', SEL_CDBEGIN },
|
||||
/* Last visited dir */
|
||||
{ '-', SEL_CDLAST },
|
||||
/* Visit marked directory */
|
||||
{ CONTROL('W'), SEL_VISIT },
|
||||
/* Leader key */
|
||||
{ CONTROL('_'), SEL_LEADER },
|
||||
{ '`', SEL_LEADER },
|
||||
|
@ -154,8 +156,6 @@ static struct key bindings[] = {
|
|||
{ '4', SEL_CTX4 },
|
||||
/* Mark a path to visit later */
|
||||
{ 'b', SEL_PIN },
|
||||
/* Visit marked directory */
|
||||
{ CONTROL('W'), SEL_VISIT },
|
||||
/* Filter */
|
||||
{ '/', SEL_FLTR },
|
||||
/* Toggle filter mode */
|
||||
|
|
Loading…
Reference in a new issue