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

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

Issue 2095653002: Remove NULL in xfa/ (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Rebase to master Created 4 years, 6 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/localization/fgas_datetime.cpp ('k') | xfa/fwl/basewidget/cfx_barcode.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 460 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 } 471 }
472 return wsLCID; 472 return wsLCID;
473 } 473 }
474 ccf++; 474 ccf++;
475 } 475 }
476 return CFX_WideString(); 476 return CFX_WideString();
477 } 477 }
478 IFX_Locale* CFX_FormatString::GetTextFormat(const CFX_WideString& wsPattern, 478 IFX_Locale* CFX_FormatString::GetTextFormat(const CFX_WideString& wsPattern,
479 const CFX_WideStringC& wsCategory, 479 const CFX_WideStringC& wsCategory,
480 CFX_WideString& wsPurgePattern) { 480 CFX_WideString& wsPurgePattern) {
481 IFX_Locale* pLocale = NULL; 481 IFX_Locale* pLocale = nullptr;
482 int32_t ccf = 0; 482 int32_t ccf = 0;
483 int32_t iLenf = wsPattern.GetLength(); 483 int32_t iLenf = wsPattern.GetLength();
484 const FX_WCHAR* pStr = wsPattern.c_str(); 484 const FX_WCHAR* pStr = wsPattern.c_str();
485 FX_BOOL bBrackOpen = FALSE; 485 FX_BOOL bBrackOpen = FALSE;
486 CFX_WideStringC wsConstChars(gs_wsConstChars); 486 CFX_WideStringC wsConstChars(gs_wsConstChars);
487 while (ccf < iLenf) { 487 while (ccf < iLenf) {
488 if (pStr[ccf] == '\'') { 488 if (pStr[ccf] == '\'') {
489 int32_t iCurChar = ccf; 489 int32_t iCurChar = ccf;
490 FX_GetLiteralText(pStr, ccf, iLenf); 490 FX_GetLiteralText(pStr, ccf, iLenf);
491 wsPurgePattern += CFX_WideStringC(pStr + iCurChar, ccf - iCurChar + 1); 491 wsPurgePattern += CFX_WideStringC(pStr + iCurChar, ccf - iCurChar + 1);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 return pLocale; 528 return pLocale;
529 } 529 }
530 #define FX_NUMSTYLE_Percent 0x01 530 #define FX_NUMSTYLE_Percent 0x01
531 #define FX_NUMSTYLE_Exponent 0x02 531 #define FX_NUMSTYLE_Exponent 0x02
532 #define FX_NUMSTYLE_DotVorv 0x04 532 #define FX_NUMSTYLE_DotVorv 0x04
533 IFX_Locale* CFX_FormatString::GetNumericFormat(const CFX_WideString& wsPattern, 533 IFX_Locale* CFX_FormatString::GetNumericFormat(const CFX_WideString& wsPattern,
534 int32_t& iDotIndex, 534 int32_t& iDotIndex,
535 uint32_t& dwStyle, 535 uint32_t& dwStyle,
536 CFX_WideString& wsPurgePattern) { 536 CFX_WideString& wsPurgePattern) {
537 dwStyle = 0; 537 dwStyle = 0;
538 IFX_Locale* pLocale = NULL; 538 IFX_Locale* pLocale = nullptr;
539 int32_t ccf = 0; 539 int32_t ccf = 0;
540 int32_t iLenf = wsPattern.GetLength(); 540 int32_t iLenf = wsPattern.GetLength();
541 const FX_WCHAR* pStr = wsPattern.c_str(); 541 const FX_WCHAR* pStr = wsPattern.c_str();
542 FX_BOOL bFindDot = FALSE; 542 FX_BOOL bFindDot = FALSE;
543 FX_BOOL bBrackOpen = FALSE; 543 FX_BOOL bBrackOpen = FALSE;
544 CFX_WideStringC wsConstChars(gs_wsConstChars); 544 CFX_WideStringC wsConstChars(gs_wsConstChars);
545 while (ccf < iLenf) { 545 while (ccf < iLenf) {
546 if (pStr[ccf] == '\'') { 546 if (pStr[ccf] == '\'') {
547 int32_t iCurChar = ccf; 547 int32_t iCurChar = ccf;
548 FX_GetLiteralText(pStr, ccf, iLenf); 548 FX_GetLiteralText(pStr, ccf, iLenf);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 if (g_FXLocaleNumSubCatData[i].uHash == dwSubHash) { 584 if (g_FXLocaleNumSubCatData[i].uHash == dwSubHash) {
585 eSubCategory = (FX_LOCALENUMSUBCATEGORY)g_FXLocaleNumSubCatData[i] 585 eSubCategory = (FX_LOCALENUMSUBCATEGORY)g_FXLocaleNumSubCatData[i]
586 .eSubCategory; 586 .eSubCategory;
587 break; 587 break;
588 } 588 }
589 } 589 }
590 wsSubCategory.clear(); 590 wsSubCategory.clear();
591 if (!pLocale) { 591 if (!pLocale) {
592 pLocale = m_pLocaleMgr->GetDefLocale(); 592 pLocale = m_pLocaleMgr->GetDefLocale();
593 } 593 }
594 ASSERT(pLocale != NULL); 594 ASSERT(pLocale);
595 pLocale->GetNumPattern(eSubCategory, wsSubCategory); 595 pLocale->GetNumPattern(eSubCategory, wsSubCategory);
596 iDotIndex = wsSubCategory.Find('.'); 596 iDotIndex = wsSubCategory.Find('.');
597 if (iDotIndex > 0) { 597 if (iDotIndex > 0) {
598 iDotIndex += wsPurgePattern.GetLength(); 598 iDotIndex += wsPurgePattern.GetLength();
599 bFindDot = TRUE; 599 bFindDot = TRUE;
600 dwStyle |= FX_NUMSTYLE_DotVorv; 600 dwStyle |= FX_NUMSTYLE_DotVorv;
601 } 601 }
602 wsPurgePattern += wsSubCategory; 602 wsPurgePattern += wsSubCategory;
603 if (eSubCategory == FX_LOCALENUMPATTERN_Percent) { 603 if (eSubCategory == FX_LOCALENUMPATTERN_Percent) {
604 dwStyle |= FX_NUMSTYLE_Percent; 604 dwStyle |= FX_NUMSTYLE_Percent;
(...skipping 1310 matching lines...) Expand 10 before | Expand all | Expand 10 after
1915 if (bNeg) { 1915 if (bNeg) {
1916 wsValue = L'-' + wsValue; 1916 wsValue = L'-' + wsValue;
1917 } 1917 }
1918 return TRUE; 1918 return TRUE;
1919 } 1919 }
1920 FX_DATETIMETYPE CFX_FormatString::GetDateTimeFormat( 1920 FX_DATETIMETYPE CFX_FormatString::GetDateTimeFormat(
1921 const CFX_WideString& wsPattern, 1921 const CFX_WideString& wsPattern,
1922 IFX_Locale*& pLocale, 1922 IFX_Locale*& pLocale,
1923 CFX_WideString& wsDatePattern, 1923 CFX_WideString& wsDatePattern,
1924 CFX_WideString& wsTimePattern) { 1924 CFX_WideString& wsTimePattern) {
1925 pLocale = NULL; 1925 pLocale = nullptr;
1926 CFX_WideString wsTempPattern; 1926 CFX_WideString wsTempPattern;
1927 FX_LOCALECATEGORY eCategory = FX_LOCALECATEGORY_Unknown; 1927 FX_LOCALECATEGORY eCategory = FX_LOCALECATEGORY_Unknown;
1928 int32_t ccf = 0; 1928 int32_t ccf = 0;
1929 int32_t iLenf = wsPattern.GetLength(); 1929 int32_t iLenf = wsPattern.GetLength();
1930 const FX_WCHAR* pStr = wsPattern.c_str(); 1930 const FX_WCHAR* pStr = wsPattern.c_str();
1931 int32_t iFindCategory = 0; 1931 int32_t iFindCategory = 0;
1932 FX_BOOL bBraceOpen = FALSE; 1932 FX_BOOL bBraceOpen = FALSE;
1933 CFX_WideStringC wsConstChars(gs_wsConstChars); 1933 CFX_WideStringC wsConstChars(gs_wsConstChars);
1934 while (ccf < iLenf) { 1934 while (ccf < iLenf) {
1935 if (pStr[ccf] == '\'') { 1935 if (pStr[ccf] == '\'') {
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1994 if (g_FXLocaleDateTimeSubCatData[i].uHash == dwSubHash) { 1994 if (g_FXLocaleDateTimeSubCatData[i].uHash == dwSubHash) {
1995 eSubCategory = 1995 eSubCategory =
1996 (FX_LOCALEDATETIMESUBCATEGORY)g_FXLocaleDateTimeSubCatData[i] 1996 (FX_LOCALEDATETIMESUBCATEGORY)g_FXLocaleDateTimeSubCatData[i]
1997 .eSubCategory; 1997 .eSubCategory;
1998 break; 1998 break;
1999 } 1999 }
2000 } 2000 }
2001 if (!pLocale) { 2001 if (!pLocale) {
2002 pLocale = m_pLocaleMgr->GetDefLocale(); 2002 pLocale = m_pLocaleMgr->GetDefLocale();
2003 } 2003 }
2004 ASSERT(pLocale != NULL); 2004 ASSERT(pLocale);
2005 switch (eCategory) { 2005 switch (eCategory) {
2006 case FX_LOCALECATEGORY_Date: 2006 case FX_LOCALECATEGORY_Date:
2007 pLocale->GetDatePattern(eSubCategory, wsDatePattern); 2007 pLocale->GetDatePattern(eSubCategory, wsDatePattern);
2008 wsDatePattern = wsTempPattern + wsDatePattern; 2008 wsDatePattern = wsTempPattern + wsDatePattern;
2009 break; 2009 break;
2010 case FX_LOCALECATEGORY_Time: 2010 case FX_LOCALECATEGORY_Time:
2011 pLocale->GetTimePattern(eSubCategory, wsTimePattern); 2011 pLocale->GetTimePattern(eSubCategory, wsTimePattern);
2012 wsTimePattern = wsTempPattern + wsTimePattern; 2012 wsTimePattern = wsTempPattern + wsTimePattern;
2013 break; 2013 break;
2014 case FX_LOCALECATEGORY_DateTime: 2014 case FX_LOCALECATEGORY_DateTime:
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
2469 } 2469 }
2470 FX_BOOL CFX_FormatString::ParseDateTime(const CFX_WideString& wsSrcDateTime, 2470 FX_BOOL CFX_FormatString::ParseDateTime(const CFX_WideString& wsSrcDateTime,
2471 const CFX_WideString& wsPattern, 2471 const CFX_WideString& wsPattern,
2472 FX_DATETIMETYPE eDateTimeType, 2472 FX_DATETIMETYPE eDateTimeType,
2473 CFX_Unitime& dtValue) { 2473 CFX_Unitime& dtValue) {
2474 dtValue.Set(0); 2474 dtValue.Set(0);
2475 if (wsSrcDateTime.IsEmpty() || wsPattern.IsEmpty()) { 2475 if (wsSrcDateTime.IsEmpty() || wsPattern.IsEmpty()) {
2476 return FALSE; 2476 return FALSE;
2477 } 2477 }
2478 CFX_WideString wsDatePattern, wsTimePattern; 2478 CFX_WideString wsDatePattern, wsTimePattern;
2479 IFX_Locale* pLocale = NULL; 2479 IFX_Locale* pLocale = nullptr;
2480 FX_DATETIMETYPE eCategory = 2480 FX_DATETIMETYPE eCategory =
2481 GetDateTimeFormat(wsPattern, pLocale, wsDatePattern, wsTimePattern); 2481 GetDateTimeFormat(wsPattern, pLocale, wsDatePattern, wsTimePattern);
2482 if (!pLocale) { 2482 if (!pLocale) {
2483 return FALSE; 2483 return FALSE;
2484 } 2484 }
2485 if (eCategory == FX_DATETIMETYPE_Unknown) { 2485 if (eCategory == FX_DATETIMETYPE_Unknown) {
2486 eCategory = eDateTimeType; 2486 eCategory = eDateTimeType;
2487 } 2487 }
2488 if (eCategory == FX_DATETIMETYPE_Unknown) { 2488 if (eCategory == FX_DATETIMETYPE_Unknown) {
2489 return FALSE; 2489 return FALSE;
(...skipping 1494 matching lines...) Expand 10 before | Expand all | Expand 10 after
3984 wsOutput = bDateFirst ? wsDateOut + wsTimeOut : wsTimeOut + wsDateOut; 3984 wsOutput = bDateFirst ? wsDateOut + wsTimeOut : wsTimeOut + wsDateOut;
3985 return bRet; 3985 return bRet;
3986 } 3986 }
3987 FX_BOOL CFX_FormatString::FormatDateTime(const CFX_WideString& wsSrcDateTime, 3987 FX_BOOL CFX_FormatString::FormatDateTime(const CFX_WideString& wsSrcDateTime,
3988 const CFX_WideString& wsPattern, 3988 const CFX_WideString& wsPattern,
3989 CFX_WideString& wsOutput) { 3989 CFX_WideString& wsOutput) {
3990 if (wsSrcDateTime.IsEmpty() || wsPattern.IsEmpty()) { 3990 if (wsSrcDateTime.IsEmpty() || wsPattern.IsEmpty()) {
3991 return FALSE; 3991 return FALSE;
3992 } 3992 }
3993 CFX_WideString wsDatePattern, wsTimePattern; 3993 CFX_WideString wsDatePattern, wsTimePattern;
3994 IFX_Locale* pLocale = NULL; 3994 IFX_Locale* pLocale = nullptr;
3995 FX_DATETIMETYPE eCategory = 3995 FX_DATETIMETYPE eCategory =
3996 GetDateTimeFormat(wsPattern, pLocale, wsDatePattern, wsTimePattern); 3996 GetDateTimeFormat(wsPattern, pLocale, wsDatePattern, wsTimePattern);
3997 if (pLocale == NULL || eCategory == FX_DATETIMETYPE_Unknown) { 3997 if (!pLocale || eCategory == FX_DATETIMETYPE_Unknown) {
3998 return FALSE; 3998 return FALSE;
3999 } 3999 }
4000 CFX_Unitime dt(0); 4000 CFX_Unitime dt(0);
4001 int32_t iT = wsSrcDateTime.Find(L"T"); 4001 int32_t iT = wsSrcDateTime.Find(L"T");
4002 if (iT < 0) { 4002 if (iT < 0) {
4003 if (eCategory == FX_DATETIMETYPE_Date) { 4003 if (eCategory == FX_DATETIMETYPE_Date) {
4004 FX_DateFromCanonical(wsSrcDateTime, dt); 4004 FX_DateFromCanonical(wsSrcDateTime, dt);
4005 } else if (eCategory == FX_DATETIMETYPE_Time) { 4005 } else if (eCategory == FX_DATETIMETYPE_Time) {
4006 FX_TimeFromCanonical(wsSrcDateTime.AsStringC(), dt, pLocale); 4006 FX_TimeFromCanonical(wsSrcDateTime.AsStringC(), dt, pLocale);
4007 } 4007 }
4008 } else { 4008 } else {
4009 FX_DateFromCanonical(wsSrcDateTime.Left(iT), dt); 4009 FX_DateFromCanonical(wsSrcDateTime.Left(iT), dt);
4010 FX_TimeFromCanonical( 4010 FX_TimeFromCanonical(
4011 wsSrcDateTime.Right(wsSrcDateTime.GetLength() - iT - 1).AsStringC(), dt, 4011 wsSrcDateTime.Right(wsSrcDateTime.GetLength() - iT - 1).AsStringC(), dt,
4012 pLocale); 4012 pLocale);
4013 } 4013 }
4014 return FX_FormatDateTime(dt, wsDatePattern, wsTimePattern, 4014 return FX_FormatDateTime(dt, wsDatePattern, wsTimePattern,
4015 eCategory != FX_DATETIMETYPE_TimeDate, pLocale, 4015 eCategory != FX_DATETIMETYPE_TimeDate, pLocale,
4016 wsOutput); 4016 wsOutput);
4017 } 4017 }
4018 FX_BOOL CFX_FormatString::FormatDateTime(const CFX_WideString& wsSrcDateTime, 4018 FX_BOOL CFX_FormatString::FormatDateTime(const CFX_WideString& wsSrcDateTime,
4019 const CFX_WideString& wsPattern, 4019 const CFX_WideString& wsPattern,
4020 CFX_WideString& wsOutput, 4020 CFX_WideString& wsOutput,
4021 FX_DATETIMETYPE eDateTimeType) { 4021 FX_DATETIMETYPE eDateTimeType) {
4022 if (wsSrcDateTime.IsEmpty() || wsPattern.IsEmpty()) { 4022 if (wsSrcDateTime.IsEmpty() || wsPattern.IsEmpty()) {
4023 return FALSE; 4023 return FALSE;
4024 } 4024 }
4025 CFX_WideString wsDatePattern, wsTimePattern; 4025 CFX_WideString wsDatePattern, wsTimePattern;
4026 IFX_Locale* pLocale = NULL; 4026 IFX_Locale* pLocale = nullptr;
4027 FX_DATETIMETYPE eCategory = 4027 FX_DATETIMETYPE eCategory =
4028 GetDateTimeFormat(wsPattern, pLocale, wsDatePattern, wsTimePattern); 4028 GetDateTimeFormat(wsPattern, pLocale, wsDatePattern, wsTimePattern);
4029 if (!pLocale) { 4029 if (!pLocale) {
4030 return FALSE; 4030 return FALSE;
4031 } 4031 }
4032 if (eCategory == FX_DATETIMETYPE_Unknown) { 4032 if (eCategory == FX_DATETIMETYPE_Unknown) {
4033 if (eDateTimeType == FX_DATETIMETYPE_Time) { 4033 if (eDateTimeType == FX_DATETIMETYPE_Time) {
4034 wsTimePattern = wsDatePattern; 4034 wsTimePattern = wsDatePattern;
4035 wsDatePattern.clear(); 4035 wsDatePattern.clear();
4036 } 4036 }
(...skipping 30 matching lines...) Expand all
4067 } 4067 }
4068 return FALSE; 4068 return FALSE;
4069 } 4069 }
4070 FX_BOOL CFX_FormatString::FormatDateTime(const CFX_Unitime& dt, 4070 FX_BOOL CFX_FormatString::FormatDateTime(const CFX_Unitime& dt,
4071 const CFX_WideString& wsPattern, 4071 const CFX_WideString& wsPattern,
4072 CFX_WideString& wsOutput) { 4072 CFX_WideString& wsOutput) {
4073 if (wsPattern.IsEmpty()) { 4073 if (wsPattern.IsEmpty()) {
4074 return FALSE; 4074 return FALSE;
4075 } 4075 }
4076 CFX_WideString wsDatePattern, wsTimePattern; 4076 CFX_WideString wsDatePattern, wsTimePattern;
4077 IFX_Locale* pLocale = NULL; 4077 IFX_Locale* pLocale = nullptr;
4078 FX_DATETIMETYPE eCategory = 4078 FX_DATETIMETYPE eCategory =
4079 GetDateTimeFormat(wsPattern, pLocale, wsDatePattern, wsTimePattern); 4079 GetDateTimeFormat(wsPattern, pLocale, wsDatePattern, wsTimePattern);
4080 if (!pLocale) { 4080 if (!pLocale) {
4081 return FALSE; 4081 return FALSE;
4082 } 4082 }
4083 return FX_FormatDateTime(dt, wsPattern, wsTimePattern, 4083 return FX_FormatDateTime(dt, wsPattern, wsTimePattern,
4084 eCategory != FX_DATETIMETYPE_TimeDate, pLocale, 4084 eCategory != FX_DATETIMETYPE_TimeDate, pLocale,
4085 wsOutput); 4085 wsOutput);
4086 } 4086 }
4087 FX_BOOL CFX_FormatString::FormatZero(const CFX_WideString& wsPattern, 4087 FX_BOOL CFX_FormatString::FormatZero(const CFX_WideString& wsPattern,
(...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after
4768 } 4768 }
4769 CFX_Decimal CFX_Decimal::operator*(const CFX_Decimal& val) const { 4769 CFX_Decimal CFX_Decimal::operator*(const CFX_Decimal& val) const {
4770 return Multiply(val); 4770 return Multiply(val);
4771 } 4771 }
4772 CFX_Decimal CFX_Decimal::operator/(const CFX_Decimal& val) const { 4772 CFX_Decimal CFX_Decimal::operator/(const CFX_Decimal& val) const {
4773 return Divide(val); 4773 return Divide(val);
4774 } 4774 }
4775 CFX_Decimal CFX_Decimal::operator%(const CFX_Decimal& val) const { 4775 CFX_Decimal CFX_Decimal::operator%(const CFX_Decimal& val) const {
4776 return Modulus(val); 4776 return Modulus(val);
4777 } 4777 }
OLDNEW
« no previous file with comments | « xfa/fgas/localization/fgas_datetime.cpp ('k') | xfa/fwl/basewidget/cfx_barcode.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698