@@ -67,8 +67,6 @@ typedef enum
67
67
{
68
68
PG_REGEX_LOCALE_C , /* C locale (encoding independent) */
69
69
PG_REGEX_BUILTIN , /* built-in Unicode semantics */
70
- PG_REGEX_LOCALE_WIDE , /* Use <wctype.h> functions */
71
- PG_REGEX_LOCALE_1BYTE , /* Use <ctype.h> functions */
72
70
PG_REGEX_LOCALE_WIDE_L , /* Use locale_t <wctype.h> functions */
73
71
PG_REGEX_LOCALE_1BYTE_L , /* Use locale_t <ctype.h> functions */
74
72
PG_REGEX_LOCALE_ICU , /* Use ICU uchar.h functions */
@@ -261,33 +259,23 @@ pg_set_regex_collation(Oid collation)
261
259
(errcode (ERRCODE_FEATURE_NOT_SUPPORTED ),
262
260
errmsg ("nondeterministic collations are not supported for regular expressions" )));
263
261
264
- if (pg_regex_locale && pg_regex_locale -> provider == COLLPROVIDER_BUILTIN )
262
+ if (pg_regex_locale -> provider == COLLPROVIDER_BUILTIN )
265
263
{
266
264
Assert (GetDatabaseEncoding () == PG_UTF8 );
267
265
pg_regex_strategy = PG_REGEX_BUILTIN ;
268
266
}
269
267
#ifdef USE_ICU
270
- else if (pg_regex_locale && pg_regex_locale -> provider == COLLPROVIDER_ICU )
268
+ else if (pg_regex_locale -> provider == COLLPROVIDER_ICU )
271
269
{
272
270
pg_regex_strategy = PG_REGEX_LOCALE_ICU ;
273
271
}
274
272
#endif
275
273
else
276
274
{
277
275
if (GetDatabaseEncoding () == PG_UTF8 )
278
- {
279
- if (pg_regex_locale )
280
- pg_regex_strategy = PG_REGEX_LOCALE_WIDE_L ;
281
- else
282
- pg_regex_strategy = PG_REGEX_LOCALE_WIDE ;
283
- }
276
+ pg_regex_strategy = PG_REGEX_LOCALE_WIDE_L ;
284
277
else
285
- {
286
- if (pg_regex_locale )
287
- pg_regex_strategy = PG_REGEX_LOCALE_1BYTE_L ;
288
- else
289
- pg_regex_strategy = PG_REGEX_LOCALE_1BYTE ;
290
- }
278
+ pg_regex_strategy = PG_REGEX_LOCALE_1BYTE_L ;
291
279
}
292
280
293
281
pg_regex_collation = collation ;
@@ -304,13 +292,6 @@ pg_wc_isdigit(pg_wchar c)
304
292
(pg_char_properties [c ] & PG_ISDIGIT ));
305
293
case PG_REGEX_BUILTIN :
306
294
return pg_u_isdigit (c , true);
307
- case PG_REGEX_LOCALE_WIDE :
308
- if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
309
- return iswdigit ((wint_t ) c );
310
- /* FALL THRU */
311
- case PG_REGEX_LOCALE_1BYTE :
312
- return (c <= (pg_wchar ) UCHAR_MAX &&
313
- isdigit ((unsigned char ) c ));
314
295
case PG_REGEX_LOCALE_WIDE_L :
315
296
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
316
297
return iswdigit_l ((wint_t ) c , pg_regex_locale -> info .lt );
@@ -338,13 +319,6 @@ pg_wc_isalpha(pg_wchar c)
338
319
(pg_char_properties [c ] & PG_ISALPHA ));
339
320
case PG_REGEX_BUILTIN :
340
321
return pg_u_isalpha (c );
341
- case PG_REGEX_LOCALE_WIDE :
342
- if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
343
- return iswalpha ((wint_t ) c );
344
- /* FALL THRU */
345
- case PG_REGEX_LOCALE_1BYTE :
346
- return (c <= (pg_wchar ) UCHAR_MAX &&
347
- isalpha ((unsigned char ) c ));
348
322
case PG_REGEX_LOCALE_WIDE_L :
349
323
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
350
324
return iswalpha_l ((wint_t ) c , pg_regex_locale -> info .lt );
@@ -372,13 +346,6 @@ pg_wc_isalnum(pg_wchar c)
372
346
(pg_char_properties [c ] & PG_ISALNUM ));
373
347
case PG_REGEX_BUILTIN :
374
348
return pg_u_isalnum (c , true);
375
- case PG_REGEX_LOCALE_WIDE :
376
- if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
377
- return iswalnum ((wint_t ) c );
378
- /* FALL THRU */
379
- case PG_REGEX_LOCALE_1BYTE :
380
- return (c <= (pg_wchar ) UCHAR_MAX &&
381
- isalnum ((unsigned char ) c ));
382
349
case PG_REGEX_LOCALE_WIDE_L :
383
350
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
384
351
return iswalnum_l ((wint_t ) c , pg_regex_locale -> info .lt );
@@ -415,13 +382,6 @@ pg_wc_isupper(pg_wchar c)
415
382
(pg_char_properties [c ] & PG_ISUPPER ));
416
383
case PG_REGEX_BUILTIN :
417
384
return pg_u_isupper (c );
418
- case PG_REGEX_LOCALE_WIDE :
419
- if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
420
- return iswupper ((wint_t ) c );
421
- /* FALL THRU */
422
- case PG_REGEX_LOCALE_1BYTE :
423
- return (c <= (pg_wchar ) UCHAR_MAX &&
424
- isupper ((unsigned char ) c ));
425
385
case PG_REGEX_LOCALE_WIDE_L :
426
386
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
427
387
return iswupper_l ((wint_t ) c , pg_regex_locale -> info .lt );
@@ -449,13 +409,6 @@ pg_wc_islower(pg_wchar c)
449
409
(pg_char_properties [c ] & PG_ISLOWER ));
450
410
case PG_REGEX_BUILTIN :
451
411
return pg_u_islower (c );
452
- case PG_REGEX_LOCALE_WIDE :
453
- if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
454
- return iswlower ((wint_t ) c );
455
- /* FALL THRU */
456
- case PG_REGEX_LOCALE_1BYTE :
457
- return (c <= (pg_wchar ) UCHAR_MAX &&
458
- islower ((unsigned char ) c ));
459
412
case PG_REGEX_LOCALE_WIDE_L :
460
413
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
461
414
return iswlower_l ((wint_t ) c , pg_regex_locale -> info .lt );
@@ -483,13 +436,6 @@ pg_wc_isgraph(pg_wchar c)
483
436
(pg_char_properties [c ] & PG_ISGRAPH ));
484
437
case PG_REGEX_BUILTIN :
485
438
return pg_u_isgraph (c );
486
- case PG_REGEX_LOCALE_WIDE :
487
- if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
488
- return iswgraph ((wint_t ) c );
489
- /* FALL THRU */
490
- case PG_REGEX_LOCALE_1BYTE :
491
- return (c <= (pg_wchar ) UCHAR_MAX &&
492
- isgraph ((unsigned char ) c ));
493
439
case PG_REGEX_LOCALE_WIDE_L :
494
440
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
495
441
return iswgraph_l ((wint_t ) c , pg_regex_locale -> info .lt );
@@ -517,13 +463,6 @@ pg_wc_isprint(pg_wchar c)
517
463
(pg_char_properties [c ] & PG_ISPRINT ));
518
464
case PG_REGEX_BUILTIN :
519
465
return pg_u_isprint (c );
520
- case PG_REGEX_LOCALE_WIDE :
521
- if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
522
- return iswprint ((wint_t ) c );
523
- /* FALL THRU */
524
- case PG_REGEX_LOCALE_1BYTE :
525
- return (c <= (pg_wchar ) UCHAR_MAX &&
526
- isprint ((unsigned char ) c ));
527
466
case PG_REGEX_LOCALE_WIDE_L :
528
467
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
529
468
return iswprint_l ((wint_t ) c , pg_regex_locale -> info .lt );
@@ -551,13 +490,6 @@ pg_wc_ispunct(pg_wchar c)
551
490
(pg_char_properties [c ] & PG_ISPUNCT ));
552
491
case PG_REGEX_BUILTIN :
553
492
return pg_u_ispunct (c , true);
554
- case PG_REGEX_LOCALE_WIDE :
555
- if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
556
- return iswpunct ((wint_t ) c );
557
- /* FALL THRU */
558
- case PG_REGEX_LOCALE_1BYTE :
559
- return (c <= (pg_wchar ) UCHAR_MAX &&
560
- ispunct ((unsigned char ) c ));
561
493
case PG_REGEX_LOCALE_WIDE_L :
562
494
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
563
495
return iswpunct_l ((wint_t ) c , pg_regex_locale -> info .lt );
@@ -585,13 +517,6 @@ pg_wc_isspace(pg_wchar c)
585
517
(pg_char_properties [c ] & PG_ISSPACE ));
586
518
case PG_REGEX_BUILTIN :
587
519
return pg_u_isspace (c );
588
- case PG_REGEX_LOCALE_WIDE :
589
- if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
590
- return iswspace ((wint_t ) c );
591
- /* FALL THRU */
592
- case PG_REGEX_LOCALE_1BYTE :
593
- return (c <= (pg_wchar ) UCHAR_MAX &&
594
- isspace ((unsigned char ) c ));
595
520
case PG_REGEX_LOCALE_WIDE_L :
596
521
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
597
522
return iswspace_l ((wint_t ) c , pg_regex_locale -> info .lt );
@@ -620,20 +545,6 @@ pg_wc_toupper(pg_wchar c)
620
545
return c ;
621
546
case PG_REGEX_BUILTIN :
622
547
return unicode_uppercase_simple (c );
623
- case PG_REGEX_LOCALE_WIDE :
624
- /* force C behavior for ASCII characters, per comments above */
625
- if (c <= (pg_wchar ) 127 )
626
- return pg_ascii_toupper ((unsigned char ) c );
627
- if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
628
- return towupper ((wint_t ) c );
629
- /* FALL THRU */
630
- case PG_REGEX_LOCALE_1BYTE :
631
- /* force C behavior for ASCII characters, per comments above */
632
- if (c <= (pg_wchar ) 127 )
633
- return pg_ascii_toupper ((unsigned char ) c );
634
- if (c <= (pg_wchar ) UCHAR_MAX )
635
- return toupper ((unsigned char ) c );
636
- return c ;
637
548
case PG_REGEX_LOCALE_WIDE_L :
638
549
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
639
550
return towupper_l ((wint_t ) c , pg_regex_locale -> info .lt );
@@ -662,20 +573,6 @@ pg_wc_tolower(pg_wchar c)
662
573
return c ;
663
574
case PG_REGEX_BUILTIN :
664
575
return unicode_lowercase_simple (c );
665
- case PG_REGEX_LOCALE_WIDE :
666
- /* force C behavior for ASCII characters, per comments above */
667
- if (c <= (pg_wchar ) 127 )
668
- return pg_ascii_tolower ((unsigned char ) c );
669
- if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
670
- return towlower ((wint_t ) c );
671
- /* FALL THRU */
672
- case PG_REGEX_LOCALE_1BYTE :
673
- /* force C behavior for ASCII characters, per comments above */
674
- if (c <= (pg_wchar ) 127 )
675
- return pg_ascii_tolower ((unsigned char ) c );
676
- if (c <= (pg_wchar ) UCHAR_MAX )
677
- return tolower ((unsigned char ) c );
678
- return c ;
679
576
case PG_REGEX_LOCALE_WIDE_L :
680
577
if (sizeof (wchar_t ) >= 4 || c <= (pg_wchar ) 0xFFFF )
681
578
return towlower_l ((wint_t ) c , pg_regex_locale -> info .lt );
@@ -829,11 +726,9 @@ pg_ctype_get_cache(pg_wc_probefunc probefunc, int cclasscode)
829
726
case PG_REGEX_BUILTIN :
830
727
max_chr = (pg_wchar ) MAX_SIMPLE_CHR ;
831
728
break ;
832
- case PG_REGEX_LOCALE_WIDE :
833
729
case PG_REGEX_LOCALE_WIDE_L :
834
730
max_chr = (pg_wchar ) MAX_SIMPLE_CHR ;
835
731
break ;
836
- case PG_REGEX_LOCALE_1BYTE :
837
732
case PG_REGEX_LOCALE_1BYTE_L :
838
733
#if MAX_SIMPLE_CHR >= UCHAR_MAX
839
734
max_chr = (pg_wchar ) UCHAR_MAX ;
0 commit comments