display: ensure that spotlighted text is not treated as a prompt answer

When doing replacements or fixing misspelled words, and edit_refresh()
is called to highlight the relevant word, then the current menu can be
anything from MREPLACEWITH, MYESNO, MSPELL, or MMAIN.  Make sure it is
always set to the latter just before calling edit_refresh(), so that
display_string() will use the full length and the word gets properly
highlighted.

This fixes https://savannah.gnu.org/bugs/?55680.
Reported-by: David Lawrence Ramsey <pooka109@gmail.com>

Bug was introduced by the previous commit, 56181896.
master
Benno Schulenberg 2019-02-09 10:45:50 +01:00
parent 5618189643
commit 14f32577ee
2 changed files with 2 additions and 0 deletions

View File

@ -579,6 +579,7 @@ ssize_t do_replace_loop(const char *needle, bool whole_word_only,
light_from_col = xplustabs();
light_to_col = strnlenpt(openfile->current->data,
openfile->current_x + match_len);
currmenu = MMAIN;
/* Refresh the edit window, scrolling it if necessary. */
edit_refresh();

View File

@ -2202,6 +2202,7 @@ bool fix_spello(const char *word)
filestruct *saved_mark = openfile->mark;
openfile->mark = NULL;
#endif
currmenu = MMAIN;
edit_refresh();
/* Let the user supply a correctly spelled alternative. */