Skip to content

Commit e9f4ac1

Browse files
committed
Suppress unused-variable warnings when building with ICU 4.2.
Tidy-up for commit eccead9.
1 parent f4f41ba commit e9f4ac1

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

src/backend/commands/collationcmds.c

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -678,14 +678,30 @@ pg_import_system_collations(PG_FUNCTION_ARGS)
678678
*/
679679
for (i = -1; i < ucol_countAvailable(); i++)
680680
{
681+
/*
682+
* In ICU 4.2, ucol_getKeywordsForLocale() sometimes returns
683+
* values that will not be accepted by uloc_toLanguageTag(). Skip
684+
* loading keyword variants in that version. (Both
685+
* ucol_getKeywordValuesForLocale() and uloc_toLanguageTag() are
686+
* new in ICU 4.2, so older versions are not supported at all.)
687+
*
688+
* XXX We have no information about ICU 4.3 through 4.7, but we
689+
* know the code below works with 4.8.
690+
*/
691+
#if U_ICU_VERSION_MAJOR_NUM > 4 || (U_ICU_VERSION_MAJOR_NUM == 4 && U_ICU_VERSION_MINOR_NUM > 2)
692+
#define LOAD_ICU_KEYWORD_VARIANTS
693+
#endif
694+
681695
const char *name;
682696
char *langtag;
683697
char *icucomment;
684698
const char *collcollate;
699+
Oid collid;
700+
#ifdef LOAD_ICU_KEYWORD_VARIANTS
685701
UEnumeration *en;
686702
UErrorCode status;
687703
const char *val;
688-
Oid collid;
704+
#endif
689705

690706
if (i == -1)
691707
name = ""; /* ICU root locale */
@@ -721,18 +737,9 @@ pg_import_system_collations(PG_FUNCTION_ARGS)
721737
}
722738

723739
/*
724-
* Add keyword variants
725-
*
726-
* In ICU 4.2, ucol_getKeywordsForLocale() sometimes returns
727-
* values that will not be accepted by uloc_toLanguageTag(). Skip
728-
* loading keyword variants in that version. (Both
729-
* ucol_getKeywordValuesForLocale() and uloc_toLanguageTag() are
730-
* new in ICU 4.2, so older versions are not supported at all.)
731-
*
732-
* XXX We have no information about ICU 4.3 through 4.7, but we
733-
* know the below works with 4.8.
740+
* Add keyword variants, if enabled.
734741
*/
735-
#if U_ICU_VERSION_MAJOR_NUM > 4 || (U_ICU_VERSION_MAJOR_NUM == 4 && U_ICU_VERSION_MINOR_NUM > 2)
742+
#ifdef LOAD_ICU_KEYWORD_VARIANTS
736743
status = U_ZERO_ERROR;
737744
en = ucol_getKeywordValuesForLocale("collation", name, TRUE, &status);
738745
if (U_FAILURE(status))
@@ -779,7 +786,7 @@ pg_import_system_collations(PG_FUNCTION_ARGS)
779786
(errmsg("could not get keyword values for locale \"%s\": %s",
780787
name, u_errorName(status))));
781788
uenum_close(en);
782-
#endif /* ICU >4.2 */
789+
#endif /* LOAD_ICU_KEYWORD_VARIANTS */
783790
}
784791
}
785792
#endif /* USE_ICU */

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy