From 95ca9c3a951f152ea102536df08288fece377c25 Mon Sep 17 00:00:00 2001
From: Arun Prakash Jana <engineerarun@gmail.com>
Date: Sun, 21 Aug 2016 15:49:54 +0530
Subject: [PATCH] Support NOICE_FALLBAK_OPENER.

---
 noice.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/noice.c b/noice.c
index ee587726..7ba37963 100644
--- a/noice.c
+++ b/noice.c
@@ -86,6 +86,7 @@ struct entry *dents;
 int ndents, cur;
 int idle;
 char *opener = NULL;
+char *fallback_opener = NULL;
 
 /*
  * Layout:
@@ -658,7 +659,8 @@ nochange:
 					char cmd[MAX_LEN];
 					int status;
 
-					snprintf(cmd, MAX_LEN, "%s \"%s\" > /dev/null 2>&1", opener, newpath);
+					snprintf(cmd, MAX_LEN, "%s \"%s\" > /dev/null 2>&1",
+						opener, newpath);
 					status = system(cmd);
 					continue;
 				}
@@ -686,10 +688,14 @@ nochange:
 
 					if (strstr(cmd, "ASCII text") != NULL)
 						bin = execvim;
-					else {
-						snprintf(cmd, MAX_LEN, "xdg-open \"%s\" > /dev/null 2>&1", newpath);
+					else if (fallback_opener) {
+						snprintf(cmd, MAX_LEN, "%s \"%s\" > /dev/null 2>&1",
+							fallback_opener, newpath);
 						status = system(cmd);
 						continue;
+					} else {
+						printmsg("No association");
+						goto nochange;
 					}
 				}
 				exitcurses();
@@ -849,6 +855,9 @@ main(int argc, char *argv[])
 	/* Get the default desktop mime opener, if set */
 	opener = getenv("NOICE_OPENER");
 
+	/* Get the fallback desktop mime opener, if set */
+	fallback_opener = getenv("NOICE_FALLBACK_OPENER");
+
 	signal(SIGINT, SIG_IGN);
 
 	/* Test initial path */
-- 
2.51.0