From 95ca9c3a951f152ea102536df08288fece377c25 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana 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 */