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

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

Issue 1883273003: Pass WideStrings without narrowing to c_str in javascript/ (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Missed one caller. 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 | « fpdfsdk/javascript/JS_Value.cpp ('k') | fpdfsdk/javascript/global.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 "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 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 if (bWrongFormat) 299 if (bWrongFormat)
300 *bWrongFormat = false; 300 *bWrongFormat = false;
301 } else { 301 } else {
302 if (bWrongFormat) 302 if (bWrongFormat)
303 *bWrongFormat = true; 303 *bWrongFormat = true;
304 return dt; 304 return dt;
305 } 305 }
306 306
307 CFX_WideString swTemp; 307 CFX_WideString swTemp;
308 swTemp.Format(L"%d/%d/%d %d:%d:%d", nMonth, nDay, nYear, nHour, nMin, nSec); 308 swTemp.Format(L"%d/%d/%d %d:%d:%d", nMonth, nDay, nYear, nHour, nMin, nSec);
309 return JS_DateParse(swTemp.c_str()); 309 return JS_DateParse(swTemp);
310 } 310 }
311 311
312 double CJS_PublicMethods::MakeRegularDate(const CFX_WideString& value, 312 double CJS_PublicMethods::MakeRegularDate(const CFX_WideString& value,
313 const CFX_WideString& format, 313 const CFX_WideString& format,
314 bool* bWrongFormat) { 314 bool* bWrongFormat) {
315 double dt = JS_GetDateTime(); 315 double dt = JS_GetDateTime();
316 316
317 if (format.IsEmpty() || value.IsEmpty()) 317 if (format.IsEmpty() || value.IsEmpty())
318 return dt; 318 return dt;
319 319
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 if (nHour < 0 || nHour > 24) 556 if (nHour < 0 || nHour > 24)
557 bBadFormat = true; 557 bBadFormat = true;
558 558
559 if (nMin < 0 || nMin > 60) 559 if (nMin < 0 || nMin > 60)
560 bBadFormat = true; 560 bBadFormat = true;
561 561
562 if (nSec < 0 || nSec > 60) 562 if (nSec < 0 || nSec > 60)
563 bBadFormat = true; 563 bBadFormat = true;
564 564
565 double dRet = 0; 565 double dRet = 0;
566
567 if (bBadFormat) { 566 if (bBadFormat) {
568 dRet = ParseNormalDate(value, &bBadFormat); 567 dRet = ParseNormalDate(value, &bBadFormat);
569 } else { 568 } else {
570 dRet = JS_MakeDate(JS_MakeDay(nYear, nMonth - 1, nDay), 569 dRet = JS_MakeDate(JS_MakeDay(nYear, nMonth - 1, nDay),
571 JS_MakeTime(nHour, nMin, nSec, 0)); 570 JS_MakeTime(nHour, nMin, nSec, 0));
572 571 if (JS_PortIsNan(dRet))
573 if (JS_PortIsNan(dRet)) { 572 dRet = JS_DateParse(value);
574 dRet = JS_DateParse(value.c_str());
575 }
576 } 573 }
577 574
578 if (JS_PortIsNan(dRet)) { 575 if (JS_PortIsNan(dRet))
579 dRet = ParseNormalDate(value, &bBadFormat); 576 dRet = ParseNormalDate(value, &bBadFormat);
580 }
581 577
582 if (bWrongFormat) 578 if (bWrongFormat)
583 *bWrongFormat = bBadFormat; 579 *bWrongFormat = bBadFormat;
580
584 return dRet; 581 return dRet;
585 } 582 }
586 583
587 CFX_WideString CJS_PublicMethods::MakeFormatDate(double dDate, 584 CFX_WideString CJS_PublicMethods::MakeFormatDate(double dDate,
588 const CFX_WideString& format) { 585 const CFX_WideString& format) {
589 CFX_WideString sRet = L"", sPart = L""; 586 CFX_WideString sRet = L"", sPart = L"";
590 587
591 int nYear = JS_GetYearFromTime(dDate); 588 int nYear = JS_GetYearFromTime(dDate);
592 int nMonth = JS_GetMonthFromTime(dDate) + 1; 589 int nMonth = JS_GetMonthFromTime(dDate) + 1;
593 int nDay = JS_GetDayFromTime(dDate); 590 int nDay = JS_GetDayFromTime(dDate);
(...skipping 603 matching lines...) Expand 10 before | Expand all | Expand 10 after
1197 nMonth = 12; 1194 nMonth = 12;
1198 1195
1199 int nDay = FX_atof(wsArray[2].AsStringC()); 1196 int nDay = FX_atof(wsArray[2].AsStringC());
1200 int nHour = FX_atof(wsArray[3].AsStringC()); 1197 int nHour = FX_atof(wsArray[3].AsStringC());
1201 int nMin = FX_atof(wsArray[4].AsStringC()); 1198 int nMin = FX_atof(wsArray[4].AsStringC());
1202 int nSec = FX_atof(wsArray[5].AsStringC()); 1199 int nSec = FX_atof(wsArray[5].AsStringC());
1203 int nYear = FX_atof(wsArray[7].AsStringC()); 1200 int nYear = FX_atof(wsArray[7].AsStringC());
1204 double dRet = JS_MakeDate(JS_MakeDay(nYear, nMonth - 1, nDay), 1201 double dRet = JS_MakeDate(JS_MakeDay(nYear, nMonth - 1, nDay),
1205 JS_MakeTime(nHour, nMin, nSec, 0)); 1202 JS_MakeTime(nHour, nMin, nSec, 0));
1206 if (JS_PortIsNan(dRet)) 1203 if (JS_PortIsNan(dRet))
1207 dRet = JS_DateParse(strValue.c_str()); 1204 dRet = JS_DateParse(strValue);
1208 1205
1209 return dRet; 1206 return dRet;
1210 } 1207 }
1211 1208
1212 // AFDate_KeystrokeEx(cFormat) 1209 // AFDate_KeystrokeEx(cFormat)
1213 FX_BOOL CJS_PublicMethods::AFDate_KeystrokeEx( 1210 FX_BOOL CJS_PublicMethods::AFDate_KeystrokeEx(
1214 IJS_Context* cc, 1211 IJS_Context* cc,
1215 const std::vector<CJS_Value>& params, 1212 const std::vector<CJS_Value>& params,
1216 CJS_Value& vRet, 1213 CJS_Value& vRet,
1217 CFX_WideString& sError) { 1214 CFX_WideString& sError) {
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after
1845 nums.SetElement(nIndex, CJS_Value(pRuntime, sPart.c_str())); 1842 nums.SetElement(nIndex, CJS_Value(pRuntime, sPart.c_str()));
1846 } 1843 }
1847 1844
1848 if (nums.GetLength() > 0) 1845 if (nums.GetLength() > 0)
1849 vRet = nums; 1846 vRet = nums;
1850 else 1847 else
1851 vRet.SetNull(); 1848 vRet.SetNull();
1852 1849
1853 return TRUE; 1850 return TRUE;
1854 } 1851 }
OLDNEW
« no previous file with comments | « fpdfsdk/javascript/JS_Value.cpp ('k') | fpdfsdk/javascript/global.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698