nnn

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 943a7c13ac075cec66c136710f09e547a157db5a
parent 7cbc79a5fcec87d7f792f7dc648fce2eab59430e
Author: Arun Prakash Jana <engineerarun@gmail.com>
Date:   Sun, 15 Aug 2021 19:11:04 +0530

Fix broken statusbar when symlink name exceeds max cols

Diffstat:
Msrc/nnn.c | 18++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/src/nnn.c b/src/nnn.c @@ -6037,7 +6037,7 @@ static bool set_time_type(int *presel) static void statusbar(char *path) { - int i = 0, extnlen = 0; + int i = 0, len = 0; char *ptr; pEntry pent = &pdents[cur]; @@ -6051,8 +6051,8 @@ static void statusbar(char *path) i = (int)(pent->nlen - 1); ptr = xextension(pent->name, i); if (ptr) - extnlen = i - (ptr - pent->name); - if (!ptr || extnlen > 5 || extnlen < 2) + len = i - (ptr - pent->name); + if (!ptr || len > 5 || len < 2) ptr = "\b"; } else ptr = "\b"; @@ -6106,16 +6106,14 @@ static void statusbar(char *path) #endif if (S_ISLNK(pent->mode)) { i = readlink(pent->name, g_buf, PATH_MAX); - addstr(coolsize(i >= 0 ? i : pent->size)); /* Show symlink size */ - if (i > 1) { /* Show symlink target */ - g_buf[i] = '\0'; -#ifdef ICONS_ENABLED - addstr(" "MD_ARROW_FORWARD); -#else + int y; + addstr(" ->"); -#endif + getyx(stdscr, len, y); + i = MIN(i, xcols - y); + g_buf[i] = '\0'; addstr(g_buf); } } else {