1. Avoid hang when encountering a duplicate in a completion list. Bug 1571112.
2. Duplicate some old entries from Python's NEWS to IDLE's NEWS.txt
M AutoCompleteWindow.py
M NEWS.txt
diff --git a/Lib/idlelib/AutoCompleteWindow.py b/Lib/idlelib/AutoCompleteWindow.py
index d8bbff4..d02a695 100644
--- a/Lib/idlelib/AutoCompleteWindow.py
+++ b/Lib/idlelib/AutoCompleteWindow.py
@@ -118,8 +118,11 @@
i = 0
while i < len(lts) and i < len(selstart) and lts[i] == selstart[i]:
i += 1
- while cursel > 0 and selstart[:i] <= self.completions[cursel-1]:
+ previous_completion = self.completions[cursel - 1]
+ while cursel > 0 and selstart[:i] <= previous_completion:
i += 1
+ if selstart == previous_completion:
+ break # maybe we have a duplicate?
newstart = selstart[:i]
self._change_start(newstart)