Replace FX_LANG_* definitions with enumerated class
Change-Id: I30ccf7bead10d523dffd7cbeeb65abdd36ca29da
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/83512
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/xfa/fxfa/parser/cxfa_localemgr.cpp b/xfa/fxfa/parser/cxfa_localemgr.cpp
index 3caec11..b870c45 100644
--- a/xfa/fxfa/parser/cxfa_localemgr.cpp
+++ b/xfa/fxfa/parser/cxfa_localemgr.cpp
@@ -25,22 +25,6 @@
#include "xfa/fxfa/parser/cxfa_xmllocale.h"
#include "xfa/fxfa/parser/xfa_utils.h"
-#define FX_LANG_zh_HK 0x0c04
-#define FX_LANG_zh_CN 0x0804
-#define FX_LANG_zh_TW 0x0404
-#define FX_LANG_nl_NL 0x0413
-#define FX_LANG_en_GB 0x0809
-#define FX_LANG_en_US 0x0409
-#define FX_LANG_fr_FR 0x040c
-#define FX_LANG_de_DE 0x0407
-#define FX_LANG_it_IT 0x0410
-#define FX_LANG_ja_JP 0x0411
-#define FX_LANG_ko_KR 0x0412
-#define FX_LANG_pt_BR 0x0416
-#define FX_LANG_ru_RU 0x0419
-#define FX_LANG_es_LA 0x080a
-#define FX_LANG_es_ES 0x0c0a
-
namespace {
// These arrays are the hex encoded XML strings which define the locale.
@@ -1081,9 +1065,9 @@
return CXFA_XMLLocale::Create(heap, pdfium::make_span(output.get(), dwSize));
}
-uint16_t GetLanguage(WideString wsLanguage) {
+CXFA_LocaleMgr::LangID GetLanguageID(WideString wsLanguage) {
if (wsLanguage.GetLength() < 2)
- return FX_LANG_en_US;
+ return CXFA_LocaleMgr::LangID::k_en_US;
wsLanguage.MakeLower();
uint32_t dwIDFirst = wsLanguage[0] << 8 | wsLanguage[1];
@@ -1092,36 +1076,38 @@
switch (dwIDFirst) {
case FXBSTR_ID(0, 0, 'z', 'h'):
if (dwIDSecond == FXBSTR_ID(0, 0, 'c', 'n'))
- return FX_LANG_zh_CN;
+ return CXFA_LocaleMgr::LangID::k_zh_CN;
if (dwIDSecond == FXBSTR_ID(0, 0, 't', 'w'))
- return FX_LANG_zh_TW;
+ return CXFA_LocaleMgr::LangID::k_zh_TW;
if (dwIDSecond == FXBSTR_ID(0, 0, 'h', 'k'))
- return FX_LANG_zh_HK;
+ return CXFA_LocaleMgr::LangID::k_zh_HK;
break;
case FXBSTR_ID(0, 0, 'j', 'a'):
- return FX_LANG_ja_JP;
+ return CXFA_LocaleMgr::LangID::k_ja_JP;
case FXBSTR_ID(0, 0, 'k', 'o'):
- return FX_LANG_ko_KR;
+ return CXFA_LocaleMgr::LangID::k_ko_KR;
case FXBSTR_ID(0, 0, 'e', 'n'):
- return dwIDSecond == FXBSTR_ID(0, 0, 'g', 'b') ? FX_LANG_en_GB
- : FX_LANG_en_US;
+ return dwIDSecond == FXBSTR_ID(0, 0, 'g', 'b')
+ ? CXFA_LocaleMgr::LangID::k_en_GB
+ : CXFA_LocaleMgr::LangID::k_en_US;
case FXBSTR_ID(0, 0, 'd', 'e'):
- return FX_LANG_de_DE;
+ return CXFA_LocaleMgr::LangID::k_de_DE;
case FXBSTR_ID(0, 0, 'f', 'r'):
- return FX_LANG_fr_FR;
+ return CXFA_LocaleMgr::LangID::k_fr_FR;
case FXBSTR_ID(0, 0, 'e', 's'):
- return dwIDSecond == FXBSTR_ID(0, 0, 'e', 's') ? FX_LANG_es_ES
- : FX_LANG_es_LA;
+ return dwIDSecond == FXBSTR_ID(0, 0, 'e', 's')
+ ? CXFA_LocaleMgr::LangID::k_es_ES
+ : CXFA_LocaleMgr::LangID::k_es_LA;
case FXBSTR_ID(0, 0, 'i', 't'):
- return FX_LANG_it_IT;
+ return CXFA_LocaleMgr::LangID::k_it_IT;
case FXBSTR_ID(0, 0, 'p', 't'):
- return FX_LANG_pt_BR;
+ return CXFA_LocaleMgr::LangID::k_pt_BR;
case FXBSTR_ID(0, 0, 'n', 'l'):
- return FX_LANG_nl_NL;
+ return CXFA_LocaleMgr::LangID::k_nl_NL;
case FXBSTR_ID(0, 0, 'r', 'u'):
- return FX_LANG_ru_RU;
+ return CXFA_LocaleMgr::LangID::k_ru_RU;
}
- return FX_LANG_en_US;
+ return CXFA_LocaleMgr::LangID::k_en_US;
}
} // namespace
@@ -1131,7 +1117,7 @@
WideString wsDeflcid)
: m_pHeap(pHeap),
m_pDefLocale(GetLocaleByName(wsDeflcid)),
- m_dwDeflcid(GetLanguage(wsDeflcid)) {
+ m_eDeflcid(GetLanguageID(wsDeflcid)) {
if (!pLocaleSet)
return;
@@ -1160,7 +1146,7 @@
if (!m_XMLLocaleArray.empty())
return m_XMLLocaleArray[0];
- CXFA_XMLLocale* pLocale = GetLocale(m_dwDeflcid);
+ CXFA_XMLLocale* pLocale = GetLocale(m_eDeflcid);
if (pLocale)
m_XMLLocaleArray.push_back(pLocale);
@@ -1168,37 +1154,37 @@
return m_pDefLocale;
}
-CXFA_XMLLocale* CXFA_LocaleMgr::GetLocale(uint16_t lcid) {
+CXFA_XMLLocale* CXFA_LocaleMgr::GetLocale(LangID lcid) {
switch (lcid) {
- case FX_LANG_zh_CN:
+ case LangID::k_zh_CN:
return GetLocaleFromBuffer(m_pHeap, g_zhCN_Locale);
- case FX_LANG_zh_TW:
+ case LangID::k_zh_TW:
return GetLocaleFromBuffer(m_pHeap, g_zhTW_Locale);
- case FX_LANG_zh_HK:
+ case LangID::k_zh_HK:
return GetLocaleFromBuffer(m_pHeap, g_zhHK_Locale);
- case FX_LANG_ja_JP:
+ case LangID::k_ja_JP:
return GetLocaleFromBuffer(m_pHeap, g_jaJP_Locale);
- case FX_LANG_ko_KR:
+ case LangID::k_ko_KR:
return GetLocaleFromBuffer(m_pHeap, g_koKR_Locale);
- case FX_LANG_en_GB:
+ case LangID::k_en_GB:
return GetLocaleFromBuffer(m_pHeap, g_enGB_Locale);
- case FX_LANG_es_LA:
+ case LangID::k_es_LA:
return GetLocaleFromBuffer(m_pHeap, g_esLA_Locale);
- case FX_LANG_es_ES:
+ case LangID::k_es_ES:
return GetLocaleFromBuffer(m_pHeap, g_esES_Locale);
- case FX_LANG_de_DE:
+ case LangID::k_de_DE:
return GetLocaleFromBuffer(m_pHeap, g_deDE_Loacale);
- case FX_LANG_fr_FR:
+ case LangID::k_fr_FR:
return GetLocaleFromBuffer(m_pHeap, g_frFR_Locale);
- case FX_LANG_it_IT:
+ case LangID::k_it_IT:
return GetLocaleFromBuffer(m_pHeap, g_itIT_Locale);
- case FX_LANG_pt_BR:
+ case LangID::k_pt_BR:
return GetLocaleFromBuffer(m_pHeap, g_ptBR_Locale);
- case FX_LANG_nl_NL:
+ case LangID::k_nl_NL:
return GetLocaleFromBuffer(m_pHeap, g_nlNL_Locale);
- case FX_LANG_ru_RU:
+ case LangID::k_ru_RU:
return GetLocaleFromBuffer(m_pHeap, g_ruRU_Locale);
- case FX_LANG_en_US:
+ case LangID::k_en_US:
default:
return GetLocaleFromBuffer(m_pHeap, g_enUS_Locale);
}
@@ -1220,7 +1206,7 @@
return pLocale;
}
- CXFA_XMLLocale* pLocale = GetLocale(GetLanguage(wsLocaleName));
+ CXFA_XMLLocale* pLocale = GetLocale(GetLanguageID(wsLocaleName));
if (!pLocale)
return nullptr;
diff --git a/xfa/fxfa/parser/cxfa_localemgr.h b/xfa/fxfa/parser/cxfa_localemgr.h
index e9fdf44..1f61f31 100644
--- a/xfa/fxfa/parser/cxfa_localemgr.h
+++ b/xfa/fxfa/parser/cxfa_localemgr.h
@@ -26,6 +26,24 @@
class CXFA_LocaleMgr : public cppgc::GarbageCollected<CXFA_LocaleMgr>,
public LocaleMgrIface {
public:
+ enum class LangID : uint16_t {
+ k_zh_HK = 0x0c04,
+ k_zh_CN = 0x0804,
+ k_zh_TW = 0x0404,
+ k_nl_NL = 0x0413,
+ k_en_GB = 0x0809,
+ k_en_US = 0x0409,
+ k_fr_FR = 0x040c,
+ k_de_DE = 0x0407,
+ k_it_IT = 0x0410,
+ k_ja_JP = 0x0411,
+ k_ko_KR = 0x0412,
+ k_pt_BR = 0x0416,
+ k_ru_RU = 0x0419,
+ k_es_LA = 0x080a,
+ k_es_ES = 0x0c0a,
+ };
+
CONSTRUCT_VIA_MAKE_GARBAGE_COLLECTED;
~CXFA_LocaleMgr() override;
@@ -43,7 +61,7 @@
WideString wsDeflcid);
// May allocate a new object on the cppgc heap.
- CXFA_XMLLocale* GetLocale(uint16_t lcid);
+ CXFA_XMLLocale* GetLocale(LangID lcid);
UnownedPtr<cppgc::Heap> m_pHeap;
std::vector<cppgc::Member<CXFA_NodeLocale>> m_LocaleArray;
@@ -60,7 +78,7 @@
mutable Optional<WideString> m_wsConfigLocale;
mutable bool m_bConfigLocaleCached = false;
- uint16_t m_dwDeflcid;
+ LangID m_eDeflcid;
};
#endif // XFA_FXFA_PARSER_CXFA_LOCALEMGR_H_