1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24 //------------------------------------------------------------------------
25 //------------------------------------------------------------------------
26
27 #ifndef _RTL_STRING_CONST_H_
28 #define _RTL_STRING_CONST_H_
29
30 #ifndef _RTL_STRING_UTILS_HXX_
31 #include <rtl_String_Utils.hxx>
32 #endif
33
34 //------------------------------------------------------------------------
35 //------------------------------------------------------------------------
36
37 #include <limits.h>
38
39 //------------------------------------------------------------------------
40 //------------------------------------------------------------------------
41
42 #ifndef _SAL_TYPES_H_
43 #include <sal/types.h>
44 #endif
45
46 #ifndef _RTL_TEXTENC_H
47 #include <rtl/textenc.h>
48 #endif
49
50 #ifndef _RTL_USTRING_H_
51 #include <rtl/ustring.h>
52 #endif
53
54 //------------------------------------------------------------------------
55 //------------------------------------------------------------------------
56
57 #ifdef __cplusplus
58 extern "C"
59 {
60 #endif
61
62 //------------------------------------------------------------------------
63 //------------------------------------------------------------------------
64
65 static const rtl_TextEncoding kEncodingRTLTextUSASCII = RTL_TEXTENCODING_ASCII_US;
66
67 //------------------------------------------------------------------------
68 //------------------------------------------------------------------------
69
70 static const sal_uInt32 kConvertFlagsOUStringToOString = OUSTRING_TO_OSTRING_CVTFLAGS;
71 static const sal_uInt32 kConvertFlagsOStringToOUString = OSTRING_TO_OUSTRING_CVTFLAGS;
72
73 //------------------------------------------------------------------------
74 //------------------------------------------------------------------------
75
76 static const sal_Char *kTestStr1 = "Sun Microsystems";
77 static const sal_Char *kTestStr2 = "Sun Microsystems Java Technology";
78 static const sal_Char *kTestStr3 = "Sun microsystems";
79 static const sal_Char *kTestStr4 = "SUN MICROSYSTEMS";
80 static const sal_Char *kTestStr5 = "sun microsystems";
81 static const sal_Char *kTestStr6 = "Java Technology";
82 static const sal_Char *kTestStr7 = "Sun ";
83 static const sal_Char *kTestStr8 = "Microsystems";
84 static const sal_Char *kTestStr9 = "sun microsystems java technology";
85 static const sal_Char *kTestStr10 = " Sun Microsystems";
86 static const sal_Char *kTestStr11 = "Sun Microsystems ";
87 static const sal_Char *kTestStr12 = " Sun Microsystems ";
88 static const sal_Char *kTestStr13 = "Sun Microsystems ";
89 static const sal_Char *kTestStr14 = " Sun Microsystems";
90 static const sal_Char *kTestStr15 = " Sun Microsystems ";
91 static const sal_Char *kTestStr16 = " Sun Microsystems ";
92 static const sal_Char *kTestStr17 = " Sun Microsystems ";
93 static const sal_Char *kTestStr18 = "sUN MICROsYsTEMs";
94 static const sal_Char *kTestStr19 = "---Sun-Microsystems---";
95 static const sal_Char *kTestStr20 = "sun";
96 static const sal_Char *kTestStr21 = "SUN";
97 static const sal_Char *kTestStr22 = "SUN MICROSYSTEMS JAVA TECHNOLOGY";
98 static const sal_Char *kTestStr23 = " Java Technology";
99 static const sal_Char *kTestStr24 = "Sun Microsystems Java Technolog";
100 static const sal_Char *kTestStr25 = "";
101 static const sal_Char *kTestStr26 = " Mic";
102 static const sal_Char *kTestStr27 = "s";
103 static const sal_Char *kTestStr28 = "\50\3\5\7\11\13\15\17sun";
104 static const sal_Char *kTestStr29 = "\50\3\5\7\11\13\15\17sun\21\23\25\27\31\33\50";
105 static const sal_Char *kTestStr30 = "sun\21\23\25\27\31\33\50";
106 static const sal_Char *kTestStr31 = "sun Microsystems";
107 static const sal_Char *kTestStr32 = "Sun Microsystem ";
108 static const sal_Char *kTestStr33 = " ";
109 static const sal_Char *kTestStr34 = "\50\5\5\7\11\13\15\17sun";
110 static const sal_Char *kTestStr35 = "\50\373\5\7\11\13\15\17sun";
111 static const sal_Char *kTestStr36 = "Microsystems Java Technology";
112 static const sal_Char *kTestStr37 = "Sun Java Technology";
113 static const sal_Char *kTestStr38 = "\21\23\25\27\31\33\50";
114 static const sal_Char *kTestStr39 = "\50\3\5\7\11\13\15\17sun Sun Microsystems ";
115 static const sal_Char *kTestStr40 = "\50\3\5\7\11\13\15\17sunsun Microsystems";
116 static const sal_Char *kTestStr41 = "Sun";
117 static const sal_Char *kTestStr42 = "\50\3\5\7\11\13\15\17su";
118 static const sal_Char *kTestStr43 = "\50\3\5\7\11\13\15\17sun\256\345";
119 static const sal_Char *kTestStr44 = "\256\345";
120 static const sal_Char *kTestStr45 = "Sun true";
121 static const sal_Char *kTestStr46 = "Sun false";
122 static const sal_Char *kTestStr47 = "true";
123 static const sal_Char *kTestStr48 = "false";
124 static const sal_Char *kTestStr49 = "\50\3\5\7\11\13\15\17suntrue";
125 static const sal_Char *kTestStr50 = "\50\3\5\7\11\13\15\17sunfalse";
126 static const sal_Char *kTestStr51 = "Sun M";
127 //static const sal_Char *kTestStr52 = "Sun \077777";
128 //static const sal_Char *kTestStr53 = "Sun \100000";
129 //static const sal_Char *kTestStr54 = "\77777";
130 //static const sal_Char *kTestStr55 = "\100000";
131 static const sal_Char *kTestStr56 = "\50\3\5\7\11\13\15\17suns";
132 //static const sal_Char *kTestStr57 = "\50\3\5\7\11\13\15\17sun\77777";
133 //static const sal_Char *kTestStr58 = "\50\3\5\7\11\13\15\17sun\10000";
134 static const sal_Char *kTestStr1PlusStr6 = "Sun Microsystems" "Java Technology";
135 //------------------------------------------------------------------------
136 //------------------------------------------------------------------------
137
138 static const sal_Int32 kTestStr1Len = 16;
139 static const sal_Int32 kTestStr2Len = 32;
140 static const sal_Int32 kTestStr3Len = 16;
141 static const sal_Int32 kTestStr4Len = 16;
142 static const sal_Int32 kTestStr5Len = 16;
143 static const sal_Int32 kTestStr6Len = 15;
144 static const sal_Int32 kTestStr7Len = 4;
145 static const sal_Int32 kTestStr8Len = 12;
146 static const sal_Int32 kTestStr9Len = 32;
147 static const sal_Int32 kTestStr10Len = 17;
148 static const sal_Int32 kTestStr11Len = 17;
149 static const sal_Int32 kTestStr12Len = 18;
150 static const sal_Int32 kTestStr13Len = 19;
151 static const sal_Int32 kTestStr14Len = 19;
152 static const sal_Int32 kTestStr15Len = 20;
153 static const sal_Int32 kTestStr16Len = 20;
154 static const sal_Int32 kTestStr17Len = 22;
155 static const sal_Int32 kTestStr18Len = 16;
156 static const sal_Int32 kTestStr19Len = 22;
157 static const sal_Int32 kTestStr20Len = 3;
158 static const sal_Int32 kTestStr21Len = 3;
159 static const sal_Int32 kTestStr22Len = 32;
160 static const sal_Int32 kTestStr23Len = 16;
161 static const sal_Int32 kTestStr24Len = 31;
162 static const sal_Int32 kTestStr25Len = 0;
163 static const sal_Int32 kTestStr26Len = 4;
164 static const sal_Int32 kTestStr27Len = 1;
165 static const sal_Int32 kTestStr28Len = 11;
166 static const sal_Int32 kTestStr29Len = 18;
167 static const sal_Int32 kTestStr30Len = 10;
168 static const sal_Int32 kTestStr31Len = 16;
169 static const sal_Int32 kTestStr32Len = 16;
170 static const sal_Int32 kTestStr33Len = 1;
171 static const sal_Int32 kTestStr34Len = 11;
172 static const sal_Int32 kTestStr35Len = 11;
173 static const sal_Int32 kTestStr36Len = 28;
174 static const sal_Int32 kTestStr37Len = 20;
175 static const sal_Int32 kTestStr38Len = 7;
176 static const sal_Int32 kTestStr39Len = 33;
177 static const sal_Int32 kTestStr40Len = 27;
178 static const sal_Int32 kTestStr41Len = 3;
179 static const sal_Int32 kTestStr42Len = 10;
180 static const sal_Int32 kTestStr43Len = 13;
181 static const sal_Int32 kTestStr44Len = 2;
182 static const sal_Int32 kTestStr45Len = 8;
183 static const sal_Int32 kTestStr46Len = 9;
184 static const sal_Int32 kTestStr47Len = 4;
185 static const sal_Int32 kTestStr48Len = 5;
186 static const sal_Int32 kTestStr49Len = 15;
187 static const sal_Int32 kTestStr50Len = 16;
188 static const sal_Int32 kTestStr51Len = 5;
189 static const sal_Int32 kTestStr52Len = 5;
190 static const sal_Int32 kTestStr53Len = 5;
191 static const sal_Int32 kTestStr54Len = 1;
192 static const sal_Int32 kTestStr55Len = 1;
193 static const sal_Int32 kTestStr56Len = 12;
194 static const sal_Int32 kTestStr57Len = 12;
195 static const sal_Int32 kTestStr58Len = 12;
196 static const sal_Int32 kTestStr1PlusStr6Len = kTestStr1Len + kTestStr6Len;
197
198 //------------------------------------------------------------------------
199 //------------------------------------------------------------------------
200 static sal_Unicode aUStr1[kTestStr1Len+1];
201 static sal_Unicode aUStr2[kTestStr2Len+1];
202 static sal_Unicode aUStr3[kTestStr3Len+1];
203 static sal_Unicode aUStr4[kTestStr4Len+1];
204 static sal_Unicode aUStr5[kTestStr5Len+1];
205 static sal_Unicode aUStr6[kTestStr6Len+1];
206 static sal_Unicode aUStr7[kTestStr7Len+1];
207 static sal_Unicode aUStr8[kTestStr8Len+1];
208 static sal_Unicode aUStr9[kTestStr9Len+1];
209 static sal_Unicode aUStr10[kTestStr10Len+1];
210 static sal_Unicode aUStr11[kTestStr11Len+1];
211 static sal_Unicode aUStr12[kTestStr12Len+1];
212 static sal_Unicode aUStr13[kTestStr13Len+1];
213 static sal_Unicode aUStr14[kTestStr14Len+1];
214 static sal_Unicode aUStr15[kTestStr15Len+1];
215 static sal_Unicode aUStr16[kTestStr16Len+1];
216 static sal_Unicode aUStr17[kTestStr17Len+1];
217 static sal_Unicode aUStr18[kTestStr18Len+1];
218 static sal_Unicode aUStr19[kTestStr19Len+1];
219 static sal_Unicode aUStr20[kTestStr20Len+1];
220 static sal_Unicode aUStr21[kTestStr21Len+1];
221 static sal_Unicode aUStr22[kTestStr22Len+1];
222 static sal_Unicode aUStr23[kTestStr23Len+1];
223 static sal_Unicode aUStr24[kTestStr24Len+1];
224 static sal_Unicode aUStr25[kTestStr25Len+1];
225 static sal_Unicode aUStr26[kTestStr26Len+1];
226 static sal_Unicode aUStr27[kTestStr27Len+1];
227 static sal_Unicode aUStr28[kTestStr28Len+1];
228 static sal_Unicode aUStr29[kTestStr29Len+1];
229 static sal_Unicode aUStr30[kTestStr30Len+1];
230 static sal_Unicode aUStr31[kTestStr31Len+1];
231 static sal_Unicode aUStr32[kTestStr32Len+1];
232 static sal_Unicode aUStr33[kTestStr33Len+1];
233 static sal_Unicode aUStr34[kTestStr34Len+1];
234 static sal_Unicode aUStr35[kTestStr35Len+1];
235 static sal_Unicode aUStr36[kTestStr36Len+1];
236 static sal_Unicode aUStr37[kTestStr37Len+1];
237 static sal_Unicode aUStr38[kTestStr38Len+1];
238 static sal_Unicode aUStr39[kTestStr39Len+1];
239 static sal_Unicode aUStr40[kTestStr40Len+1];
240 static sal_Unicode aUStr41[kTestStr41Len+1];
241 static sal_Unicode aUStr42[kTestStr42Len+1];
242 static sal_Unicode aUStr43[kTestStr43Len+1];
243 static sal_Unicode aUStr44[kTestStr44Len+1];
244 static sal_Unicode aUStr45[kTestStr45Len+1];
245 static sal_Unicode aUStr46[kTestStr46Len+1];
246 static sal_Unicode aUStr47[kTestStr47Len+1];
247 static sal_Unicode aUStr48[kTestStr48Len+1];
248 static sal_Unicode aUStr49[kTestStr49Len+1];
249 static sal_Unicode aUStr50[kTestStr50Len+1];
250 static sal_Unicode aUStr51[kTestStr51Len+1];
251 // static sal_Unicode aUStr52[kTestStr52Len+1]={83,117,110,32,32767};
252 // static sal_Unicode aUStr53[kTestStr53Len+1]={83,117,110,32,SAL_MIN_INT16 /*-32768*/};
253 // static sal_Unicode aUStr54[kTestStr54Len+1]={32767};
254 // static sal_Unicode aUStr55[kTestStr55Len+1]={SAL_MIN_INT16 /*-32768*/};
255 static sal_Unicode aUStr56[kTestStr56Len+1];
256 // static sal_Unicode aUStr57[kTestStr57Len+1]={40,3,5,7,9,11,13,15,115,117,110,32767};
257 // static sal_Unicode aUStr58[kTestStr58Len+1]={40,3,5,7,9,11,13,15,115,117,110,SAL_MIN_INT16 /*-32768*/};
258 static sal_Unicode aUStr1PlusUStr6[kTestStr1Len + kTestStr6Len + 1];
259
260 // we are already in "C"
261
test_ini_uString()262 static sal_Bool SAL_CALL test_ini_uString()
263 {
264
265 sal_Bool iniResult= sal_True;
266
267 iniResult &=AStringToUStringNCopy( aUStr1, kTestStr1, kTestStr1Len );
268
269 iniResult &=AStringToUStringNCopy( aUStr2, kTestStr2, kTestStr2Len );
270
271 iniResult &=AStringToUStringNCopy( aUStr3, kTestStr3, kTestStr3Len );
272
273 iniResult &=AStringToUStringNCopy( aUStr4, kTestStr4, kTestStr4Len );
274
275 iniResult &=AStringToUStringNCopy( aUStr5, kTestStr5, kTestStr5Len );
276
277 iniResult &=AStringToUStringNCopy( aUStr6, kTestStr6, kTestStr6Len );
278
279 iniResult &=AStringToUStringNCopy( aUStr7, kTestStr7, kTestStr7Len );
280
281 iniResult &=AStringToUStringNCopy( aUStr8, kTestStr8, kTestStr8Len );
282
283 iniResult &=AStringToUStringNCopy( aUStr9, kTestStr9, kTestStr9Len );
284
285 iniResult &=AStringToUStringNCopy( aUStr10, kTestStr10, kTestStr10Len );
286
287 iniResult &=AStringToUStringNCopy( aUStr11, kTestStr11, kTestStr11Len );
288
289 iniResult &=AStringToUStringNCopy( aUStr12, kTestStr12, kTestStr12Len );
290
291 iniResult &=AStringToUStringNCopy( aUStr13, kTestStr13, kTestStr13Len );
292
293 iniResult &=AStringToUStringNCopy( aUStr14, kTestStr14, kTestStr14Len );
294
295 iniResult &=AStringToUStringNCopy( aUStr15, kTestStr15, kTestStr15Len );
296
297 iniResult &=AStringToUStringNCopy( aUStr16, kTestStr16, kTestStr16Len );
298
299 iniResult &=AStringToUStringNCopy( aUStr17, kTestStr17, kTestStr17Len );
300
301 iniResult &=AStringToUStringNCopy( aUStr18, kTestStr18, kTestStr18Len );
302
303 iniResult &=AStringToUStringNCopy( aUStr19, kTestStr19, kTestStr19Len );
304
305 iniResult &=AStringToUStringNCopy( aUStr20, kTestStr20, kTestStr20Len );
306
307 iniResult &=AStringToUStringNCopy( aUStr21, kTestStr21, kTestStr21Len );
308
309 iniResult &=AStringToUStringNCopy( aUStr22, kTestStr22, kTestStr22Len );
310
311 iniResult &=AStringToUStringNCopy( aUStr23, kTestStr23, kTestStr23Len );
312
313 iniResult &=AStringToUStringNCopy( aUStr1PlusUStr6, kTestStr1PlusStr6, kTestStr1PlusStr6Len );
314
315 iniResult &=AStringToUStringNCopy( aUStr24, kTestStr24, kTestStr24Len );
316
317 iniResult &=AStringToUStringNCopy( aUStr25, kTestStr25, kTestStr25Len );
318
319 iniResult &=AStringToUStringNCopy( aUStr26, kTestStr26, kTestStr26Len );
320
321 iniResult &=AStringToUStringNCopy( aUStr27, kTestStr27, kTestStr27Len );
322
323 iniResult &=AStringToUStringNCopy( aUStr28, kTestStr28, kTestStr28Len );
324
325 iniResult &=AStringToUStringNCopy( aUStr29, kTestStr29, kTestStr29Len );
326
327 iniResult &=AStringToUStringNCopy( aUStr30, kTestStr30, kTestStr30Len );
328
329 iniResult &=AStringToUStringNCopy( aUStr31, kTestStr31, kTestStr31Len );
330
331 iniResult &=AStringToUStringNCopy( aUStr32, kTestStr32, kTestStr32Len );
332
333 iniResult &=AStringToUStringNCopy( aUStr33, kTestStr33, kTestStr33Len );
334
335 iniResult &=AStringToUStringNCopy( aUStr34, kTestStr34, kTestStr34Len );
336
337 iniResult &=AStringToUStringNCopy( aUStr35, kTestStr35, kTestStr35Len );
338
339 iniResult &=AStringToUStringNCopy( aUStr36, kTestStr36, kTestStr36Len );
340
341 iniResult &=AStringToUStringNCopy( aUStr37, kTestStr37, kTestStr37Len );
342
343 iniResult &=AStringToUStringNCopy( aUStr38, kTestStr38, kTestStr38Len );
344
345 iniResult &=AStringToUStringNCopy( aUStr39, kTestStr39, kTestStr39Len );
346
347 iniResult &=AStringToUStringNCopy( aUStr40, kTestStr40, kTestStr40Len );
348
349 iniResult &=AStringToUStringNCopy( aUStr41, kTestStr41, kTestStr41Len );
350
351 iniResult &=AStringToUStringNCopy( aUStr42, kTestStr42, kTestStr42Len );
352
353 iniResult &=AStringToUStringNCopy( aUStr43, kTestStr43, kTestStr43Len );
354
355 iniResult &=AStringToUStringNCopy( aUStr44, kTestStr44, kTestStr44Len );
356
357 iniResult &=AStringToUStringNCopy( aUStr45, kTestStr45, kTestStr45Len );
358
359 iniResult &=AStringToUStringNCopy( aUStr46, kTestStr46, kTestStr46Len );
360
361 iniResult &=AStringToUStringNCopy( aUStr47, kTestStr47, kTestStr47Len );
362
363 iniResult &=AStringToUStringNCopy( aUStr48, kTestStr48, kTestStr48Len );
364
365 iniResult &=AStringToUStringNCopy( aUStr49, kTestStr49, kTestStr49Len );
366
367 iniResult &=AStringToUStringNCopy( aUStr50, kTestStr50, kTestStr50Len );
368
369 iniResult &=AStringToUStringNCopy( aUStr51, kTestStr51, kTestStr51Len );
370
371 //iniResult &=AStringToUStringNCopy( aUStr52, kTestStr52, kTestStr52Len );
372
373 // iniResult &=AStringToUStringNCopy( aUStr53, kTestStr53, kTestStr53Len );
374
375 //iniResult &=AStringToUStringNCopy( aUStr54, kTestStr54, kTestStr54Len );
376
377 //iniResult &=AStringToUStringNCopy( aUStr55, kTestStr55, kTestStr55Len );
378
379 iniResult &=AStringToUStringNCopy( aUStr56, kTestStr56, kTestStr56Len );
380
381 // iniResult &=AStringToUStringNCopy( aUStr57, kTestStr57, kTestStr57Len );
382
383 //iniResult &=AStringToUStringNCopy( aUStr58, kTestStr58, kTestStr58Len );
384 return iniResult;
385
386 }
387
388
389
390
391 static const sal_Int32 uTestStr1Len = 16;
392 static const sal_Int32 uTestStr2Len = 32;
393 static const sal_Int32 uTestStr3Len = 16;
394 static const sal_Int32 uTestStr4Len = 16;
395 static const sal_Int32 uTestStr5Len = 16;
396 static const sal_Int32 uTestStr9Len = 32;
397 static const sal_Int32 uTestStr22Len = 32;
398
399
400
401 //------------------------------------------------------------------------
402 //------------------------------------------------------------------------
403 const sal_Unicode uTestStr31[]= {0x400,0x410,0x4DF};
404 const sal_Unicode uTestStr32[]= {0x9F9F,0xA000,0x8F80,0x9AD9};
405
406
407
408 //------------------------------------------------------------------------
409 //------------------------------------------------------------------------
410
411 static const sal_Int32 uTestStr31Len = 3;
412 static const sal_Int32 uTestStr32Len = 4;
413
414 //------------------------------------------------------------------------
415 //------------------------------------------------------------------------
416
417 static const sal_Int16 kRadixBinary = 2;
418 static const sal_Int16 kRadixOctol = 8;
419 static const sal_Int16 kRadixDecimal = 10;
420 static const sal_Int16 kRadixHexdecimal = 16;
421 static const sal_Int16 kRadixBase36 = 36;
422
423 //------------------------------------------------------------------------
424 //------------------------------------------------------------------------
425
426 static const sal_Int8 kSInt8Max = SCHAR_MAX;
427 static const sal_Int16 kUInt8Max = UCHAR_MAX;
428 static const sal_Int16 kSInt16Max = SHRT_MAX;
429 static const sal_Int32 kUInt16Max = USHRT_MAX;
430 static const sal_Int32 kSInt32Max = INT_MAX;
431 static const sal_Int64 kUInt32Max = UINT_MAX;
432 #if (defined UNX) || (defined OS2)
433 static const sal_Int64 kSInt64Max = 9223372036854775807LL;
434 #else
435 static const sal_Int64 kSInt64Max = 9223372036854775807;
436 #endif
437 //------------------------------------------------------------------------
438
439 static const sal_Int32 kInt32MaxNumsCount = 5;
440
441 static const sal_Int32 kInt32MaxNums[kInt32MaxNumsCount] =
442 {
443 kSInt8Max, kUInt8Max,
444 kSInt16Max, kUInt16Max,
445 kSInt32Max
446 };
447
448 static const sal_Int32 kInt64MaxNumsCount = 7;
449
450 static const sal_Int64 kInt64MaxNums[kInt64MaxNumsCount] =
451 {
452 kSInt8Max, kUInt8Max,
453 kSInt16Max, kUInt16Max,
454 kSInt32Max, kUInt32Max,
455 kSInt64Max
456 };
457
458 //------------------------------------------------------------------------
459 //------------------------------------------------------------------------
460
461 static const sal_Char *kSInt8MaxBinaryStr = "1111111";
462 static const sal_Char *kUInt8MaxBinaryStr = "11111111";
463 static const sal_Char *kSInt16MaxBinaryStr = "111111111111111";
464 static const sal_Char *kUInt16MaxBinaryStr = "1111111111111111";
465 static const sal_Char *kSInt32MaxBinaryStr =
466 "1111111111111111111111111111111";
467 static const sal_Char *kUInt32MaxBinaryStr =
468 "11111111111111111111111111111111";
469 static const sal_Char *kSInt64MaxBinaryStr =
470 "111111111111111111111111111111111111111111111111111111111111111";
471
472 //------------------------------------------------------------------------
473
474 static const sal_Char *kSInt8MaxOctolStr = "177";
475 static const sal_Char *kUInt8MaxOctolStr = "377";
476 static const sal_Char *kSInt16MaxOctolStr = "77777";
477 static const sal_Char *kUInt16MaxOctolStr = "177777";
478 static const sal_Char *kSInt32MaxOctolStr = "17777777777";
479 static const sal_Char *kUInt32MaxOctolStr = "37777777777";
480 static const sal_Char *kSInt64MaxOctolStr = "777777777777777777777";
481
482 //------------------------------------------------------------------------
483
484 static const sal_Char *kSInt8MaxDecimalStr = "127";
485 static const sal_Char *kUInt8MaxDecimalStr = "255";
486 static const sal_Char *kSInt16MaxDecimalStr = "32767";
487 static const sal_Char *kUInt16MaxDecimalStr = "65535";
488 static const sal_Char *kSInt32MaxDecimalStr = "2147483647";
489 static const sal_Char *kUInt32MaxDecimalStr = "4294967295";
490 static const sal_Char *kSInt64MaxDecimalStr = "9223372036854775807";
491
492 //------------------------------------------------------------------------
493
494 static const sal_Char *kSInt8MaxHexDecimalStr = "7f";
495 static const sal_Char *kUInt8MaxHexDecimalStr = "ff";
496 static const sal_Char *kSInt16MaxHexDecimalStr = "7fff";
497 static const sal_Char *kUInt16MaxHexDecimalStr = "ffff";
498 static const sal_Char *kSInt32MaxHexDecimalStr = "7fffffff";
499 static const sal_Char *kUInt32MaxHexDecimalStr = "ffffffff";
500 static const sal_Char *kSInt64MaxHexDecimalStr = "7fffffffffffffff";
501
502 //------------------------------------------------------------------------
503
504 static const sal_Char *kSInt8MaxBase36Str = "3j";
505 static const sal_Char *kUInt8MaxBase36Str = "73";
506 static const sal_Char *kSInt16MaxBase36Str = "pa7";
507 static const sal_Char *kUInt16MaxBase36Str = "1ekf";
508 static const sal_Char *kSInt32MaxBase36Str = "zik0zj";
509 static const sal_Char *kUInt32MaxBase36Str = "1z141z3";
510 static const sal_Char *kSInt64MaxBase36Str = "1y2p0ij32e8e7";
511
512 //------------------------------------------------------------------------
513 //------------------------------------------------------------------------
514
515 static const sal_Int32 kBinaryNumsCount = 16;
516
517 static const sal_Char *kBinaryNumsStr[kBinaryNumsCount] =
518 {
519 "0", "1", "10", "11",
520 "100", "101", "110", "111",
521 "1000", "1001", "1010", "1011",
522 "1100", "1101", "1110", "1111"
523 };
524
525 static const sal_Int32 kBinaryMaxNumsCount = 7;
526
527 static const sal_Char *kBinaryMaxNumsStr[kBinaryMaxNumsCount] =
528 {
529 kSInt8MaxBinaryStr,
530 kUInt8MaxBinaryStr,
531 kSInt16MaxBinaryStr,
532 kUInt16MaxBinaryStr,
533 kSInt32MaxBinaryStr,
534 kUInt32MaxBinaryStr,
535 kSInt64MaxBinaryStr
536 };
537
538 //------------------------------------------------------------------------
539
540 static const sal_Int32 kOctolNumsCount = 16;
541
542 static const sal_Char *kOctolNumsStr[kOctolNumsCount] =
543 {
544 "0", "1", "2", "3",
545 "4", "5", "6", "7",
546 "10", "11", "12", "13",
547 "14", "15", "16", "17"
548 };
549
550 static const sal_Int32 kOctolMaxNumsCount = 7;
551
552 static const sal_Char *kOctolMaxNumsStr[kOctolMaxNumsCount] =
553 {
554 kSInt8MaxOctolStr,
555 kUInt8MaxOctolStr,
556 kSInt16MaxOctolStr,
557 kUInt16MaxOctolStr,
558 kSInt32MaxOctolStr,
559 kUInt32MaxOctolStr,
560 kSInt64MaxOctolStr
561 };
562
563 //------------------------------------------------------------------------
564
565 static const sal_Int32 kDecimalNumsCount = 16;
566
567 static const sal_Char *kDecimalNumsStr[kDecimalNumsCount] =
568 {
569 "0", "1", "2", "3",
570 "4", "5", "6", "7",
571 "8", "9", "10", "11",
572 "12", "13", "14", "15"
573 };
574
575 static const sal_Int32 kDecimalMaxNumsCount = 7;
576
577 static const sal_Char *kDecimalMaxNumsStr[kDecimalMaxNumsCount] =
578 {
579 kSInt8MaxDecimalStr,
580 kUInt8MaxDecimalStr,
581 kSInt16MaxDecimalStr,
582 kUInt16MaxDecimalStr,
583 kSInt32MaxDecimalStr,
584 kUInt32MaxDecimalStr,
585 kSInt64MaxDecimalStr
586 };
587
588 //------------------------------------------------------------------------
589
590 static const sal_Int32 kHexDecimalNumsCount = 16;
591
592 static const sal_Char *kHexDecimalNumsStr[kHexDecimalNumsCount] =
593 {
594 "0", "1", "2", "3",
595 "4", "5", "6", "7",
596 "8", "9", "a", "b",
597 "c", "d", "e", "f"
598 };
599
600 static const sal_Int32 kHexDecimalMaxNumsCount = 7;
601
602 static const sal_Char *kHexDecimalMaxNumsStr[kHexDecimalMaxNumsCount] =
603 {
604 kSInt8MaxHexDecimalStr,
605 kUInt8MaxHexDecimalStr,
606 kSInt16MaxHexDecimalStr,
607 kUInt16MaxHexDecimalStr,
608 kSInt32MaxHexDecimalStr,
609 kUInt32MaxHexDecimalStr,
610 kSInt64MaxHexDecimalStr
611 };
612
613 //------------------------------------------------------------------------
614
615 static const sal_Int32 kBase36NumsCount = 36;
616
617 static const sal_Char *kBase36NumsStr[kBase36NumsCount] =
618 {
619 "0", "1", "2", "3",
620 "4", "5", "6", "7",
621 "8", "9", "a", "b",
622 "c", "d", "e", "f",
623 "g", "h", "i", "j",
624 "k", "l", "m", "n",
625 "o", "p", "q", "r",
626 "s", "t", "u", "v",
627 "w", "x", "y", "z"
628 };
629
630 static const sal_Int32 kBase36MaxNumsCount = 7;
631
632 static const sal_Char *kBase36MaxNumsStr[kBase36MaxNumsCount] =
633 {
634 kSInt8MaxBase36Str,
635 kUInt8MaxBase36Str,
636 kSInt16MaxBase36Str,
637 kUInt16MaxBase36Str,
638 kSInt32MaxBase36Str,
639 kUInt32MaxBase36Str,
640 kSInt64MaxBase36Str
641 };
642
643 //------------------------------------------------------------------------
644 //------------------------------------------------------------------------
645 static const sal_Int32 nDoubleCount=24;
646 // static const sal_Char *inputDouble[nDoubleCount] =
647 // {
648 // "3","3.1","3.1415","3.1415926535","3.141592653589793",
649 // "3.1415926535897932","3.14159265358979323","+3.1",
650 // "3.141592653589793238462643","9.1096e-31","2.997925e8","6.241e18","5.381e+18",
651 // "1.7e-309","6.5822e-16","1.7e+307","2.2e30","03.1"," 3.1","-3.1",
652 // "-0.0","0.0","","1.00e308"
653 // };
654 static const double expValDouble[nDoubleCount]=
655 {
656 3.0,3.1,3.1415,3.1415926535,3.141592653589793,
657 3.1415926535897932,3.14159265358979323,3.1,
658 3.141592653589793238462643,9.1096e-31,2.997925e8,6.241e18,5.381e18,
659 1.7e-309,6.5822e-16,1.7e+307,2.2e30,3.1,3.1,-3.1,
660 0.0,0.0,0.0,1.00e+308
661 };
662 //------------------------------------------------------------------------
663 static const sal_Int32 nFloatCount=22;
664 // static const sal_Char *inputFloat[nFloatCount] =
665 // {
666 // "3",
667 // "3.1",
668 // "3.1415",
669 // "3.14159",
670 // "3.141592",
671 // "3.1415926",
672 // "3.14159265",
673 // "3.141592653589793238462643",
674 // "6.5822e-16",
675 // "9.1096e-31",
676 // "2.997925e8",
677 // "6.241e18",
678 // "1.00e38",
679 // "6.241e-37",
680 // "6.241e37",
681 // "03.1",
682 // " 3.1",
683 // "-3.1",
684 // "+3.1",
685 // "-0.0",
686 // "0.0",
687 // ""
688 // };
689 static const float expValFloat[nFloatCount] =
690 {
691 3.0f,
692 3.1f,
693 3.1415f,
694 3.14159f,
695 3.141592f,
696 3.1415926f,
697 3.14159265f,
698 3.141592653589793238462643f,
699 6.5822e-16f,
700 9.1096e-31f,
701 2.997925e8f,
702 6.241e18f,
703 1.00e38f,
704 6.241e-37f,
705 6.241e37f,
706 3.1f,
707 3.1f,
708 -3.1f,
709 3.1f,
710 0.0f,
711 0.0f,
712 0.0f
713 };
714 static const float fPrecision[nFloatCount] =
715 {
716 3e-7f,
717 3e-7f,
718 3e-7f,
719 3e-7f,
720 3e-7f,
721 3e-7f,
722 3e-7f,
723 3e-7f,
724 6e-16f * 1e-7f,
725 9e-31f * 1e-7f,
726 3e8f * 1e-7f,
727 6e18f * 1e-7f,
728 1e38f * 1e-7f,
729 6e-37f * 1e-7f,
730 6e37f * 1e-7f,
731 3e-7f,
732 3e-7f,
733 3e-7f,
734 3e-7f,
735 1e-7f,
736 1e-7f,
737 1e-7f
738 };
739 //------------------------------------------------------------------------
740 static const sal_Int32 nCharCount=15;
741 static const sal_Char *inputChar[nCharCount] =
742 {
743 "A","a","0","-","_",
744 "\25","\33","\35",
745 "@","\n","\'","\"",
746 "\0","","Sun Microsystems"
747 };
748 static const sal_Unicode expValChar[nCharCount] =
749 {
750 65,97,48,45,95,
751 21,27,29,
752 64,10,39,34,
753 0,0,83
754 };
755 //------------------------------------------------------------------------
756 static const sal_Int32 nDefaultCount=6;
757 static const sal_Unicode input1Default[nDefaultCount] =
758 {
759 77,115,85,119,32,0
760 };
761 static const sal_Int32 input2Default[nDefaultCount] =
762 {
763 0,0,0,0,0,0
764 };
765 static const sal_Int32 expValDefault[nDefaultCount] =
766 {
767 4,9,-1,-1,3,-1
768 };
769 //------------------------------------------------------------------------
770 static const sal_Int32 nNormalCount=10;
771 static const sal_Unicode input1Normal[nNormalCount] =
772 {
773 77,77,77,115,115,115,119,119,0,0
774 };
775 static const sal_Int32 input2Normal[nNormalCount] =
776 {
777 0,32,80,0,13,20,0,80,0,32
778 };
779 static const sal_Int32 expValNormal[nNormalCount] =
780 {
781 4,-1,-1,9,15,-1,-1,-1,-1,-1
782 };
783 //------------------------------------------------------------------------
784 static const sal_Int32 nlastDefaultCount=5;
785 static const sal_Unicode input1lastDefault[nlastDefaultCount] =
786 {
787 77,115,119,32,0
788 };
789 static const sal_Int32 input2lastDefault[nlastDefaultCount] =
790 {
791 31,31,31,31,31
792 };
793 static const sal_Int32 expVallastDefault[nlastDefaultCount] =
794 {
795 4,15,-1,21,-1
796 };
797 //------------------------------------------------------------------------
798 static const sal_Int32 nlastNormalCount=8;
799 static const sal_Unicode input1lastNormal[nlastNormalCount] =
800 {
801 77,77,77,115,115,119,119,0
802 };
803 static const sal_Int32 input2lastNormal[nlastNormalCount] =
804 {
805 29,0,80,31,3,31,80,31
806 };
807 static const sal_Int32 expVallastNormal[nlastNormalCount] =
808 {
809 4,-1,4,15,-1,-1,-1,-1
810 };
811 //------------------------------------------------------------------------
812 static const sal_Int32 nStrDefaultCount=6;
813 static const sal_Unicode *input1StrDefault[nStrDefaultCount] =
814 {
815 aUStr7,aUStr8,aUStr21,
816 aUStr30,aUStr25,aUStr26
817 };
818 static const sal_Int32 input2StrDefault[nStrDefaultCount] =
819 {
820 0,0,0,0,0,0
821 };
822 static const sal_Int32 expValStrDefault[nStrDefaultCount] =
823 {
824 0,4,-1,-1,-1,3
825 };
826 //------------------------------------------------------------------------
827 static const sal_Int32 nStrNormalCount=9;
828 static const sal_Unicode *input1StrNormal[nStrNormalCount] =
829 {
830 aUStr7,aUStr7,aUStr8,aUStr8,aUStr21,aUStr30,aUStr25,aUStr25,aUStr26
831 };
832 static const sal_Int32 input2StrNormal[nStrNormalCount] =
833 {
834 0,32,0,30,0,0,0,32,0
835 };
836 static const sal_Int32 expValStrNormal[nStrNormalCount] =
837 {
838 0,-1,4,-1,-1,-1,-1,-1,3
839 };
840 //------------------------------------------------------------------------
841 static const sal_Int32 nStrLastDefaultCount=6;
842 static const sal_Unicode *input1StrLastDefault[nStrLastDefaultCount] =
843 {
844 aUStr7,aUStr8,aUStr21,aUStr30,aUStr25,aUStr26
845 };
846 static const sal_Int32 input2StrLastDefault[nStrLastDefaultCount] =
847 {
848 31,31,31,31,31,31
849 };
850 static const sal_Int32 expValStrLastDefault[nStrLastDefaultCount] =
851 {
852 0,4,-1,-1,-1,3
853 };
854 //------------------------------------------------------------------------
855 static const sal_Int32 nStrLastNormalCount=12;
856 static const sal_Unicode *input1StrLastNormal[nStrLastNormalCount] =
857 {
858 aUStr7,aUStr7,aUStr7,aUStr8,aUStr8,aUStr21,aUStr30,
859 aUStr25,aUStr25,aUStr26,aUStr27,aUStr27
860 };
861 static const sal_Int32 input2StrLastNormal[nStrLastNormalCount] =
862 {
863 31,0,80,31,2,31,31,31,0,31,31,14
864 };
865 static const sal_Int32 expValStrLastNormal[nStrLastNormalCount] =
866 {
867 0,-1,0,4,-1,-1,-1,-1,-1,3,15,11
868 };
869 //------------------------------------------------------------------------
870 static const sal_Int32 kNonSInt32Max = INT_MIN;
871 static const sal_Int32 kNonSInt16Max = SHRT_MIN;
872 //------------------------------------------------------------------------
873 #ifdef __cplusplus
874 }
875 #endif
876
877 //------------------------------------------------------------------------
878 //------------------------------------------------------------------------
879
880 #endif /* _RTL_STRING_CONST_H_ */
881
882