OLD | NEW |
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 "../../include/javascript/JavaScript.h" | 7 #include "../../include/javascript/JavaScript.h" |
8 #include "../../include/javascript/IJavaScript.h" | 8 #include "../../include/javascript/IJavaScript.h" |
9 #include "../../include/javascript/JS_Define.h" | 9 #include "../../include/javascript/JS_Define.h" |
10 #include "../../include/javascript/JS_Object.h" | 10 #include "../../include/javascript/JS_Object.h" |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 } | 56 } |
57 | 57 |
58 | 58 |
59 struct stru_TbConvert | 59 struct stru_TbConvert |
60 { | 60 { |
61 FX_LPCWSTR lpszJSMark; | 61 FX_LPCWSTR lpszJSMark; |
62 FX_LPCWSTR lpszCppMark; | 62 FX_LPCWSTR lpszCppMark; |
63 }; | 63 }; |
64 | 64 |
65 const stru_TbConvert fcTable[] = { | 65 const stru_TbConvert fcTable[] = { |
66 » { (FX_LPCWSTR)L"mmmm", (FX_LPCWSTR)L"%B" }, | 66 » { L"mmmm", L"%B" }, |
67 » { (FX_LPCWSTR)L"mmm", (FX_LPCWSTR)L"%b" }, | 67 » { L"mmm", L"%b" }, |
68 » { (FX_LPCWSTR)L"mm", (FX_LPCWSTR)L"%m" }, | 68 » { L"mm", L"%m" }, |
69 //"m" | 69 //"m" |
70 » { (FX_LPCWSTR)L"dddd", (FX_LPCWSTR)L"%A" }, | 70 » { L"dddd", L"%A" }, |
71 » { (FX_LPCWSTR)L"ddd", (FX_LPCWSTR)L"%a" }, | 71 » { L"ddd", L"%a" }, |
72 » { (FX_LPCWSTR)L"dd", (FX_LPCWSTR)L"%d" }, | 72 » { L"dd", L"%d" }, |
73 //"d", "%w", | 73 //"d", "%w", |
74 » { (FX_LPCWSTR)L"yyyy", (FX_LPCWSTR)L"%Y" }, | 74 » { L"yyyy", L"%Y" }, |
75 » { (FX_LPCWSTR)L"yy", (FX_LPCWSTR)L"%y" }, | 75 » { L"yy", L"%y" }, |
76 » { (FX_LPCWSTR)L"HH", (FX_LPCWSTR)L"%H" }, | 76 » { L"HH", L"%H" }, |
77 //"H" | 77 //"H" |
78 » { (FX_LPCWSTR)L"hh", (FX_LPCWSTR)L"%I" }, | 78 » { L"hh", L"%I" }, |
79 //"h" | 79 //"h" |
80 » { (FX_LPCWSTR)L"MM", (FX_LPCWSTR)L"%M" }, | 80 » { L"MM", L"%M" }, |
81 //"M" | 81 //"M" |
82 » { (FX_LPCWSTR)L"ss", (FX_LPCWSTR)L"%S" }, | 82 » { L"ss", L"%S" }, |
83 //"s | 83 //"s |
84 » { (FX_LPCWSTR)L"TT", (FX_LPCWSTR)L"%p" }, | 84 » { L"TT", L"%p" }, |
85 //"t" | 85 //"t" |
86 #if defined(_WIN32) | 86 #if defined(_WIN32) |
87 » { (FX_LPCWSTR)L"tt", (FX_LPCWSTR)L"%p" }, | 87 » { L"tt", L"%p" }, |
88 » { (FX_LPCWSTR)L"h", (FX_LPCWSTR)L"%#I" }, | 88 » { L"h", L"%#I" }, |
89 #else | 89 #else |
90 » { (FX_LPCWSTR)L"tt", (FX_LPCWSTR)L"%P" }, | 90 » { L"tt", L"%P" }, |
91 » { (FX_LPCWSTR)L"h", (FX_LPCWSTR)L"%l" }, | 91 » { L"h", L"%l" }, |
92 #endif | 92 #endif |
93 }; | 93 }; |
94 | 94 |
95 #define UTIL_INT 0 | 95 #define UTIL_INT 0 |
96 #define UTIL_DOUBLE 1 | 96 #define UTIL_DOUBLE 1 |
97 #define UTIL_STRING 2 | 97 #define UTIL_STRING 2 |
98 | 98 |
99 int util::ParstDataType(std::wstring* sFormat) | 99 int util::ParstDataType(std::wstring* sFormat) |
100 { | 100 { |
101 size_t i = 0; | 101 size_t i = 0; |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 case UTIL_INT: | 184 case UTIL_INT: |
185 strSegment.Format((FX_LPCWSTR)c_strFormat.c_str(
),(int)params[iIndex]); | 185 strSegment.Format((FX_LPCWSTR)c_strFormat.c_str(
),(int)params[iIndex]); |
186 break; | 186 break; |
187 case UTIL_DOUBLE: | 187 case UTIL_DOUBLE: |
188 strSegment.Format((FX_LPCWSTR)c_strFormat.c_str(
),(double)params[iIndex]); | 188 strSegment.Format((FX_LPCWSTR)c_strFormat.c_str(
),(double)params[iIndex]); |
189 break; | 189 break; |
190 case UTIL_STRING: | 190 case UTIL_STRING: |
191 strSegment.Format((FX_LPCWSTR)c_strFormat.c_str(
),(FX_LPCWSTR)params[iIndex].operator CFX_WideString()); | 191 strSegment.Format((FX_LPCWSTR)c_strFormat.c_str(
),(FX_LPCWSTR)params[iIndex].operator CFX_WideString()); |
192 break; | 192 break; |
193 default: | 193 default: |
194 » » » » strSegment.Format((FX_LPCWSTR)L"%S", (FX_LPCWSTR
)c_strFormat.c_str()); | 194 » » » » strSegment.Format(L"%S", (FX_LPCWSTR)c_strFormat
.c_str()); |
195 break; | 195 break; |
196 } | 196 } |
197 c_strResult += (wchar_t*)strSegment.GetBuffer(strSegment.GetLeng
th()+1); | 197 c_strResult += (wchar_t*)strSegment.GetBuffer(strSegment.GetLeng
th()+1); |
198 } | 198 } |
199 | 199 |
200 c_strResult.erase(c_strResult.begin()); | 200 c_strResult.erase(c_strResult.begin()); |
201 vRet = (FX_LPCWSTR)c_strResult.c_str(); | 201 vRet = (FX_LPCWSTR)c_strResult.c_str(); |
202 return TRUE; | 202 return TRUE; |
203 } | 203 } |
204 | 204 |
(...skipping 24 matching lines...) Expand all Loading... |
229 | 229 |
230 if (p1.GetType() == VT_number) | 230 if (p1.GetType() == VT_number) |
231 { | 231 { |
232 int nFormat = p1; | 232 int nFormat = p1; |
233 | 233 |
234 CFX_WideString swResult; | 234 CFX_WideString swResult; |
235 | 235 |
236 switch (nFormat) | 236 switch (nFormat) |
237 { | 237 { |
238 case 0: | 238 case 0: |
239 » » » swResult.Format((FX_LPCWSTR)L"D:%04d%02d%02d%02d%02d%02d
", | 239 » » » swResult.Format(L"D:%04d%02d%02d%02d%02d%02d", |
240 jsDate.GetYear(), | 240 jsDate.GetYear(), |
241 jsDate.GetMonth() + 1, | 241 jsDate.GetMonth() + 1, |
242 jsDate.GetDay(), | 242 jsDate.GetDay(), |
243 jsDate.GetHours(), | 243 jsDate.GetHours(), |
244 jsDate.GetMinutes(), | 244 jsDate.GetMinutes(), |
245 jsDate.GetSeconds()); | 245 jsDate.GetSeconds()); |
246 break; | 246 break; |
247 case 1: | 247 case 1: |
248 » » » swResult.Format((FX_LPCWSTR)L"%04d.%02d.%02d %02d:%02d:%
02d", | 248 » » » swResult.Format(L"%04d.%02d.%02d %02d:%02d:%02d", |
249 jsDate.GetYear(), | 249 jsDate.GetYear(), |
250 jsDate.GetMonth() + 1, | 250 jsDate.GetMonth() + 1, |
251 jsDate.GetDay(), | 251 jsDate.GetDay(), |
252 jsDate.GetHours(), | 252 jsDate.GetHours(), |
253 jsDate.GetMinutes(), | 253 jsDate.GetMinutes(), |
254 jsDate.GetSeconds()); | 254 jsDate.GetSeconds()); |
255 break; | 255 break; |
256 case 2: | 256 case 2: |
257 » » » swResult.Format((FX_LPCWSTR)L"%04d/%02d/%02d %02d:%02d:%
02d", | 257 » » » swResult.Format(L"%04d/%02d/%02d %02d:%02d:%02d", |
258 jsDate.GetYear(), | 258 jsDate.GetYear(), |
259 jsDate.GetMonth() + 1, | 259 jsDate.GetMonth() + 1, |
260 jsDate.GetDay(), | 260 jsDate.GetDay(), |
261 jsDate.GetHours(), | 261 jsDate.GetHours(), |
262 jsDate.GetMinutes(), | 262 jsDate.GetMinutes(), |
263 jsDate.GetSeconds()); | 263 jsDate.GetSeconds()); |
264 break; | 264 break; |
265 default: | 265 default: |
266 return FALSE; | 266 return FALSE; |
267 } | 267 } |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
315 //COleDateTime cppTm(iYear,iMonth+1,iDay,iHour,iMin,iSec); | 315 //COleDateTime cppTm(iYear,iMonth+1,iDay,iHour,iMin,iSec); |
316 //CString strFormat = cppTm.Format(cFormat.c_str()); | 316 //CString strFormat = cppTm.Format(cFormat.c_str()); |
317 | 317 |
318 struct stru_TbConvertAd | 318 struct stru_TbConvertAd |
319 { | 319 { |
320 FX_LPCWSTR lpszJSMark; | 320 FX_LPCWSTR lpszJSMark; |
321 int iValue; | 321 int iValue; |
322 }; | 322 }; |
323 | 323 |
324 stru_TbConvertAd cTableAd[] ={ | 324 stru_TbConvertAd cTableAd[] ={ |
325 » » » { (FX_LPCWSTR)L"m", iMonth+1 }, | 325 » » » { L"m", iMonth+1 }, |
326 » » » { (FX_LPCWSTR)L"d", iDay }, | 326 » » » { L"d", iDay }, |
327 » » » { (FX_LPCWSTR)L"H", iHour }, | 327 » » » { L"H", iHour }, |
328 » » » { (FX_LPCWSTR)L"h", iHour>12?iHour-12:iHour }, | 328 » » » { L"h", iHour>12?iHour-12:iHour }, |
329 » » » { (FX_LPCWSTR)L"M", iMin }, | 329 » » » { L"M", iMin }, |
330 » » » { (FX_LPCWSTR)L"s", iSec }, | 330 » » » { L"s", iSec }, |
331 }; | 331 }; |
332 | 332 |
333 //cFormat = strFormat.GetBuffer(strFormat.GetLength()+1); | 333 //cFormat = strFormat.GetBuffer(strFormat.GetLength()+1); |
334 for(iIndex = 0;iIndex<sizeof(cTableAd)/sizeof(stru_TbConvertAd);
iIndex++) | 334 for(iIndex = 0;iIndex<sizeof(cTableAd)/sizeof(stru_TbConvertAd);
iIndex++) |
335 { | 335 { |
336 wchar_t tszValue[10]; | 336 wchar_t tszValue[10]; |
337 //_itot(cTableAd[iIndex].iValue,tszValue,10); | 337 //_itot(cTableAd[iIndex].iValue,tszValue,10); |
338 CFX_WideString sValue; | 338 CFX_WideString sValue; |
339 » » » sValue.Format((FX_LPCWSTR)L"%d",cTableAd[iIndex].iValue)
; | 339 » » » sValue.Format(L"%d",cTableAd[iIndex].iValue); |
340 memcpy(tszValue, (wchar_t *)sValue.GetBuffer(sValue.GetL
ength()+1), | 340 memcpy(tszValue, (wchar_t *)sValue.GetBuffer(sValue.GetL
ength()+1), |
341 (sValue.GetLength()+1)*sizeof(wchar_t)); | 341 (sValue.GetLength()+1)*sizeof(wchar_t)); |
342 | 342 |
343 //strFormat.Replace(cTableAd[iIndex].lpszJSMark,"%d"); | 343 //strFormat.Replace(cTableAd[iIndex].lpszJSMark,"%d"); |
344 //strFormat.Format(strFormat,cTableAd[iIndex].iValue); | 344 //strFormat.Format(strFormat,cTableAd[iIndex].iValue); |
345 int iStart = 0; | 345 int iStart = 0; |
346 int iEnd; | 346 int iEnd; |
347 while((iEnd = cFormat.find((CFX_WideString)cTableAd[iInd
ex].lpszJSMark,iStart)) != -1) | 347 while((iEnd = cFormat.find((CFX_WideString)cTableAd[iInd
ex].lpszJSMark,iStart)) != -1) |
348 { | 348 { |
349 if (iEnd > 0) | 349 if (iEnd > 0) |
350 { | 350 { |
351 if (cFormat[iEnd-1] == L'%') | 351 if (cFormat[iEnd-1] == L'%') |
352 { | 352 { |
353 iStart = iEnd+1; | 353 iStart = iEnd+1; |
354 continue; | 354 continue; |
355 } | 355 } |
356 } | 356 } |
357 cFormat.replace(iEnd, FXSYS_wcslen(cTableAd[iInd
ex].lpszJSMark), tszValue); | 357 cFormat.replace(iEnd, FXSYS_wcslen(cTableAd[iInd
ex].lpszJSMark), tszValue); |
358 iStart = iEnd; | 358 iStart = iEnd; |
359 } | 359 } |
360 } | 360 } |
361 | 361 |
362 CFX_WideString strFormat; | 362 CFX_WideString strFormat; |
363 //» » strFormat.Format((FX_LPCWSTR)L"%d,%d,%d,%d,%d,%d",iYear, iMonth,
iDay, iHour, iMin, iSec); | 363 //» » strFormat.Format(L"%d,%d,%d,%d,%d,%d",iYear, iMonth, iDay, iHour
, iMin, iSec); |
364 // CString strFormat = cppTm.Format(cFormat.c_str()); | 364 // CString strFormat = cppTm.Format(cFormat.c_str()); |
365 wchar_t buf[64] = {0}; | 365 wchar_t buf[64] = {0}; |
366 strFormat = wcsftime(buf, 64, cFormat.c_str(), &time); | 366 strFormat = wcsftime(buf, 64, cFormat.c_str(), &time); |
367 cFormat = buf; | 367 cFormat = buf; |
368 vRet = (FX_LPCWSTR)cFormat.c_str(); | 368 vRet = (FX_LPCWSTR)cFormat.c_str(); |
369 //rtRet = strFormat.GetBuffer(strFormat.GetLength()+1); | 369 //rtRet = strFormat.GetBuffer(strFormat.GetLength()+1); |
370 return TRUE; | 370 return TRUE; |
371 } | 371 } |
372 return FALSE; | 372 return FALSE; |
373 } | 373 } |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
411 // COleDateTime cppTm(iYear,iMonth+1,iDay,iHour,iMin,iSec); | 411 // COleDateTime cppTm(iYear,iMonth+1,iDay,iHour,iMin,iSec); |
412 //CString strFormat = cppTm.Format(cFormat.c_str()); | 412 //CString strFormat = cppTm.Format(cFormat.c_str()); |
413 | 413 |
414 struct stru_TbConvertAd | 414 struct stru_TbConvertAd |
415 { | 415 { |
416 FX_LPCWSTR lpszJSMark; | 416 FX_LPCWSTR lpszJSMark; |
417 int iValue; | 417 int iValue; |
418 }; | 418 }; |
419 | 419 |
420 stru_TbConvertAd cTableAd[] ={ | 420 stru_TbConvertAd cTableAd[] ={ |
421 » » { (FX_LPCWSTR)L"m", iMonth+1 }, | 421 » » { L"m", iMonth+1 }, |
422 » » { (FX_LPCWSTR)L"d", iDay }, | 422 » » { L"d", iDay }, |
423 » » { (FX_LPCWSTR)L"H", iHour }, | 423 » » { L"H", iHour }, |
424 » » { (FX_LPCWSTR)L"h", iHour>12?iHour-12:iHour }, | 424 » » { L"h", iHour>12?iHour-12:iHour }, |
425 » » { (FX_LPCWSTR)L"M", iMin }, | 425 » » { L"M", iMin }, |
426 » » { (FX_LPCWSTR)L"s", iSec }, | 426 » » { L"s", iSec }, |
427 }; | 427 }; |
428 | 428 |
429 //cFormat = strFormat.GetBuffer(strFormat.GetLength()+1); | 429 //cFormat = strFormat.GetBuffer(strFormat.GetLength()+1); |
430 for(iIndex = 0;iIndex<sizeof(cTableAd)/sizeof(stru_TbConvertAd);iIndex++
) | 430 for(iIndex = 0;iIndex<sizeof(cTableAd)/sizeof(stru_TbConvertAd);iIndex++
) |
431 { | 431 { |
432 wchar_t tszValue[10]; | 432 wchar_t tszValue[10]; |
433 //_itot(cTableAd[iIndex].iValue,tszValue,10); | 433 //_itot(cTableAd[iIndex].iValue,tszValue,10); |
434 CFX_WideString sValue; | 434 CFX_WideString sValue; |
435 » » sValue.Format((FX_LPCWSTR)L"%d",cTableAd[iIndex].iValue); | 435 » » sValue.Format(L"%d",cTableAd[iIndex].iValue); |
436 memcpy(tszValue, (wchar_t *)sValue.GetBuffer(sValue.GetLength()+
1),sValue.GetLength()*sizeof(wchar_t)); | 436 memcpy(tszValue, (wchar_t *)sValue.GetBuffer(sValue.GetLength()+
1),sValue.GetLength()*sizeof(wchar_t)); |
437 | 437 |
438 | 438 |
439 //strFormat.Replace(cTableAd[iIndex].lpszJSMark,"%d"); | 439 //strFormat.Replace(cTableAd[iIndex].lpszJSMark,"%d"); |
440 //strFormat.Format(strFormat,cTableAd[iIndex].iValue); | 440 //strFormat.Format(strFormat,cTableAd[iIndex].iValue); |
441 int iStart = 0; | 441 int iStart = 0; |
442 int iEnd; | 442 int iEnd; |
443 while((iEnd = cFormat.find((CFX_WideString)cTableAd[iIndex].lpsz
JSMark,iStart)) != -1) | 443 while((iEnd = cFormat.find((CFX_WideString)cTableAd[iIndex].lpsz
JSMark,iStart)) != -1) |
444 { | 444 { |
445 if (iEnd > 0) | 445 if (iEnd > 0) |
446 { | 446 { |
447 if (cFormat[iEnd-1] == L'%') | 447 if (cFormat[iEnd-1] == L'%') |
448 { | 448 { |
449 iStart = iEnd+1; | 449 iStart = iEnd+1; |
450 continue; | 450 continue; |
451 } | 451 } |
452 } | 452 } |
453 cFormat.replace(iEnd,FXSYS_wcslen(cTableAd[iIndex].lpszJ
SMark),tszValue); | 453 cFormat.replace(iEnd,FXSYS_wcslen(cTableAd[iIndex].lpszJ
SMark),tszValue); |
454 iStart = iEnd; | 454 iStart = iEnd; |
455 } | 455 } |
456 } | 456 } |
457 | 457 |
458 CFX_WideString strFormat; | 458 CFX_WideString strFormat; |
459 //» » strFormat.Format((FX_LPCWSTR)L"%d,%d,%d,%d,%d,%d",iYear, iMonth,
iDay, iHour, iMin, iSec); | 459 //» » strFormat.Format(L"%d,%d,%d,%d,%d,%d",iYear, iMonth, iDay, iHour
, iMin, iSec); |
460 // CString strFormat = cppTm.Format(cFormat.c_str()); | 460 // CString strFormat = cppTm.Format(cFormat.c_str()); |
461 wchar_t buf[64] = {0}; | 461 wchar_t buf[64] = {0}; |
462 strFormat = wcsftime(buf, 64, cFormat.c_str(), &time); | 462 strFormat = wcsftime(buf, 64, cFormat.c_str(), &time); |
463 cFormat = buf; | 463 cFormat = buf; |
464 cPurpose = cFormat; | 464 cPurpose = cFormat; |
465 } | 465 } |
466 | 466 |
467 FX_BOOL util::printx(OBJ_METHOD_PARAMS) | 467 FX_BOOL util::printx(OBJ_METHOD_PARAMS) |
468 { | 468 { |
469 int iSize = params.size(); | 469 int iSize = params.size(); |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
636 } | 636 } |
637 | 637 |
638 FX_BOOL util::byteToChar(OBJ_METHOD_PARAMS) | 638 FX_BOOL util::byteToChar(OBJ_METHOD_PARAMS) |
639 { | 639 { |
640 int iSize = params.size(); | 640 int iSize = params.size(); |
641 if (iSize == 0) | 641 if (iSize == 0) |
642 return FALSE; | 642 return FALSE; |
643 int nByte = (int)params[0]; | 643 int nByte = (int)params[0]; |
644 unsigned char cByte = (unsigned char)nByte; | 644 unsigned char cByte = (unsigned char)nByte; |
645 CFX_WideString csValue; | 645 CFX_WideString csValue; |
646 » csValue.Format((FX_LPCWSTR)L"%c", cByte); | 646 » csValue.Format(L"%c", cByte); |
647 vRet = csValue; | 647 vRet = csValue; |
648 return TRUE; | 648 return TRUE; |
649 } | 649 } |
OLD | NEW |