mirror of
https://github.com/jarun/nnn.git
synced 2024-09-29 09:17:51 +00:00
nnn as file manager: more changes
1. Support passing files to nnn 2. Enable debug logs much early
This commit is contained in:
parent
c5b5181ac4
commit
39035bd75c
|
@ -47,7 +47,7 @@ static int xprintf(int fd, const char *fmt, ...)
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int enabledbg()
|
static int enabledbg(void)
|
||||||
{
|
{
|
||||||
FILE *fp = fopen("/tmp/nnndbg", "w");
|
FILE *fp = fopen("/tmp/nnndbg", "w");
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ static int enabledbg()
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void disabledbg()
|
static void disabledbg(void)
|
||||||
{
|
{
|
||||||
close(DEBUG_FD);
|
close(DEBUG_FD);
|
||||||
}
|
}
|
||||||
|
|
41
src/nnn.c
41
src/nnn.c
|
@ -4045,9 +4045,20 @@ int main(int argc, char *argv[])
|
||||||
++opt;
|
++opt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef DBGMODE
|
||||||
|
enabledbg();
|
||||||
|
atexit(disabledbg);
|
||||||
|
#endif
|
||||||
|
|
||||||
home = getenv("HOME");
|
home = getenv("HOME");
|
||||||
DPRINTF_S(home);
|
DPRINTF_S(home);
|
||||||
|
|
||||||
|
/* Get custom opener, if set */
|
||||||
|
opener = xgetenv(env_cfg[NNN_OPENER], utils[OPENER]);
|
||||||
|
if (getenv(env_cfg[NNN_OPENER_DETACH]))
|
||||||
|
opener_flag |= F_NOWAIT;
|
||||||
|
DPRINTF_S(opener);
|
||||||
|
|
||||||
/* Parse bookmarks string */
|
/* Parse bookmarks string */
|
||||||
if (!parsebmstr()) {
|
if (!parsebmstr()) {
|
||||||
fprintf(stderr, "%s\n", env_cfg[NNN_BMS]);
|
fprintf(stderr, "%s\n", env_cfg[NNN_BMS]);
|
||||||
|
@ -4072,10 +4083,28 @@ int main(int argc, char *argv[])
|
||||||
&& ipath[3] == 'e' && ipath[4] == ':' && ipath[5] == '/' && ipath[6] == '/')
|
&& ipath[3] == 'e' && ipath[4] == ':' && ipath[5] == '/' && ipath[6] == '/')
|
||||||
ipath = ipath + 7;
|
ipath = ipath + 7;
|
||||||
ipath = realpath(ipath, cwd);
|
ipath = realpath(ipath, cwd);
|
||||||
|
DPRINTF_S(ipath);
|
||||||
if (!ipath) {
|
if (!ipath) {
|
||||||
xerror();
|
xerror();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If nnn is set as the file manager, applications may try to open
|
||||||
|
* files by invoking nnn. In that case pass the file path to the
|
||||||
|
* desktop opener and exit.
|
||||||
|
*/
|
||||||
|
struct stat sb;
|
||||||
|
|
||||||
|
if (stat(ipath, &sb) == -1) {
|
||||||
|
printwarn();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (S_ISREG(sb.st_mode)) {
|
||||||
|
spawn(opener, ipath, NULL, NULL, opener_flag);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Edit text in EDITOR, if opted */
|
/* Edit text in EDITOR, if opted */
|
||||||
|
@ -4113,12 +4142,6 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Get custom opener, if set */
|
|
||||||
opener = xgetenv(env_cfg[NNN_OPENER], utils[OPENER]);
|
|
||||||
if (getenv(env_cfg[NNN_OPENER_DETACH]))
|
|
||||||
opener_flag |= F_NOWAIT;
|
|
||||||
DPRINTF_S(opener);
|
|
||||||
|
|
||||||
/* Set nnn nesting level, idletimeout used as tmp var */
|
/* Set nnn nesting level, idletimeout used as tmp var */
|
||||||
idletimeout = xatoi(getenv(env_cfg[NNNLVL]));
|
idletimeout = xatoi(getenv(env_cfg[NNNLVL]));
|
||||||
setenv(env_cfg[NNNLVL], xitoa(++idletimeout), 1);
|
setenv(env_cfg[NNNLVL], xitoa(++idletimeout), 1);
|
||||||
|
@ -4200,9 +4223,6 @@ int main(int argc, char *argv[])
|
||||||
read_history(NULL);
|
read_history(NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DBGMODE
|
|
||||||
enabledbg();
|
|
||||||
#endif
|
|
||||||
if (!initcurses())
|
if (!initcurses())
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
@ -4236,8 +4256,5 @@ int main(int argc, char *argv[])
|
||||||
close(kq);
|
close(kq);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DBGMODE
|
|
||||||
disabledbg();
|
|
||||||
#endif
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue