When find_again() finds exactly the current selection, it's a failure.
diff --git a/Tools/idle/SearchDialog.py b/Tools/idle/SearchDialog.py
index 501b6d0..0f0cb18 100644
--- a/Tools/idle/SearchDialog.py
+++ b/Tools/idle/SearchDialog.py
@@ -43,6 +43,14 @@
i, j = m.span()
first = "%d.%d" % (line, i)
last = "%d.%d" % (line, j)
+ try:
+ selfirst = text.index("sel.first")
+ sellast = text.index("sel.last")
+ if selfirst == first and sellast == last:
+ text.bell()
+ return 0
+ except TclError:
+ pass
text.tag_remove("sel", "1.0", "end")
text.tag_add("sel", first, last)
text.mark_set("insert", self.engine.isback() and first or last)