Index: Lib/idlelib/CallTipWindow.py
===================================================================
--- Lib/idlelib/CallTipWindow.py (revision 59479)
+++ Lib/idlelib/CallTipWindow.py (working copy)
@@ -60,7 +60,7 @@
self.widget.mark_set(MARK_RIGHT, parenright)
self.parenline, self.parencol = map(
- int, self.widget.index(parenleft).split("."))
+ int, str(self.widget.index(parenleft)).split("."))
self.tipwindow = tw = Toplevel(self.widget)
self.position_window()
Index: Lib/idlelib/EditorWindow.py
===================================================================
--- Lib/idlelib/EditorWindow.py (revision 59479)
+++ Lib/idlelib/EditorWindow.py (working copy)
@@ -301,7 +301,7 @@
self.text.after_idle(self.set_line_and_column)
def set_line_and_column(self, event=None):
- line, column = self.text.index(INSERT).split('.')
+ line, column = str(self.text.index(INSERT)).split('.')
self.status_bar.set_label('column', 'Col: %s' % column)
self.status_bar.set_label('line', 'Ln: %s' % line)
Index: Modules/_tkinter.c
===================================================================
--- Modules/_tkinter.c (revision 59479)
+++ Modules/_tkinter.c (working copy)
@@ -807,7 +807,62 @@
return PyUnicode_FromString(obj->value->typePtr->name);
}
+static PyObject *
+PyTclObject_float(PyObject *self)
+{
+ PyObject *str, *result;
+
+ str = PyTclObject_str((PyTclObject*)self, NULL);
+ if (str == NULL) {
+ return NULL;
+ }
+ result = PyFloat_FromString(str);
+ Py_DECREF(str);
+ return result;
+}
+static PyObject *
+PyTclObject_add(PyObject *a, PyObject *b)
+{
+ PyObject *str, *result;
+
+ if (!PyTclObject_Check(a) || !PyUnicode_Check(b)) {
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+ }
+ str = PyObject_Str(a);
+ if (str == NULL) {
+ return NULL;
+ }
+ result = PyNumber_Add(str, b);
+ Py_DECREF(str);
+ return result;
+}
+
+static PyNumberMethods PyTclObject_as_number = {
+ (binaryfunc)PyTclObject_add, /*nb_add*/
+ 0, /*nb_subtract*/
+ 0, /*nb_multiply*/
+ 0, /*nb_remainder*/
+ 0, /*nb_divmod*/
+ 0, /*nb_power*/
+ 0, /*nb_negative*/
+ 0, /*tp_positive*/
+ 0, /*tp_absolute*/
+ 0, /*tp_bool*/
+ 0, /*nb_invert*/
+ 0, /*nb_lshift*/
+ 0, /*nb_rshift*/
+ 0, /*nb_and*/
+ 0, /*nb_xor*/
+ 0, /*nb_or*/
+ 0, /*nb_reserved*/
+ 0, /*nb_int*/
+ 0, /*nb_long*/
+ PyTclObject_float, /*nb_float*/
+ 0,
+};
+
static PyGetSetDef PyTclObject_getsetlist[] = {
{"typename", (getter)get_typename, NULL, get_typename__doc__},
{"string", (getter)PyTclObject_string, NULL,
@@ -827,7 +882,7 @@
0, /*tp_setattr*/
(cmpfunc)PyTclObject_cmp, /*tp_compare*/
(reprfunc)PyTclObject_repr, /*tp_repr*/
- 0, /*tp_as_number*/
+ &PyTclObject_as_number, /*tp_as_number*/
0, /*tp_as_sequence*/
0, /*tp_as_mapping*/
0, /*tp_hash*/
Index: PCbuild9/_tkinter.vcproj
===================================================================
--- PCbuild9/_tkinter.vcproj (revision 59479)
+++ PCbuild9/_tkinter.vcproj (working copy)
@@ -56,7 +56,7 @@
/>
+
+