]> git.eshelyaron.com Git - emacs.git/commitdiff
* textmodes/flyspell.el (flyspell-check-region-doublons): New
authorChong Yidong <cyd@stupidchicken.com>
Sat, 16 Sep 2006 15:05:47 +0000 (15:05 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Sat, 16 Sep 2006 15:05:47 +0000 (15:05 +0000)
function to detect duplicated words.
(flyspell-large-region): Use it.

lisp/ChangeLog
lisp/textmodes/flyspell.el

index 2aeb97e79ff5dbefad41ca38696e7d8533df3038..e349a82bab39a31ba45cc529ee3e5bd0f204fa64 100644 (file)
@@ -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.
index 34b6297a800908afe372875cf4e56c30209a9920..ebee4691e8c7921ad6dff1a5a9da4e9fc83679cf 100644 (file)
@@ -1460,6 +1460,22 @@ The buffer to mark them in is `flyspell-large-region-buffer'."
            (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 @@ The buffer to mark them in is `flyspell-large-region-buffer'."
          (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...")))))