Avoid buffer copy

This commit is contained in:
Arun Prakash Jana 2019-03-08 02:48:20 +05:30
parent 2d72465e7b
commit 4885b5fc2f
No known key found for this signature in database
GPG key ID: A75979F35C080412

View file

@ -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;