commit 1729a10ef427c5e3bee18164fec90076662f58e1
parent 96fb61a6a2c05c12366a03981677e3ab6d4a8af5
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date: Mon, 28 Jun 2021 00:16:32 +0530
Try to unmount hovered local dir
Diffstat:
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/src/nnn.c b/src/nnn.c
@@ -4518,7 +4518,7 @@ static bool unmount(char *name, char *newpath, int *presel, char *currentpath)
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 @@ static bool unmount(char *name, char *newpath, int *presel, char *currentpath)
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 @@ static bool unmount(char *name, char *newpath, int *presel, char *currentpath)
#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 @@ static bool unmount(char *name, char *newpath, int *presel, char *currentpath)
#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 @@ static bool unmount(char *name, char *newpath, int *presel, char *currentpath)
return FALSE;
}
- return hovered;
+ return TRUE;
}
static void lock_terminal(void)