nnn

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 95eaa636efbf7a9a63d9489b11163a8cc8c28a97
parent 3ca86eafbe899a448799832f8ad65d15a01f6e57
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date:   Wed, 15 May 2019 09:14:28 +0530

Fix #261

Diffstat:
Msrc/nnn.c | 21+++++++++++++++++++++
1 file changed, 21 insertions(+), 0 deletions(-)

diff --git a/src/nnn.c b/src/nnn.c @@ -4360,6 +4360,10 @@ int main(int argc, char *argv[]) if (!setup_config()) return 1; + /* Get custom opener, if set */ + opener = xgetenv(env_cfg[NNN_OPENER], utils[OPENER]); + DPRINTF_S(opener); + /* Parse bookmarks string */ if (!parsebmstr()) { fprintf(stderr, "%s\n", env_cfg[NNN_BMS]); @@ -4387,6 +4391,23 @@ int main(int argc, char *argv[]) xerror(); 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(initpath, &sb) == -1) { + xerror(); + return 1; + } + + if (S_ISREG(sb.st_mode)) { + execlp(opener, opener, arg, NULL); + return 0; + } } /* Edit text in EDITOR, if opted */