diff --git a/src/nnn.c b/src/nnn.c index aa8ae4ce..567eb92a 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -4011,35 +4011,37 @@ static bool remote_mount(char *newpath) return FALSE; } - tmp = xreadline(NULL, "remote name: "); + tmp = xreadline(NULL, "host[:dir] > "); if (!tmp[0]) { printmsg(messages[MSG_CANCEL]); return FALSE; } - /* Create the mount point */ - mkpath(cfgpath, toks[TOK_MNT], mntpath); - mkpath(mntpath, tmp, newpath); - if (!xmktree(newpath, TRUE)) { - printwarn(NULL); - return FALSE; - } - /* Convert "Host" to "Host:" */ size_t len = xstrlen(tmp); bool path = FALSE; for (size_t count = 0; count < len; ++count) if (tmp[count] == ':') { + tmp[count] = '\0'; + len = count; path = TRUE; break; } - if (!path) { /* Append ':' if missing */ - tmp[len] = ':'; - tmp[len + 1] = '\0'; + /* Create the mount point */ + mkpath(cfgpath, toks[TOK_MNT], mntpath); + mkpath(mntpath, tmp, newpath); + if (!xmktree(newpath, TRUE)) { + printwarn(NULL); + return FALSE; } + tmp[len] = ':'; + + if (!path) /* Append ':' at the end */ + tmp[len + 1] = '\0'; + /* Connect to remote */ if (opt == 's') { if (spawn(env, tmp, newpath, flag)) {