From 205dd6db0596d22b89394edabf40b4111f350e95 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Wed, 5 Apr 2017 22:18:21 +0530 Subject: [PATCH] Try fallbak for missing apps, use popen wrapper --- nnn.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/nnn.c b/nnn.c index aa332dc1..b8aeb21f 100644 --- a/nnn.c +++ b/nnn.c @@ -1141,7 +1141,6 @@ nochange: static char cmd[MAX_CMD_LEN]; static char *runvi = "vi"; static int status; - static FILE *fp; /* If default mime opener is set, use it */ if (opener) { @@ -1155,20 +1154,19 @@ nochange: /* Try custom applications */ bin = openwith(newpath); + /* If custom app doesn't exist try fallback */ + snprintf(cmd, MAX_CMD_LEN, "which \"%s\"", bin); + if (get_output(cmd, MAX_CMD_LEN) == NULL) + bin = NULL; + if (bin == NULL) { /* If a custom handler application is not set, open plain text files with vi, then try fallback_opener */ snprintf(cmd, MAX_CMD_LEN, "file \"%s\"", newpath); - fp = popen(cmd, "r"); - if (fp == NULL) + if (get_output(cmd, MAX_CMD_LEN) == NULL) goto nochange; - if (fgets(cmd, MAX_CMD_LEN, fp) == NULL) { - pclose(fp); - goto nochange; - } - pclose(fp); if (strstr(cmd, "ASCII text") != NULL) bin = runvi;