in browser_refresh() and titlebar(), don't display overly long filenames

with ellipses if the number of columns is extremely small; also, in
certain places, call wnoutrefresh(bottomwin) after calling
blank_statusbar(), in order to ensure that the statusbar is actually
blanked


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3751 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
master
David Lawrence Ramsey 2006-07-05 06:38:47 +00:00
parent 0cae087784
commit 51b7b0e7d8
6 changed files with 22 additions and 3 deletions

View File

@ -9,6 +9,11 @@ CVS code -
- Fix mouse support so that it truly ignores everything except - Fix mouse support so that it truly ignores everything except
releases and clicks of button 1. Changes to releases and clicks of button 1. Changes to
enable_mouse_support() and get_mouseinput(). (DLR) enable_mouse_support() and get_mouseinput(). (DLR)
- In certain places, call wnoutrefresh(bottomwin) after calling
blank_statusbar(), in order to ensure that the statusbar is
actually blanked. Changes to do_help(), do_continue(),
handle_sigwinch(), and update_statusbar_line(). (DLR)
(DLR)
- browser.c: - browser.c:
do_browser() do_browser()
- Refactor the mouse support, modeling it after do_mouse() for - Refactor the mouse support, modeling it after do_mouse() for
@ -38,6 +43,8 @@ CVS code -
lengths of "(dir)" and "(parent dir)". (DLR) lengths of "(dir)" and "(parent dir)". (DLR)
- Fix problem where width wouldn't be properly initialized if - Fix problem where width wouldn't be properly initialized if
the file list took up one line or less. (DLR) the file list took up one line or less. (DLR)
- Don't display overly long filenames with ellipses if the
number of columns is extremely small. (DLR)
browser_select_filename() browser_select_filename()
- New function, used to select a specific filename in the list. - New function, used to select a specific filename in the list.
(DLR) (DLR)
@ -55,6 +62,9 @@ CVS code -
display_string() display_string()
- Properly handle buf[start_index]'s being a null terminator. - Properly handle buf[start_index]'s being a null terminator.
(DLR) (DLR)
titlebar()
- Don't display overly long filenames with ellipses if the
number of columns is extremely small. (DLR)
- doc/syntax/c.nanorc: - doc/syntax/c.nanorc:
- Since .i and .ii are preprocessed C and C++ output, colorize - Since .i and .ii are preprocessed C and C++ output, colorize
them here. (Mike Frysinger) them here. (Mike Frysinger)

View File

@ -616,9 +616,10 @@ void browser_refresh(void)
/* The maximum length of the file information in /* The maximum length of the file information in
* columns: 7 for "--", "(dir)", or the file size, and * columns: 7 for "--", "(dir)", or the file size, and
* 12 for "(parent dir)". */ * 12 for "(parent dir)". */
bool dots = (COLS < 15 ? FALSE : filetaillen > longest - bool dots = (COLS >= 15 && filetaillen > longest -
foomaxlen - 1); foomaxlen - 1);
/* Do we put an ellipsis before the filename? */ /* Do we put an ellipsis before the filename? Don't set
* this to TRUE if we have fewer than 15 columns. */
char *disp = display_string(filetail, dots ? filetaillen - char *disp = display_string(filetail, dots ? filetaillen -
longest + foomaxlen + 4 : 0, longest, FALSE); longest + foomaxlen + 4 : 0, longest, FALSE);
/* If we put an ellipsis before the filename, reserve 1 /* If we put an ellipsis before the filename, reserve 1

View File

@ -79,6 +79,7 @@ void do_help(void (*refresh_func)(void))
} }
bottombars(help_list); bottombars(help_list);
wnoutrefresh(bottomwin);
/* Get the last line of the help text. */ /* Get the last line of the help text. */
ptr = help_text; ptr = help_text;

View File

@ -1056,6 +1056,7 @@ RETSIGTYPE do_continue(int signal)
/* Redraw the contents of the windows that need it. */ /* Redraw the contents of the windows that need it. */
blank_statusbar(); blank_statusbar();
wnoutrefresh(bottomwin);
total_refresh(); total_refresh();
#endif #endif
} }
@ -1116,6 +1117,7 @@ RETSIGTYPE handle_sigwinch(int signal)
/* Redraw the contents of the windows that need it. */ /* Redraw the contents of the windows that need it. */
blank_statusbar(); blank_statusbar();
wnoutrefresh(bottomwin);
currshortcut = main_list; currshortcut = main_list;
total_refresh(); total_refresh();

View File

@ -902,6 +902,8 @@ void update_statusbar_line(const char *curranswer, size_t index)
reset_statusbar_cursor(); reset_statusbar_cursor();
wattroff(bottomwin, reverse_attr); wattroff(bottomwin, reverse_attr);
wnoutrefresh(bottomwin);
} }
/* Return TRUE if we need an update after moving horizontally, and FALSE /* Return TRUE if we need an update after moving horizontally, and FALSE

View File

@ -2051,7 +2051,9 @@ void titlebar(const char *path)
if (!newfie) { if (!newfie) {
size_t lenpt = strlenpt(path), start_col; size_t lenpt = strlenpt(path), start_col;
dots = (lenpt >= space); /* Don't set dots to TRUE if we have at least 1/3 the length of
* the screen in columns, minus two columns for spaces. */
dots = (space >= (COLS / 3) - 2 && lenpt >= space);
if (dots) { if (dots) {
start_col = lenpt - space + 3; start_col = lenpt - space + 3;
@ -2941,6 +2943,7 @@ void edit_refresh(void)
blank_line(edit, nlines, 0, COLS); blank_line(edit, nlines, 0, COLS);
reset_cursor(); reset_cursor();
wnoutrefresh(edit); wnoutrefresh(edit);
} }