Skip to content

Commit b632cee

Browse files
authored
Merge branch 'python:main' into main
2 parents 36f5878 + 3428762 commit b632cee

3 files changed

Lines changed: 19 additions & 1 deletion

File tree

Lib/idlelib/configdialog.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2265,7 +2265,11 @@ def make_callback(var, config):
22652265
"Return default callback function to add values to changes instance."
22662266
def default_callback(*params):
22672267
"Add config values to changes instance."
2268-
changes.add_option(*config, var.get())
2268+
value = var.get()
2269+
# A blanked int entry is an empty string; do not save it as an
2270+
# invalid config value (gh-83653).
2271+
if value != '':
2272+
changes.add_option(*config, value)
22692273
return default_callback
22702274

22712275
def attach(self):

Lib/idlelib/idle_test/test_configdialog.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1544,6 +1544,17 @@ def test_make_callback(self):
15441544
self.assertEqual(changes['main']['section']['option'], '42')
15451545
changes.clear()
15461546

1547+
# gh-83653: a blank int entry is not saved as bad config data.
1548+
sv = StringVar(root)
1549+
cb = self.tracers.make_callback(sv, ('main', 'section', 'option'))
1550+
sv.set('')
1551+
cb()
1552+
self.assertNotIn('section', changes['main'])
1553+
sv.set('5')
1554+
cb()
1555+
self.assertEqual(changes['main']['section']['option'], '5')
1556+
changes.clear()
1557+
15471558
def test_attach_detach(self):
15481559
tr = self.tracers
15491560
iv = tr.add(self.iv, self.var_changed_increment)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Blanking an integer entry in IDLE's Settings dialog, such as "Auto squeeze
2+
min lines", no longer saves an empty string as an invalid configuration
3+
value.

0 commit comments

Comments
 (0)