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 e4ec8de6fa)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This commit is contained in:
Miss Islington (bot) 2022-10-19 02:57:27 -07:00 committed by GitHub
parent a847255cbb
commit 30b9c4d784
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 4 additions and 4 deletions

View file

@ -3648,7 +3648,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:

View file

@ -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

View file

@ -0,0 +1,2 @@
:meth:`tkinter.Text.count` raises now an exception for options starting with
"-" instead of silently ignoring them.