]> Sergey Matveev's repositories - nnn.git/commitdiff
Support NOICE_FALLBAK_OPENER.
authorArun Prakash Jana <engineerarun@gmail.com>
Sun, 21 Aug 2016 10:19:54 +0000 (15:49 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Sun, 21 Aug 2016 10:19:54 +0000 (15:49 +0530)
noice.c

diff --git a/noice.c b/noice.c
index ee587726da2ba23c2ee92af9952884533a21c356..7ba37963146cebef31d39dd135498876f6de16ec 100644 (file)
--- 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 */