src/nnn.c | 18 +++++++++++------- diff --git a/src/nnn.c b/src/nnn.c index 135ef480aae9b5a894bad3ebfb602cba32ae467e..fcea6c97c66ebcfd43f157494d035f2ff34c2b61 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -4518,7 +4518,7 @@ char *tmp = name; struct stat sb, psb; bool child = FALSE; bool parent = FALSE; - bool hovered = TRUE; + bool hovered = FALSE; char mntpath[PATH_MAX]; #if !defined(__APPLE__) && !defined(__FreeBSD__) @@ -4545,11 +4545,15 @@ if (!tmp || !child || !S_ISDIR(sb.st_mode) || (child && parent && sb.st_dev == psb.st_dev)) { tmp = xreadline(NULL, messages[MSG_HOSTNAME]); if (!tmp[0]) return FALSE; - hovered = FALSE; + if (name && (tmp[0] == '-') && (tmp[1] == '\0')) { + mkpath(currentpath, name, newpath); + hovered = TRUE; + } } - /* Create the mount point */ - mkpath(mntpath, tmp, newpath); + if (!hovered) + mkpath(mntpath, tmp, newpath); + if (!xdiraccess(newpath)) { *presel = MSGWAIT; return FALSE; @@ -4558,7 +4562,7 @@ #if defined(__APPLE__) || defined(__FreeBSD__) if (spawn(cmd, newpath, NULL, NULL, F_NORMAL)) { #else - if (spawn(cmd, "-u", newpath, NULL, F_NORMAL)) { + if (spawn(cmd, "-qu", newpath, NULL, F_NORMAL)) { #endif if (!xconfirm(get_input(messages[MSG_LAZY]))) return FALSE; @@ -4568,7 +4572,7 @@ if (spawn(cmd, "-l", newpath, NULL, F_NORMAL)) { #elif defined(__FreeBSD__) if (spawn(cmd, "-f", newpath, NULL, F_NORMAL)) { #else - if (spawn(cmd, "-uz", newpath, NULL, F_NORMAL)) { + if (spawn(cmd, "-quz", newpath, NULL, F_NORMAL)) { #endif printwait(messages[MSG_FAILED], presel); return FALSE; @@ -4580,7 +4584,7 @@ printwarn(presel); return FALSE; } - return hovered; + return TRUE; } static void lock_terminal(void)