emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 390044f 1/2: Continue checking the same line when hitting SPC in


From: Lars Ingebrigtsen
Subject: master 390044f 1/2: Continue checking the same line when hitting SPC in ispell
Date: Thu, 27 May 2021 21:04:33 -0400 (EDT)

branch: master
commit 390044f854fa103020ffca00eb1fe0e16805ad72
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Continue checking the same line when hitting SPC in ispell
    
    * lisp/textmodes/ispell.el (ispell-process-line): Continue
    checking the same line when hitting SPC (bug#20543).
---
 lisp/textmodes/ispell.el | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 4dbc764..574cf38 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -3431,7 +3431,7 @@ Returns the sum SHIFT due to changes in word 
replacements."
                (word-len (length (car poss)))
                (line-end (copy-marker ispell-end))
                (line-start (copy-marker ispell-start))
-               recheck-region replace)
+                accepted recheck-region replace)
            (goto-char word-start)
            ;; Adjust the horizontal scroll & point
            (ispell-horiz-scroll)
@@ -3486,13 +3486,18 @@ Returns the sum SHIFT due to changes in word 
replacements."
 
             ;; Insert correction if needed.
             (cond
-             ((or (null replace)
-                  (equal 0 replace))   ; ACCEPT/INSERT
+             ((equal 0 replace)         ; INSERT
               (if (equal 0 replace)     ; BUFFER-LOCAL DICT ADD
                   (ispell-add-per-file-word-list (car poss)))
               ;; Do not recheck accepted word on this line.
               (setq accept-list (cons (car poss) accept-list)))
-             (t                                ; Replacement word selected or 
entered.
+             (t
+              ;; The user hit SPC, so accept this word, but keep
+              ;; checking the rest of the line.
+              (unless replace
+                (setq accepted t)
+                (setq replace (list (buffer-substring-no-properties
+                                     (point) (+ word-len (point))))))
               (delete-region (point) (+ word-len (point)))
               (if (not (listp replace))
                   (progn
@@ -3511,9 +3516,9 @@ Returns the sum SHIFT due to changes in word 
replacements."
                         (query-replace (car poss) (car replace) t)))
                   (goto-char word-start)
                   ;; Do not recheck if already accepted.
-                  (if (member replace-word accept-list)
-                      (setq accept-list (cons replace-word accept-list)
-                            replace replace-word)
+                  (if (or accepted
+                          (member replace-word accept-list))
+                      (setq replace replace-word)
                     (let ((region-end (copy-marker ispell-region-end)))
                       (setq recheck-region ispell-filter
                             ispell-filter nil ; Save filter.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]