add DB's (modified) UTF-8 support tweaks to do_replace_highlight()

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2230 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
master
David Lawrence Ramsey 2005-01-05 05:08:14 +00:00
parent b6fbdd00cf
commit 913db834d2
2 changed files with 10 additions and 6 deletions

View File

@ -58,7 +58,8 @@ CVS code -
do_delete(), breakable(), break_line(), do_output(), do_delete(), breakable(), break_line(), do_output(),
get_buffer(), unget_input(), actual_x(), strnlenpt(), get_buffer(), unget_input(), actual_x(), strnlenpt(),
display_string(), titlebar(), statusbar(), onekey(), display_string(), titlebar(), statusbar(), onekey(),
edit_add(), and do_credits(). (David Benbennick and DLR) edit_add(), do_replace_highlight(), and do_credits(). (David
Benbennick and DLR)
- Overhaul the high-level input routines for the statusbar to - Overhaul the high-level input routines for the statusbar to
make them read the shortcut lists for functions instead of make them read the shortcut lists for functions instead of
manually running them, to make nanogetstr() less complex, and manually running them, to make nanogetstr() less complex, and

View File

@ -4063,12 +4063,17 @@ void do_help(void)
void do_replace_highlight(bool highlight_flag, const char *word) void do_replace_highlight(bool highlight_flag, const char *word)
{ {
size_t y = xplustabs(); size_t y = xplustabs();
size_t word_len = strlen(word); size_t word_len = strlenpt(word);
y = get_page_start(y) + COLS - y; y = get_page_start(y) + COLS - y;
/* Now y is the number of characters we can display on this /* Now y is the number of columns that we can display on this
* line. */ * line. */
assert(y > 0);
if (word_len > y)
y--;
reset_cursor(); reset_cursor();
if (highlight_flag) if (highlight_flag)
@ -4080,12 +4085,10 @@ void do_replace_highlight(bool highlight_flag, const char *word)
waddstr(edit, " "); waddstr(edit, " ");
else else
#endif #endif
waddnstr(edit, word, y - 1); waddnstr(edit, word, actual_x(word, y));
if (word_len > y) if (word_len > y)
waddch(edit, '$'); waddch(edit, '$');
else if (word_len == y)
waddch(edit, word[word_len - 1]);
if (highlight_flag) if (highlight_flag)
wattroff(edit, A_REVERSE); wattroff(edit, A_REVERSE);