Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(78)

Side by Side Diff: xfa/fgas/localization/fgas_locale.cpp

Issue 1830323006: Remove FX_DWORD from XFA. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/fgas/layout/fgas_textbreak.cpp ('k') | xfa/fgas/localization/fgas_localemgr.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "core/fxcrt/include/fx_ext.h" 9 #include "core/fxcrt/include/fx_ext.h"
10 #include "core/fxcrt/include/fx_xml.h" 10 #include "core/fxcrt/include/fx_xml.h"
(...skipping 26 matching lines...) Expand all
37 static const FX_LOCALESUBCATEGORYINFO g_FXLocaleNumSubCatData[] = { 37 static const FX_LOCALESUBCATEGORYINFO g_FXLocaleNumSubCatData[] = {
38 {0x46f95531, L"percent", FX_LOCALENUMPATTERN_Percent}, 38 {0x46f95531, L"percent", FX_LOCALENUMPATTERN_Percent},
39 {0x4c4e8acb, L"currency", FX_LOCALENUMPATTERN_Currency}, 39 {0x4c4e8acb, L"currency", FX_LOCALENUMPATTERN_Currency},
40 {0x54034c2f, L"decimal", FX_LOCALENUMPATTERN_Decimal}, 40 {0x54034c2f, L"decimal", FX_LOCALENUMPATTERN_Decimal},
41 {0x7568e6ae, L"integer", FX_LOCALENUMPATTERN_Integer}, 41 {0x7568e6ae, L"integer", FX_LOCALENUMPATTERN_Integer},
42 }; 42 };
43 static const int32_t g_iFXLocaleNumSubCatCount = 43 static const int32_t g_iFXLocaleNumSubCatCount =
44 sizeof(g_FXLocaleNumSubCatData) / sizeof(FX_LOCALESUBCATEGORYINFO); 44 sizeof(g_FXLocaleNumSubCatData) / sizeof(FX_LOCALESUBCATEGORYINFO);
45 45
46 struct FX_LOCALETIMEZONEINFO { 46 struct FX_LOCALETIMEZONEINFO {
47 FX_DWORD uHash; 47 uint32_t uHash;
48 int16_t iHour; 48 int16_t iHour;
49 int16_t iMinute; 49 int16_t iMinute;
50 }; 50 };
51 51
52 static const FX_LOCALETIMEZONEINFO g_FXLocaleTimeZoneData[] = { 52 static const FX_LOCALETIMEZONEINFO g_FXLocaleTimeZoneData[] = {
53 {FXBSTR_ID(0, 'C', 'D', 'T'), -5, 0}, {FXBSTR_ID(0, 'C', 'S', 'T'), -6, 0}, 53 {FXBSTR_ID(0, 'C', 'D', 'T'), -5, 0}, {FXBSTR_ID(0, 'C', 'S', 'T'), -6, 0},
54 {FXBSTR_ID(0, 'E', 'D', 'T'), -4, 0}, {FXBSTR_ID(0, 'E', 'S', 'T'), -5, 0}, 54 {FXBSTR_ID(0, 'E', 'D', 'T'), -4, 0}, {FXBSTR_ID(0, 'E', 'S', 'T'), -5, 0},
55 {FXBSTR_ID(0, 'M', 'D', 'T'), -6, 0}, {FXBSTR_ID(0, 'M', 'S', 'T'), -7, 0}, 55 {FXBSTR_ID(0, 'M', 'D', 'T'), -6, 0}, {FXBSTR_ID(0, 'M', 'S', 'T'), -7, 0},
56 {FXBSTR_ID(0, 'P', 'D', 'T'), -7, 0}, {FXBSTR_ID(0, 'P', 'S', 'T'), -8, 0}, 56 {FXBSTR_ID(0, 'P', 'D', 'T'), -7, 0}, {FXBSTR_ID(0, 'P', 'S', 'T'), -8, 0},
57 }; 57 };
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 if (!FX_IsDigit(str[cc])) { 360 if (!FX_IsDigit(str[cc])) {
361 if ((str[cc] == 'E' || str[cc] == 'e')) 361 if ((str[cc] == 'E' || str[cc] == 'e'))
362 break; 362 break;
363 else 363 else
364 return FALSE; 364 return FALSE;
365 } 365 }
366 fraction += gs_fraction_scales[scale] * (str[cc] - '0'); 366 fraction += gs_fraction_scales[scale] * (str[cc] - '0');
367 scale++; 367 scale++;
368 cc++; 368 cc++;
369 } 369 }
370 lcnum.m_Fractional = (FX_DWORD)(fraction * 4294967296.0); 370 lcnum.m_Fractional = (uint32_t)(fraction * 4294967296.0);
371 } 371 }
372 if (cc < len && (str[cc] == 'E' || str[cc] == 'e')) { 372 if (cc < len && (str[cc] == 'E' || str[cc] == 'e')) {
373 cc++; 373 cc++;
374 if (cc < len) { 374 if (cc < len) {
375 if (str[cc] == '+') { 375 if (str[cc] == '+') {
376 cc++; 376 cc++;
377 } else if (str[cc] == '-') { 377 } else if (str[cc] == '-') {
378 bExpSign = true; 378 bExpSign = true;
379 cc++; 379 cc++;
380 } 380 }
381 } 381 }
382 while (cc < len) { 382 while (cc < len) {
383 if (FX_IsDigit(str[cc])) 383 if (FX_IsDigit(str[cc]))
384 return FALSE; 384 return FALSE;
385 lcnum.m_Exponent = lcnum.m_Exponent * 10 + str[cc] - '0'; 385 lcnum.m_Exponent = lcnum.m_Exponent * 10 + str[cc] - '0';
386 cc++; 386 cc++;
387 } 387 }
388 lcnum.m_Exponent = bExpSign ? -lcnum.m_Exponent : lcnum.m_Exponent; 388 lcnum.m_Exponent = bExpSign ? -lcnum.m_Exponent : lcnum.m_Exponent;
389 } 389 }
390 return TRUE; 390 return TRUE;
391 } 391 }
392 392
393 CFX_LCNumeric::CFX_LCNumeric() { 393 CFX_LCNumeric::CFX_LCNumeric() {
394 m_Integral = 0; 394 m_Integral = 0;
395 m_Fractional = 0; 395 m_Fractional = 0;
396 m_Exponent = 0; 396 m_Exponent = 0;
397 } 397 }
398 CFX_LCNumeric::CFX_LCNumeric(int64_t integral, 398 CFX_LCNumeric::CFX_LCNumeric(int64_t integral,
399 FX_DWORD fractional, 399 uint32_t fractional,
400 int32_t exponent) { 400 int32_t exponent) {
401 m_Integral = integral; 401 m_Integral = integral;
402 m_Fractional = fractional; 402 m_Fractional = fractional;
403 m_Exponent = exponent; 403 m_Exponent = exponent;
404 } 404 }
405 CFX_LCNumeric::CFX_LCNumeric(FX_FLOAT dbRetValue) { 405 CFX_LCNumeric::CFX_LCNumeric(FX_FLOAT dbRetValue) {
406 m_Integral = (int64_t)dbRetValue; 406 m_Integral = (int64_t)dbRetValue;
407 m_Fractional = (FX_DWORD)(((dbRetValue > 0) ? (dbRetValue - m_Integral) 407 m_Fractional = (uint32_t)(((dbRetValue > 0) ? (dbRetValue - m_Integral)
408 : (m_Integral - dbRetValue)) * 408 : (m_Integral - dbRetValue)) *
409 4294967296); 409 4294967296);
410 m_Exponent = 0; 410 m_Exponent = 0;
411 } 411 }
412 CFX_LCNumeric::CFX_LCNumeric(double dbvalue) { 412 CFX_LCNumeric::CFX_LCNumeric(double dbvalue) {
413 m_Integral = (int64_t)dbvalue; 413 m_Integral = (int64_t)dbvalue;
414 m_Fractional = (FX_DWORD)( 414 m_Fractional = (uint32_t)(
415 ((dbvalue > 0) ? (dbvalue - m_Integral) : (m_Integral - dbvalue)) * 415 ((dbvalue > 0) ? (dbvalue - m_Integral) : (m_Integral - dbvalue)) *
416 4294967296); 416 4294967296);
417 m_Exponent = 0; 417 m_Exponent = 0;
418 } 418 }
419 CFX_LCNumeric::CFX_LCNumeric(CFX_WideString& wsNumeric) { 419 CFX_LCNumeric::CFX_LCNumeric(CFX_WideString& wsNumeric) {
420 FX_WStringToNumeric(wsNumeric, *this); 420 FX_WStringToNumeric(wsNumeric, *this);
421 } 421 }
422 FX_FLOAT CFX_LCNumeric::GetFloat() const { 422 FX_FLOAT CFX_LCNumeric::GetFloat() const {
423 FX_FLOAT dbRetValue = m_Fractional / 4294967296.0f; 423 FX_FLOAT dbRetValue = m_Fractional / 4294967296.0f;
424 dbRetValue = m_Integral + (m_Integral >= 0 ? dbRetValue : -dbRetValue); 424 dbRetValue = m_Integral + (m_Integral >= 0 ? dbRetValue : -dbRetValue);
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 if (pStr[ccf] == '.' || pStr[ccf] == '(') { 592 if (pStr[ccf] == '.' || pStr[ccf] == '(') {
593 break; 593 break;
594 } 594 }
595 if (pStr[ccf] == '{') { 595 if (pStr[ccf] == '{') {
596 bBraceOpen = TRUE; 596 bBraceOpen = TRUE;
597 break; 597 break;
598 } 598 }
599 wsCategory += pStr[ccf]; 599 wsCategory += pStr[ccf];
600 ccf++; 600 ccf++;
601 } 601 }
602 FX_DWORD dwHash = 602 uint32_t dwHash =
603 FX_HashCode_String_GetW(wsCategory, wsCategory.GetLength()); 603 FX_HashCode_String_GetW(wsCategory, wsCategory.GetLength());
604 if (dwHash == FX_LOCALECATEGORY_DateHash) { 604 if (dwHash == FX_LOCALECATEGORY_DateHash) {
605 if (eCategory == FX_LOCALECATEGORY_Time) { 605 if (eCategory == FX_LOCALECATEGORY_Time) {
606 return FX_LOCALECATEGORY_DateTime; 606 return FX_LOCALECATEGORY_DateTime;
607 } 607 }
608 eCategory = FX_LOCALECATEGORY_Date; 608 eCategory = FX_LOCALECATEGORY_Date;
609 } else if (dwHash == FX_LOCALECATEGORY_TimeHash) { 609 } else if (dwHash == FX_LOCALECATEGORY_TimeHash) {
610 if (eCategory == FX_LOCALECATEGORY_Date) { 610 if (eCategory == FX_LOCALECATEGORY_Date) {
611 return FX_LOCALECATEGORY_DateTime; 611 return FX_LOCALECATEGORY_DateTime;
612 } 612 }
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
708 if (!pLocale) { 708 if (!pLocale) {
709 pLocale = m_pLocaleMgr->GetDefLocale(); 709 pLocale = m_pLocaleMgr->GetDefLocale();
710 } 710 }
711 return pLocale; 711 return pLocale;
712 } 712 }
713 #define FX_NUMSTYLE_Percent 0x01 713 #define FX_NUMSTYLE_Percent 0x01
714 #define FX_NUMSTYLE_Exponent 0x02 714 #define FX_NUMSTYLE_Exponent 0x02
715 #define FX_NUMSTYLE_DotVorv 0x04 715 #define FX_NUMSTYLE_DotVorv 0x04
716 IFX_Locale* CFX_FormatString::GetNumericFormat(const CFX_WideString& wsPattern, 716 IFX_Locale* CFX_FormatString::GetNumericFormat(const CFX_WideString& wsPattern,
717 int32_t& iDotIndex, 717 int32_t& iDotIndex,
718 FX_DWORD& dwStyle, 718 uint32_t& dwStyle,
719 CFX_WideString& wsPurgePattern) { 719 CFX_WideString& wsPurgePattern) {
720 dwStyle = 0; 720 dwStyle = 0;
721 IFX_Locale* pLocale = NULL; 721 IFX_Locale* pLocale = NULL;
722 int32_t ccf = 0; 722 int32_t ccf = 0;
723 int32_t iLenf = wsPattern.GetLength(); 723 int32_t iLenf = wsPattern.GetLength();
724 const FX_WCHAR* pStr = (const FX_WCHAR*)wsPattern; 724 const FX_WCHAR* pStr = (const FX_WCHAR*)wsPattern;
725 FX_BOOL bFindDot = FALSE; 725 FX_BOOL bFindDot = FALSE;
726 FX_BOOL bBrackOpen = FALSE; 726 FX_BOOL bBrackOpen = FALSE;
727 while (ccf < iLenf) { 727 while (ccf < iLenf) {
728 if (pStr[ccf] == '\'') { 728 if (pStr[ccf] == '\'') {
(...skipping 23 matching lines...) Expand all
752 pLocale = GetPatternLocale(wsLCID); 752 pLocale = GetPatternLocale(wsLCID);
753 } else if (pStr[ccf] == '{') { 753 } else if (pStr[ccf] == '{') {
754 bBrackOpen = TRUE; 754 bBrackOpen = TRUE;
755 break; 755 break;
756 } else if (pStr[ccf] == '.') { 756 } else if (pStr[ccf] == '.') {
757 CFX_WideString wsSubCategory; 757 CFX_WideString wsSubCategory;
758 ccf++; 758 ccf++;
759 while (ccf < iLenf && pStr[ccf] != '(' && pStr[ccf] != '{') { 759 while (ccf < iLenf && pStr[ccf] != '(' && pStr[ccf] != '{') {
760 wsSubCategory += pStr[ccf++]; 760 wsSubCategory += pStr[ccf++];
761 } 761 }
762 FX_DWORD dwSubHash = 762 uint32_t dwSubHash =
763 FX_HashCode_String_GetW(wsSubCategory, wsSubCategory.GetLength()); 763 FX_HashCode_String_GetW(wsSubCategory, wsSubCategory.GetLength());
764 FX_LOCALENUMSUBCATEGORY eSubCategory = FX_LOCALENUMPATTERN_Decimal; 764 FX_LOCALENUMSUBCATEGORY eSubCategory = FX_LOCALENUMPATTERN_Decimal;
765 for (int32_t i = 0; i < g_iFXLocaleNumSubCatCount; i++) { 765 for (int32_t i = 0; i < g_iFXLocaleNumSubCatCount; i++) {
766 if (g_FXLocaleNumSubCatData[i].uHash == dwSubHash) { 766 if (g_FXLocaleNumSubCatData[i].uHash == dwSubHash) {
767 eSubCategory = (FX_LOCALENUMSUBCATEGORY)g_FXLocaleNumSubCatData[i] 767 eSubCategory = (FX_LOCALENUMSUBCATEGORY)g_FXLocaleNumSubCatData[i]
768 .eSubCategory; 768 .eSubCategory;
769 break; 769 break;
770 } 770 }
771 } 771 }
772 wsSubCategory.Empty(); 772 wsSubCategory.Empty();
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
913 return iPattern == iLenPattern && iText == iLenText; 913 return iPattern == iLenPattern && iText == iLenText;
914 } 914 }
915 FX_BOOL CFX_FormatString::ParseNum(const CFX_WideString& wsSrcNum, 915 FX_BOOL CFX_FormatString::ParseNum(const CFX_WideString& wsSrcNum,
916 const CFX_WideString& wsPattern, 916 const CFX_WideString& wsPattern,
917 FX_FLOAT& fValue) { 917 FX_FLOAT& fValue) {
918 fValue = 0.0f; 918 fValue = 0.0f;
919 if (wsSrcNum.IsEmpty() || wsPattern.IsEmpty()) { 919 if (wsSrcNum.IsEmpty() || wsPattern.IsEmpty()) {
920 return FALSE; 920 return FALSE;
921 } 921 }
922 int32_t dot_index_f = -1; 922 int32_t dot_index_f = -1;
923 FX_DWORD dwFormatStyle = 0; 923 uint32_t dwFormatStyle = 0;
924 CFX_WideString wsNumFormat; 924 CFX_WideString wsNumFormat;
925 IFX_Locale* pLocale = 925 IFX_Locale* pLocale =
926 GetNumericFormat(wsPattern, dot_index_f, dwFormatStyle, wsNumFormat); 926 GetNumericFormat(wsPattern, dot_index_f, dwFormatStyle, wsNumFormat);
927 if (!pLocale || wsNumFormat.IsEmpty()) { 927 if (!pLocale || wsNumFormat.IsEmpty()) {
928 return FALSE; 928 return FALSE;
929 } 929 }
930 int32_t iExponent = 0; 930 int32_t iExponent = 0;
931 CFX_WideString wsDotSymbol; 931 CFX_WideString wsDotSymbol;
932 pLocale->GetNumbericSymbol(FX_LOCALENUMSYMBOL_Decimal, wsDotSymbol); 932 pLocale->GetNumbericSymbol(FX_LOCALENUMSYMBOL_Decimal, wsDotSymbol);
933 CFX_WideString wsGroupSymbol; 933 CFX_WideString wsGroupSymbol;
(...skipping 745 matching lines...) Expand 10 before | Expand all | Expand 10 after
1679 wsResult.ReleaseBuffer(nIndex); 1679 wsResult.ReleaseBuffer(nIndex);
1680 } 1680 }
1681 FX_BOOL CFX_FormatString::ParseNum(const CFX_WideString& wsSrcNum, 1681 FX_BOOL CFX_FormatString::ParseNum(const CFX_WideString& wsSrcNum,
1682 const CFX_WideString& wsPattern, 1682 const CFX_WideString& wsPattern,
1683 CFX_WideString& wsValue) { 1683 CFX_WideString& wsValue) {
1684 wsValue.Empty(); 1684 wsValue.Empty();
1685 if (wsSrcNum.IsEmpty() || wsPattern.IsEmpty()) { 1685 if (wsSrcNum.IsEmpty() || wsPattern.IsEmpty()) {
1686 return FALSE; 1686 return FALSE;
1687 } 1687 }
1688 int32_t dot_index_f = -1; 1688 int32_t dot_index_f = -1;
1689 FX_DWORD dwFormatStyle = 0; 1689 uint32_t dwFormatStyle = 0;
1690 CFX_WideString wsNumFormat; 1690 CFX_WideString wsNumFormat;
1691 IFX_Locale* pLocale = 1691 IFX_Locale* pLocale =
1692 GetNumericFormat(wsPattern, dot_index_f, dwFormatStyle, wsNumFormat); 1692 GetNumericFormat(wsPattern, dot_index_f, dwFormatStyle, wsNumFormat);
1693 if (!pLocale || wsNumFormat.IsEmpty()) { 1693 if (!pLocale || wsNumFormat.IsEmpty()) {
1694 return FALSE; 1694 return FALSE;
1695 } 1695 }
1696 int32_t iExponent = 0; 1696 int32_t iExponent = 0;
1697 CFX_WideString wsDotSymbol; 1697 CFX_WideString wsDotSymbol;
1698 pLocale->GetNumbericSymbol(FX_LOCALENUMSYMBOL_Decimal, wsDotSymbol); 1698 pLocale->GetNumbericSymbol(FX_LOCALENUMSYMBOL_Decimal, wsDotSymbol);
1699 CFX_WideString wsGroupSymbol; 1699 CFX_WideString wsGroupSymbol;
(...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after
2229 pLocale = GetPatternLocale(wsLCID); 2229 pLocale = GetPatternLocale(wsLCID);
2230 } else if (pStr[ccf] == '{') { 2230 } else if (pStr[ccf] == '{') {
2231 bBraceOpen = TRUE; 2231 bBraceOpen = TRUE;
2232 break; 2232 break;
2233 } else if (pStr[ccf] == '.') { 2233 } else if (pStr[ccf] == '.') {
2234 CFX_WideString wsSubCategory; 2234 CFX_WideString wsSubCategory;
2235 ccf++; 2235 ccf++;
2236 while (ccf < iLenf && pStr[ccf] != '(' && pStr[ccf] != '{') { 2236 while (ccf < iLenf && pStr[ccf] != '(' && pStr[ccf] != '{') {
2237 wsSubCategory += pStr[ccf++]; 2237 wsSubCategory += pStr[ccf++];
2238 } 2238 }
2239 FX_DWORD dwSubHash = 2239 uint32_t dwSubHash =
2240 FX_HashCode_String_GetW(wsSubCategory, wsSubCategory.GetLength()); 2240 FX_HashCode_String_GetW(wsSubCategory, wsSubCategory.GetLength());
2241 FX_LOCALEDATETIMESUBCATEGORY eSubCategory = 2241 FX_LOCALEDATETIMESUBCATEGORY eSubCategory =
2242 FX_LOCALEDATETIMESUBCATEGORY_Medium; 2242 FX_LOCALEDATETIMESUBCATEGORY_Medium;
2243 for (int32_t i = 0; i < g_iFXLocaleDateTimeSubCatCount; i++) { 2243 for (int32_t i = 0; i < g_iFXLocaleDateTimeSubCatCount; i++) {
2244 if (g_FXLocaleDateTimeSubCatData[i].uHash == dwSubHash) { 2244 if (g_FXLocaleDateTimeSubCatData[i].uHash == dwSubHash) {
2245 eSubCategory = 2245 eSubCategory =
2246 (FX_LOCALEDATETIMESUBCATEGORY)g_FXLocaleDateTimeSubCatData[i] 2246 (FX_LOCALEDATETIMESUBCATEGORY)g_FXLocaleDateTimeSubCatData[i]
2247 .eSubCategory; 2247 .eSubCategory;
2248 break; 2248 break;
2249 } 2249 }
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
2330 ccf++; 2330 ccf++;
2331 continue; 2331 continue;
2332 } else if (FX_Local_Find(gs_wsDateSymbols, strf[ccf]) < 0) { 2332 } else if (FX_Local_Find(gs_wsDateSymbols, strf[ccf]) < 0) {
2333 if (strf[ccf] != str[cc]) { 2333 if (strf[ccf] != str[cc]) {
2334 return FALSE; 2334 return FALSE;
2335 } 2335 }
2336 cc++; 2336 cc++;
2337 ccf++; 2337 ccf++;
2338 continue; 2338 continue;
2339 } 2339 }
2340 FX_DWORD dwSymbolNum = 1; 2340 uint32_t dwSymbolNum = 1;
2341 FX_DWORD dwSymbol = strf[ccf++]; 2341 uint32_t dwSymbol = strf[ccf++];
2342 while (ccf < lenf && strf[ccf] == dwSymbol) { 2342 while (ccf < lenf && strf[ccf] == dwSymbol) {
2343 ccf++; 2343 ccf++;
2344 dwSymbolNum++; 2344 dwSymbolNum++;
2345 } 2345 }
2346 dwSymbol = (dwSymbol << 8) | (dwSymbolNum + '0'); 2346 dwSymbol = (dwSymbol << 8) | (dwSymbolNum + '0');
2347 if (dwSymbol == FXBSTR_ID(0, 0, 'D', '1')) { 2347 if (dwSymbol == FXBSTR_ID(0, 0, 'D', '1')) {
2348 if (!FX_IsDigit(str[cc])) { 2348 if (!FX_IsDigit(str[cc])) {
2349 return FALSE; 2349 return FALSE;
2350 } 2350 }
2351 day = str[cc++] - '0'; 2351 day = str[cc++] - '0';
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
2549 ccf++; 2549 ccf++;
2550 continue; 2550 continue;
2551 } else if (FX_Local_Find(gs_wsTimeSymbols, strf[ccf]) == -1) { 2551 } else if (FX_Local_Find(gs_wsTimeSymbols, strf[ccf]) == -1) {
2552 if (strf[ccf] != str[cc]) { 2552 if (strf[ccf] != str[cc]) {
2553 return FALSE; 2553 return FALSE;
2554 } 2554 }
2555 cc++; 2555 cc++;
2556 ccf++; 2556 ccf++;
2557 continue; 2557 continue;
2558 } 2558 }
2559 FX_DWORD dwSymbolNum = 1; 2559 uint32_t dwSymbolNum = 1;
2560 FX_DWORD dwSymbol = strf[ccf++]; 2560 uint32_t dwSymbol = strf[ccf++];
2561 while (ccf < lenf && strf[ccf] == dwSymbol) { 2561 while (ccf < lenf && strf[ccf] == dwSymbol) {
2562 ccf++; 2562 ccf++;
2563 dwSymbolNum++; 2563 dwSymbolNum++;
2564 } 2564 }
2565 dwSymbol = (dwSymbol << 8) | (dwSymbolNum + '0'); 2565 dwSymbol = (dwSymbol << 8) | (dwSymbolNum + '0');
2566 if (dwSymbol == FXBSTR_ID(0, 0, 'k', '1') || 2566 if (dwSymbol == FXBSTR_ID(0, 0, 'k', '1') ||
2567 dwSymbol == FXBSTR_ID(0, 0, 'H', '1') || 2567 dwSymbol == FXBSTR_ID(0, 0, 'H', '1') ||
2568 dwSymbol == FXBSTR_ID(0, 0, 'h', '1') || 2568 dwSymbol == FXBSTR_ID(0, 0, 'h', '1') ||
2569 dwSymbol == FXBSTR_ID(0, 0, 'K', '1')) { 2569 dwSymbol == FXBSTR_ID(0, 0, 'K', '1')) {
2570 if (!FX_IsDigit(str[cc])) { 2570 if (!FX_IsDigit(str[cc])) {
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
2659 } else if ((cc + wsPM.GetLength() <= len) && 2659 } else if ((cc + wsPM.GetLength() <= len) &&
2660 (CFX_WideStringC(str + cc, wsPM.GetLength()) == wsPM)) { 2660 (CFX_WideStringC(str + cc, wsPM.GetLength()) == wsPM)) {
2661 cc += wsPM.GetLength(); 2661 cc += wsPM.GetLength();
2662 bHasA = TRUE; 2662 bHasA = TRUE;
2663 bPM = TRUE; 2663 bPM = TRUE;
2664 } 2664 }
2665 } else if (dwSymbol == FXBSTR_ID(0, 0, 'Z', '1')) { 2665 } else if (dwSymbol == FXBSTR_ID(0, 0, 'Z', '1')) {
2666 if (cc + 3 > len) { 2666 if (cc + 3 > len) {
2667 continue; 2667 continue;
2668 } 2668 }
2669 FX_DWORD dwHash = str[cc++]; 2669 uint32_t dwHash = str[cc++];
2670 dwHash = (dwHash << 8) | str[cc++]; 2670 dwHash = (dwHash << 8) | str[cc++];
2671 dwHash = (dwHash << 8) | str[cc++]; 2671 dwHash = (dwHash << 8) | str[cc++];
2672 if (dwHash == FXBSTR_ID(0, 'G', 'M', 'T')) { 2672 if (dwHash == FXBSTR_ID(0, 'G', 'M', 'T')) {
2673 FX_TIMEZONE tzDiff; 2673 FX_TIMEZONE tzDiff;
2674 tzDiff.tzHour = 0; 2674 tzDiff.tzHour = 0;
2675 tzDiff.tzMinute = 0; 2675 tzDiff.tzMinute = 0;
2676 if (cc < len && (str[cc] == '-' || str[cc] == '+')) { 2676 if (cc < len && (str[cc] == '-' || str[cc] == '+')) {
2677 cc += FX_ParseTimeZone(str + cc, len - cc, tzDiff); 2677 cc += FX_ParseTimeZone(str + cc, len - cc, tzDiff);
2678 } 2678 }
2679 FX_ResolveZone(hour, minute, tzDiff, pLocale); 2679 FX_ResolveZone(hour, minute, tzDiff, pLocale);
2680 } else { 2680 } else {
2681 const FX_LOCALETIMEZONEINFO* pEnd = 2681 const FX_LOCALETIMEZONEINFO* pEnd =
2682 g_FXLocaleTimeZoneData + FX_ArraySize(g_FXLocaleTimeZoneData); 2682 g_FXLocaleTimeZoneData + FX_ArraySize(g_FXLocaleTimeZoneData);
2683 const FX_LOCALETIMEZONEINFO* pTimeZoneInfo = 2683 const FX_LOCALETIMEZONEINFO* pTimeZoneInfo =
2684 std::lower_bound(g_FXLocaleTimeZoneData, pEnd, dwHash, 2684 std::lower_bound(g_FXLocaleTimeZoneData, pEnd, dwHash,
2685 [](const FX_LOCALETIMEZONEINFO& info, 2685 [](const FX_LOCALETIMEZONEINFO& info,
2686 FX_DWORD hash) { return info.uHash < hash; }); 2686 uint32_t hash) { return info.uHash < hash; });
2687 if (pTimeZoneInfo < pEnd && dwHash == pTimeZoneInfo->uHash) { 2687 if (pTimeZoneInfo < pEnd && dwHash == pTimeZoneInfo->uHash) {
2688 hour += pTimeZoneInfo->iHour; 2688 hour += pTimeZoneInfo->iHour;
2689 minute += pTimeZoneInfo->iHour > 0 ? pTimeZoneInfo->iMinute 2689 minute += pTimeZoneInfo->iHour > 0 ? pTimeZoneInfo->iMinute
2690 : -pTimeZoneInfo->iMinute; 2690 : -pTimeZoneInfo->iMinute;
2691 } 2691 }
2692 } 2692 }
2693 } else if (dwSymbol == FXBSTR_ID(0, 0, 'z', '1')) { 2693 } else if (dwSymbol == FXBSTR_ID(0, 0, 'z', '1')) {
2694 if (str[cc] != 'Z') { 2694 if (str[cc] != 'Z') {
2695 FX_TIMEZONE tzDiff; 2695 FX_TIMEZONE tzDiff;
2696 cc += FX_ParseTimeZone(str + cc, len - cc, tzDiff); 2696 cc += FX_ParseTimeZone(str + cc, len - cc, tzDiff);
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
2902 } 2902 }
2903 return iTreading; 2903 return iTreading;
2904 } 2904 }
2905 FX_BOOL CFX_FormatString::FormatStrNum(const CFX_WideStringC& wsInputNum, 2905 FX_BOOL CFX_FormatString::FormatStrNum(const CFX_WideStringC& wsInputNum,
2906 const CFX_WideString& wsPattern, 2906 const CFX_WideString& wsPattern,
2907 CFX_WideString& wsOutput) { 2907 CFX_WideString& wsOutput) {
2908 if (wsInputNum.IsEmpty() || wsPattern.IsEmpty()) { 2908 if (wsInputNum.IsEmpty() || wsPattern.IsEmpty()) {
2909 return FALSE; 2909 return FALSE;
2910 } 2910 }
2911 int32_t dot_index_f = -1; 2911 int32_t dot_index_f = -1;
2912 FX_DWORD dwNumStyle = 0; 2912 uint32_t dwNumStyle = 0;
2913 CFX_WideString wsNumFormat; 2913 CFX_WideString wsNumFormat;
2914 IFX_Locale* pLocale = 2914 IFX_Locale* pLocale =
2915 GetNumericFormat(wsPattern, dot_index_f, dwNumStyle, wsNumFormat); 2915 GetNumericFormat(wsPattern, dot_index_f, dwNumStyle, wsNumFormat);
2916 if (!pLocale || wsNumFormat.IsEmpty()) { 2916 if (!pLocale || wsNumFormat.IsEmpty()) {
2917 return FALSE; 2917 return FALSE;
2918 } 2918 }
2919 int32_t cc = 0, ccf = 0; 2919 int32_t cc = 0, ccf = 0;
2920 const FX_WCHAR* strf = (const FX_WCHAR*)wsNumFormat; 2920 const FX_WCHAR* strf = (const FX_WCHAR*)wsNumFormat;
2921 int lenf = wsNumFormat.GetLength(); 2921 int lenf = wsNumFormat.GetLength();
2922 CFX_WideString wsSrcNum = wsInputNum; 2922 CFX_WideString wsSrcNum = wsInputNum;
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after
3335 pLocale->GetNumbericSymbol(FX_LOCALENUMSYMBOL_Minus, wsMinusymbol); 3335 pLocale->GetNumbericSymbol(FX_LOCALENUMSYMBOL_Minus, wsMinusymbol);
3336 wsOutput = 3336 wsOutput =
3337 wsMinusymbol + wsOutput[0] + wsOutput.Mid(1, wsOutput.GetLength() - 1); 3337 wsMinusymbol + wsOutput[0] + wsOutput.Mid(1, wsOutput.GetLength() - 1);
3338 } 3338 }
3339 return TRUE; 3339 return TRUE;
3340 } 3340 }
3341 FX_BOOL CFX_FormatString::FormatLCNumeric(CFX_LCNumeric& lcNum, 3341 FX_BOOL CFX_FormatString::FormatLCNumeric(CFX_LCNumeric& lcNum,
3342 const CFX_WideString& wsPattern, 3342 const CFX_WideString& wsPattern,
3343 CFX_WideString& wsOutput) { 3343 CFX_WideString& wsOutput) {
3344 int32_t dot_index_f = -1; 3344 int32_t dot_index_f = -1;
3345 FX_DWORD dwNumStyle = 0; 3345 uint32_t dwNumStyle = 0;
3346 CFX_WideString wsNumFormat; 3346 CFX_WideString wsNumFormat;
3347 IFX_Locale* pLocale = 3347 IFX_Locale* pLocale =
3348 GetNumericFormat(wsPattern, dot_index_f, dwNumStyle, wsNumFormat); 3348 GetNumericFormat(wsPattern, dot_index_f, dwNumStyle, wsNumFormat);
3349 if (!pLocale || wsNumFormat.IsEmpty()) { 3349 if (!pLocale || wsNumFormat.IsEmpty()) {
3350 return FALSE; 3350 return FALSE;
3351 } 3351 }
3352 int32_t cc = 0, ccf = 0; 3352 int32_t cc = 0, ccf = 0;
3353 const FX_WCHAR* strf = (const FX_WCHAR*)wsNumFormat; 3353 const FX_WCHAR* strf = (const FX_WCHAR*)wsNumFormat;
3354 int lenf = wsNumFormat.GetLength(); 3354 int lenf = wsNumFormat.GetLength();
3355 double dbOrgRaw = lcNum.GetDouble(); 3355 double dbOrgRaw = lcNum.GetDouble();
(...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after
3979 int32_t lenf = wsDatePattern.GetLength(); 3979 int32_t lenf = wsDatePattern.GetLength();
3980 while (ccf < lenf) { 3980 while (ccf < lenf) {
3981 if (strf[ccf] == '\'') { 3981 if (strf[ccf] == '\'') {
3982 wsResult += FX_GetLiteralText(strf, ccf, lenf); 3982 wsResult += FX_GetLiteralText(strf, ccf, lenf);
3983 ccf++; 3983 ccf++;
3984 continue; 3984 continue;
3985 } else if (FX_Local_Find(gs_wsDateSymbols, strf[ccf]) < 0) { 3985 } else if (FX_Local_Find(gs_wsDateSymbols, strf[ccf]) < 0) {
3986 wsResult += strf[ccf++]; 3986 wsResult += strf[ccf++];
3987 continue; 3987 continue;
3988 } 3988 }
3989 FX_DWORD dwSymbolNum = 1; 3989 uint32_t dwSymbolNum = 1;
3990 FX_DWORD dwSymbol = strf[ccf++]; 3990 uint32_t dwSymbol = strf[ccf++];
3991 while (ccf < lenf && strf[ccf] == dwSymbol) { 3991 while (ccf < lenf && strf[ccf] == dwSymbol) {
3992 ccf++; 3992 ccf++;
3993 dwSymbolNum++; 3993 dwSymbolNum++;
3994 } 3994 }
3995 dwSymbol = (dwSymbol << 8) | (dwSymbolNum + '0'); 3995 dwSymbol = (dwSymbol << 8) | (dwSymbolNum + '0');
3996 if (dwSymbol == FXBSTR_ID(0, 0, 'D', '1')) { 3996 if (dwSymbol == FXBSTR_ID(0, 0, 'D', '1')) {
3997 CFX_WideString wsDay; 3997 CFX_WideString wsDay;
3998 wsDay.Format(L"%d", day); 3998 wsDay.Format(L"%d", day);
3999 wsResult += wsDay; 3999 wsResult += wsDay;
4000 } else if (dwSymbol == FXBSTR_ID(0, 0, 'D', '2')) { 4000 } else if (dwSymbol == FXBSTR_ID(0, 0, 'D', '2')) {
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
4105 } 4105 }
4106 while (ccf < lenf) { 4106 while (ccf < lenf) {
4107 if (strf[ccf] == '\'') { 4107 if (strf[ccf] == '\'') {
4108 wsResult += FX_GetLiteralText(strf, ccf, lenf); 4108 wsResult += FX_GetLiteralText(strf, ccf, lenf);
4109 ccf++; 4109 ccf++;
4110 continue; 4110 continue;
4111 } else if (FX_Local_Find(gs_wsTimeSymbols, strf[ccf]) < 0) { 4111 } else if (FX_Local_Find(gs_wsTimeSymbols, strf[ccf]) < 0) {
4112 wsResult += strf[ccf++]; 4112 wsResult += strf[ccf++];
4113 continue; 4113 continue;
4114 } 4114 }
4115 FX_DWORD dwSymbolNum = 1; 4115 uint32_t dwSymbolNum = 1;
4116 FX_DWORD dwSymbol = strf[ccf++]; 4116 uint32_t dwSymbol = strf[ccf++];
4117 while (ccf < lenf && strf[ccf] == dwSymbol) { 4117 while (ccf < lenf && strf[ccf] == dwSymbol) {
4118 ccf++; 4118 ccf++;
4119 dwSymbolNum++; 4119 dwSymbolNum++;
4120 } 4120 }
4121 dwSymbol = (dwSymbol << 8) | (dwSymbolNum + '0'); 4121 dwSymbol = (dwSymbol << 8) | (dwSymbolNum + '0');
4122 if (dwSymbol == FXBSTR_ID(0, 0, 'h', '1')) { 4122 if (dwSymbol == FXBSTR_ID(0, 0, 'h', '1')) {
4123 if (wHour > 12) { 4123 if (wHour > 12) {
4124 wHour -= 12; 4124 wHour -= 12;
4125 } 4125 }
4126 CFX_WideString wsHour; 4126 CFX_WideString wsHour;
(...skipping 894 matching lines...) Expand 10 before | Expand all | Expand 10 after
5021 } 5021 }
5022 CFX_Decimal CFX_Decimal::operator*(const CFX_Decimal& val) const { 5022 CFX_Decimal CFX_Decimal::operator*(const CFX_Decimal& val) const {
5023 return Multiply(val); 5023 return Multiply(val);
5024 } 5024 }
5025 CFX_Decimal CFX_Decimal::operator/(const CFX_Decimal& val) const { 5025 CFX_Decimal CFX_Decimal::operator/(const CFX_Decimal& val) const {
5026 return Divide(val); 5026 return Divide(val);
5027 } 5027 }
5028 CFX_Decimal CFX_Decimal::operator%(const CFX_Decimal& val) const { 5028 CFX_Decimal CFX_Decimal::operator%(const CFX_Decimal& val) const {
5029 return Modulus(val); 5029 return Modulus(val);
5030 } 5030 }
OLDNEW
« no previous file with comments | « xfa/fgas/layout/fgas_textbreak.cpp ('k') | xfa/fgas/localization/fgas_localemgr.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698