aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-04-26 08:46:37 +0530
committerGravatar Arun Prakash Jana <engineerarun@gmail.com>2019-04-26 08:46:57 +0530
commit4f15fb765affbdc436ac99e04478084fc4172159 (patch)
tree54b3396b61b3b8a494f0f4ab52a85bb650b129b8 /src
parentf07c8a9dfd01c3a48fb479ef4c387926c72d74c8 (diff)
downloadnnn-4f15fb765affbdc436ac99e04478084fc4172159.tar.gz
Always detach opener
This may affect issue #227 but the defunct processes do not use any memory and exit when nnn exits. I guess that happens because of xdg-open using an intermediate script. However, if we do not detach xdg-open, the child process is killed when the terminal is closed which is a severe problem.
Diffstat (limited to 'src')
-rw-r--r--src/nnn.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/nnn.c b/src/nnn.c
index d154406..d28e435 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -291,7 +291,6 @@ static bm bookmark[BM_MAX];
static size_t g_tmpfplen;
static uchar g_crc;
static uchar BLK_SHIFT = 9;
-static uchar opener_flag = F_NOTRACE;
static bool interrupted = FALSE;
/* Retain old signal handlers */
@@ -392,10 +391,9 @@ static const char * const messages[] = {
#define NNN_NO_AUTOSELECT 9
#define NNN_RESTRICT_NAV_OPEN 10
#define NNN_RESTRICT_0B 11
-#define NNN_OPENER_DETACH 12
-#define NNN_TRASH 13
+#define NNN_TRASH 12
#ifdef __linux__
-#define NNN_OPS_PROG 14
+#define NNN_OPS_PROG 13
#endif
static const char * const env_cfg[] = {
@@ -411,7 +409,6 @@ static const char * const env_cfg[] = {
"NNN_NO_AUTOSELECT",
"NNN_RESTRICT_NAV_OPEN",
"NNN_RESTRICT_0B",
- "NNN_OPENER_DETACH",
"NNN_TRASH",
#ifdef __linux__
"NNN_OPS_PROG",
@@ -3151,7 +3148,7 @@ nochange:
}
/* Invoke desktop opener as last resort */
- spawn(opener, newpath, NULL, NULL, opener_flag);
+ spawn(opener, newpath, NULL, NULL, F_NOTRACE | F_NOWAIT);
continue;
}
default:
@@ -4276,8 +4273,6 @@ int main(int argc, char *argv[])
/* Get custom opener, if set */
opener = xgetenv(env_cfg[NNN_OPENER], utils[OPENER]);
- if (xgetenv_set(env_cfg[NNN_OPENER_DETACH]))
- opener_flag |= F_NOWAIT;
DPRINTF_S(opener);
/* Parse bookmarks string */
@@ -4321,7 +4316,7 @@ int main(int argc, char *argv[])
}
if (S_ISREG(sb.st_mode)) {
- spawn(opener, initpath, NULL, NULL, opener_flag);
+ spawn(opener, initpath, NULL, NULL, F_NOTRACE | F_NOWAIT);
return 0;
}
}