Commit fd6cabfe authored by Georg Brandl's avatar Georg Brandl

#2230: document that PyArg_* leaves addresses alone on error.

parent 27504dae
...@@ -208,7 +208,7 @@ variable(s) whose address should be passed. ...@@ -208,7 +208,7 @@ variable(s) whose address should be passed.
:ctype:`void\*` argument that was passed to the :cfunc:`PyArg_Parse\*` function. :ctype:`void\*` argument that was passed to the :cfunc:`PyArg_Parse\*` function.
The returned *status* should be ``1`` for a successful conversion and ``0`` if The returned *status* should be ``1`` for a successful conversion and ``0`` if
the conversion has failed. When the conversion fails, the *converter* function the conversion has failed. When the conversion fails, the *converter* function
should raise an exception. should raise an exception and leave the content of *address* unmodified.
``S`` (string) [PyStringObject \*] ``S`` (string) [PyStringObject \*]
Like ``O`` but requires that the Python object is a string object. Raises Like ``O`` but requires that the Python object is a string object. Raises
...@@ -287,9 +287,13 @@ from the input tuple. There are a few cases, as described in the list of format ...@@ -287,9 +287,13 @@ from the input tuple. There are a few cases, as described in the list of format
units above, where these parameters are used as input values; they should match units above, where these parameters are used as input values; they should match
what is specified for the corresponding format unit in that case. what is specified for the corresponding format unit in that case.
For the conversion to succeed, the *arg* object must match the format and the For the conversion to succeed, the *arg* object must match the format
format must be exhausted. On success, the :cfunc:`PyArg_Parse\*` functions and the format must be exhausted. On success, the
return true, otherwise they return false and raise an appropriate exception. :cfunc:`PyArg_Parse\*` functions return true, otherwise they return
false and raise an appropriate exception. When the
:cfunc:`PyArg_Parse\*` functions fail due to conversion failure in one
of the format units, the variables at the addresses corresponding to that
and the following format units are left untouched.
.. cfunction:: int PyArg_ParseTuple(PyObject *args, const char *format, ...) .. cfunction:: int PyArg_ParseTuple(PyObject *args, const char *format, ...)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment