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

Side by Side Diff: fpdfsdk/javascript/PublicMethods.cpp

Issue 1837543002: Added test for util.printx() and make it match spec. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Need wchar in one more place. Created 4 years, 8 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 | « no previous file | fpdfsdk/javascript/util.h » ('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 "fpdfsdk/javascript/PublicMethods.h" 7 #include "fpdfsdk/javascript/PublicMethods.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <string> 10 #include <string>
(...skipping 1406 matching lines...) Expand 10 before | Expand all | Expand 10 after
1417 const std::vector<CJS_Value>& params, 1417 const std::vector<CJS_Value>& params,
1418 CJS_Value& vRet, 1418 CJS_Value& vRet,
1419 CFX_WideString& sError) { 1419 CFX_WideString& sError) {
1420 CJS_Context* pContext = (CJS_Context*)cc; 1420 CJS_Context* pContext = (CJS_Context*)cc;
1421 1421
1422 if (params.size() != 1) { 1422 if (params.size() != 1) {
1423 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR); 1423 sError = JSGetStringFromID(pContext, IDS_STRING_JSPARAMERROR);
1424 return FALSE; 1424 return FALSE;
1425 } 1425 }
1426 1426
1427 std::string cFormat;
1428 int iIndex = params[0].ToInt();
1429
1430 CJS_EventHandler* pEvent = pContext->GetEventHandler(); 1427 CJS_EventHandler* pEvent = pContext->GetEventHandler();
1431 if (!pEvent->m_pValue) 1428 if (!pEvent->m_pValue)
1432 return FALSE; 1429 return FALSE;
1433 CFX_WideString& Value = pEvent->Value();
1434 std::string strSrc = CFX_ByteString::FromUnicode(Value).c_str();
1435 1430
1436 switch (iIndex) { 1431 CFX_WideString wsSource = pEvent->Value();
1432 CFX_WideString wsFormat;
1433 switch (params[0].ToInt()) {
1437 case 0: 1434 case 0:
1438 cFormat = "99999"; 1435 wsFormat = L"99999";
1439 break; 1436 break;
1440 case 1: 1437 case 1:
1441 cFormat = "99999-9999"; 1438 wsFormat = L"99999-9999";
1442 break; 1439 break;
1443 case 2: { 1440 case 2:
1444 std::string NumberStr; 1441 if (util::printx(L"9999999999", wsSource).GetLength() >= 10)
1445 util::printx("9999999999", strSrc, NumberStr); 1442 wsFormat = L"(999) 999-9999";
1446 if (NumberStr.length() >= 10)
1447 cFormat = "(999) 999-9999";
1448 else 1443 else
1449 cFormat = "999-9999"; 1444 wsFormat = L"999-9999";
1450 break; 1445 break;
1451 }
1452 case 3: 1446 case 3:
1453 cFormat = "999-99-9999"; 1447 wsFormat = L"999-99-9999";
1454 break; 1448 break;
1455 } 1449 }
1456 1450
1457 std::string strDes; 1451 pEvent->Value() = util::printx(wsFormat, wsSource);
1458 util::printx(cFormat, strSrc, strDes);
1459 Value = CFX_WideString::FromLocal(strDes.c_str());
1460 return TRUE; 1452 return TRUE;
1461 } 1453 }
1462 1454
1463 // function AFSpecial_KeystrokeEx(mask) 1455 // function AFSpecial_KeystrokeEx(mask)
1464 FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx( 1456 FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx(
1465 IJS_Context* cc, 1457 IJS_Context* cc,
1466 const std::vector<CJS_Value>& params, 1458 const std::vector<CJS_Value>& params,
1467 CJS_Value& vRet, 1459 CJS_Value& vRet,
1468 CFX_WideString& sError) { 1460 CFX_WideString& sError) {
1469 CJS_Context* pContext = (CJS_Context*)cc; 1461 CJS_Context* pContext = (CJS_Context*)cc;
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
1571 int iIndex = params[0].ToInt(); 1563 int iIndex = params[0].ToInt();
1572 CFX_WideString& val = pEvent->Value(); 1564 CFX_WideString& val = pEvent->Value();
1573 std::string strSrc = CFX_ByteString::FromUnicode(val).c_str(); 1565 std::string strSrc = CFX_ByteString::FromUnicode(val).c_str();
1574 std::wstring wstrChange = pEvent->Change().c_str(); 1566 std::wstring wstrChange = pEvent->Change().c_str();
1575 1567
1576 switch (iIndex) { 1568 switch (iIndex) {
1577 case 0: 1569 case 0:
1578 cFormat = "99999"; 1570 cFormat = "99999";
1579 break; 1571 break;
1580 case 1: 1572 case 1:
1581 // cFormat = "99999-9999";
1582 cFormat = "999999999"; 1573 cFormat = "999999999";
1583 break; 1574 break;
1584 case 2: { 1575 case 2:
1585 std::string NumberStr;
1586 util::printx("9999999999", strSrc, NumberStr);
1587 if (strSrc.length() + wstrChange.length() > 7) 1576 if (strSrc.length() + wstrChange.length() > 7)
1588 // cFormat = "(999) 999-9999";
1589 cFormat = "9999999999"; 1577 cFormat = "9999999999";
1590 else 1578 else
1591 // cFormat = "999-9999";
1592 cFormat = "9999999"; 1579 cFormat = "9999999";
1593 break; 1580 break;
1594 }
1595 case 3: 1581 case 3:
1596 // cFormat = "999-99-9999";
1597 cFormat = "999999999"; 1582 cFormat = "999999999";
1598 break; 1583 break;
1599 } 1584 }
1600 1585
1601 std::vector<CJS_Value> params2; 1586 std::vector<CJS_Value> params2;
1602 params2.push_back(CJS_Value(CJS_Runtime::FromContext(cc), cFormat.c_str())); 1587 params2.push_back(CJS_Value(CJS_Runtime::FromContext(cc), cFormat.c_str()));
1603 return AFSpecial_KeystrokeEx(cc, params2, vRet, sError); 1588 return AFSpecial_KeystrokeEx(cc, params2, vRet, sError);
1604 } 1589 }
1605 1590
1606 FX_BOOL CJS_PublicMethods::AFMergeChange(IJS_Context* cc, 1591 FX_BOOL CJS_PublicMethods::AFMergeChange(IJS_Context* cc,
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
1890 nums.SetElement(nIndex, CJS_Value(pRuntime, sPart.c_str())); 1875 nums.SetElement(nIndex, CJS_Value(pRuntime, sPart.c_str()));
1891 } 1876 }
1892 1877
1893 if (nums.GetLength() > 0) 1878 if (nums.GetLength() > 0)
1894 vRet = nums; 1879 vRet = nums;
1895 else 1880 else
1896 vRet.SetNull(); 1881 vRet.SetNull();
1897 1882
1898 return TRUE; 1883 return TRUE;
1899 } 1884 }
OLDNEW
« no previous file with comments | « no previous file | fpdfsdk/javascript/util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698