Skip to content

Commit 894ef3d

Browse files
committed
Add _PyUnicodeWriter_FormatV
1 parent 11a8652 commit 894ef3d

2 files changed

Lines changed: 17 additions & 3 deletions

File tree

Include/internal/pycore_unicodeobject.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,12 @@ extern int _PyUnicode_FormatAdvancedWriter(
8282
Py_ssize_t start,
8383
Py_ssize_t end);
8484

85+
/* PyUnicodeWriter_Format, with va_list instead of `...` */
86+
extern int _PyUnicodeWriter_FormatV(
87+
PyUnicodeWriter *writer,
88+
const char *format,
89+
va_list vargs);
90+
8591
/* --- UTF-7 Codecs ------------------------------------------------------- */
8692

8793
extern PyObject* _PyUnicode_EncodeUTF7(

Objects/unicodeobject.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3271,14 +3271,22 @@ PyUnicode_FromFormat(const char *format, ...)
32713271

32723272
int
32733273
PyUnicodeWriter_Format(PyUnicodeWriter *writer, const char *format, ...)
3274+
{
3275+
va_list vargs;
3276+
va_start(vargs, format);
3277+
int res = _PyUnicodeWriter_FormatV(writer, format, vargs);
3278+
va_end(vargs);
3279+
return res;
3280+
}
3281+
3282+
int
3283+
_PyUnicodeWriter_FormatV(PyUnicodeWriter *writer, const char *format,
3284+
va_list vargs)
32743285
{
32753286
_PyUnicodeWriter *_writer = (_PyUnicodeWriter*)writer;
32763287
Py_ssize_t old_pos = _writer->pos;
32773288

3278-
va_list vargs;
3279-
va_start(vargs, format);
32803289
int res = unicode_from_format(_writer, format, vargs);
3281-
va_end(vargs);
32823290

32833291
if (res < 0) {
32843292
_writer->pos = old_pos;

0 commit comments

Comments
 (0)