mirror of
https://github.com/postgres/postgres.git
synced 2025-12-09 02:08:45 +03:00
All supported systems have locale_t.
locale_t is defined by POSIX.1-2008 and SUSv4, and available on all targeted systems. For Windows, win32_port.h redirects to a partial implementation called _locale_t. We can now remove a lot of compile-time tests for HAVE_LOCALE_T, and associated comments and dead code branches that were needed for older computers. Since configure + MinGW builds didn't detect locale_t but now we assume that all systems have it, further inconsistencies among the 3 Windows build systems were revealed. With this commit, we no longer define HAVE_WCSTOMBS_L and HAVE_MBSTOWCS_L on any Windows build system, but we have logic to deal with that so that replacements are available where appropriate. Reviewed-by: Noah Misch <noah@leadboat.com> Reviewed-by: Tristan Partin <tristan@neon.tech> Reviewed-by: Peter Eisentraut <peter@eisentraut.org> Discussion: https://postgr.es/m/CA%2BhUKGLg7_T2GKwZFAkEf0V7vbnur-NfCjZPKZb%3DZfAXSV1ORw%40mail.gmail.com
This commit is contained in:
@@ -67,9 +67,7 @@ extern void cache_locale_time(void);
|
||||
|
||||
|
||||
/*
|
||||
* We define our own wrapper around locale_t so we can keep the same
|
||||
* function signatures for all builds, while not having to create a
|
||||
* fake version of the standard type locale_t in the global namespace.
|
||||
* We use a discriminated union to hold either a locale_t or an ICU collator.
|
||||
* pg_locale_t is occasionally checked for truth, so make it a pointer.
|
||||
*/
|
||||
struct pg_locale_struct
|
||||
@@ -78,9 +76,7 @@ struct pg_locale_struct
|
||||
bool deterministic;
|
||||
union
|
||||
{
|
||||
#ifdef HAVE_LOCALE_T
|
||||
locale_t lt;
|
||||
#endif
|
||||
#ifdef USE_ICU
|
||||
struct
|
||||
{
|
||||
@@ -88,7 +84,6 @@ struct pg_locale_struct
|
||||
UCollator *ucol;
|
||||
} icu;
|
||||
#endif
|
||||
int dummy; /* in case we have neither LOCALE_T nor ICU */
|
||||
} info;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user