diff options
author | Arun Prakash Jana <engineerarun@gmail.com> | 2019-04-27 17:58:55 +0530 |
---|---|---|
committer | Arun Prakash Jana <engineerarun@gmail.com> | 2019-04-27 18:30:40 +0530 |
commit | 8166e0169a797695dcf0ef37c0924c65ef523bf5 (patch) | |
tree | b2c221efe391a7b686c851ce7dfc413c8f4ba96b /src/nnn.c | |
parent | ce6fc3592908e23d108e702a7d9f002e79bc16e0 (diff) | |
download | nnn-8166e0169a797695dcf0ef37c0924c65ef523bf5.tar.gz |
Reformat create link to selection
Diffstat (limited to 'src/nnn.c')
-rw-r--r-- | src/nnn.c | 25 |
1 files changed, 14 insertions, 11 deletions
@@ -370,12 +370,14 @@ static char mv[] = "mvg -gi"; #define STR_INVBM_KEY 1 #define STR_DATE_ID 2 #define STR_TMPFILE 3 +#define NONE_SELECTED 4 static const char * const messages[] = { "no traversal", "invalid key", "%F %T %z", "/.nnnXXXXXX", + "empty selection", }; /* Supported configuration environment variables */ @@ -1842,7 +1844,7 @@ static size_t mkpath(char *dir, char *name, char *out) * Create symbolic/hard link(s) to file(s) in selection list * Returns the number of links created */ -static int xlink(char *suffix, char *path, char *buf, int type) +static int xlink(char *suffix, char *path, char *buf, int *presel, int type) { int count = 0; char *pbuf = pcopybuf, *fname; @@ -1850,15 +1852,15 @@ static int xlink(char *suffix, char *path, char *buf, int type) int (*link_fn)(const char *, const char *) = NULL; /* Check if selection is empty */ - if (!copybufpos) - return 0; + if (!copybufpos) { + printwait(messages[NONE_SELECTED], presel); + return -1; + } if (type == 's') /* symbolic link */ link_fn = &symlink; - else if (type == 'h') /* hard link */ + else /* hard link */ link_fn = &link; - else - return -1; while (pos < copybufpos) { len = strlen(pbuf); @@ -1873,6 +1875,9 @@ static int xlink(char *suffix, char *path, char *buf, int type) pbuf += len + 1; } + if (!count) + printwait("none created", presel); + return count; } @@ -3707,7 +3712,7 @@ nochange: break; } - printwait("none selected", &presel); + printwait(messages[NONE_SELECTED], &presel); goto nochange; case SEL_CP: case SEL_MV: @@ -3894,13 +3899,11 @@ nochange: } else if (r == 's' || r == 'h') { if (tmp[0] == '@' && tmp[1] == '\0') tmp[0] = '\0'; - r = xlink(tmp, path, newpath, r); + r = xlink(tmp, path, newpath, &presel, r); close(fd); - if (r <= 0) { - printwait("none created", &presel); + if (r <= 0) goto nochange; - } if (cfg.filtermode) presel = FILTER; |