Skip to content

Commit 88c38b3

Browse files
louisomzhangyangyu
authored andcommitted
bpo-28415: Note 0 conversion different between Python and C (#885)
1 parent a90b990 commit 88c38b3

File tree

2 files changed

+48
-42
lines changed

2 files changed

+48
-42
lines changed

Doc/c-api/bytes.rst

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -72,29 +72,29 @@ called with a non-bytes parameter.
7272
| :attr:`%c` | int | A single byte, |
7373
| | | represented as a C int. |
7474
+-------------------+---------------+--------------------------------+
75-
| :attr:`%d` | int | Exactly equivalent to |
76-
| | | ``printf("%d")``. |
75+
| :attr:`%d` | int | Equivalent to |
76+
| | | ``printf("%d")``. [1]_ |
7777
+-------------------+---------------+--------------------------------+
78-
| :attr:`%u` | unsigned int | Exactly equivalent to |
79-
| | | ``printf("%u")``. |
78+
| :attr:`%u` | unsigned int | Equivalent to |
79+
| | | ``printf("%u")``. [1]_ |
8080
+-------------------+---------------+--------------------------------+
81-
| :attr:`%ld` | long | Exactly equivalent to |
82-
| | | ``printf("%ld")``. |
81+
| :attr:`%ld` | long | Equivalent to |
82+
| | | ``printf("%ld")``. [1]_ |
8383
+-------------------+---------------+--------------------------------+
84-
| :attr:`%lu` | unsigned long | Exactly equivalent to |
85-
| | | ``printf("%lu")``. |
84+
| :attr:`%lu` | unsigned long | Equivalent to |
85+
| | | ``printf("%lu")``. [1]_ |
8686
+-------------------+---------------+--------------------------------+
87-
| :attr:`%zd` | Py_ssize_t | Exactly equivalent to |
88-
| | | ``printf("%zd")``. |
87+
| :attr:`%zd` | Py_ssize_t | Equivalent to |
88+
| | | ``printf("%zd")``. [1]_ |
8989
+-------------------+---------------+--------------------------------+
90-
| :attr:`%zu` | size_t | Exactly equivalent to |
91-
| | | ``printf("%zu")``. |
90+
| :attr:`%zu` | size_t | Equivalent to |
91+
| | | ``printf("%zu")``. [1]_ |
9292
+-------------------+---------------+--------------------------------+
93-
| :attr:`%i` | int | Exactly equivalent to |
94-
| | | ``printf("%i")``. |
93+
| :attr:`%i` | int | Equivalent to |
94+
| | | ``printf("%i")``. [1]_ |
9595
+-------------------+---------------+--------------------------------+
96-
| :attr:`%x` | int | Exactly equivalent to |
97-
| | | ``printf("%x")``. |
96+
| :attr:`%x` | int | Equivalent to |
97+
| | | ``printf("%x")``. [1]_ |
9898
+-------------------+---------------+--------------------------------+
9999
| :attr:`%s` | const char\* | A null-terminated C character |
100100
| | | array. |
@@ -111,6 +111,9 @@ called with a non-bytes parameter.
111111
An unrecognized format character causes all the rest of the format string to be
112112
copied as-is to the result object, and any extra arguments discarded.
113113
114+
.. [1] For integer specifiers (d, u, ld, lu, zd, zu, i, x): the 0-conversion
115+
flag has effect even when a precision is given.
116+
114117
115118
.. c:function:: PyObject* PyBytes_FromFormatV(const char *format, va_list vargs)
116119

Doc/c-api/unicode.rst

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -451,44 +451,44 @@ APIs:
451451
| :attr:`%c` | int | A single character, |
452452
| | | represented as a C int. |
453453
+-------------------+---------------------+--------------------------------+
454-
| :attr:`%d` | int | Exactly equivalent to |
455-
| | | ``printf("%d")``. |
454+
| :attr:`%d` | int | Equivalent to |
455+
| | | ``printf("%d")``. [1]_ |
456456
+-------------------+---------------------+--------------------------------+
457-
| :attr:`%u` | unsigned int | Exactly equivalent to |
458-
| | | ``printf("%u")``. |
457+
| :attr:`%u` | unsigned int | Equivalent to |
458+
| | | ``printf("%u")``. [1]_ |
459459
+-------------------+---------------------+--------------------------------+
460-
| :attr:`%ld` | long | Exactly equivalent to |
461-
| | | ``printf("%ld")``. |
460+
| :attr:`%ld` | long | Equivalent to |
461+
| | | ``printf("%ld")``. [1]_ |
462462
+-------------------+---------------------+--------------------------------+
463-
| :attr:`%li` | long | Exactly equivalent to |
464-
| | | ``printf("%li")``. |
463+
| :attr:`%li` | long | Equivalent to |
464+
| | | ``printf("%li")``. [1]_ |
465465
+-------------------+---------------------+--------------------------------+
466-
| :attr:`%lu` | unsigned long | Exactly equivalent to |
467-
| | | ``printf("%lu")``. |
466+
| :attr:`%lu` | unsigned long | Equivalent to |
467+
| | | ``printf("%lu")``. [1]_ |
468468
+-------------------+---------------------+--------------------------------+
469-
| :attr:`%lld` | long long | Exactly equivalent to |
470-
| | | ``printf("%lld")``. |
469+
| :attr:`%lld` | long long | Equivalent to |
470+
| | | ``printf("%lld")``. [1]_ |
471471
+-------------------+---------------------+--------------------------------+
472-
| :attr:`%lli` | long long | Exactly equivalent to |
473-
| | | ``printf("%lli")``. |
472+
| :attr:`%lli` | long long | Equivalent to |
473+
| | | ``printf("%lli")``. [1]_ |
474474
+-------------------+---------------------+--------------------------------+
475-
| :attr:`%llu` | unsigned long long | Exactly equivalent to |
476-
| | | ``printf("%llu")``. |
475+
| :attr:`%llu` | unsigned long long | Equivalent to |
476+
| | | ``printf("%llu")``. [1]_ |
477477
+-------------------+---------------------+--------------------------------+
478-
| :attr:`%zd` | Py_ssize_t | Exactly equivalent to |
479-
| | | ``printf("%zd")``. |
478+
| :attr:`%zd` | Py_ssize_t | Equivalent to |
479+
| | | ``printf("%zd")``. [1]_ |
480480
+-------------------+---------------------+--------------------------------+
481-
| :attr:`%zi` | Py_ssize_t | Exactly equivalent to |
482-
| | | ``printf("%zi")``. |
481+
| :attr:`%zi` | Py_ssize_t | Equivalent to |
482+
| | | ``printf("%zi")``. [1]_ |
483483
+-------------------+---------------------+--------------------------------+
484-
| :attr:`%zu` | size_t | Exactly equivalent to |
485-
| | | ``printf("%zu")``. |
484+
| :attr:`%zu` | size_t | Equivalent to |
485+
| | | ``printf("%zu")``. [1]_ |
486486
+-------------------+---------------------+--------------------------------+
487-
| :attr:`%i` | int | Exactly equivalent to |
488-
| | | ``printf("%i")``. |
487+
| :attr:`%i` | int | Equivalent to |
488+
| | | ``printf("%i")``. [1]_ |
489489
+-------------------+---------------------+--------------------------------+
490-
| :attr:`%x` | int | Exactly equivalent to |
491-
| | | ``printf("%x")``. |
490+
| :attr:`%x` | int | Equivalent to |
491+
| | | ``printf("%x")``. [1]_ |
492492
+-------------------+---------------------+--------------------------------+
493493
| :attr:`%s` | const char\* | A null-terminated C character |
494494
| | | array. |
@@ -530,6 +530,9 @@ APIs:
530530
characters for ``"%A"``, ``"%U"``, ``"%S"``, ``"%R"`` and ``"%V"``
531531
(if the ``PyObject*`` argument is not NULL).
532532
533+
.. [1] For integer specifiers (d, u, ld, li, lu, lld, lli, llu, zd, zi,
534+
zu, i, x): the 0-conversion flag has effect even when a precision is given.
535+
533536
.. versionchanged:: 3.2
534537
Support for ``"%lld"`` and ``"%llu"`` added.
535538

0 commit comments

Comments
 (0)