|
47 | 47 | * permission to use and distribute the software in accordance with the
|
48 | 48 | * terms specified in this license.
|
49 | 49 | *
|
50 |
| - * $Header: /cvsroot/pgsql/src/backend/regex/regc_locale.c,v 1.3 2003/08/08 21:41:56 momjian Exp $ |
| 50 | + * $Header: /cvsroot/pgsql/src/backend/regex/regc_locale.c,v 1.4 2003/09/29 00:21:58 tgl Exp $ |
51 | 51 | */
|
52 | 52 |
|
53 | 53 | /* ASCII character-name table */
|
@@ -388,6 +388,12 @@ pg_isgraph(pg_wchar c)
|
388 | 388 | return (c >= 0 && c <= UCHAR_MAX && isgraph((unsigned char) c));
|
389 | 389 | }
|
390 | 390 |
|
| 391 | +static int |
| 392 | +pg_isprint(pg_wchar c) |
| 393 | +{ |
| 394 | + return (c >= 0 && c <= UCHAR_MAX && isprint((unsigned char) c)); |
| 395 | +} |
| 396 | + |
391 | 397 | static int
|
392 | 398 | pg_ispunct(pg_wchar c)
|
393 | 399 | {
|
@@ -657,16 +663,25 @@ cclass(struct vars * v, /* context */
|
657 | 663 | switch ((enum classes) index)
|
658 | 664 | {
|
659 | 665 | case CC_PRINT:
|
| 666 | + cv = getcvec(v, UCHAR_MAX, 0, 0); |
| 667 | + if (cv) |
| 668 | + { |
| 669 | + for (i = 0; i <= UCHAR_MAX; i++) |
| 670 | + { |
| 671 | + if (pg_isprint((chr) i)) |
| 672 | + addchr(cv, (chr) i); |
| 673 | + } |
| 674 | + } |
| 675 | + break; |
660 | 676 | case CC_ALNUM:
|
661 |
| - cv = getcvec(v, UCHAR_MAX, 1, 0); |
| 677 | + cv = getcvec(v, UCHAR_MAX, 0, 0); |
662 | 678 | if (cv)
|
663 | 679 | {
|
664 | 680 | for (i = 0; i <= UCHAR_MAX; i++)
|
665 | 681 | {
|
666 |
| - if (pg_isalpha((chr) i)) |
| 682 | + if (pg_isalnum((chr) i)) |
667 | 683 | addchr(cv, (chr) i);
|
668 | 684 | }
|
669 |
| - addrange(cv, (chr) '0', (chr) '9'); |
670 | 685 | }
|
671 | 686 | break;
|
672 | 687 | case CC_ALPHA:
|
|
0 commit comments