(original) (raw)
changeset: 72503:606652491366 user: Ezio Melotti ezio.melotti@gmail.com date: Thu Sep 29 00🔞19 2011 +0300 files: Doc/library/sys.rst Doc/whatsnew/3.3.rst Lib/test/test_sys.py Objects/unicodeobject.c Python/sysmodule.c description: #13054: sys.maxunicode is now always 0x10FFFF. diff -r b021f1b03f96 -r 606652491366 Doc/library/sys.rst --- a/Doc/library/sys.rst Wed Sep 28 22:34:18 2011 +0200 +++ b/Doc/library/sys.rst Thu Sep 29 00🔞19 2011 +0300 @@ -625,9 +625,13 @@ .. data:: maxunicode - An integer giving the largest supported code point for a Unicode character. The - value of this depends on the configuration option that specifies whether Unicode - characters are stored as UCS-2 or UCS-4. + An integer giving the value of the largest Unicode code point, + i.e. ``1114111`` (``0x10FFFF`` in hexadecimal). + + .. versionchanged:: 3.3 + Before :pep:`393`, :data:`sys.maxunicode` used to return either ``0xFFFF`` + or ``0x10FFFF``, depending on the configuration option that specified + whether Unicode characters were stored as UCS-2 or UCS-4. .. data:: meta_path diff -r b021f1b03f96 -r 606652491366 Doc/whatsnew/3.3.rst --- a/Doc/whatsnew/3.3.rst Wed Sep 28 22:34:18 2011 +0200 +++ b/Doc/whatsnew/3.3.rst Thu Sep 29 00🔞19 2011 +0300 @@ -55,6 +55,17 @@ ============= +PEP 393: Flexible String Representation +======================================= + +XXX Add list of changes introduced by :pep:`393` here: + +* The value of :data:`sys.maxunicode` is now always ``1114111`` (``0x10FFFF`` + in hexadecimal). The :c:func:`PyUnicode_GetMax` function still returns + either ``0xFFFF`` or ``0x10FFFF`` for backward compatibility, and it should + not be used with the new Unicode API (see :issue:`13054`). + + Other Language Changes ====================== diff -r b021f1b03f96 -r 606652491366 Lib/test/test_sys.py --- a/Lib/test/test_sys.py Wed Sep 28 22:34:18 2011 +0200 +++ b/Lib/test/test_sys.py Thu Sep 29 00🔞19 2011 +0300 @@ -447,6 +447,7 @@ self.assertIsInstance(sys.maxsize, int) self.assertIsInstance(sys.maxunicode, int) + self.assertEqual(sys.maxunicode, 0x10FFFF) self.assertIsInstance(sys.platform, str) self.assertIsInstance(sys.prefix, str) self.assertIsInstance(sys.version, str) diff -r b021f1b03f96 -r 606652491366 Objects/unicodeobject.c --- a/Objects/unicodeobject.c Wed Sep 28 22:34:18 2011 +0200 +++ b/Objects/unicodeobject.c Thu Sep 29 00🔞19 2011 +0300 @@ -207,7 +207,8 @@ 0, 0, 0, 0, 0, 0, 0, 0 }; - +/* The max unicode value is always 0x10FFFF while using the PEP-393 API. + This function is kept for backward compatibility with the old API. */ Py_UNICODE PyUnicode_GetMax(void) { diff -r b021f1b03f96 -r 606652491366 Python/sysmodule.c --- a/Python/sysmodule.c Wed Sep 28 22:34:18 2011 +0200 +++ b/Python/sysmodule.c Thu Sep 29 00🔞19 2011 +0300 @@ -1261,7 +1261,7 @@ hexversion -- version information encoded as a single integer\n\ int_info -- a struct sequence with information about the int implementation.\n\ maxsize -- the largest supported length of containers.\n\ -maxunicode -- the largest supported character\n\ +maxunicode -- the value of the largest Unicode codepoint\n\ platform -- platform identifier\n\ prefix -- prefix used to find the Python library\n\ thread_info -- a struct sequence with information about the thread implementation.\n\ @@ -1536,7 +1536,7 @@ SET_SYS_FROM_STRING("hash_info", get_hash_info()); SET_SYS_FROM_STRING("maxunicode", - PyLong_FromLong(PyUnicode_GetMax())); + PyLong_FromLong(0x10FFFF)); SET_SYS_FROM_STRING("builtin_module_names", list_builtin_module_names()); { /ezio.melotti@gmail.com