summaryrefslogtreecommitdiff
path: root/xfa/fgas/crt/cfgas_formatstring.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fgas/crt/cfgas_formatstring.cpp')
-rw-r--r--xfa/fgas/crt/cfgas_formatstring.cpp39
1 files changed, 20 insertions, 19 deletions
diff --git a/xfa/fgas/crt/cfgas_formatstring.cpp b/xfa/fgas/crt/cfgas_formatstring.cpp
index eaac969fd8..b8f6eeefca 100644
--- a/xfa/fgas/crt/cfgas_formatstring.cpp
+++ b/xfa/fgas/crt/cfgas_formatstring.cpp
@@ -246,7 +246,8 @@ bool ParseLocaleDate(const WideString& wsDate,
*cc += iLiteralLen;
ccf++;
continue;
- } else if (!wsDateSymbols.Contains(strf[ccf])) {
+ }
+ if (!wsDateSymbols.Contains(strf[ccf])) {
if (strf[ccf] != str[*cc])
return false;
(*cc)++;
@@ -885,6 +886,16 @@ FX_LOCALECATEGORY CFGAS_FormatString::GetCategory(const WideString& wsPattern) {
}
uint32_t dwHash = FX_HashCode_GetW(wsCategory.AsStringView(), false);
+ if (dwHash == FX_LOCALECATEGORY_DateTimeHash)
+ return FX_LOCALECATEGORY_DateTime;
+ if (dwHash == FX_LOCALECATEGORY_TextHash)
+ return FX_LOCALECATEGORY_Text;
+ if (dwHash == FX_LOCALECATEGORY_NumHash)
+ return FX_LOCALECATEGORY_Num;
+ if (dwHash == FX_LOCALECATEGORY_ZeroHash)
+ return FX_LOCALECATEGORY_Zero;
+ if (dwHash == FX_LOCALECATEGORY_NullHash)
+ return FX_LOCALECATEGORY_Null;
if (dwHash == FX_LOCALECATEGORY_DateHash) {
if (eCategory == FX_LOCALECATEGORY_Time)
return FX_LOCALECATEGORY_DateTime;
@@ -893,16 +904,6 @@ FX_LOCALECATEGORY CFGAS_FormatString::GetCategory(const WideString& wsPattern) {
if (eCategory == FX_LOCALECATEGORY_Date)
return FX_LOCALECATEGORY_DateTime;
eCategory = FX_LOCALECATEGORY_Time;
- } else if (dwHash == FX_LOCALECATEGORY_DateTimeHash) {
- return FX_LOCALECATEGORY_DateTime;
- } else if (dwHash == FX_LOCALECATEGORY_TextHash) {
- return FX_LOCALECATEGORY_Text;
- } else if (dwHash == FX_LOCALECATEGORY_NumHash) {
- return FX_LOCALECATEGORY_Num;
- } else if (dwHash == FX_LOCALECATEGORY_ZeroHash) {
- return FX_LOCALECATEGORY_Zero;
- } else if (dwHash == FX_LOCALECATEGORY_NullHash) {
- return FX_LOCALECATEGORY_Null;
}
} else if (pStr[ccf] == '}') {
bBraceOpen = false;
@@ -990,6 +991,10 @@ IFX_Locale* CFGAS_FormatString::GetNumericFormat(const WideString& wsPattern,
continue;
}
while (ccf < iLenf) {
+ if (pStr[ccf] == '{') {
+ bBrackOpen = true;
+ break;
+ }
if (pStr[ccf] == '(') {
ccf++;
WideString wsLCID;
@@ -997,9 +1002,6 @@ IFX_Locale* CFGAS_FormatString::GetNumericFormat(const WideString& wsPattern,
wsLCID += pStr[ccf++];
pLocale = m_pLocaleMgr->GetLocaleByName(wsLCID);
- } else if (pStr[ccf] == '{') {
- bBrackOpen = true;
- break;
} else if (pStr[ccf] == '.') {
WideString wsSubCategory;
ccf++;
@@ -1593,6 +1595,10 @@ FX_DATETIMETYPE CFGAS_FormatString::GetDateTimeFormat(
continue;
}
while (ccf < iLenf) {
+ if (pStr[ccf] == '{') {
+ bBraceOpen = true;
+ break;
+ }
if (pStr[ccf] == '(') {
ccf++;
WideString wsLCID;
@@ -1600,9 +1606,6 @@ FX_DATETIMETYPE CFGAS_FormatString::GetDateTimeFormat(
wsLCID += pStr[ccf++];
*pLocale = m_pLocaleMgr->GetLocaleByName(wsLCID);
- } else if (pStr[ccf] == '{') {
- bBraceOpen = true;
- break;
} else if (pStr[ccf] == '.') {
WideString wsSubCategory;
ccf++;
@@ -2314,10 +2317,8 @@ bool CFGAS_FormatString::FormatZero(const WideString& wsPattern,
if (pStrPattern[iPattern] == '\'') {
*wsOutput += GetLiteralText(pStrPattern, &iPattern, iLenPattern);
iPattern++;
- continue;
} else {
*wsOutput += pStrPattern[iPattern++];
- continue;
}
}
return true;