[Python-checkins] gh-97928: Fix handling options starting with "-" in tkinter.Text.count() (GH-98436)

miss-islington webhook-mailer at python.org
Wed Oct 19 05:57:51 EDT 2022


https://github.com/python/cpython/commit/eee8b99dc3e461e6a0664c8bf449887eb7a1d4c3
commit: eee8b99dc3e461e6a0664c8bf449887eb7a1d4c3
branch: 3.10
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: miss-islington <31488909+miss-islington at users.noreply.github.com>
date: 2022-10-19T02:57:18-07:00
summary:

gh-97928: Fix handling options starting with "-" in tkinter.Text.count() (GH-98436)


Previously they were silently ignored. Now they are errors.
(cherry picked from commit e4ec8de6fa6f0a07e64f6a3e3f894926b4b0652d)

Co-authored-by: Serhiy Storchaka <storchaka at gmail.com>

files:
A Misc/NEWS.d/next/Library/2022-10-19-09-29-12.gh-issue-97928.xj3im7.rst
M Lib/tkinter/__init__.py
M Lib/tkinter/test/test_tkinter/test_text.py

diff --git a/Lib/tkinter/__init__.py b/Lib/tkinter/__init__.py
index c7176e69e529..d42d9a013dd6 100644
--- a/Lib/tkinter/__init__.py
+++ b/Lib/tkinter/__init__.py
@@ -3621,7 +3621,7 @@ def count(self, index1, index2, *args): # new in Tk 8.5
         "lines", "xpixels" and "ypixels". There is an additional possible
         option "update", which if given then all subsequent options ensure
         that any possible out of date information is recalculated."""
-        args = ['-%s' % arg for arg in args if not arg.startswith('-')]
+        args = ['-%s' % arg for arg in args]
         args += [index1, index2]
         res = self.tk.call(self._w, 'count', *args) or None
         if res is not None and len(args) <= 3:
diff --git a/Lib/tkinter/test/test_tkinter/test_text.py b/Lib/tkinter/test/test_tkinter/test_text.py
index f0b101b5803b..ea557586c770 100644
--- a/Lib/tkinter/test/test_tkinter/test_text.py
+++ b/Lib/tkinter/test/test_tkinter/test_text.py
@@ -76,9 +76,7 @@ def test_count(self):
         self.assertEqual(text.count('1.0', 'end'), (124,)  # 'indices' by default
                          if self.wantobjects else ('124',))
         self.assertRaises(tkinter.TclError, text.count, '1.0', 'end', 'spam')
-        # '-lines' is ignored, 'indices' is used by default
-        self.assertEqual(text.count('1.0', 'end', '-lines'), (124,)
-                         if self.wantobjects else ('124',))
+        self.assertRaises(tkinter.TclError, text.count, '1.0', 'end', '-lines')
 
         self.assertIsInstance(text.count('1.3', '1.5', 'ypixels'), tuple)
         self.assertIsInstance(text.count('1.3', '1.5', 'update', 'ypixels'), int
diff --git a/Misc/NEWS.d/next/Library/2022-10-19-09-29-12.gh-issue-97928.xj3im7.rst b/Misc/NEWS.d/next/Library/2022-10-19-09-29-12.gh-issue-97928.xj3im7.rst
new file mode 100644
index 000000000000..cf33db7548f6
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2022-10-19-09-29-12.gh-issue-97928.xj3im7.rst
@@ -0,0 +1,2 @@
+:meth:`tkinter.Text.count` raises now an exception for options starting with
+"-" instead of silently ignoring them.



More information about the Python-checkins mailing list