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