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 "PublicMethods.h" | 7 #include "PublicMethods.h" |
8 | 8 |
9 #include "../../include/fsdk_mgr.h" // For CPDFDoc_Environment. | 9 #include "../../include/fsdk_mgr.h" // For CPDFDoc_Environment. |
10 #include "../../include/javascript/IJavaScript.h" | 10 #include "../../include/javascript/IJavaScript.h" |
(...skipping 30 matching lines...) Expand all Loading... |
41 JS_STATIC_GLOBAL_FUN_ENTRY(AFMakeNumber) | 41 JS_STATIC_GLOBAL_FUN_ENTRY(AFMakeNumber) |
42 JS_STATIC_GLOBAL_FUN_ENTRY(AFSimple_Calculate) | 42 JS_STATIC_GLOBAL_FUN_ENTRY(AFSimple_Calculate) |
43 JS_STATIC_GLOBAL_FUN_ENTRY(AFRange_Validate) | 43 JS_STATIC_GLOBAL_FUN_ENTRY(AFRange_Validate) |
44 JS_STATIC_GLOBAL_FUN_ENTRY(AFMergeChange) | 44 JS_STATIC_GLOBAL_FUN_ENTRY(AFMergeChange) |
45 JS_STATIC_GLOBAL_FUN_ENTRY(AFParseDateEx) | 45 JS_STATIC_GLOBAL_FUN_ENTRY(AFParseDateEx) |
46 JS_STATIC_GLOBAL_FUN_ENTRY(AFExtractNums) | 46 JS_STATIC_GLOBAL_FUN_ENTRY(AFExtractNums) |
47 END_JS_STATIC_GLOBAL_FUN() | 47 END_JS_STATIC_GLOBAL_FUN() |
48 | 48 |
49 IMPLEMENT_JS_STATIC_GLOBAL_FUN(CJS_PublicMethods) | 49 IMPLEMENT_JS_STATIC_GLOBAL_FUN(CJS_PublicMethods) |
50 | 50 |
51 static const FX_WCHAR* months[] = {L"Jan", L"Feb", L"Mar", L"Apr", | 51 static const FX_WCHAR* const months[] = {L"Jan", |
52 L"May", L"Jun", L"Jul", L"Aug", | 52 L"Feb", |
53 L"Sep", L"Oct", L"Nov", L"Dec"}; | 53 L"Mar", |
| 54 L"Apr", |
| 55 L"May", |
| 56 L"Jun", |
| 57 L"Jul", |
| 58 L"Aug", |
| 59 L"Sep", |
| 60 L"Oct", |
| 61 L"Nov", |
| 62 L"Dec"}; |
54 | 63 |
55 static const FX_WCHAR* const fullmonths[] = { | 64 static const FX_WCHAR* const fullmonths[] = { |
56 L"January", L"February", L"March", L"April", | 65 L"January", L"February", L"March", L"April", |
57 L"May", L"June", L"July", L"August", | 66 L"May", L"June", L"July", L"August", |
58 L"September", L"October", L"November", L"December"}; | 67 L"September", L"October", L"November", L"December"}; |
59 | 68 |
60 FX_BOOL CJS_PublicMethods::IsNumber(const FX_WCHAR* string) { | 69 FX_BOOL CJS_PublicMethods::IsNumber(const FX_WCHAR* string) { |
61 CFX_WideString sTrim = StrTrim(string); | 70 CFX_WideString sTrim = StrTrim(string); |
62 const FX_WCHAR* pTrim = sTrim.c_str(); | 71 const FX_WCHAR* pTrim = sTrim.c_str(); |
63 const FX_WCHAR* p = pTrim; | 72 const FX_WCHAR* p = pTrim; |
(...skipping 864 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
928 iSepStyle = 0; | 937 iSepStyle = 0; |
929 | 938 |
930 if (iNegStyle < 0 || iNegStyle > 3) | 939 if (iNegStyle < 0 || iNegStyle > 3) |
931 iNegStyle = 0; | 940 iNegStyle = 0; |
932 | 941 |
933 ////////////////////////////////////////////////////// | 942 ////////////////////////////////////////////////////// |
934 // for processing decimal places | 943 // for processing decimal places |
935 strValue.Replace(",", "."); | 944 strValue.Replace(",", "."); |
936 double dValue = atof(strValue); | 945 double dValue = atof(strValue); |
937 if (iDec > 0) | 946 if (iDec > 0) |
938 dValue += DOUBLE_CORRECT; // | 947 dValue += DOUBLE_CORRECT; |
939 | 948 |
940 int iDec2; | 949 int iDec2; |
941 int iNegative = 0; | 950 int iNegative = 0; |
942 | 951 |
943 strValue = fcvt(dValue, iDec, &iDec2, &iNegative); | 952 strValue = fcvt(dValue, iDec, &iDec2, &iNegative); |
944 if (strValue.IsEmpty()) { | 953 if (strValue.IsEmpty()) { |
945 dValue = 0; | 954 dValue = 0; |
946 strValue = fcvt(dValue, iDec, &iDec2, &iNegative); | 955 strValue = fcvt(dValue, iDec, &iDec2, &iNegative); |
947 if (strValue.IsEmpty()) { | 956 if (strValue.IsEmpty()) { |
948 strValue = "0"; | 957 strValue = "0"; |
(...skipping 28 matching lines...) Expand all Loading... |
977 if (iDec2 == 0) | 986 if (iDec2 == 0) |
978 strValue.Insert(iDec2, '0'); | 987 strValue.Insert(iDec2, '0'); |
979 } | 988 } |
980 if (iSepStyle == 0 || iSepStyle == 2) { | 989 if (iSepStyle == 0 || iSepStyle == 2) { |
981 char cSeperator; | 990 char cSeperator; |
982 if (iSepStyle == 0) | 991 if (iSepStyle == 0) |
983 cSeperator = ','; | 992 cSeperator = ','; |
984 else | 993 else |
985 cSeperator = '.'; | 994 cSeperator = '.'; |
986 | 995 |
987 int iDecPositive, iDecNegative; | 996 for (int iDecPositive = iDec2 - 3; iDecPositive > 0; iDecPositive -= 3) { |
988 iDecPositive = iDec2; | |
989 iDecNegative = iDec2; | |
990 | |
991 for (iDecPositive = iDec2 - 3; iDecPositive > 0; iDecPositive -= 3) { | |
992 strValue.Insert(iDecPositive, cSeperator); | 997 strValue.Insert(iDecPositive, cSeperator); |
993 iMax++; | 998 iMax++; |
994 } | 999 } |
995 } | 1000 } |
996 | 1001 |
997 ////////////////////////////////////////////////////////////////////// | 1002 ////////////////////////////////////////////////////////////////////// |
998 // for processing currency string | 1003 // for processing currency string |
999 | 1004 |
1000 Value = CFX_WideString::FromLocal(strValue); | 1005 Value = CFX_WideString::FromLocal(strValue); |
1001 std::wstring strValue2 = Value.c_str(); | 1006 std::wstring strValue2 = Value.c_str(); |
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1267 if (iDec2 == 0) | 1272 if (iDec2 == 0) |
1268 strValue.Insert(iDec2, '0'); | 1273 strValue.Insert(iDec2, '0'); |
1269 } | 1274 } |
1270 if (iSepStyle == 0 || iSepStyle == 2) { | 1275 if (iSepStyle == 0 || iSepStyle == 2) { |
1271 char cSeperator; | 1276 char cSeperator; |
1272 if (iSepStyle == 0) | 1277 if (iSepStyle == 0) |
1273 cSeperator = ','; | 1278 cSeperator = ','; |
1274 else | 1279 else |
1275 cSeperator = '.'; | 1280 cSeperator = '.'; |
1276 | 1281 |
1277 int iDecPositive, iDecNegative; | 1282 for (int iDecPositive = iDec2 - 3; iDecPositive > 0; iDecPositive -= 3) { |
1278 iDecPositive = iDec2; | |
1279 iDecNegative = iDec2; | |
1280 | |
1281 for (iDecPositive = iDec2 - 3; iDecPositive > 0; iDecPositive -= 3) { | |
1282 strValue.Insert(iDecPositive, cSeperator); | 1283 strValue.Insert(iDecPositive, cSeperator); |
1283 iMax++; | 1284 iMax++; |
1284 } | 1285 } |
1285 } | 1286 } |
1286 //////////////////////////////////////////////////////////////////// | 1287 //////////////////////////////////////////////////////////////////// |
1287 // negative mark | 1288 // negative mark |
1288 if (iNegative) | 1289 if (iNegative) |
1289 strValue = "-" + strValue; | 1290 strValue = "-" + strValue; |
1290 strValue += "%"; | 1291 strValue += "%"; |
1291 Value = CFX_WideString::FromLocal(strValue); | 1292 Value = CFX_WideString::FromLocal(strValue); |
(...skipping 776 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2068 nums.SetElement(nIndex, CJS_Value(pRuntime, sPart.c_str())); | 2069 nums.SetElement(nIndex, CJS_Value(pRuntime, sPart.c_str())); |
2069 } | 2070 } |
2070 | 2071 |
2071 if (nums.GetLength() > 0) | 2072 if (nums.GetLength() > 0) |
2072 vRet = nums; | 2073 vRet = nums; |
2073 else | 2074 else |
2074 vRet.SetNull(); | 2075 vRet.SetNull(); |
2075 | 2076 |
2076 return TRUE; | 2077 return TRUE; |
2077 } | 2078 } |
OLD | NEW |