[Python-checkins] cpython (merge 3.2 -> 3.2): Merge

antoine.pitrou python-checkins at python.org
Sun Dec 18 19:34:17 CET 2011


http://hg.python.org/cpython/rev/c5dbe4027d29
changeset: 74051:c5dbe4027d29
branch: 3.2
parent: 74048:a175284ede57
parent: 74044:393906d020fe
user: Antoine Pitrou <solipsis at pitrou.net>
date: Sun Dec 18 19:31:02 2011 +0100
summary:
 Merge
files:
 Doc/ACKS.txt | 1 +
 Doc/c-api/unicode.rst | 28 +++++++++++++++++++---------
 Objects/dictobject.c | 6 +++---
 3 files changed, 23 insertions(+), 12 deletions(-)
diff --git a/Doc/ACKS.txt b/Doc/ACKS.txt
--- a/Doc/ACKS.txt
+++ b/Doc/ACKS.txt
@@ -33,6 +33,7 @@
 * Keith Briggs
 * Ian Bruntlett
 * Lee Busby
+ * Arnaud Calmettes
 * Lorenzo M. Catucci
 * Carl Cerecke
 * Mauro Cicognini
diff --git a/Doc/c-api/unicode.rst b/Doc/c-api/unicode.rst
--- a/Doc/c-api/unicode.rst
+++ b/Doc/c-api/unicode.rst
@@ -338,16 +338,21 @@
 
 .. c:function:: Py_UNICODE* PyUnicode_AsUnicode(PyObject *unicode)
 
- Return a read-only pointer to the Unicode object's internal :c:type:`Py_UNICODE`
- buffer, *NULL* if *unicode* is not a Unicode object.
+ Return a read-only pointer to the Unicode object's internal
+ :c:type:`Py_UNICODE` buffer, *NULL* if *unicode* is not a Unicode object.
+ Note that the resulting :c:type:`Py_UNICODE*` string may contain embedded
+ null characters, which would cause the string to be truncated when used in
+ most C functions.
 
 
 .. c:function:: Py_UNICODE* PyUnicode_AsUnicodeCopy(PyObject *unicode)
 
 Create a copy of a Unicode string ending with a nul character. Return *NULL*
 and raise a :exc:`MemoryError` exception on memory allocation failure,
- otherwise return a new allocated buffer (use :c:func:`PyMem_Free` to free the
- buffer).
+ otherwise return a new allocated buffer (use :c:func:`PyMem_Free` to free
+ the buffer). Note that the resulting :c:type:`Py_UNICODE*` string may contain
+ embedded null characters, which would cause the string to be truncated when
+ used in most C functions.
 
 .. versionadded:: 3.2
 
@@ -447,7 +452,8 @@
 
 Encode a Unicode object to :c:data:`Py_FileSystemDefaultEncoding` with the
 ``'surrogateescape'`` error handler, or ``'strict'`` on Windows, and return
- :class:`bytes`.
+ :class:`bytes`. Note that the resulting :class:`bytes` object may contain
+ null bytes.
 
 If :c:data:`Py_FileSystemDefaultEncoding` is not set, fall back to the
 locale encoding.
@@ -476,7 +482,9 @@
 copied or -1 in case of an error. Note that the resulting :c:type:`wchar_t`
 string may or may not be 0-terminated. It is the responsibility of the caller
 to make sure that the :c:type:`wchar_t` string is 0-terminated in case this is
- required by the application.
+ required by the application. Also, note that the :c:type:`wchar_t*` string
+ might contain null characters, which would cause the string to be truncated
+ when used with most C functions.
 
 
 .. c:function:: wchar_t* PyUnicode_AsWideCharString(PyObject *unicode, Py_ssize_t *size)
@@ -486,9 +494,11 @@
 of wide characters (excluding the trailing 0-termination character) into
 *\*size*.
 
- Returns a buffer allocated by :c:func:`PyMem_Alloc` (use :c:func:`PyMem_Free`
- to free it) on success. On error, returns *NULL*, *\*size* is undefined and
- raises a :exc:`MemoryError`.
+ Returns a buffer allocated by :c:func:`PyMem_Alloc` (use
+ :c:func:`PyMem_Free` to free it) on success. On error, returns *NULL*,
+ *\*size* is undefined and raises a :exc:`MemoryError`. Note that the
+ resulting :c:type:`wchar_t*` string might contain null characters, which
+ would cause the string to be truncated when used with most C functions.
 
 .. versionadded:: 3.2
 
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -1973,9 +1973,9 @@
 2-tuple; but raise KeyError if D is empty.");
 
 PyDoc_STRVAR(update__doc__,
-"D.update(E, **F) -> None. Update D from dict/iterable E and F.\n"
-"If E has a .keys() method, does: for k in E: D[k] = E[k]\n\
-If E lacks .keys() method, does: for (k, v) in E: D[k] = v\n\
+"D.update([E, ]**F) -> None. Update D from dict/iterable E and F.\n"
+"If E present and has a .keys() method, does: for k in E: D[k] = E[k]\n\
+If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v\n\
 In either case, this is followed by: for k in F: D[k] = F[k]");
 
 PyDoc_STRVAR(fromkeys__doc__,
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /