| 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 "util.h" | 7 #include "util.h" |
| 8 | 8 |
| 9 #include "../../../core/include/fxcrt/fx_ext.h" |
| 9 #include "../../include/javascript/IJavaScript.h" | 10 #include "../../include/javascript/IJavaScript.h" |
| 10 #include "JS_Context.h" | 11 #include "JS_Context.h" |
| 11 #include "JS_Define.h" | 12 #include "JS_Define.h" |
| 12 #include "JS_EventHandler.h" | 13 #include "JS_EventHandler.h" |
| 13 #include "JS_Object.h" | 14 #include "JS_Object.h" |
| 14 #include "JS_Runtime.h" | 15 #include "JS_Runtime.h" |
| 15 #include "JS_Value.h" | 16 #include "JS_Value.h" |
| 16 #include "PublicMethods.h" | 17 #include "PublicMethods.h" |
| 17 #include "resource.h" | 18 #include "resource.h" |
| 18 | 19 |
| (...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 418 for (int iIndex = 0; iIndex < (int)cFormat.size() && itSource < iSize; | 419 for (int iIndex = 0; iIndex < (int)cFormat.size() && itSource < iSize; |
| 419 iIndex++) { | 420 iIndex++) { |
| 420 char letter = cFormat[iIndex]; | 421 char letter = cFormat[iIndex]; |
| 421 switch (letter) { | 422 switch (letter) { |
| 422 case '?': | 423 case '?': |
| 423 cPurpose += cSource[itSource]; | 424 cPurpose += cSource[itSource]; |
| 424 itSource++; | 425 itSource++; |
| 425 break; | 426 break; |
| 426 case 'X': { | 427 case 'X': { |
| 427 while (itSource < iSize) { | 428 while (itSource < iSize) { |
| 428 if ((cSource[itSource] >= '0' && cSource[itSource] <= '9') || | 429 if (std::isdigit(cSource[itSource]) || |
| 429 (cSource[itSource] >= 'a' && cSource[itSource] <= 'z') || | 430 (cSource[itSource] >= 'a' && cSource[itSource] <= 'z') || |
| 430 (cSource[itSource] >= 'A' && cSource[itSource] <= 'Z')) { | 431 (cSource[itSource] >= 'A' && cSource[itSource] <= 'Z')) { |
| 431 cPurpose += cSource[itSource]; | 432 cPurpose += cSource[itSource]; |
| 432 itSource++; | 433 itSource++; |
| 433 break; | 434 break; |
| 434 } | 435 } |
| 435 itSource++; | 436 itSource++; |
| 436 } | 437 } |
| 437 break; | 438 break; |
| 438 } break; | 439 } break; |
| 439 case 'A': { | 440 case 'A': { |
| 440 while (itSource < iSize) { | 441 while (itSource < iSize) { |
| 441 if ((cSource[itSource] >= 'a' && cSource[itSource] <= 'z') || | 442 if ((cSource[itSource] >= 'a' && cSource[itSource] <= 'z') || |
| 442 (cSource[itSource] >= 'A' && cSource[itSource] <= 'Z')) { | 443 (cSource[itSource] >= 'A' && cSource[itSource] <= 'Z')) { |
| 443 cPurpose += cSource[itSource]; | 444 cPurpose += cSource[itSource]; |
| 444 itSource++; | 445 itSource++; |
| 445 break; | 446 break; |
| 446 } | 447 } |
| 447 itSource++; | 448 itSource++; |
| 448 } | 449 } |
| 449 break; | 450 break; |
| 450 } break; | 451 } break; |
| 451 case '9': { | 452 case '9': { |
| 452 while (itSource < iSize) { | 453 while (itSource < iSize) { |
| 453 if (cSource[itSource] >= '0' && cSource[itSource] <= '9') { | 454 if (std::isdigit(cSource[itSource])) { |
| 454 cPurpose += cSource[itSource]; | 455 cPurpose += cSource[itSource]; |
| 455 itSource++; | 456 itSource++; |
| 456 break; | 457 break; |
| 457 } | 458 } |
| 458 itSource++; | 459 itSource++; |
| 459 } | 460 } |
| 460 break; | 461 break; |
| 461 } | 462 } |
| 462 case '*': { | 463 case '*': { |
| 463 cPurpose.append(cSource, itSource, iSize - itSource); | 464 cPurpose.append(cSource, itSource, iSize - itSource); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 524 ++nptr; | 525 ++nptr; |
| 525 | 526 |
| 526 c = (int)(unsigned char)*nptr++; | 527 c = (int)(unsigned char)*nptr++; |
| 527 sign = c; /* save sign indication */ | 528 sign = c; /* save sign indication */ |
| 528 if (c == '-' || c == '+') | 529 if (c == '-' || c == '+') |
| 529 c = (int)(unsigned char)*nptr++; /* skip sign */ | 530 c = (int)(unsigned char)*nptr++; /* skip sign */ |
| 530 | 531 |
| 531 total = 0; | 532 total = 0; |
| 532 | 533 |
| 533 while (isdigit(c)) { | 534 while (isdigit(c)) { |
| 534 total = 10 * total + (c - '0'); /* accumulate digit */ | 535 total = 10 * total + FXSYS_toDecimalDigit(c); /* accumulate digit */ |
| 535 c = (int)(unsigned char)*nptr++; /* get next char */ | 536 c = (int)(unsigned char)*nptr++; /* get next char */ |
| 536 } | 537 } |
| 537 | 538 |
| 538 return sign == '-' ? -total : total; | 539 return sign == '-' ? -total : total; |
| 539 } | 540 } |
| 540 | 541 |
| 541 FX_BOOL util::byteToChar(IJS_Context* cc, | 542 FX_BOOL util::byteToChar(IJS_Context* cc, |
| 542 const CJS_Parameters& params, | 543 const CJS_Parameters& params, |
| 543 CJS_Value& vRet, | 544 CJS_Value& vRet, |
| 544 CFX_WideString& sError) { | 545 CFX_WideString& sError) { |
| 545 int iSize = params.size(); | 546 int iSize = params.size(); |
| 546 if (iSize == 0) | 547 if (iSize == 0) |
| 547 return FALSE; | 548 return FALSE; |
| 548 int nByte = params[0].ToInt(); | 549 int nByte = params[0].ToInt(); |
| 549 unsigned char cByte = (unsigned char)nByte; | 550 unsigned char cByte = (unsigned char)nByte; |
| 550 CFX_WideString csValue; | 551 CFX_WideString csValue; |
| 551 csValue.Format(L"%c", cByte); | 552 csValue.Format(L"%c", cByte); |
| 552 vRet = csValue.c_str(); | 553 vRet = csValue.c_str(); |
| 553 return TRUE; | 554 return TRUE; |
| 554 } | 555 } |
| OLD | NEW |