]> Sergey Matveev's repositories - nnn.git/commitdiff
Fix #231
authorArun Prakash Jana <engineerarun@gmail.com>
Fri, 22 Mar 2019 13:59:36 +0000 (19:29 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Fri, 22 Mar 2019 14:00:01 +0000 (19:30 +0530)
README.md
nnn.1
src/nnn.c

index 6736b417063456fcbc22c58a655456a8f7a96f39..40b5716584f5b7eee8d8344ec21eeb8a3117f515 100644 (file)
--- a/README.md
+++ b/README.md
@@ -369,6 +369,7 @@ The following indicators are used in the detail view:
 | --- | --- |
 | `NNN_BMS='d:~/Documents;D:~/Docs archive/'` | specify bookmarks (max 10) |
 | `NNN_OPENER=mimeopen` | custom file opener |
+| `NNN_OPENER_DETACH=1` | do not block when invoking file opener |
 | `NNN_CONTEXT_COLORS='1234'` | specify per context color [default: '4444' (all blue)] |
 | `NNN_IDLE_TIMEOUT=300` | idle seconds before locking terminal [default: disabled] |
 | `NNN_COPIER='copier.sh'` | system clipboard copier script [default: none] |
diff --git a/nnn.1 b/nnn.1
index f442eb2304c3a98b797b4a74ec896d8f4b73c931..3a96e1bdb608cfb0d54dd171bbd14d4d0ba9cf52 100644 (file)
--- a/nnn.1
+++ b/nnn.1
@@ -155,6 +155,11 @@ when dealing with the !, e and p commands respectively. A single combination to
     export NNN_OPENER=mimeopen
 .Ed
 .Pp
+\fBNNN_OPENER_DETACH:\fR do not block when invoking file opener.
+.Bd -literal
+    export NNN_OPENER_DETACH=1
+.Ed
+.Pp
 \fBNNN_CONTEXT_COLORS:\fR string of color codes for each context, e.g.:
 .Bd -literal
     export NNN_CONTEXT_COLORS='1234'
index 8ff177dda6b4e2bdeb7dd7f0558a0fe6d3ed8fa7..930f495052ef5cf6df48b3481a27245ee3f9e85c 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -256,6 +256,7 @@ static bm bookmark[BM_MAX];
 static size_t g_tmpfplen; /* path to tmp files for copy without X, keybind help and file stats */
 static uchar g_crc;
 static uchar BLK_SHIFT = 9;
+static uchar opener_flag = F_NOTRACE;
 static bool interrupted = FALSE;
 
 /* Retain old signal handlers */
@@ -362,9 +363,10 @@ static const char * const messages[] = {
 #define NNN_NO_AUTOSELECT 10
 #define NNN_RESTRICT_NAV_OPEN 11
 #define NNN_RESTRICT_0B 12
-#define NNN_TRASH 13
+#define NNN_OPENER_DETACH 13
+#define NNN_TRASH 14
 #ifdef __linux__
-#define NNN_OPS_PROG 14
+#define NNN_OPS_PROG 15
 #endif
 
 static const char * const env_cfg[] = {
@@ -381,6 +383,7 @@ 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",
@@ -3039,7 +3042,7 @@ nochange:
                                }
 
                                /* Invoke desktop opener as last resort */
-                               spawn(opener, newpath, NULL, NULL, F_NOTRACE);
+                               spawn(opener, newpath, NULL, NULL, opener_flag);
                                continue;
                        }
                        default:
@@ -4103,6 +4106,8 @@ int main(int argc, char *argv[])
 
        /* Get custom opener, if set */
        opener = xgetenv(env_cfg[NNN_OPENER], utils[OPENER]);
+       if (getenv(env_cfg[NNN_OPENER_DETACH]))
+               opener_flag |= F_NOWAIT;
 
        /* Set nnn nesting level, idletimeout used as tmp var */
        idletimeout = xatoi(getenv(env_cfg[NNNLVL]));