For example, fix the following Sphinx 3 errors:
Doc/c-api/buffer.rst:102: WARNING: Error in declarator or parameters
Invalid C declaration: Expected identifier in nested name. [error at 5]
void \*obj
-----^
Doc/c-api/arg.rst:130: WARNING: Unparseable C cross-reference: 'PyObject*'
Invalid C declaration: Expected end of definition. [error at 8]
PyObject*
--------^
The modified documentation is compatible with Sphinx 2 and Sphinx 3.
The PY_SSIZE_T_CLEAN macro must now be defined to use
PyArg_ParseTuple() and Py_BuildValue() "#" formats: "es#", "et#",
"s#", "u#", "y#", "z#", "U#" and "Z#". See the PEP 353.
Update _testcapi.test_buildvalue_issue38913().
* You may now specify an expression as the default value for a
parameter! Example: "sys.maxsize - 1". This support is
intentionally quite limited; you may only use values that
can be represented as static C values.
* Removed "doc_default", simplified support for "c_default"
and "py_default". (I'm not sure we still even need
"py_default", but I'm leaving it in for now in case a
use presents itself.)
* Parameter lines support a trailing '\\' as a line
continuation character, allowing you to break up long lines.
* The argument parsing code generated when supporting optional
groups now uses PyTuple_GET_SIZE instead of PyTuple_GetSize,
leading to a 850% speedup in parsing. (Just kidding, this
is an unmeasurable difference.)
* A bugfix for the recent regression where the generated
prototype from pydoc for builtins would be littered with
unreadable "=<object ...>"" default values for parameters
that had no default value.
* Converted some asserts into proper failure messages.
* Many doc improvements and fixes.
They're optional-only for now (unlike in pure Python) but that's all
I needed. The syntax can easily be relaxed if we want to support
required keyword-only arguments for extension types in the future.
* Add :ctype: to Py_BEGIN_ALLOW_THREADS and int
* "s" and "s#" formats of Py_BuildValue(): specify that the Python object type
is str in the description
* replace "the default encoding" by "'utf-8' encoding"
* fix "w" / "w*" / "w#" doc: similar to "y" / "y*" / "y#"
and not "s" / "s*" / "s#"
* "u#": remove "Non-Unicode objects are handled by interpreting their
read-buffer pointer ...", it's no more true
* "es", "es#": remove "... and objects convertible to Unicode into a character
buffer", it's no more true
* Py_BuildValue(), "K" and "L" formats: specify the name of the C type on
Windows (_int64 / unsigned _int64) as done for PyArg_Parse*() long long
types
--CETTE ligne, et les suivantes ci-dessous, seront ignorées--
M Doc/c-api/arg.rst
svn+ssh://pythondev@svn.python.org/python/trunk
........
r77242 | gregory.p.smith | 2010-01-02 13:29:54 -0800 (Sat, 02 Jan 2010) | 3 lines
Correct documentation for s* z* and w*, the argument that should be passed
is the address of a Py_buffer, not a Py_buffer *.
........