| 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 "fpdfsdk/src/javascript/Consts.h" | 7 #include "fpdfsdk/src/javascript/Consts.h" |
| 8 | 8 |
| 9 #include "fpdfsdk/include/javascript/IJavaScript.h" | 9 #include "fpdfsdk/include/javascript/IJavaScript.h" |
| 10 #include "fpdfsdk/src/javascript/JS_Define.h" | 10 #include "fpdfsdk/src/javascript/JS_Define.h" |
| 11 #include "fpdfsdk/src/javascript/JS_Object.h" | 11 #include "fpdfsdk/src/javascript/JS_Object.h" |
| 12 #include "fpdfsdk/src/javascript/JS_Value.h" | 12 #include "fpdfsdk/src/javascript/JS_Value.h" |
| 13 | 13 |
| 14 /* ------------------------------ border ------------------------------ */ | |
| 15 | |
| 16 BEGIN_JS_STATIC_CONST(CJS_Border) | 14 BEGIN_JS_STATIC_CONST(CJS_Border) |
| 17 JS_STATIC_CONST_ENTRY_STRING(L"s", L"solid") | 15 JS_STATIC_CONST_ENTRY_STRING(L"s", L"solid") |
| 18 JS_STATIC_CONST_ENTRY_STRING(L"b", L"beveled") | 16 JS_STATIC_CONST_ENTRY_STRING(L"b", L"beveled") |
| 19 JS_STATIC_CONST_ENTRY_STRING(L"d", L"dashed") | 17 JS_STATIC_CONST_ENTRY_STRING(L"d", L"dashed") |
| 20 JS_STATIC_CONST_ENTRY_STRING(L"i", L"inset") | 18 JS_STATIC_CONST_ENTRY_STRING(L"i", L"inset") |
| 21 JS_STATIC_CONST_ENTRY_STRING(L"u", L"underline") | 19 JS_STATIC_CONST_ENTRY_STRING(L"u", L"underline") |
| 22 END_JS_STATIC_CONST() | 20 END_JS_STATIC_CONST() |
| 23 | |
| 24 IMPLEMENT_JS_CLASS_CONST(CJS_Border, border) | 21 IMPLEMENT_JS_CLASS_CONST(CJS_Border, border) |
| 25 | 22 |
| 26 /* ------------------------------ display ------------------------------ */ | |
| 27 | |
| 28 BEGIN_JS_STATIC_CONST(CJS_Display) | 23 BEGIN_JS_STATIC_CONST(CJS_Display) |
| 29 JS_STATIC_CONST_ENTRY_NUMBER(L"visible", 0) | 24 JS_STATIC_CONST_ENTRY_NUMBER(L"visible", 0) |
| 30 JS_STATIC_CONST_ENTRY_NUMBER(L"hidden", 1) | 25 JS_STATIC_CONST_ENTRY_NUMBER(L"hidden", 1) |
| 31 JS_STATIC_CONST_ENTRY_NUMBER(L"noPrint", 2) | 26 JS_STATIC_CONST_ENTRY_NUMBER(L"noPrint", 2) |
| 32 JS_STATIC_CONST_ENTRY_NUMBER(L"noView", 3) | 27 JS_STATIC_CONST_ENTRY_NUMBER(L"noView", 3) |
| 33 END_JS_STATIC_CONST() | 28 END_JS_STATIC_CONST() |
| 34 | |
| 35 IMPLEMENT_JS_CLASS_CONST(CJS_Display, display) | 29 IMPLEMENT_JS_CLASS_CONST(CJS_Display, display) |
| 36 | 30 |
| 37 /* ------------------------------ font ------------------------------ */ | |
| 38 | |
| 39 BEGIN_JS_STATIC_CONST(CJS_Font) | 31 BEGIN_JS_STATIC_CONST(CJS_Font) |
| 40 JS_STATIC_CONST_ENTRY_STRING(L"Times", L"Times-Roman") | 32 JS_STATIC_CONST_ENTRY_STRING(L"Times", L"Times-Roman") |
| 41 JS_STATIC_CONST_ENTRY_STRING(L"TimesB", L"Times-Bold") | 33 JS_STATIC_CONST_ENTRY_STRING(L"TimesB", L"Times-Bold") |
| 42 JS_STATIC_CONST_ENTRY_STRING(L"TimesI", L"Times-Italic") | 34 JS_STATIC_CONST_ENTRY_STRING(L"TimesI", L"Times-Italic") |
| 43 JS_STATIC_CONST_ENTRY_STRING(L"TimesBI", L"Times-BoldItalic") | 35 JS_STATIC_CONST_ENTRY_STRING(L"TimesBI", L"Times-BoldItalic") |
| 44 JS_STATIC_CONST_ENTRY_STRING(L"Helv", L"Helvetica") | 36 JS_STATIC_CONST_ENTRY_STRING(L"Helv", L"Helvetica") |
| 45 JS_STATIC_CONST_ENTRY_STRING(L"HelvB", L"Helvetica-Bold") | 37 JS_STATIC_CONST_ENTRY_STRING(L"HelvB", L"Helvetica-Bold") |
| 46 JS_STATIC_CONST_ENTRY_STRING(L"HelvI", L"Helvetica-Oblique") | 38 JS_STATIC_CONST_ENTRY_STRING(L"HelvI", L"Helvetica-Oblique") |
| 47 JS_STATIC_CONST_ENTRY_STRING(L"HelvBI", L"Helvetica-BoldOblique") | 39 JS_STATIC_CONST_ENTRY_STRING(L"HelvBI", L"Helvetica-BoldOblique") |
| 48 JS_STATIC_CONST_ENTRY_STRING(L"Cour", L"Courier") | 40 JS_STATIC_CONST_ENTRY_STRING(L"Cour", L"Courier") |
| 49 JS_STATIC_CONST_ENTRY_STRING(L"CourB", L"Courier-Bold") | 41 JS_STATIC_CONST_ENTRY_STRING(L"CourB", L"Courier-Bold") |
| 50 JS_STATIC_CONST_ENTRY_STRING(L"CourI", L"Courier-Oblique") | 42 JS_STATIC_CONST_ENTRY_STRING(L"CourI", L"Courier-Oblique") |
| 51 JS_STATIC_CONST_ENTRY_STRING(L"CourBI", L"Courier-BoldOblique") | 43 JS_STATIC_CONST_ENTRY_STRING(L"CourBI", L"Courier-BoldOblique") |
| 52 JS_STATIC_CONST_ENTRY_STRING(L"Symbol", L"Symbol") | 44 JS_STATIC_CONST_ENTRY_STRING(L"Symbol", L"Symbol") |
| 53 JS_STATIC_CONST_ENTRY_STRING(L"ZapfD", L"ZapfDingbats") | 45 JS_STATIC_CONST_ENTRY_STRING(L"ZapfD", L"ZapfDingbats") |
| 54 END_JS_STATIC_CONST() | 46 END_JS_STATIC_CONST() |
| 55 | |
| 56 IMPLEMENT_JS_CLASS_CONST(CJS_Font, font) | 47 IMPLEMENT_JS_CLASS_CONST(CJS_Font, font) |
| 57 | 48 |
| 58 /* ------------------------------ highlight ------------------------------ */ | |
| 59 | |
| 60 BEGIN_JS_STATIC_CONST(CJS_Highlight) | 49 BEGIN_JS_STATIC_CONST(CJS_Highlight) |
| 61 JS_STATIC_CONST_ENTRY_STRING(L"n", L"none") | 50 JS_STATIC_CONST_ENTRY_STRING(L"n", L"none") |
| 62 JS_STATIC_CONST_ENTRY_STRING(L"i", L"invert") | 51 JS_STATIC_CONST_ENTRY_STRING(L"i", L"invert") |
| 63 JS_STATIC_CONST_ENTRY_STRING(L"p", L"push") | 52 JS_STATIC_CONST_ENTRY_STRING(L"p", L"push") |
| 64 JS_STATIC_CONST_ENTRY_STRING(L"o", L"outline") | 53 JS_STATIC_CONST_ENTRY_STRING(L"o", L"outline") |
| 65 END_JS_STATIC_CONST() | 54 END_JS_STATIC_CONST() |
| 66 | |
| 67 IMPLEMENT_JS_CLASS_CONST(CJS_Highlight, highlight) | 55 IMPLEMENT_JS_CLASS_CONST(CJS_Highlight, highlight) |
| 68 | 56 |
| 69 /* ------------------------------ position ------------------------------ */ | |
| 70 | |
| 71 BEGIN_JS_STATIC_CONST(CJS_Position) | 57 BEGIN_JS_STATIC_CONST(CJS_Position) |
| 72 JS_STATIC_CONST_ENTRY_NUMBER(L"textOnly", 0) | 58 JS_STATIC_CONST_ENTRY_NUMBER(L"textOnly", 0) |
| 73 JS_STATIC_CONST_ENTRY_NUMBER(L"iconOnly", 1) | 59 JS_STATIC_CONST_ENTRY_NUMBER(L"iconOnly", 1) |
| 74 JS_STATIC_CONST_ENTRY_NUMBER(L"iconTextV", 2) | 60 JS_STATIC_CONST_ENTRY_NUMBER(L"iconTextV", 2) |
| 75 JS_STATIC_CONST_ENTRY_NUMBER(L"textIconV", 3) | 61 JS_STATIC_CONST_ENTRY_NUMBER(L"textIconV", 3) |
| 76 JS_STATIC_CONST_ENTRY_NUMBER(L"iconTextH", 4) | 62 JS_STATIC_CONST_ENTRY_NUMBER(L"iconTextH", 4) |
| 77 JS_STATIC_CONST_ENTRY_NUMBER(L"textIconH", 5) | 63 JS_STATIC_CONST_ENTRY_NUMBER(L"textIconH", 5) |
| 78 JS_STATIC_CONST_ENTRY_NUMBER(L"overlay", 6) | 64 JS_STATIC_CONST_ENTRY_NUMBER(L"overlay", 6) |
| 79 END_JS_STATIC_CONST() | 65 END_JS_STATIC_CONST() |
| 80 | |
| 81 IMPLEMENT_JS_CLASS_CONST(CJS_Position, position) | 66 IMPLEMENT_JS_CLASS_CONST(CJS_Position, position) |
| 82 | 67 |
| 83 /* ------------------------------ scaleHow ------------------------------ */ | |
| 84 | |
| 85 BEGIN_JS_STATIC_CONST(CJS_ScaleHow) | 68 BEGIN_JS_STATIC_CONST(CJS_ScaleHow) |
| 86 JS_STATIC_CONST_ENTRY_NUMBER(L"proportional", 0) | 69 JS_STATIC_CONST_ENTRY_NUMBER(L"proportional", 0) |
| 87 JS_STATIC_CONST_ENTRY_NUMBER(L"anamorphic", 1) | 70 JS_STATIC_CONST_ENTRY_NUMBER(L"anamorphic", 1) |
| 88 END_JS_STATIC_CONST() | 71 END_JS_STATIC_CONST() |
| 89 | |
| 90 IMPLEMENT_JS_CLASS_CONST(CJS_ScaleHow, scaleHow) | 72 IMPLEMENT_JS_CLASS_CONST(CJS_ScaleHow, scaleHow) |
| 91 | 73 |
| 92 /* ------------------------------ scaleWhen ------------------------------ */ | |
| 93 | |
| 94 BEGIN_JS_STATIC_CONST(CJS_ScaleWhen) | 74 BEGIN_JS_STATIC_CONST(CJS_ScaleWhen) |
| 95 JS_STATIC_CONST_ENTRY_NUMBER(L"always", 0) | 75 JS_STATIC_CONST_ENTRY_NUMBER(L"always", 0) |
| 96 JS_STATIC_CONST_ENTRY_NUMBER(L"never", 1) | 76 JS_STATIC_CONST_ENTRY_NUMBER(L"never", 1) |
| 97 JS_STATIC_CONST_ENTRY_NUMBER(L"tooBig", 2) | 77 JS_STATIC_CONST_ENTRY_NUMBER(L"tooBig", 2) |
| 98 JS_STATIC_CONST_ENTRY_NUMBER(L"tooSmall", 3) | 78 JS_STATIC_CONST_ENTRY_NUMBER(L"tooSmall", 3) |
| 99 END_JS_STATIC_CONST() | 79 END_JS_STATIC_CONST() |
| 100 | |
| 101 IMPLEMENT_JS_CLASS_CONST(CJS_ScaleWhen, scaleWhen) | 80 IMPLEMENT_JS_CLASS_CONST(CJS_ScaleWhen, scaleWhen) |
| 102 | 81 |
| 103 /* ------------------------------ style ------------------------------ */ | |
| 104 | |
| 105 BEGIN_JS_STATIC_CONST(CJS_Style) | 82 BEGIN_JS_STATIC_CONST(CJS_Style) |
| 106 JS_STATIC_CONST_ENTRY_STRING(L"ch", L"check") | 83 JS_STATIC_CONST_ENTRY_STRING(L"ch", L"check") |
| 107 JS_STATIC_CONST_ENTRY_STRING(L"cr", L"cross") | 84 JS_STATIC_CONST_ENTRY_STRING(L"cr", L"cross") |
| 108 JS_STATIC_CONST_ENTRY_STRING(L"di", L"diamond") | 85 JS_STATIC_CONST_ENTRY_STRING(L"di", L"diamond") |
| 109 JS_STATIC_CONST_ENTRY_STRING(L"ci", L"circle") | 86 JS_STATIC_CONST_ENTRY_STRING(L"ci", L"circle") |
| 110 JS_STATIC_CONST_ENTRY_STRING(L"st", L"star") | 87 JS_STATIC_CONST_ENTRY_STRING(L"st", L"star") |
| 111 JS_STATIC_CONST_ENTRY_STRING(L"sq", L"square") | 88 JS_STATIC_CONST_ENTRY_STRING(L"sq", L"square") |
| 112 END_JS_STATIC_CONST() | 89 END_JS_STATIC_CONST() |
| 113 | |
| 114 IMPLEMENT_JS_CLASS_CONST(CJS_Style, style) | 90 IMPLEMENT_JS_CLASS_CONST(CJS_Style, style) |
| 115 | 91 |
| 116 /* ------------------------------ zoomtype ------------------------------ */ | |
| 117 | |
| 118 BEGIN_JS_STATIC_CONST(CJS_Zoomtype) | 92 BEGIN_JS_STATIC_CONST(CJS_Zoomtype) |
| 119 JS_STATIC_CONST_ENTRY_STRING(L"none", L"NoVary") | 93 JS_STATIC_CONST_ENTRY_STRING(L"none", L"NoVary") |
| 120 JS_STATIC_CONST_ENTRY_STRING(L"fitP", L"FitPage") | 94 JS_STATIC_CONST_ENTRY_STRING(L"fitP", L"FitPage") |
| 121 JS_STATIC_CONST_ENTRY_STRING(L"fitW", L"FitWidth") | 95 JS_STATIC_CONST_ENTRY_STRING(L"fitW", L"FitWidth") |
| 122 JS_STATIC_CONST_ENTRY_STRING(L"fitH", L"FitHeight") | 96 JS_STATIC_CONST_ENTRY_STRING(L"fitH", L"FitHeight") |
| 123 JS_STATIC_CONST_ENTRY_STRING(L"fitV", L"FitVisibleWidth") | 97 JS_STATIC_CONST_ENTRY_STRING(L"fitV", L"FitVisibleWidth") |
| 124 JS_STATIC_CONST_ENTRY_STRING(L"pref", L"Preferred") | 98 JS_STATIC_CONST_ENTRY_STRING(L"pref", L"Preferred") |
| 125 JS_STATIC_CONST_ENTRY_STRING(L"refW", L"ReflowWidth") | 99 JS_STATIC_CONST_ENTRY_STRING(L"refW", L"ReflowWidth") |
| 126 END_JS_STATIC_CONST() | 100 END_JS_STATIC_CONST() |
| 127 | |
| 128 IMPLEMENT_JS_CLASS_CONST(CJS_Zoomtype, zoomtype) | 101 IMPLEMENT_JS_CLASS_CONST(CJS_Zoomtype, zoomtype) |
| 129 | 102 |
| 130 /* ------------------------------ CJS_GlobalConsts ------------------------- */ | 103 #define GLOBAL_STRING(rt, name, value) \ |
| 104 FXJS_DefineGlobalConst( \ |
| 105 (rt)->GetIsolate(), (name), \ |
| 106 [](const v8::FunctionCallbackInfo<v8::Value>& info) { \ |
| 107 info.GetReturnValue().Set(FXJS_NewString(info.GetIsolate(), (value))); \ |
| 108 }) |
| 131 | 109 |
| 132 static void DefineGlobalConstString(CJS_Runtime* pRuntime, | 110 void CJS_GlobalConsts::DefineJSObjects(CJS_Runtime* pRuntime) { |
| 133 const wchar_t* pConstName, | 111 GLOBAL_STRING(pRuntime, L"IDS_GREATER_THAN", |
| 134 const wchar_t* pValue) { | 112 L"Invalid value: must be greater than or equal to % s."); |
| 135 FXJS_DefineGlobalConst(pRuntime->GetIsolate(), pConstName, | 113 |
| 136 FXJS_NewString(pRuntime->GetIsolate(), pValue)); | 114 GLOBAL_STRING(pRuntime, L"IDS_GT_AND_LT", |
| 115 L"Invalid value: must be greater than or equal to % s " |
| 116 L"and less than or equal to % s."); |
| 117 |
| 118 GLOBAL_STRING(pRuntime, L"IDS_LESS_THAN", |
| 119 L"Invalid value: must be less than or equal to % s."); |
| 120 |
| 121 GLOBAL_STRING(pRuntime, L"IDS_INVALID_MONTH", L"**Invalid**"); |
| 122 GLOBAL_STRING( |
| 123 pRuntime, L"IDS_INVALID_DATE", |
| 124 L"Invalid date / time: please ensure that the date / time exists.Field"); |
| 125 |
| 126 GLOBAL_STRING(pRuntime, L"IDS_INVALID_VALUE", |
| 127 L"The value entered does not match the format of the field"); |
| 128 |
| 129 GLOBAL_STRING(pRuntime, L"IDS_AM", L"am"); |
| 130 GLOBAL_STRING(pRuntime, L"IDS_PM", L"pm"); |
| 131 GLOBAL_STRING(pRuntime, L"IDS_MONTH_INFO", |
| 132 L"January[1] February[2] March[3] April[4] May[5] " |
| 133 L"June[6] July[7] August[8] September[9] October[10] " |
| 134 L"November[11] December[12] Sept[9] Jan[1] Feb[2] Mar[3] " |
| 135 L"Apr[4] Jun[6] Jul[7] Aug[8] Sep[9] Oct[10] Nov[11] " |
| 136 L"Dec[12]"); |
| 137 |
| 138 GLOBAL_STRING(pRuntime, L"IDS_STARTUP_CONSOLE_MSG", L"** ^ _ ^ **"); |
| 137 } | 139 } |
| 138 | 140 |
| 139 void CJS_GlobalConsts::DefineJSObjects(CJS_Runtime* pRuntime) { | 141 #define GLOBAL_ARRAY(rt, name, ...) \ |
| 140 DefineGlobalConstString( | 142 { \ |
| 141 pRuntime, L"IDS_GREATER_THAN", | 143 const FX_WCHAR* values[] = {__VA_ARGS__}; \ |
| 142 L"Invalid value: must be greater than or equal to % s."); | 144 v8::Local<v8::Array> array = FXJS_NewArray((rt)->GetIsolate()); \ |
| 143 DefineGlobalConstString( | 145 for (size_t i = 0; i < FX_ArraySize(values); ++i) \ |
| 144 pRuntime, L"IDS_GT_AND_LT", | 146 array->Set(i, FXJS_NewString((rt)->GetIsolate(), values[i])); \ |
| 145 L"Invalid value: must be greater than or equal to % s " | 147 rt->SetConstArray(name, array); \ |
| 146 L"and less than or equal to % s."); | 148 FXJS_DefineGlobalConst( \ |
| 147 DefineGlobalConstString(pRuntime, L"IDS_LESS_THAN", | 149 (rt)->GetIsolate(), (name), \ |
| 148 L"Invalid value: must be less than or equal to % s."); | 150 [](const v8::FunctionCallbackInfo<v8::Value>& info) { \ |
| 149 DefineGlobalConstString(pRuntime, L"IDS_INVALID_MONTH", L"**Invalid**"); | 151 CJS_Runtime* pRuntime = static_cast<CJS_Runtime*>( \ |
| 150 DefineGlobalConstString( | 152 FXJS_GetRuntimeFromIsolate(info.GetIsolate())); \ |
| 151 pRuntime, L"IDS_INVALID_DATE", | 153 if (pRuntime) \ |
| 152 L"Invalid date / time: please ensure that the date / time exists.Field"); | 154 info.GetReturnValue().Set(pRuntime->GetConstArray(name)); \ |
| 153 DefineGlobalConstString( | 155 }); \ |
| 154 pRuntime, L"IDS_INVALID_VALUE", | |
| 155 L"The value entered does not match the format of the field"); | |
| 156 DefineGlobalConstString(pRuntime, L"IDS_AM", L"am"); | |
| 157 DefineGlobalConstString(pRuntime, L"IDS_PM", L"pm"); | |
| 158 DefineGlobalConstString( | |
| 159 pRuntime, L"IDS_MONTH_INFO", | |
| 160 L"January[1] February[2] March[3] April[4] May[5] " | |
| 161 L"June[6] July[7] August[8] September[9] October[10] " | |
| 162 L"November[11] December[12] Sept[9] Jan[1] Feb[2] Mar[3] " | |
| 163 L"Apr[4] Jun[6] Jul[7] Aug[8] Sep[9] Oct[10] Nov[11] " | |
| 164 L"Dec[12]"); | |
| 165 DefineGlobalConstString(pRuntime, L"IDS_STARTUP_CONSOLE_MSG", L"** ^ _ ^ **"); | |
| 166 } | |
| 167 | |
| 168 /* ------------------------------ CJS_GlobalArrays ------------------------ */ | |
| 169 | |
| 170 void DefineGlobalConstStringArray(CJS_Runtime* pRuntime, | |
| 171 const wchar_t* sConstName, | |
| 172 const wchar_t** pValues, | |
| 173 size_t nValues) { | |
| 174 CJS_Array array(pRuntime); | |
| 175 for (size_t i = 0; i < nValues; ++i) { | |
| 176 array.SetElement(i, CJS_Value(pRuntime, pValues[i])); | |
| 177 } | 156 } |
| 178 CJS_PropValue prop(pRuntime); | |
| 179 prop << array; | |
| 180 FXJS_DefineGlobalConst(pRuntime->GetIsolate(), sConstName, prop.ToV8Value()); | |
| 181 } | |
| 182 | 157 |
| 183 void CJS_GlobalArrays::DefineJSObjects(CJS_Runtime* pRuntime) { | 158 void CJS_GlobalArrays::DefineJSObjects(CJS_Runtime* pRuntime) { |
| 184 { | 159 GLOBAL_ARRAY(pRuntime, L"RE_NUMBER_ENTRY_DOT_SEP", L"[+-]?\\d*\\.?\\d*"); |
| 185 const FX_WCHAR* ArrayName = L"RE_NUMBER_ENTRY_DOT_SEP"; | 160 GLOBAL_ARRAY(pRuntime, L"RE_NUMBER_COMMIT_DOT_SEP", |
| 186 const FX_WCHAR* ArrayContent[] = {L"[+-]?\\d*\\.?\\d*"}; | 161 L"[+-]?\\d+(\\.\\d+)?", // -1.0 or -1 |
| 187 DefineGlobalConstStringArray(pRuntime, ArrayName, ArrayContent, | 162 L"[+-]?\\.\\d+", // -.1 |
| 188 FX_ArraySize(ArrayContent)); | 163 L"[+-]?\\d+\\."); // -1. |
| 189 } | |
| 190 | 164 |
| 191 { | 165 GLOBAL_ARRAY(pRuntime, L"RE_NUMBER_ENTRY_COMMA_SEP", L"[+-]?\\d*,?\\d*"); |
| 192 const FX_WCHAR* ArrayName = L"RE_NUMBER_COMMIT_DOT_SEP"; | 166 GLOBAL_ARRAY(pRuntime, L"RE_NUMBER_COMMIT_COMMA_SEP", |
| 193 const FX_WCHAR* ArrayContent[] = { | 167 L"[+-]?\\d+([.,]\\d+)?", // -1,0 or -1 |
| 194 L"[+-]?\\d+(\\.\\d+)?", /* -1.0 or -1 */ | 168 L"[+-]?[.,]\\d+", // -,1 |
| 195 L"[+-]?\\.\\d+", /* -.1 */ | 169 L"[+-]?\\d+[.,]"); // -1, |
| 196 L"[+-]?\\d+\\." /* -1. */ | |
| 197 }; | |
| 198 DefineGlobalConstStringArray(pRuntime, ArrayName, ArrayContent, | |
| 199 FX_ArraySize(ArrayContent)); | |
| 200 } | |
| 201 | 170 |
| 202 { | 171 GLOBAL_ARRAY(pRuntime, L"RE_ZIP_ENTRY", L"\\d{0,5}"); |
| 203 const FX_WCHAR* ArrayName = L"RE_NUMBER_ENTRY_COMMA_SEP"; | 172 GLOBAL_ARRAY(pRuntime, L"RE_ZIP_COMMIT", L"\\d{5}"); |
| 204 const FX_WCHAR* ArrayContent[] = {L"[+-]?\\d*,?\\d*"}; | 173 GLOBAL_ARRAY(pRuntime, L"RE_ZIP4_ENTRY", L"\\d{0,5}(\\.|[- ])?\\d{0,4}"); |
| 174 GLOBAL_ARRAY(pRuntime, L"RE_ZIP4_COMMIT", L"\\d{5}(\\.|[- ])?\\d{4}"); |
| 175 GLOBAL_ARRAY(pRuntime, L"RE_PHONE_ENTRY", |
| 176 // 555-1234 or 408 555-1234 |
| 177 L"\\d{0,3}(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}", |
| 205 | 178 |
| 206 DefineGlobalConstStringArray(pRuntime, ArrayName, ArrayContent, | 179 // (408 |
| 207 FX_ArraySize(ArrayContent)); | 180 L"\\(\\d{0,3}", |
| 208 } | |
| 209 | 181 |
| 210 { | 182 // (408) 555-1234 |
| 211 const FX_WCHAR* ArrayName = L"RE_NUMBER_COMMIT_COMMA_SEP"; | 183 // (allow the addition of parens as an afterthought) |
| 212 const FX_WCHAR* ArrayContent[] = { | 184 L"\\(\\d{0,3}\\)(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}", |
| 213 L"[+-]?\\d+([.,]\\d+)?", /* -1,0 or -1 */ | |
| 214 L"[+-]?[.,]\\d+", /* -,1 */ | |
| 215 L"[+-]?\\d+[.,]" /* -1, */ | |
| 216 }; | |
| 217 DefineGlobalConstStringArray(pRuntime, ArrayName, ArrayContent, | |
| 218 FX_ArraySize(ArrayContent)); | |
| 219 } | |
| 220 | 185 |
| 221 { | 186 // (408 555-1234 |
| 222 const FX_WCHAR* ArrayName = L"RE_ZIP_ENTRY"; | 187 L"\\(\\d{0,3}(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}", |
| 223 const FX_WCHAR* ArrayContent[] = {L"\\d{0,5}"}; | |
| 224 DefineGlobalConstStringArray(pRuntime, ArrayName, ArrayContent, | |
| 225 FX_ArraySize(ArrayContent)); | |
| 226 } | |
| 227 | 188 |
| 228 { | 189 // 408) 555-1234 |
| 229 const FX_WCHAR* ArrayName = L"RE_ZIP_COMMIT"; | 190 L"\\d{0,3}\\)(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}", |
| 230 const FX_WCHAR* ArrayContent[] = {L"\\d{5}"}; | |
| 231 DefineGlobalConstStringArray(pRuntime, ArrayName, ArrayContent, | |
| 232 FX_ArraySize(ArrayContent)); | |
| 233 } | |
| 234 | 191 |
| 235 { | 192 // international |
| 236 const FX_WCHAR* ArrayName = L"RE_ZIP4_ENTRY"; | 193 L"011(\\.|[- \\d])*"); |
| 237 const FX_WCHAR* ArrayContent[] = {L"\\d{0,5}(\\.|[- ])?\\d{0,4}"}; | |
| 238 DefineGlobalConstStringArray(pRuntime, ArrayName, ArrayContent, | |
| 239 FX_ArraySize(ArrayContent)); | |
| 240 } | |
| 241 | 194 |
| 242 { | 195 GLOBAL_ARRAY( |
| 243 const FX_WCHAR* ArrayName = L"RE_ZIP4_COMMIT"; | 196 pRuntime, L"RE_PHONE_COMMIT", L"\\d{3}(\\.|[- ])?\\d{4}", // 555-1234 |
| 244 const FX_WCHAR* ArrayContent[] = {L"\\d{5}(\\.|[- ])?\\d{4}"}; | 197 L"\\d{3}(\\.|[- ])?\\d{3}(\\.|[- ])?\\d{4}", // 408 555-1234 |
| 245 DefineGlobalConstStringArray(pRuntime, ArrayName, ArrayContent, | 198 L"\\(\\d{3}\\)(\\.|[- ])?\\d{3}(\\.|[- ])?\\d{4}", // (408) 555-1234 |
| 246 FX_ArraySize(ArrayContent)); | 199 L"011(\\.|[- \\d])*"); // international |
| 247 } | |
| 248 | 200 |
| 249 { | 201 GLOBAL_ARRAY(pRuntime, L"RE_SSN_ENTRY", |
| 250 const FX_WCHAR* ArrayName = L"RE_PHONE_ENTRY"; | 202 L"\\d{0,3}(\\.|[- ])?\\d{0,2}(\\.|[- ])?\\d{0,4}"); |
| 251 const FX_WCHAR* ArrayContent[] = { | |
| 252 L"\\d{0,3}(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}", // 555-1234 or 408 | |
| 253 // 555-1234 | |
| 254 L"\\(\\d{0,3}", // (408 | |
| 255 L"\\(\\d{0,3}\\)(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}", // (408) | |
| 256 // 555-1234 | |
| 257 // (allow the addition of parens as an afterthought) | |
| 258 L"\\(\\d{0,3}(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}", // (408 555-1234 | |
| 259 | 203 |
| 260 L"\\d{0,3}\\)(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}", // 408) 555-1234 | 204 GLOBAL_ARRAY(pRuntime, L"RE_SSN_COMMIT", |
| 261 | 205 L"\\d{3}(\\.|[- ])?\\d{2}(\\.|[- ])?\\d{4}"); |
| 262 L"011(\\.|[- \\d])*" // international | |
| 263 }; | |
| 264 DefineGlobalConstStringArray(pRuntime, ArrayName, ArrayContent, | |
| 265 FX_ArraySize(ArrayContent)); | |
| 266 } | |
| 267 | |
| 268 { | |
| 269 const FX_WCHAR* ArrayName = L"RE_PHONE_COMMIT"; | |
| 270 const FX_WCHAR* ArrayContent[] = { | |
| 271 L"\\d{3}(\\.|[- ])?\\d{4}", // 555-1234 | |
| 272 L"\\d{3}(\\.|[- ])?\\d{3}(\\.|[- ])?\\d{4}", // 408 555-1234 | |
| 273 L"\\(\\d{3}\\)(\\.|[- ])?\\d{3}(\\.|[- ])?\\d{4}", // (408) 555-1234 | |
| 274 L"011(\\.|[- \\d])*" // international | |
| 275 }; | |
| 276 DefineGlobalConstStringArray(pRuntime, ArrayName, ArrayContent, | |
| 277 FX_ArraySize(ArrayContent)); | |
| 278 } | |
| 279 | |
| 280 { | |
| 281 const FX_WCHAR* ArrayName = L"RE_SSN_ENTRY"; | |
| 282 const FX_WCHAR* ArrayContent[] = { | |
| 283 L"\\d{0,3}(\\.|[- ])?\\d{0,2}(\\.|[- ])?\\d{0,4}"}; | |
| 284 DefineGlobalConstStringArray(pRuntime, ArrayName, ArrayContent, | |
| 285 FX_ArraySize(ArrayContent)); | |
| 286 } | |
| 287 | |
| 288 { | |
| 289 const FX_WCHAR* ArrayName = L"RE_SSN_COMMIT"; | |
| 290 const FX_WCHAR* ArrayContent[] = { | |
| 291 L"\\d{3}(\\.|[- ])?\\d{2}(\\.|[- ])?\\d{4}"}; | |
| 292 DefineGlobalConstStringArray(pRuntime, ArrayName, ArrayContent, | |
| 293 FX_ArraySize(ArrayContent)); | |
| 294 } | |
| 295 } | 206 } |
| OLD | NEW |