mirror of
https://github.com/python/cpython.git
synced 2025-07-24 19:54:21 +00:00
bpo-33974: Fix passing special characters to ttk widgets. (GH-7986)
Fix passing lists and tuples of strings containing special characters '"', '\\', '{', '}' and '\n' as options to tkinter.ttk widgets.
This commit is contained in:
parent
f874bd1f06
commit
5bb5bbfca8
3 changed files with 44 additions and 1 deletions
|
@ -61,7 +61,7 @@ def _stringify(value):
|
|||
if isinstance(value, (list, tuple)):
|
||||
if len(value) == 1:
|
||||
value = _stringify(value[0])
|
||||
if value[0] == '{':
|
||||
if _magic_re.search(value):
|
||||
value = '{%s}' % value
|
||||
else:
|
||||
value = '{%s}' % _join(value)
|
||||
|
@ -72,7 +72,10 @@ def _stringify(value):
|
|||
elif _magic_re.search(value):
|
||||
# add '\' before special characters and spaces
|
||||
value = _magic_re.sub(r'\\\1', value)
|
||||
value = value.replace('\n', r'\n')
|
||||
value = _space_re.sub(r'\\\1', value)
|
||||
if value[0] == '"':
|
||||
value = '\\' + value
|
||||
elif value[0] == '"' or _space_re.search(value):
|
||||
value = '{%s}' % value
|
||||
return value
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue