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