From ffa9f8803ef2e0e9ffbfa8169dc6d7d338b14116 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Wed, 4 Nov 2020 15:33:26 -0500 Subject: eval: Fix the status bar to only print the parent again --- eval.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index e0298af..6837e44 100644 --- a/eval.c +++ b/eval.c @@ -1070,16 +1070,18 @@ static void eval_status(struct eval_state *state, struct bfs_bar *bar, struct ti goto out_rhs; } + const char *path = ftwbuf->path; + size_t pathlen = ftwbuf->nameoff; + if (ftwbuf->depth == 0) { + pathlen = strlen(path); + } + // Try to make sure even wide characters fit in the status bar size_t pathmax = width - rhslen - 3; size_t pathwidth = 0; - - const char *path = ftwbuf->path; - size_t pathlen = strlen(path); - mbstate_t mb; memset(&mb, 0, sizeof(mb)); - while (*path) { + while (pathlen > 0) { wchar_t wc; size_t len = mbrtowc(&wc, path, pathlen, &mb); int width; -- cgit v1.2.3