]> Sergey Matveev's repositories - nnn.git/commitdiff
Resolve ~ (HOME) at chdir prompt
authorArun Prakash Jana <engineerarun@gmail.com>
Wed, 5 Apr 2017 04:55:59 +0000 (10:25 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Thu, 6 Apr 2017 00:59:13 +0000 (06:29 +0530)
config.def.h
nnn.c

index 6c47663acaf00fdc230662665fb3dc0e689e4bf9..7ab38562f3bd3986f7b719e6e1915ebd76d29b9c 100644 (file)
@@ -12,9 +12,9 @@ static char *idlecmd   = "rain"; /* The screensaver program */
 
 struct assoc assocs[] = {
        { "\\.(c|cpp|h|txt|log|sh)$", "vi" },
-       //{ "\\.(avi|mp4|mkv|3gp|mov)$", "mpv" },
+       { "\\.(avi|mp4|mkv|3gp|mov)$", "mpv" },
        { "\\.(wma|mp3|ogg|flac|m4a)$", "mpv" },
-       //{ "\\.(png|jpg|gif)$", "feh" },
+       { "\\.(png|jpg|gif)$", "viewnior" },
        //{ "\\.(html|svg)$", "firefox" },
        { "\\.pdf$", "zathura" },
        //{ "\\.sh$", "sh" },
diff --git a/nnn.c b/nnn.c
index 9cfbc982d3aa2f6467b14eb547b69fae0f1879ad..aa332dc15b54f60ea1ecccabf7bf1f3e7e99d01e 100644 (file)
--- a/nnn.c
+++ b/nnn.c
@@ -1247,7 +1247,17 @@ nochange:
                                clearprompt();
                                goto nochange;
                        }
-                       mkpath(path, tmp, newpath, sizeof(newpath));
+
+                       if (tmp[0] == '~') {
+                               char *home = getenv("HOME");
+                               if (home)
+                                       snprintf(newpath, PATH_MAX,
+                                               "%s%s", home, tmp + 1);
+                               else
+                                       mkpath(path, tmp, newpath, sizeof(newpath));
+                       } else
+                               mkpath(path, tmp, newpath, sizeof(newpath));
+
                        if (canopendir(newpath) == 0) {
                                printwarn();
                                goto nochange;