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