# HG changeset patch # User Gerd Moellmann # Date 985615140 0 # Node ID 2fa95954d8debf1d052d8e1269937557db03d200 # Parent 0dbe9e01a45d8a20e87a3e802e025cce84c4e997 Backed out changes made by John Wiegley 2000-10-28. diff -r 0dbe9e01a45d -r 2fa95954d8de lisp/textmodes/flyspell.el --- 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 ... */