[v5,00/11] vfprintf refactor

Message ID cover.1670858473.git.fweimer@redhat.com
Headers
Series vfprintf refactor |

Message

Florian Weimer Dec. 12, 2022, 3:22 p.m. UTC
  This is merely a rebase, to fix conflicts.  Also pushed to the
fw/vfprintf-2 branch on sourceware.

Retested on x86_64-linux-gnu.

Thanks,
Florian

Florian Weimer (11):
  locale: Implement struct grouping_iterator
  stdio-common: Introduce buffers for implementing printf
  stdio-common: Add __printf_function_invoke
  stdio-common: Add __translated_number_width
  stdio-common: Convert vfprintf and related functions to buffers
  stdio-common: Add lock optimization to vfprintf and vfwprintf
  libio: Convert __vsprintf_internal to buffers
  libio: Convert __vasprintf_internal to buffers
  libio: Convert __vdprintf_internal to buffers
  libio: Convert __obstack_vprintf_internal to buffers (bug 27124)
  libio: Convert __vswprintf_internal to buffers (bug 27857)

 elf/Makefile                                  |   1 -
 include/printf.h                              |  52 +-
 include/printf_buffer.h                       | 332 ++++++++
 libio/iovdprintf.c                            |  69 +-
 libio/iovsprintf.c                            |  70 +-
 libio/obprintf.c                              | 170 ++--
 libio/tst-vtables-common.c                    |   9 +-
 libio/tst_swprintf.c                          |  31 +-
 libio/vasprintf.c                             | 141 ++--
 libio/vsnprintf.c                             | 131 ++--
 libio/vswprintf.c                             | 100 +--
 manual/stdio.texi                             |   7 +-
 stdio-common/Makefile                         |  28 +-
 stdio-common/Xprintf_buffer_done.c            |  40 +
 stdio-common/Xprintf_buffer_flush.c           |  72 ++
 stdio-common/Xprintf_buffer_pad_1.c           |  44 ++
 stdio-common/Xprintf_buffer_putc_1.c          |  29 +
 stdio-common/Xprintf_buffer_puts_1.c          |  38 +
 stdio-common/Xprintf_buffer_write.c           |  44 ++
 stdio-common/Xprintf_function_invoke.c        |  58 ++
 stdio-common/grouping_iterator.c              | 126 +++
 stdio-common/grouping_iterator.h              |  65 ++
 stdio-common/printf_buffer-char.h             |  24 +
 stdio-common/printf_buffer-wchar_t.h          |  24 +
 stdio-common/printf_buffer_as_file.c          | 148 ++++
 stdio-common/printf_buffer_as_file.h          |  87 +++
 stdio-common/printf_buffer_done.c             |  21 +
 stdio-common/printf_buffer_flush.c            |  81 ++
 stdio-common/printf_buffer_pad_1.c            |  21 +
 stdio-common/printf_buffer_putc_1.c           |  21 +
 stdio-common/printf_buffer_puts_1.c           |  21 +
 stdio-common/printf_buffer_to_file.c          | 122 +++
 stdio-common/printf_buffer_to_file.h          |  57 ++
 stdio-common/printf_buffer_write.c            |  21 +
 stdio-common/printf_fp.c                      | 736 ++++++++----------
 stdio-common/printf_fphex.c                   | 260 +++----
 stdio-common/printf_function_invoke.c         |  22 +
 stdio-common/translated_number_width.c        |  42 +
 stdio-common/tst-grouping_iterator.c          | 262 +++++++
 stdio-common/vfprintf-internal.c              | 672 +++++-----------
 stdio-common/vfprintf-process-arg.c           | 172 ++--
 stdio-common/wprintf_buffer_as_file.c         | 153 ++++
 stdio-common/wprintf_buffer_done.c            |  21 +
 stdio-common/wprintf_buffer_flush.c           |  42 +
 stdio-common/wprintf_buffer_pad_1.c           |  21 +
 stdio-common/wprintf_buffer_putc_1.c          |  21 +
 stdio-common/wprintf_buffer_puts_1.c          |  21 +
 stdio-common/wprintf_buffer_to_file.c         |  55 ++
 stdio-common/wprintf_buffer_write.c           |  21 +
 stdio-common/wprintf_function_invoke.c        |  22 +
 stdlib/strfmon_l.c                            | 196 ++---
 stdlib/strfrom-skeleton.c                     |  38 +-
 sysdeps/ia64/fpu/printf_fphex.c               |   8 +-
 .../ieee754/ldbl-128/printf_fphex_macros.h    |  36 +-
 sysdeps/ieee754/ldbl-128ibm/printf_fphex.c    |  36 +-
 sysdeps/ieee754/ldbl-96/printf_fphex.c        |  22 +-
 sysdeps/x86_64/fpu/printf_fphex.c             |  21 +-
 57 files changed, 3395 insertions(+), 1810 deletions(-)
 create mode 100644 include/printf_buffer.h
 create mode 100644 stdio-common/Xprintf_buffer_done.c
 create mode 100644 stdio-common/Xprintf_buffer_flush.c
 create mode 100644 stdio-common/Xprintf_buffer_pad_1.c
 create mode 100644 stdio-common/Xprintf_buffer_putc_1.c
 create mode 100644 stdio-common/Xprintf_buffer_puts_1.c
 create mode 100644 stdio-common/Xprintf_buffer_write.c
 create mode 100644 stdio-common/Xprintf_function_invoke.c
 create mode 100644 stdio-common/grouping_iterator.c
 create mode 100644 stdio-common/grouping_iterator.h
 create mode 100644 stdio-common/printf_buffer-char.h
 create mode 100644 stdio-common/printf_buffer-wchar_t.h
 create mode 100644 stdio-common/printf_buffer_as_file.c
 create mode 100644 stdio-common/printf_buffer_as_file.h
 create mode 100644 stdio-common/printf_buffer_done.c
 create mode 100644 stdio-common/printf_buffer_flush.c
 create mode 100644 stdio-common/printf_buffer_pad_1.c
 create mode 100644 stdio-common/printf_buffer_putc_1.c
 create mode 100644 stdio-common/printf_buffer_puts_1.c
 create mode 100644 stdio-common/printf_buffer_to_file.c
 create mode 100644 stdio-common/printf_buffer_to_file.h
 create mode 100644 stdio-common/printf_buffer_write.c
 create mode 100644 stdio-common/printf_function_invoke.c
 create mode 100644 stdio-common/translated_number_width.c
 create mode 100644 stdio-common/tst-grouping_iterator.c
 create mode 100644 stdio-common/wprintf_buffer_as_file.c
 create mode 100644 stdio-common/wprintf_buffer_done.c
 create mode 100644 stdio-common/wprintf_buffer_flush.c
 create mode 100644 stdio-common/wprintf_buffer_pad_1.c
 create mode 100644 stdio-common/wprintf_buffer_putc_1.c
 create mode 100644 stdio-common/wprintf_buffer_puts_1.c
 create mode 100644 stdio-common/wprintf_buffer_to_file.c
 create mode 100644 stdio-common/wprintf_buffer_write.c
 create mode 100644 stdio-common/wprintf_function_invoke.c


base-commit: 4e21c2075193e406a92c0d1cb091a7c804fda4d9