mirror of
https://github.com/jarun/nnn.git
synced 2024-11-28 05:41:31 +00:00
refactor quitcd
This commit is contained in:
parent
602ec0e41b
commit
3dc1760630
36
src/nnn.c
36
src/nnn.c
|
@ -1217,6 +1217,25 @@ static void archive_selection(const char *archive, const char *curpath)
|
|||
spawn("sh", "-c", g_buf, curpath, F_NORMAL | F_SIGINT);
|
||||
}
|
||||
|
||||
static bool write_lastdir(const char *curpath)
|
||||
{
|
||||
char *tmp = getenv(env_cfg[NNN_TMPFILE]);
|
||||
|
||||
if (!tmp) {
|
||||
printmsg("set NNN_TMPFILE");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
FILE *fp = fopen(tmp, "w");
|
||||
|
||||
if (fp) {
|
||||
fprintf(fp, "cd \"%s\"", curpath);
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns:
|
||||
* FALSE - a message is shown
|
||||
|
@ -3917,23 +3936,8 @@ nochange:
|
|||
/* Picker mode: reset buffer or clear file */
|
||||
if (copybufpos)
|
||||
cfg.pickraw ? copybufpos = 0 : writecp(NULL, 0);
|
||||
|
||||
dentfree(dents);
|
||||
return;
|
||||
}
|
||||
|
||||
tmp = getenv(env_cfg[NNN_TMPFILE]);
|
||||
if (!tmp) {
|
||||
printmsg("set NNN_TMPFILE");
|
||||
} else if (!write_lastdir(path))
|
||||
goto nochange;
|
||||
}
|
||||
|
||||
FILE *fp = fopen(tmp, "w");
|
||||
|
||||
if (fp) {
|
||||
fprintf(fp, "cd \"%s\"", path);
|
||||
fclose(fp);
|
||||
}
|
||||
} // fallthrough
|
||||
case SEL_QUITCTX:
|
||||
if (sel == SEL_QUITCTX) {
|
||||
|
|
Loading…
Reference in a new issue