commit 913db834d284c32a1b843e01a11ed06b780d347e
parent b6fbdd00cfddf10f2cd6f4422dbd2111d3decd9d
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date: Wed, 5 Jan 2005 05:08:14 +0000
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
Diffstat:
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -58,7 +58,8 @@ CVS code -
do_delete(), breakable(), break_line(), do_output(),
get_buffer(), unget_input(), actual_x(), strnlenpt(),
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
make them read the shortcut lists for functions instead of
manually running them, to make nanogetstr() less complex, and
diff --git a/src/winio.c b/src/winio.c
@@ -4063,12 +4063,17 @@ void do_help(void)
void do_replace_highlight(bool highlight_flag, const char *word)
{
size_t y = xplustabs();
- size_t word_len = strlen(word);
+ size_t word_len = strlenpt(word);
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. */
+ assert(y > 0);
+
+ if (word_len > y)
+ y--;
+
reset_cursor();
if (highlight_flag)
@@ -4080,12 +4085,10 @@ void do_replace_highlight(bool highlight_flag, const char *word)
waddstr(edit, " ");
else
#endif
- waddnstr(edit, word, y - 1);
+ waddnstr(edit, word, actual_x(word, y));
if (word_len > y)
waddch(edit, '$');
- else if (word_len == y)
- waddch(edit, word[word_len - 1]);
if (highlight_flag)
wattroff(edit, A_REVERSE);