Print the resolved path for cwd - noice - small file browser (mirror / fork fro… | |
git clone git://git.codemadness.org/noice | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit a7152012558006b0f0ffca633c8c90ff4ce9726d | |
parent 2d87145fa23f582baf9d057a295a007e5c0a873b | |
Author: sin <[email protected]> | |
Date: Wed, 6 Jan 2016 15:21:41 +0000 | |
Print the resolved path for cwd | |
Avoids weird things like /etc/.. when displaying cwd. | |
Also no need for cwd to be on the heap. | |
Diffstat: | |
M noice.c | 16 ++++++++++------ | |
1 file changed, 10 insertions(+), 6 deletions(-) | |
--- | |
diff --git a/noice.c b/noice.c | |
@@ -595,8 +595,9 @@ populate(void) | |
void | |
redraw(void) | |
{ | |
+ char cwd[PATH_MAX], cwdresolved[PATH_MAX]; | |
+ size_t ncols; | |
int nlines, odd; | |
- char *cwd; | |
int i; | |
nlines = MIN(LINES - 4, n); | |
@@ -615,11 +616,14 @@ redraw(void) | |
DPRINTF_S(path); | |
/* No text wrapping in cwd line */ | |
- cwd = xmalloc(COLS * sizeof(char)); | |
- strlcpy(cwd, path, COLS * sizeof(char)); | |
- cwd[COLS - strlen(CWD) - 1] = '\0'; | |
- | |
- printw(CWD "%s\n\n", cwd); | |
+ ncols = COLS; | |
+ if (ncols > PATH_MAX) | |
+ ncols = PATH_MAX; | |
+ strlcpy(cwd, path, ncols); | |
+ cwd[ncols - strlen(CWD) - 1] = '\0'; | |
+ realpath(cwd, cwdresolved); | |
+ | |
+ printw(CWD "%s\n\n", cwdresolved); | |
/* Print listing */ | |
odd = ISODD(nlines); |