Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
ee0d9099
Commit
ee0d9099
authored
Apr 02, 2015
by
Serhiy Storchaka
Browse files
Options
Browse Files
Download
Plain Diff
Issue #21526: Fixed support of new boolean type in Tcl 8.5.
parents
78188a78
831d2a80
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
36 additions
and
6 deletions
+36
-6
Lib/test/test_tcl.py
Lib/test/test_tcl.py
+15
-0
Misc/NEWS
Misc/NEWS
+2
-2
Modules/_tkinter.c
Modules/_tkinter.c
+19
-4
No files found.
Lib/test/test_tcl.py
View file @
ee0d9099
...
...
@@ -378,6 +378,21 @@ class TclTest(unittest.TestCase):
if
tcl_version
>=
(
8
,
5
):
check
(
'2**64'
,
True
)
def
test_booleans
(
self
):
tcl
=
self
.
interp
def
check
(
expr
,
expected
):
result
=
tcl
.
call
(
'expr'
,
expr
)
self
.
assertEqual
(
result
,
expected
)
self
.
assertIsInstance
(
result
,
int
)
check
(
'true'
,
True
)
check
(
'yes'
,
True
)
check
(
'on'
,
True
)
check
(
'false'
,
False
)
check
(
'no'
,
False
)
check
(
'off'
,
False
)
check
(
'1 < 2'
,
True
)
check
(
'1 > 2'
,
False
)
def
test_passing_values
(
self
):
def
passValue
(
value
):
return
self
.
interp
.
call
(
'set'
,
'_'
,
value
)
...
...
Misc/NEWS
View file @
ee0d9099
...
...
@@ -16,6 +16,8 @@ Core and Builtins
Library
-------
- Issue #21526: Tkinter now supports new boolean type in Tcl 8.5.
- Issue #23836: Fix the faulthandler module to handle reentrant calls to
its signal handlers.
...
...
@@ -146,8 +148,6 @@ Library
- Issue #23252: Added support for writing ZIP files to unseekable streams.
- Issue #21526: Tkinter now supports new boolean type in Tcl 8.5.
- Issue #23647: Increase impalib'
s
MAXLINE
to
accommodate
modern
mailbox
sizes
.
-
Issue
#
23539
:
If
body
is
None
,
http
.
client
.
HTTPConnection
.
request
now
sets
...
...
Modules/_tkinter.c
View file @
ee0d9099
...
...
@@ -998,6 +998,15 @@ AsObj(PyObject *value)
}
}
static
PyObject
*
fromBoolean
(
PyObject
*
tkapp
,
Tcl_Obj
*
value
)
{
int
boolValue
;
if
(
Tcl_GetBooleanFromObj
(
Tkapp_Interp
(
tkapp
),
value
,
&
boolValue
)
==
TCL_ERROR
)
return
Tkinter_Error
(
tkapp
);
return
PyBool_FromLong
(
boolValue
);
}
static
PyObject
*
FromObj
(
PyObject
*
tkapp
,
Tcl_Obj
*
value
)
{
...
...
@@ -1011,10 +1020,7 @@ FromObj(PyObject* tkapp, Tcl_Obj *value)
if
(
value
->
typePtr
==
app
->
BooleanType
||
value
->
typePtr
==
app
->
OldBooleanType
)
{
int
boolValue
;
if
(
Tcl_GetBooleanFromObj
(
interp
,
value
,
&
boolValue
)
==
TCL_ERROR
)
return
Tkinter_Error
(
tkapp
);
return
PyBool_FromLong
(
boolValue
);
return
fromBoolean
(
tkapp
,
value
);
}
if
(
value
->
typePtr
==
app
->
ByteArrayType
)
{
...
...
@@ -1069,6 +1075,15 @@ FromObj(PyObject* tkapp, Tcl_Obj *value)
Tcl_GetCharLength
(
value
));
}
#if TK_VERSION_HEX >= 0x08050000
if
(
app
->
BooleanType
==
NULL
&&
strcmp
(
value
->
typePtr
->
name
,
"booleanString"
)
==
0
)
{
/* booleanString type is not registered in Tcl */
app
->
BooleanType
=
value
->
typePtr
;
return
fromBoolean
(
tkapp
,
value
);
}
#endif
return
newPyTclObject
(
value
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment