1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-03 09:13:20 +03:00

Use <stdint.h> and <inttypes.h> for c.h integers.

Redefine our exact width types with standard C99 types and macros,
including int64_t, INT64_MAX, INT64_C(), PRId64 etc.  We were already
using <stdint.h> types in a few places.

One complication is that Windows' <inttypes.h> uses format strings like
"%I64d", "%I32", "%I" for PRI*64, PRI*32, PTR*PTR, instead of mapping to
other standardized format strings like "%lld" etc as seen on other known
systems.  Teach our snprintf.c to understand them.

This removes a lot of configure clutter, and should also allow 64-bit
numbers and other standard types to be used in localized messages
without casting.

Reviewed-by: Peter Eisentraut <peter@eisentraut.org>
Discussion: https://postgr.es/m/ME3P282MB3166F9D1F71F787929C0C7E7B6312%40ME3P282MB3166.AUSP282.PROD.OUTLOOK.COM
This commit is contained in:
Thomas Munro
2024-12-04 14:46:59 +13:00
parent 3b08d5224d
commit 962da900ac
25 changed files with 272 additions and 582 deletions

View File

@@ -1,14 +1,5 @@
# Copyright (c) 2022-2024, PostgreSQL Global Development Group
pg_config_ext = configure_file(
input: 'pg_config_ext.h.meson',
output: 'pg_config_ext.h',
configuration: cdata,
install: true,
install_dir: dir_include,
)
configure_files += pg_config_ext
pg_config_os = configure_file(
output: 'pg_config_os.h',
input: files('port/@0@.h'.format(portname)),
@@ -116,7 +107,6 @@ install_headers(
'postgres_fe.h',
'varatt.h',
'windowapi.h',
pg_config_ext,
pg_config_os,
pg_config,
install_dir: dir_include_server,
@@ -186,4 +176,4 @@ install_subdir('catalog',
)
# autoconf generates the file there, ensure we get a conflict
generated_sources_ac += {'src/include': ['stamp-h', 'stamp-ext-h']}
generated_sources_ac += {'src/include': ['stamp-h']}