Introduction
Introduction Statistics Contact Development Disclaimer Help
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);
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.