]> git.eshelyaron.com Git - emacs.git/commitdiff
Continue checking the same line when hitting SPC in ispell
authorLars Ingebrigtsen <larsi@gnus.org>
Fri, 28 May 2021 00:09:10 +0000 (02:09 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Fri, 28 May 2021 00:09:10 +0000 (02:09 +0200)
* lisp/textmodes/ispell.el (ispell-process-line): Continue
checking the same line when hitting SPC (bug#20543).

lisp/textmodes/ispell.el

index 4dbc7640bcf6641b5275ef3848908702c8dbe672..574cf38e56afdd473ebb5942b6fdb7c4baff3022 100644 (file)
@@ -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.