65
65
66
66
typedef enum
67
67
{
68
- PG_REGEX_LOCALE_C , /* C locale (encoding independent) */
69
- PG_REGEX_BUILTIN , /* built-in Unicode semantics */
70
- PG_REGEX_LOCALE_WIDE_L , /* Use locale_t <wctype.h> functions */
71
- PG_REGEX_LOCALE_1BYTE_L , /* Use locale_t <ctype.h> functions */
72
- PG_REGEX_LOCALE_ICU , /* Use ICU uchar.h functions */
68
+ PG_REGEX_STRATEGY_C , /* C locale (encoding independent) */
69
+ PG_REGEX_STRATEGY_BUILTIN , /* built-in Unicode semantics */
70
+ PG_REGEX_STRATEGY_LIBC_WIDE , /* Use locale_t <wctype.h> functions */
71
+ PG_REGEX_STRATEGY_LIBC_1BYTE , /* Use locale_t <ctype.h> functions */
72
+ PG_REGEX_STRATEGY_ICU , /* Use ICU uchar.h functions */
73
73
} PG_Locale_Strategy ;
74
74
75
75
static PG_Locale_Strategy pg_regex_strategy ;
@@ -246,7 +246,7 @@ pg_set_regex_collation(Oid collation)
246
246
if (lc_ctype_is_c (collation ))
247
247
{
248
248
/* C/POSIX collations use this path regardless of database encoding */
249
- pg_regex_strategy = PG_REGEX_LOCALE_C ;
249
+ pg_regex_strategy = PG_REGEX_STRATEGY_C ;
250
250
pg_regex_locale = 0 ;
251
251
pg_regex_collation = C_COLLATION_OID ;
252
252
}
@@ -262,20 +262,20 @@ pg_set_regex_collation(Oid collation)
262
262
if (pg_regex_locale -> provider == COLLPROVIDER_BUILTIN )
263
263
{
264
264
Assert (GetDatabaseEncoding () == PG_UTF8 );
265
- pg_regex_strategy = PG_REGEX_BUILTIN ;
265
+ pg_regex_strategy = PG_REGEX_STRATEGY_BUILTIN ;
266
266
}
267
267
#ifdef USE_ICU
268
268
else if (pg_regex_locale -> provider == COLLPROVIDER_ICU )
269
269
{
270
- pg_regex_strategy = PG_REGEX_LOCALE_ICU ;
270
+ pg_regex_strategy = PG_REGEX_STRATEGY_ICU ;
271
271
}
272
272
#endif
273
273
else
274
274
{
275
275
if (GetDatabaseEncoding () == PG_UTF8 )
276
- pg_regex_strategy = PG_REGEX_LOCALE_WIDE_L ;
276
+ pg_regex_strategy = PG_REGEX_STRATEGY_LIBC_WIDE ;
277
277
else
278
- pg_regex_strategy = PG_REGEX_LOCALE_1BYTE_L ;
278
+ pg_regex_strategy = PG_REGEX_STRATEGY_LIBC_1BYTE ;
279
279
}
280
280
281
281
pg_regex_collation = collation ;
@@ -287,20 +287,20 @@ pg_wc_isdigit(pg_wchar c)
287
287
{
288
288
switch (pg_regex_strategy )
289
289
{
290
- case PG_REGEX_LOCALE_C :
290
+ case PG_REGEX_STRATEGY_C :
291
291
return (c <= (pg_wchar ) 127 &&
292
292
(pg_char_properties [c ] & PG_ISDIGIT ));
293
- case PG_REGEX_BUILTIN :
293
+ case PG_REGEX_STRATEGY_BUILTIN :
294
294
return pg_u_isdigit (c , true);
295
- case PG_REGEX_LOCALE_WIDE_L :
295
+ case PG_REGEX_STRATEGY_LIBC_WIDE :
296
296
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
297
297
return iswdigit_l ((wint_t ) c , pg_regex_locale -> info .lt );
298
298
/* FALL THRU */
299
- case PG_REGEX_LOCALE_1BYTE_L :
299
+ case PG_REGEX_STRATEGY_LIBC_1BYTE :
300
300
return (c <= (pg_wchar ) UCHAR_MAX &&
301
301
isdigit_l ((unsigned char ) c , pg_regex_locale -> info .lt ));
302
302
break ;
303
- case PG_REGEX_LOCALE_ICU :
303
+ case PG_REGEX_STRATEGY_ICU :
304
304
#ifdef USE_ICU
305
305
return u_isdigit (c );
306
306
#endif
@@ -314,20 +314,20 @@ pg_wc_isalpha(pg_wchar c)
314
314
{
315
315
switch (pg_regex_strategy )
316
316
{
317
- case PG_REGEX_LOCALE_C :
317
+ case PG_REGEX_STRATEGY_C :
318
318
return (c <= (pg_wchar ) 127 &&
319
319
(pg_char_properties [c ] & PG_ISALPHA ));
320
- case PG_REGEX_BUILTIN :
320
+ case PG_REGEX_STRATEGY_BUILTIN :
321
321
return pg_u_isalpha (c );
322
- case PG_REGEX_LOCALE_WIDE_L :
322
+ case PG_REGEX_STRATEGY_LIBC_WIDE :
323
323
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
324
324
return iswalpha_l ((wint_t ) c , pg_regex_locale -> info .lt );
325
325
/* FALL THRU */
326
- case PG_REGEX_LOCALE_1BYTE_L :
326
+ case PG_REGEX_STRATEGY_LIBC_1BYTE :
327
327
return (c <= (pg_wchar ) UCHAR_MAX &&
328
328
isalpha_l ((unsigned char ) c , pg_regex_locale -> info .lt ));
329
329
break ;
330
- case PG_REGEX_LOCALE_ICU :
330
+ case PG_REGEX_STRATEGY_ICU :
331
331
#ifdef USE_ICU
332
332
return u_isalpha (c );
333
333
#endif
@@ -341,20 +341,20 @@ pg_wc_isalnum(pg_wchar c)
341
341
{
342
342
switch (pg_regex_strategy )
343
343
{
344
- case PG_REGEX_LOCALE_C :
344
+ case PG_REGEX_STRATEGY_C :
345
345
return (c <= (pg_wchar ) 127 &&
346
346
(pg_char_properties [c ] & PG_ISALNUM ));
347
- case PG_REGEX_BUILTIN :
347
+ case PG_REGEX_STRATEGY_BUILTIN :
348
348
return pg_u_isalnum (c , true);
349
- case PG_REGEX_LOCALE_WIDE_L :
349
+ case PG_REGEX_STRATEGY_LIBC_WIDE :
350
350
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
351
351
return iswalnum_l ((wint_t ) c , pg_regex_locale -> info .lt );
352
352
/* FALL THRU */
353
- case PG_REGEX_LOCALE_1BYTE_L :
353
+ case PG_REGEX_STRATEGY_LIBC_1BYTE :
354
354
return (c <= (pg_wchar ) UCHAR_MAX &&
355
355
isalnum_l ((unsigned char ) c , pg_regex_locale -> info .lt ));
356
356
break ;
357
- case PG_REGEX_LOCALE_ICU :
357
+ case PG_REGEX_STRATEGY_ICU :
358
358
#ifdef USE_ICU
359
359
return u_isalnum (c );
360
360
#endif
@@ -377,20 +377,20 @@ pg_wc_isupper(pg_wchar c)
377
377
{
378
378
switch (pg_regex_strategy )
379
379
{
380
- case PG_REGEX_LOCALE_C :
380
+ case PG_REGEX_STRATEGY_C :
381
381
return (c <= (pg_wchar ) 127 &&
382
382
(pg_char_properties [c ] & PG_ISUPPER ));
383
- case PG_REGEX_BUILTIN :
383
+ case PG_REGEX_STRATEGY_BUILTIN :
384
384
return pg_u_isupper (c );
385
- case PG_REGEX_LOCALE_WIDE_L :
385
+ case PG_REGEX_STRATEGY_LIBC_WIDE :
386
386
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
387
387
return iswupper_l ((wint_t ) c , pg_regex_locale -> info .lt );
388
388
/* FALL THRU */
389
- case PG_REGEX_LOCALE_1BYTE_L :
389
+ case PG_REGEX_STRATEGY_LIBC_1BYTE :
390
390
return (c <= (pg_wchar ) UCHAR_MAX &&
391
391
isupper_l ((unsigned char ) c , pg_regex_locale -> info .lt ));
392
392
break ;
393
- case PG_REGEX_LOCALE_ICU :
393
+ case PG_REGEX_STRATEGY_ICU :
394
394
#ifdef USE_ICU
395
395
return u_isupper (c );
396
396
#endif
@@ -404,20 +404,20 @@ pg_wc_islower(pg_wchar c)
404
404
{
405
405
switch (pg_regex_strategy )
406
406
{
407
- case PG_REGEX_LOCALE_C :
407
+ case PG_REGEX_STRATEGY_C :
408
408
return (c <= (pg_wchar ) 127 &&
409
409
(pg_char_properties [c ] & PG_ISLOWER ));
410
- case PG_REGEX_BUILTIN :
410
+ case PG_REGEX_STRATEGY_BUILTIN :
411
411
return pg_u_islower (c );
412
- case PG_REGEX_LOCALE_WIDE_L :
412
+ case PG_REGEX_STRATEGY_LIBC_WIDE :
413
413
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
414
414
return iswlower_l ((wint_t ) c , pg_regex_locale -> info .lt );
415
415
/* FALL THRU */
416
- case PG_REGEX_LOCALE_1BYTE_L :
416
+ case PG_REGEX_STRATEGY_LIBC_1BYTE :
417
417
return (c <= (pg_wchar ) UCHAR_MAX &&
418
418
islower_l ((unsigned char ) c , pg_regex_locale -> info .lt ));
419
419
break ;
420
- case PG_REGEX_LOCALE_ICU :
420
+ case PG_REGEX_STRATEGY_ICU :
421
421
#ifdef USE_ICU
422
422
return u_islower (c );
423
423
#endif
@@ -431,20 +431,20 @@ pg_wc_isgraph(pg_wchar c)
431
431
{
432
432
switch (pg_regex_strategy )
433
433
{
434
- case PG_REGEX_LOCALE_C :
434
+ case PG_REGEX_STRATEGY_C :
435
435
return (c <= (pg_wchar ) 127 &&
436
436
(pg_char_properties [c ] & PG_ISGRAPH ));
437
- case PG_REGEX_BUILTIN :
437
+ case PG_REGEX_STRATEGY_BUILTIN :
438
438
return pg_u_isgraph (c );
439
- case PG_REGEX_LOCALE_WIDE_L :
439
+ case PG_REGEX_STRATEGY_LIBC_WIDE :
440
440
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
441
441
return iswgraph_l ((wint_t ) c , pg_regex_locale -> info .lt );
442
442
/* FALL THRU */
443
- case PG_REGEX_LOCALE_1BYTE_L :
443
+ case PG_REGEX_STRATEGY_LIBC_1BYTE :
444
444
return (c <= (pg_wchar ) UCHAR_MAX &&
445
445
isgraph_l ((unsigned char ) c , pg_regex_locale -> info .lt ));
446
446
break ;
447
- case PG_REGEX_LOCALE_ICU :
447
+ case PG_REGEX_STRATEGY_ICU :
448
448
#ifdef USE_ICU
449
449
return u_isgraph (c );
450
450
#endif
@@ -458,20 +458,20 @@ pg_wc_isprint(pg_wchar c)
458
458
{
459
459
switch (pg_regex_strategy )
460
460
{
461
- case PG_REGEX_LOCALE_C :
461
+ case PG_REGEX_STRATEGY_C :
462
462
return (c <= (pg_wchar ) 127 &&
463
463
(pg_char_properties [c ] & PG_ISPRINT ));
464
- case PG_REGEX_BUILTIN :
464
+ case PG_REGEX_STRATEGY_BUILTIN :
465
465
return pg_u_isprint (c );
466
- case PG_REGEX_LOCALE_WIDE_L :
466
+ case PG_REGEX_STRATEGY_LIBC_WIDE :
467
467
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
468
468
return iswprint_l ((wint_t ) c , pg_regex_locale -> info .lt );
469
469
/* FALL THRU */
470
- case PG_REGEX_LOCALE_1BYTE_L :
470
+ case PG_REGEX_STRATEGY_LIBC_1BYTE :
471
471
return (c <= (pg_wchar ) UCHAR_MAX &&
472
472
isprint_l ((unsigned char ) c , pg_regex_locale -> info .lt ));
473
473
break ;
474
- case PG_REGEX_LOCALE_ICU :
474
+ case PG_REGEX_STRATEGY_ICU :
475
475
#ifdef USE_ICU
476
476
return u_isprint (c );
477
477
#endif
@@ -485,20 +485,20 @@ pg_wc_ispunct(pg_wchar c)
485
485
{
486
486
switch (pg_regex_strategy )
487
487
{
488
- case PG_REGEX_LOCALE_C :
488
+ case PG_REGEX_STRATEGY_C :
489
489
return (c <= (pg_wchar ) 127 &&
490
490
(pg_char_properties [c ] & PG_ISPUNCT ));
491
- case PG_REGEX_BUILTIN :
491
+ case PG_REGEX_STRATEGY_BUILTIN :
492
492
return pg_u_ispunct (c , true);
493
- case PG_REGEX_LOCALE_WIDE_L :
493
+ case PG_REGEX_STRATEGY_LIBC_WIDE :
494
494
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
495
495
return iswpunct_l ((wint_t ) c , pg_regex_locale -> info .lt );
496
496
/* FALL THRU */
497
- case PG_REGEX_LOCALE_1BYTE_L :
497
+ case PG_REGEX_STRATEGY_LIBC_1BYTE :
498
498
return (c <= (pg_wchar ) UCHAR_MAX &&
499
499
ispunct_l ((unsigned char ) c , pg_regex_locale -> info .lt ));
500
500
break ;
501
- case PG_REGEX_LOCALE_ICU :
501
+ case PG_REGEX_STRATEGY_ICU :
502
502
#ifdef USE_ICU
503
503
return u_ispunct (c );
504
504
#endif
@@ -512,20 +512,20 @@ pg_wc_isspace(pg_wchar c)
512
512
{
513
513
switch (pg_regex_strategy )
514
514
{
515
- case PG_REGEX_LOCALE_C :
515
+ case PG_REGEX_STRATEGY_C :
516
516
return (c <= (pg_wchar ) 127 &&
517
517
(pg_char_properties [c ] & PG_ISSPACE ));
518
- case PG_REGEX_BUILTIN :
518
+ case PG_REGEX_STRATEGY_BUILTIN :
519
519
return pg_u_isspace (c );
520
- case PG_REGEX_LOCALE_WIDE_L :
520
+ case PG_REGEX_STRATEGY_LIBC_WIDE :
521
521
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
522
522
return iswspace_l ((wint_t ) c , pg_regex_locale -> info .lt );
523
523
/* FALL THRU */
524
- case PG_REGEX_LOCALE_1BYTE_L :
524
+ case PG_REGEX_STRATEGY_LIBC_1BYTE :
525
525
return (c <= (pg_wchar ) UCHAR_MAX &&
526
526
isspace_l ((unsigned char ) c , pg_regex_locale -> info .lt ));
527
527
break ;
528
- case PG_REGEX_LOCALE_ICU :
528
+ case PG_REGEX_STRATEGY_ICU :
529
529
#ifdef USE_ICU
530
530
return u_isspace (c );
531
531
#endif
@@ -539,21 +539,21 @@ pg_wc_toupper(pg_wchar c)
539
539
{
540
540
switch (pg_regex_strategy )
541
541
{
542
- case PG_REGEX_LOCALE_C :
542
+ case PG_REGEX_STRATEGY_C :
543
543
if (c <= (pg_wchar ) 127 )
544
544
return pg_ascii_toupper ((unsigned char ) c );
545
545
return c ;
546
- case PG_REGEX_BUILTIN :
546
+ case PG_REGEX_STRATEGY_BUILTIN :
547
547
return unicode_uppercase_simple (c );
548
- case PG_REGEX_LOCALE_WIDE_L :
548
+ case PG_REGEX_STRATEGY_LIBC_WIDE :
549
549
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
550
550
return towupper_l ((wint_t ) c , pg_regex_locale -> info .lt );
551
551
/* FALL THRU */
552
- case PG_REGEX_LOCALE_1BYTE_L :
552
+ case PG_REGEX_STRATEGY_LIBC_1BYTE :
553
553
if (c <= (pg_wchar ) UCHAR_MAX )
554
554
return toupper_l ((unsigned char ) c , pg_regex_locale -> info .lt );
555
555
return c ;
556
- case PG_REGEX_LOCALE_ICU :
556
+ case PG_REGEX_STRATEGY_ICU :
557
557
#ifdef USE_ICU
558
558
return u_toupper (c );
559
559
#endif
@@ -567,21 +567,21 @@ pg_wc_tolower(pg_wchar c)
567
567
{
568
568
switch (pg_regex_strategy )
569
569
{
570
- case PG_REGEX_LOCALE_C :
570
+ case PG_REGEX_STRATEGY_C :
571
571
if (c <= (pg_wchar ) 127 )
572
572
return pg_ascii_tolower ((unsigned char ) c );
573
573
return c ;
574
- case PG_REGEX_BUILTIN :
574
+ case PG_REGEX_STRATEGY_BUILTIN :
575
575
return unicode_lowercase_simple (c );
576
- case PG_REGEX_LOCALE_WIDE_L :
576
+ case PG_REGEX_STRATEGY_LIBC_WIDE :
577
577
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
578
578
return towlower_l ((wint_t ) c , pg_regex_locale -> info .lt );
579
579
/* FALL THRU */
580
- case PG_REGEX_LOCALE_1BYTE_L :
580
+ case PG_REGEX_STRATEGY_LIBC_1BYTE :
581
581
if (c <= (pg_wchar ) UCHAR_MAX )
582
582
return tolower_l ((unsigned char ) c , pg_regex_locale -> info .lt );
583
583
return c ;
584
- case PG_REGEX_LOCALE_ICU :
584
+ case PG_REGEX_STRATEGY_ICU :
585
585
#ifdef USE_ICU
586
586
return u_tolower (c );
587
587
#endif
@@ -715,29 +715,29 @@ pg_ctype_get_cache(pg_wc_probefunc probefunc, int cclasscode)
715
715
*/
716
716
switch (pg_regex_strategy )
717
717
{
718
- case PG_REGEX_LOCALE_C :
718
+ case PG_REGEX_STRATEGY_C :
719
719
#if MAX_SIMPLE_CHR >= 127
720
720
max_chr = (pg_wchar ) 127 ;
721
721
pcc -> cv .cclasscode = -1 ;
722
722
#else
723
723
max_chr = (pg_wchar ) MAX_SIMPLE_CHR ;
724
724
#endif
725
725
break ;
726
- case PG_REGEX_BUILTIN :
726
+ case PG_REGEX_STRATEGY_BUILTIN :
727
727
max_chr = (pg_wchar ) MAX_SIMPLE_CHR ;
728
728
break ;
729
- case PG_REGEX_LOCALE_WIDE_L :
729
+ case PG_REGEX_STRATEGY_LIBC_WIDE :
730
730
max_chr = (pg_wchar ) MAX_SIMPLE_CHR ;
731
731
break ;
732
- case PG_REGEX_LOCALE_1BYTE_L :
732
+ case PG_REGEX_STRATEGY_LIBC_1BYTE :
733
733
#if MAX_SIMPLE_CHR >= UCHAR_MAX
734
734
max_chr = (pg_wchar ) UCHAR_MAX ;
735
735
pcc -> cv .cclasscode = -1 ;
736
736
#else
737
737
max_chr = (pg_wchar ) MAX_SIMPLE_CHR ;
738
738
#endif
739
739
break ;
740
- case PG_REGEX_LOCALE_ICU :
740
+ case PG_REGEX_STRATEGY_ICU :
741
741
max_chr = (pg_wchar ) MAX_SIMPLE_CHR ;
742
742
break ;
743
743
default :
0 commit comments