Mercurial > emacs
changeset 37006:2fa95954d8de
Backed out changes made by John Wiegley 2000-10-28.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Mon, 26 Mar 2001 13:59:00 +0000 |
parents | 0dbe9e01a45d |
children | 4caced3e865e |
files | lisp/textmodes/flyspell.el |
diffstat | 1 files changed, 26 insertions(+), 30 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/textmodes/flyspell.el Mon Mar 26 13:36:27 2001 +0000 +++ b/lisp/textmodes/flyspell.el Mon Mar 26 13:59:00 2001 +0000 @@ -2018,7 +2018,7 @@ menu)))) ;*---------------------------------------------------------------------*/ -;* Some example functions for real autocrrecting xb */ +;* Some example functions for real autocrrecting */ ;*---------------------------------------------------------------------*/ (defun flyspell-maybe-correct-transposition (beg end poss) "Apply 'transpose-chars' to all points in the region BEG to END. @@ -2026,24 +2026,17 @@ in POSS. Otherwise the change is undone. This function is meant to be added to 'flyspell-incorrect-hook'." - (when (consp poss) + (when (consp poss) (catch 'done - (let ((str (buffer-substring beg end)) - (i 0) (len (- end beg)) tmp) - (while (< (1+ i) len) - (setq tmp (aref str i)) - (aset str i (aref str (1+ i))) - (aset str (1+ i) tmp) - (when (member str (nth 2 poss)) - (save-excursion - (goto-char (+ beg i 1)) - (transpose-chars 1)) - (throw 'done t)) - (setq tmp (aref str i)) - (aset str i (aref str (1+ i))) - (aset str (1+ i) tmp) - (setq i (1+ i)))) - nil))) + (save-excursion + (goto-char (1+ beg)) + (while (< (point) end) + (transpose-chars 1) + (when (member (buffer-substring beg end) (nth 2 poss)) + (throw 'done t)) + (transpose-chars -1) + (forward-char)) + nil)))) (defun flyspell-maybe-correct-doubling (beg end poss) "For each doubled charachter in the region BEG to END, remove one. @@ -2053,18 +2046,21 @@ This function is meant to be added to 'flyspell-incorrect-hook'." (when (consp poss) (catch 'done - (let ((str (buffer-substring beg end)) - (i 0) (len (- end beg))) - (while (< (1+ i) len) - (when (and (= (aref str i) (aref str (1+ i))) - (member (concat (substring str 0 (1+ i)) - (substring str (+ i 2))) - (nth 2 poss))) - (goto-char (+ beg i)) - (delete-char 1) - (throw 'done t)) - (setq i (1+ i)))) - nil))) + (save-excursion + (let ((last (char-after beg)) + this) + (goto-char (1+ beg)) + (while (< (point) end) + (setq this (char-after)) + (if (not (char-equal this last)) + (forward-char) + (delete-char 1) + (when (member (buffer-substring beg (1- end)) (nth 2 poss)) + (throw 'done t)) + ;; undo + (insert-char this 1)) + (setq last this)) + nil))))) ;*---------------------------------------------------------------------*/ ;* flyspell-already-abbrevp ... */