[Python-checkins] cpython (2.7): Issue #13153: Tkinter functions now raise TclError instead of ValueError when

serhiy.storchaka python-checkins at python.org
Mon Feb 18 12:07:08 CET 2013


http://hg.python.org/cpython/rev/bb5a8564e186
changeset:   82251:bb5a8564e186
branch:      2.7
parent:      82247:50ed06b3d419
user:        Serhiy Storchaka <storchaka at gmail.com>
date:        Mon Feb 18 13:00:08 2013 +0200
summary:
  Issue #13153: Tkinter functions now raise TclError instead of ValueError when
a unicode argument contains non-BMP character.

files:
  Misc/NEWS          |  3 +++
  Modules/_tkinter.c |  6 ++++--
  2 files changed, 7 insertions(+), 2 deletions(-)


diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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 --git a/Modules/_tkinter.c b/Modules/_tkinter.c
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -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;
             }

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list