changeset 72924:d50645027830

* textmodes/flyspell.el (flyspell-check-region-doublons): New function to detect duplicated words. (flyspell-large-region): Use it.
author Chong Yidong <cyd@stupidchicken.com>
date Sat, 16 Sep 2006 15:05:47 +0000
parents 32eea9088623
children e47e040fc9da
files lisp/ChangeLog lisp/textmodes/flyspell.el
diffstat 2 files changed, 24 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sat Sep 16 14:19:31 2006 +0000
+++ b/lisp/ChangeLog	Sat Sep 16 15:05:47 2006 +0000
@@ -1,3 +1,9 @@
+2006-09-16  Agustin Martin <agustin.martin@hispalinux.es>
+
+	* textmodes/flyspell.el (flyspell-check-region-doublons): New
+	function to detect duplicated words.
+	(flyspell-large-region): Use it.
+
 2006-09-16  Chong Yidong  <cyd@stupidchicken.com>
 
 	* simple.el (line-move-to-column): Revert 2006-08-03 change.
--- a/lisp/textmodes/flyspell.el	Sat Sep 16 14:19:31 2006 +0000
+++ b/lisp/textmodes/flyspell.el	Sat Sep 16 15:05:47 2006 +0000
@@ -1460,6 +1460,22 @@
 	    (while (re-search-forward regexp nil t)
 	      (delete-region (match-beginning 0) (match-end 0)))))))))
 
+;;* ---------------------------------------------------------------
+;;*     flyspell-check-region-doublons
+;;* ---------------------------------------------------------------
+(defun flyspell-check-region-doublons (beg end)
+  "Check for adjacent duplicated words (doublons) in the given region."
+  (save-excursion
+    (goto-char beg)
+    (flyspell-word)     ; Make sure current word is checked
+    (backward-word 1)
+    (while (and (< (point) end)
+		(re-search-forward "\\b\\([^ \n\t]+\\)[ \n\t]+\\1\\b"
+				   end 'move))
+      (flyspell-word)
+      (backward-word 1))
+    (flyspell-word)))
+
 ;;*---------------------------------------------------------------------*/
 ;;*    flyspell-large-region ...                                        */
 ;;*---------------------------------------------------------------------*/
@@ -1504,7 +1520,8 @@
 	  (progn
 	    (flyspell-process-localwords buffer)
 	    (with-current-buffer curbuf
-	      (flyspell-delete-region-overlays beg end))
+	      (flyspell-delete-region-overlays beg end)
+	      (flyspell-check-region-doublons beg end))
 	    (flyspell-external-point-words))
 	(error "Can't check region...")))))