Commit Graph

51733 Commits

Author SHA1 Message Date
Benjamin Peterson 811c2f1369 remove "fast-path" for (i)adding strings
These were just an artifact of the old unicode concatenation hack and likely
just penalized other kinds of adding. Also, this fixes __(i)add__ on string
subclasses.
2011-09-30 21:31:21 -04:00
Victor Stinner c759f3e7ec Ooops, avoid a division by zero in unicode_repeat() 2011-10-01 03:09:58 +02:00
Victor Stinner d3a83d5eb3 PyUnicode_FromObject() ensures that its output is a ready string 2011-10-01 03:09:33 +02:00
Victor Stinner 67ca64ce54 I want a super fast 'a' * n!
* Optimize unicode_repeat() for a special case with memset()
 * Simplify integer overflow checking; remove the second check because
   PyUnicode_New() already does it and uses a smaller limit (Py_ssize_t vs
   size_t)
2011-10-01 02:47:29 +02:00
Victor Stinner 4584a5ba1a PyUnicode_CHARACTER_SIZE(): add a reference to PyUnicode_KIND_SIZE() 2011-10-01 02:39:37 +02:00
Victor Stinner e9a2935c1f Fix usage of PyUnicode_READY in unicodeobject.c 2011-10-01 02:14:59 +02:00
Victor Stinner 12bab6dace Remove private substring() function, reuse public PyUnicode_Substring()
* PyUnicode_Substring() now fails if start or end is invalid
 * PyUnicode_Substring() reuses PyUnicode_Copy() for non-exact strings
2011-10-01 01:53:49 +02:00
Victor Stinner c841e7db1f Optimize PyUnicode_Copy(): don't recompute maximum character 2011-10-01 01:34:32 +02:00
Victor Stinner bec0fda264 Remove commented code: str+=str is no more super-optimized 2011-10-01 01:26:08 +02:00
Victor Stinner 2219e0a37e PyUnicode_FromObject() reuses PyUnicode_Copy()
* PyUnicode_Copy() is faster than substring()
 * Fix also a compiler warning
2011-10-01 01:16:59 +02:00
Victor Stinner 9e5bd6c544 pyexat uses the new Unicode API 2011-10-01 01:05:40 +02:00
Ezio Melotti 2a1e926d63 Fix ResourceWarnings in makeunicodedata.py. 2011-09-30 08:46:25 +03:00
Victor Stinner 034f6cf10c Add PyUnicode_Copy() function, include it to the public API 2011-09-30 02:26:44 +02:00
Victor Stinner b153615008 PyUnicode_CopyCharacters() uses exceptions instead of assertions
Call PyErr_BadInternalCall() if inputs are not unicode strings.
2011-09-30 02:26:10 +02:00
Victor Stinner 1fe99a2ea7 Fix a compiler warning 2011-09-30 01:55:49 +02:00
Victor Stinner 1fbcaeff55 Fix array.array('u') constructor 2011-09-30 01:54:04 +02:00
Victor Stinner eb5657a0c5 posix module catches PyUnicode_AsUnicode() failure
* Replace PyUnicode_AS_UNICODE by PyUnicode_AsUnicode, PyUnicode_AS_UNICODE is
   no more a real macro
 * Replace Py_UNICODE by wchar_t in code specific to Windows
2011-09-30 01:44:27 +02:00
Victor Stinner 8dba4e004f array module uses the new Unicode API
* Use Py_UCS4* buffer instead of Py_UNICODE*
 * Use "I" or "L" format, instead of "u" format
2011-09-30 00:51:10 +02:00
Victor Stinner f8bb7d02f6 array module stores the typecode in a char, instead of Py_UNICODE 2011-09-30 00:03:59 +02:00
Victor Stinner c806fdcd8b raw_unicode_escape() uses the new Unicode API 2011-09-29 23:50:23 +02:00
Victor Stinner 121aab4ba1 Strip trailing spaces of _pickle.c 2011-09-29 23:40:53 +02:00
Victor Stinner 6364927cec PyLocale_strxfrm() uses the new Unicode API 2011-09-29 23:32:06 +02:00
Victor Stinner fe9a861e74 fileio_init() checks for failure on conversion to Py_UNICODE* 2011-09-29 23:19:04 +02:00
Victor Stinner ef17f12a39 Fix test_codeccallbacks for Windows: check size of wchar_t, not sys.maxunicode 2011-09-29 20:01:55 +02:00
Victor Stinner 182d90d9ee Fix test_codecs for Windows: check size of wchar_t, not sys.maxunicode 2011-09-29 19:53:55 +02:00
Charles-François Natali 734e159b12 Merge. 2011-09-29 19:51:46 +02:00
Charles-François Natali 9624a764ff Issue #13058: ossaudiodev: fix a file descriptor leak on error. Patch by Thomas
Jarosch.
2011-09-29 19:49:37 +02:00
Charles-François Natali 5a4a109694 Issue #13058: ossaudiodev: fix a file descriptor leak on error. Patch by Thomas
Jarosch.
2011-09-29 19:46:37 +02:00
Victor Stinner d8f6510acc _PyUnicode_Ready() cannot be used on ready strings anymore
* Change its prototype: PyObject* instead of PyUnicodeoObject*.
 * Remove an old assertion, the result of PyUnicode_READY (_PyUnicode_Ready)
   must be checked instead
2011-09-29 19:43:17 +02:00
Victor Stinner bc8b81bc4e Move _PyUnicode_UTF8() and _PyUnicode_UTF8_LENGTH() outside unicodeobject.h
Move these macros to unicodeobject.c
2011-09-29 19:31:34 +02:00
Victor Stinner a0702ab1fe Add a note in PyUnicode_CopyCharacters() doc: it doesn't write null character
Cleanup also the code (avoid the goto).
2011-09-29 14:14:38 +02:00
Martin v. Löwis ff1ef074ed Re-enable test. 2011-09-29 13:49:10 +02:00
Martin v. Löwis 22970667da Port normalization to new API. 2011-09-29 13:39:38 +02:00
Victor Stinner f0ddadcf2e Rename Py_BUILD_ASSERT to Py_BUILD_ASSERT_EXPR
To make it clearer that Py_BUILD_ASSERT_EXPR(cond) cannot be used as
assert(cond).
2011-09-29 12:43:18 +02:00
Victor Stinner 573696a9ca pymacro.h: Inline _Py_ARRAY_LENGTH_CHECK() and add http://ccodearchive.net/ 2011-09-29 12:12:39 +02:00
Ezio Melotti 6f1ba077c0 Merge heads. 2011-09-29 08:36:23 +03:00
Ezio Melotti 397546ac2f Update and reorganize the whatsnew entry for PEP 393. 2011-09-29 08:34:36 +03:00
Victor Stinner 6430fd56b4 Fix hex_digit_to_int() prototype: expect Py_UCS4, not Py_UNICODE 2011-09-29 04:02:13 +02:00
Victor Stinner d9c563e84d modsupport.c reuses Py_UNICODE_strlen() 2011-09-29 04:01:43 +02:00
Ezio Melotti 9d3579b7d6 Remove now useless redefinition of chr/ord for narrow builds in test_multibytecodec_support.py. 2011-09-29 04:36:38 +03:00
Victor Stinner f7b8cb605d _io.textio: fix character type, use Py_UCS4 instead of Py_UNICODE 2011-09-29 03:28:17 +02:00
Victor Stinner 0058b8603f _sre: don't use Py_UNICODE anymore
* Downcasting from Py_UCS4 to Py_UNICODE is wrong is Py_UNICODE is 16-bit
   wchar_t
 * Remove old special case in getstring(), unicode is now handled separetely
2011-09-29 03:27:47 +02:00
Victor Stinner 7d637ab870 Complete What's New in 3.3 about PEP 393 2011-09-29 02:56:16 +02:00
Ezio Melotti f503673c4d Move UCS4-specific tests with the "normal" tests. 2011-09-29 03:14:56 +03:00
Victor Stinner dfb866d127 Enhance Py_ARRAY_LENGTH(): fail at build time if the argument is not an array
Move other various macros to pymcacro.h

Thanks Rusty Russell for having written these amazing C macros!
2011-09-29 01:12:24 +02:00
Victor Stinner 2bdc7f591b Move code related to compile from Python.h to compile.h 2011-09-29 01:04:08 +02:00
Victor Stinner 639418812f Use the new Py_ARRAY_LENGTH macro 2011-09-29 00:42:28 +02:00
Victor Stinner b9dcffb51e Fix 'c' format of PyUnicode_Format()
formatbuf is now an array of Py_UCS4, not of Py_UNICODE
2011-09-29 00:39:24 +02:00
Victor Stinner c17f540b7a Oops, fix my previous commit: unicode => to 2011-09-29 00:16:58 +02:00
Victor Stinner b15d4d899c PyUnicode_CopyCharacters() marks the string as dirty (reset the hash) 2011-09-28 23:59:20 +02:00