From 33e882e6f89097462d15d945a37e8a72ff69986a Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Tue, 29 Dec 2020 20:02:03 +0100 Subject: [PATCH] minibar: allow the number-of-lines to overrule location + character code When space is too tight to show all three elements, show the report on the number of lines in preference to the current location and character code. The latter two will be shown again upon the next keystroke, so there is little harm in hiding them for a moment. --- src/winio.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/winio.c b/src/winio.c index 87995892..e7a76266 100644 --- a/src/winio.c +++ b/src/winio.c @@ -2073,6 +2073,7 @@ void minibar(void) char *location = nmalloc(44); char *hexadecimal = nmalloc(9); size_t namewidth, placewidth; + size_t tallywidth = 0; size_t padding = 2; wchar_t widecode; @@ -2111,8 +2112,11 @@ void minibar(void) number_of_lines = nmalloc(44); sprintf(number_of_lines, P_(" (%zu line)", " (%zu lines)", count), count); - if (namewidth + placewidth + breadth(number_of_lines) < COLS - 32) + tallywidth = breadth(number_of_lines); + if (namewidth + tallywidth < COLS - 18) waddstr(bottomwin, number_of_lines); + else + tallywidth = 0; report_size = FALSE; } #ifdef ENABLE_MULTIBUFFER @@ -2125,11 +2129,11 @@ void minibar(void) #endif /* Display the line/column position of the cursor. */ - if (namewidth + placewidth < COLS - 32 && COLS > 35) + if (namewidth + tallywidth + placewidth < COLS - 32 && COLS > 35) mvwaddstr(bottomwin, 0, COLS - 27 - placewidth, location); /* Display the hexadecimal code of the character under the cursor. */ - if (namewidth < COLS - 27 && COLS > 29) { + if (namewidth + tallywidth < COLS - 27 && COLS > 29) { char *thisline = openfile->current->data; if (thisline[openfile->current_x] == '\0')