]> git.wh0rd.org Git - nano.git/commitdiff
in do_int_spell_fix(), display highlighted misspelled words using
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Wed, 15 Jun 2005 19:21:04 +0000 (19:21 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Wed, 15 Jun 2005 19:21:04 +0000 (19:21 +0000)
display_string(), as do_replace_loop() does

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2679 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/nano.c

index c67abf84940d7de2ee56fa85cc51c7008041eb40..c4412bc10cdbd3b6fd7df35c4f2358c5dc768399 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -171,6 +171,9 @@ CVS code -
          erroneously translated twice. (DLR)
   do_tab()
        - Remove unneeded variable kbinput. (DLR)
+  do_int_spell_fix()
+       - Display highlighted misspelled words using display_string(),
+         as do_replace_loop() does. (DLR)
   do_alt_speller()
        - Replace a set_modified() with SET(MODIFIED) to avoid an
          unnecessary update, and remove an unneeded clearok(FALSE).
index b0ca75a60c047582d04ab15e8caa340d6370dc7f..222ee8f1615dc99798e527aedc6dd15e7da10bc4 100644 (file)
@@ -1920,6 +1920,7 @@ bool do_wrap(filestruct *line)
 bool do_int_spell_fix(const char *word)
 {
     char *save_search, *save_replace;
+    size_t match_len;
     size_t current_x_save = current_x, pww_save = placewewant;
     filestruct *edittop_save = edittop, *current_save = current;
        /* Save where we are. */
@@ -1986,11 +1987,17 @@ bool do_int_spell_fix(const char *word)
 
     /* Find the first whole-word occurrence of word. */
     findnextstr_wrap_reset();
-    while (findnextstr(TRUE, TRUE, FALSE, fileage, 0, word, NULL)) {
+    while (findnextstr(TRUE, TRUE, FALSE, fileage, 0, word,
+       &match_len)) {
        if (is_whole_word(current_x, current->data, word)) {
+           size_t xpt = xplustabs();
+           char *exp_word = display_string(current->data, xpt,
+               strnlenpt(current->data, current_x + match_len) - xpt,
+               FALSE);
+
            edit_refresh();
 
-           do_replace_highlight(TRUE, word);
+           do_replace_highlight(TRUE, exp_word);
 
            /* Allow all instances of the word to be corrected. */
            canceled = (statusq(FALSE, spell_list, word,
@@ -1999,7 +2006,9 @@ bool do_int_spell_fix(const char *word)
 #endif
                         _("Edit a replacement")) == -1);
 
-           do_replace_highlight(FALSE, word);
+           do_replace_highlight(FALSE, exp_word);
+
+           free(exp_word);
 
            if (!canceled && strcmp(word, answer) != 0) {
                current_x--;