1
1

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
Этот коммит содержится в:
David Lawrence Ramsey 2005-01-05 05:08:14 +00:00
родитель b6fbdd00cf
Коммит 913db834d2
2 изменённых файлов: 10 добавлений и 6 удалений

Просмотреть файл

@ -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

Просмотреть файл

@ -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);