mirror of
https://github.com/jarun/nnn.git
synced 2024-11-28 05:41:31 +00:00
Avoid buffer copy
This commit is contained in:
parent
2d72465e7b
commit
4885b5fc2f
25
src/nnn.c
25
src/nnn.c
|
@ -1935,6 +1935,10 @@ static bool parsebmstr(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*bms == ';') {
|
if (*bms == ';') {
|
||||||
|
/* Remove trailing space */
|
||||||
|
if (i > 0 && *(bms - 1) == '/')
|
||||||
|
*(bms - 1) = '\0';
|
||||||
|
|
||||||
*bms = '\0';
|
*bms = '\0';
|
||||||
nextkey = bms + 1;
|
nextkey = bms + 1;
|
||||||
}
|
}
|
||||||
|
@ -2738,6 +2742,7 @@ static void populate(char *path, char *lastname)
|
||||||
static void redraw(char *path)
|
static void redraw(char *path)
|
||||||
{
|
{
|
||||||
static char buf[NAME_MAX + 65] __attribute__ ((aligned));
|
static char buf[NAME_MAX + 65] __attribute__ ((aligned));
|
||||||
|
char c;
|
||||||
size_t ncols = COLS;
|
size_t ncols = COLS;
|
||||||
int nlines = MIN(LINES - 4, ndents), i, attrs;
|
int nlines = MIN(LINES - 4, ndents), i, attrs;
|
||||||
|
|
||||||
|
@ -2758,21 +2763,9 @@ static void redraw(char *path)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Strip trailing slashes */
|
|
||||||
for (i = strlen(path) - 1; i > 0; --i)
|
|
||||||
if (path[i] == '/')
|
|
||||||
path[i] = '\0';
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
|
|
||||||
DPRINTF_D(cur);
|
DPRINTF_D(cur);
|
||||||
DPRINTF_S(path);
|
DPRINTF_S(path);
|
||||||
|
|
||||||
if (!realpath(path, g_buf)) {
|
|
||||||
printwarn();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ncols > PATH_MAX)
|
if (ncols > PATH_MAX)
|
||||||
ncols = PATH_MAX;
|
ncols = PATH_MAX;
|
||||||
|
|
||||||
|
@ -2800,9 +2793,11 @@ static void redraw(char *path)
|
||||||
|
|
||||||
attron(A_UNDERLINE);
|
attron(A_UNDERLINE);
|
||||||
/* No text wrapping in cwd line */
|
/* No text wrapping in cwd line */
|
||||||
g_buf[ncols - 11] = '\0';
|
c = path[ncols - 11];
|
||||||
printw("%s\n\n", g_buf);
|
path[ncols - 11] = '\0';
|
||||||
|
printw("%s\n\n", path);
|
||||||
attroff(A_UNDERLINE);
|
attroff(A_UNDERLINE);
|
||||||
|
path[ncols - 11] = c;
|
||||||
|
|
||||||
/* Fallback to light mode if less than 35 columns */
|
/* Fallback to light mode if less than 35 columns */
|
||||||
if (ncols < 35 && cfg.showdetail) {
|
if (ncols < 35 && cfg.showdetail) {
|
||||||
|
@ -2812,7 +2807,7 @@ static void redraw(char *path)
|
||||||
|
|
||||||
/* Calculate the number of cols available to print entry name */
|
/* Calculate the number of cols available to print entry name */
|
||||||
if (cfg.showdetail)
|
if (cfg.showdetail)
|
||||||
ncols -= 36;
|
ncols -= 35;
|
||||||
else
|
else
|
||||||
ncols -= 5;
|
ncols -= 5;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue