[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.