From 7e9bf5ac6759e42403a4b812b9f061fcbed4fb60 Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Fri, 24 Apr 2009 08:43:51 +0000 Subject: [PATCH] Move gettext encoding names into encnames.c, so we only have one place to update. Per discussion. --- src/backend/utils/mb/encnames.c | 43 ++++++++++++++++++++++++++++++ src/backend/utils/mb/mbutils.c | 47 +++------------------------------ src/include/mb/pg_wchar.h | 11 ++++++++ 3 files changed, 57 insertions(+), 44 deletions(-) diff --git a/src/backend/utils/mb/encnames.c b/src/backend/utils/mb/encnames.c index c121559c9e..476418893d 100644 --- a/src/backend/utils/mb/encnames.c +++ b/src/backend/utils/mb/encnames.c @@ -430,6 +430,49 @@ pg_enc2name pg_enc2name_tbl[] = } }; +/* ---------- + * These are encoding names for gettext. + * ---------- + */ +pg_enc2gettext pg_enc2gettext_tbl[] = +{ + {PG_UTF8, "UTF-8"}, + {PG_LATIN1, "LATIN1"}, + {PG_LATIN2, "LATIN2"}, + {PG_LATIN3, "LATIN3"}, + {PG_LATIN4, "LATIN4"}, + {PG_ISO_8859_5, "ISO-8859-5"}, + {PG_ISO_8859_6, "ISO_8859-6"}, + {PG_ISO_8859_7, "ISO-8859-7"}, + {PG_ISO_8859_8, "ISO-8859-8"}, + {PG_LATIN5, "LATIN5"}, + {PG_LATIN6, "LATIN6"}, + {PG_LATIN7, "LATIN7"}, + {PG_LATIN8, "LATIN8"}, + {PG_LATIN9, "LATIN-9"}, + {PG_LATIN10, "LATIN10"}, + {PG_KOI8R, "KOI8-R"}, + {PG_KOI8U, "KOI8-U"}, + {PG_WIN1250, "CP1250"}, + {PG_WIN1251, "CP1251"}, + {PG_WIN1252, "CP1252"}, + {PG_WIN1253, "CP1253"}, + {PG_WIN1254, "CP1254"}, + {PG_WIN1255, "CP1255"}, + {PG_WIN1256, "CP1256"}, + {PG_WIN1257, "CP1257"}, + {PG_WIN1258, "CP1258"}, + {PG_WIN866, "CP866"}, + {PG_WIN874, "CP874"}, + {PG_EUC_CN, "EUC-CN"}, + {PG_EUC_JP, "EUC-JP"}, + {PG_EUC_KR, "EUC-KR"}, + {PG_EUC_TW, "EUC-TW"}, + {PG_EUC_JIS_2004, "EUC-JP"}, + {0, NULL} +}; + + /* ---------- * Encoding checks, for error returns -1 else encoding id * ---------- diff --git a/src/backend/utils/mb/mbutils.c b/src/backend/utils/mb/mbutils.c index e06500ee91..ca73938e00 100644 --- a/src/backend/utils/mb/mbutils.c +++ b/src/backend/utils/mb/mbutils.c @@ -890,47 +890,6 @@ cliplen(const char *str, int len, int limit) return l; } -#if defined(ENABLE_NLS) -static const struct codeset_map { - int encoding; - const char *codeset; -} codeset_map_array[] = { - {PG_UTF8, "UTF-8"}, - {PG_LATIN1, "LATIN1"}, - {PG_LATIN2, "LATIN2"}, - {PG_LATIN3, "LATIN3"}, - {PG_LATIN4, "LATIN4"}, - {PG_ISO_8859_5, "ISO-8859-5"}, - {PG_ISO_8859_6, "ISO_8859-6"}, - {PG_ISO_8859_7, "ISO-8859-7"}, - {PG_ISO_8859_8, "ISO-8859-8"}, - {PG_LATIN5, "LATIN5"}, - {PG_LATIN6, "LATIN6"}, - {PG_LATIN7, "LATIN7"}, - {PG_LATIN8, "LATIN8"}, - {PG_LATIN9, "LATIN-9"}, - {PG_LATIN10, "LATIN10"}, - {PG_KOI8R, "KOI8-R"}, - {PG_KOI8U, "KOI8-U"}, - {PG_WIN1250, "CP1250"}, - {PG_WIN1251, "CP1251"}, - {PG_WIN1252, "CP1252"}, - {PG_WIN1253, "CP1253"}, - {PG_WIN1254, "CP1254"}, - {PG_WIN1255, "CP1255"}, - {PG_WIN1256, "CP1256"}, - {PG_WIN1257, "CP1257"}, - {PG_WIN1258, "CP1258"}, - {PG_WIN866, "CP866"}, - {PG_WIN874, "CP874"}, - {PG_EUC_CN, "EUC-CN"}, - {PG_EUC_JP, "EUC-JP"}, - {PG_EUC_KR, "EUC-KR"}, - {PG_EUC_TW, "EUC-TW"}, - {PG_EUC_JIS_2004, "EUC-JP"} -}; -#endif /* ENABLE_NLS */ - void SetDatabaseEncoding(int encoding) { @@ -969,12 +928,12 @@ pg_bind_textdomain_codeset(const char *domainname) return; #endif - for (i = 0; i < lengthof(codeset_map_array); i++) + for (i = 0; pg_enc2gettext_tbl[i].name != NULL; i++) { - if (codeset_map_array[i].encoding == encoding) + if (pg_enc2gettext_tbl[i].encoding == encoding) { if (bind_textdomain_codeset(domainname, - codeset_map_array[i].codeset) == NULL) + pg_enc2gettext_tbl[i].name) == NULL) elog(LOG, "bind_textdomain_codeset failed"); break; } diff --git a/src/include/mb/pg_wchar.h b/src/include/mb/pg_wchar.h index fd8557c5d9..214368d6d6 100644 --- a/src/include/mb/pg_wchar.h +++ b/src/include/mb/pg_wchar.h @@ -261,6 +261,17 @@ typedef struct pg_enc2name extern pg_enc2name pg_enc2name_tbl[]; +/* + * Encoding names for gettext + */ +typedef struct pg_enc2gettext +{ + pg_enc encoding; + const char *name; +} pg_enc2gettext; + +extern pg_enc2gettext pg_enc2gettext_tbl[]; + /* * pg_wchar stuff */ -- 2.30.2