changeset: 82251:bb5a8564e186 branch: 2.7 parent: 82247:50ed06b3d419 user: Serhiy Storchaka date: Mon Feb 18 13:00:08 2013 +0200 files: Misc/NEWS Modules/_tkinter.c description: Issue #13153: Tkinter functions now raise TclError instead of ValueError when a unicode argument contains non-BMP character. diff -r 50ed06b3d419 -r bb5a8564e186 Misc/NEWS --- a/Misc/NEWS Mon Feb 18 12:20:44 2013 +0200 +++ b/Misc/NEWS Mon Feb 18 13:00:08 2013 +0200 @@ -205,6 +205,9 @@ Library ------- +- Issue #13153: Tkinter functions now raise TclError instead of ValueError when + a unicode argument contains non-BMP character. + - Issue #9669: Protect re against infinite loops on zero-width matching in non-greedy repeat. Patch by Matthew Barnett. diff -r 50ed06b3d419 -r bb5a8564e186 Modules/_tkinter.c --- a/Modules/_tkinter.c Mon Feb 18 12:20:44 2013 +0200 +++ b/Modules/_tkinter.c Mon Feb 18 13:00:08 2013 +0200 @@ -987,8 +987,10 @@ for (i = 0; i < size; i++) { if (inbuf[i] >= 0x10000) { /* Tcl doesn't do UTF-16, yet. */ - PyErr_SetString(PyExc_ValueError, - "unsupported character"); + PyErr_Format(Tkinter_TclError, + "character U+%x is above the range " + "(U+0000-U+FFFF) allowed by Tcl", + (int)inbuf[i]); ckfree(FREECAST outbuf); return NULL; }