]>
Commit | Line | Data |
---|---|---|
1 | /* | |
2 | * Copyright (c) 1998, 1999 Henry Spencer. All rights reserved. | |
3 | * | |
4 | * Development of this software was funded, in part, by Cray Research Inc., | |
5 | * UUNET Communications Services Inc., Sun Microsystems Inc., and Scriptics | |
6 | * Corporation, none of whom are responsible for the results. The author | |
7 | * thanks all of them. | |
8 | * | |
9 | * Redistribution and use in source and binary forms -- with or without | |
10 | * modification -- are permitted for any purpose, provided that | |
11 | * redistributions in source form retain this entire copyright notice and | |
12 | * indicate the origin and nature of any modifications. | |
13 | * | |
14 | * I'd appreciate being given credit for this package in the documentation | |
15 | * of software which uses it, but that is not a requirement. | |
16 | * | |
17 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, | |
18 | * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY | |
19 | * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL | |
20 | * HENRY SPENCER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |
21 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |
22 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; | |
23 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | |
24 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR | |
25 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | |
26 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
27 | * | |
28 | * $Id$ | |
29 | */ | |
30 | ||
31 | /* headers if any */ | |
32 | #include <sys/types.h> | |
33 | #include <stdio.h> | |
34 | #include <stdlib.h> | |
35 | #include <ctype.h> | |
36 | #include <limits.h> | |
37 | #ifndef wxCHECK_GCC_VERSION | |
38 | #define wxCHECK_GCC_VERSION( major, minor ) \ | |
39 | ( defined(__GNUC__) && defined(__GNUC_MINOR__) \ | |
40 | && ( ( __GNUC__ > (major) ) \ | |
41 | || ( __GNUC__ == (major) && __GNUC_MINOR__ >= (minor) ) ) ) | |
42 | #endif | |
43 | ||
44 | #ifdef wxUSE_NEW_REGEX | |
45 | ||
46 | #if !wxUSE_UNICODE | |
47 | # define wx_wchar char | |
48 | #else // Unicode | |
49 | #if (defined(__GNUC__) && !wxCHECK_GCC_VERSION(2, 96)) | |
50 | # define wx_wchar __WCHAR_TYPE__ | |
51 | #else // __WCHAR_TYPE__ and gcc < 2.96 | |
52 | // standard case | |
53 | # define wx_wchar wchar_t | |
54 | #endif // __WCHAR_TYPE__ | |
55 | #endif // ASCII/Unicode | |
56 | ||
57 | #else | |
58 | ||
59 | #define wx_wchar char | |
60 | ||
61 | #endif | |
62 | ||
63 | ||
64 | /* overrides for regguts.h definitions, if any */ | |
65 | #define FUNCPTR(name, args) (*name) args | |
66 | #define MALLOC(n) malloc(n) | |
67 | #define FREE(p) free(VS(p)) | |
68 | #define REALLOC(p,n) realloc(VS(p),n) | |
69 | ||
70 | /* internal character type and related */ | |
71 | typedef wx_wchar chr; /* the type itself */ | |
72 | typedef unsigned uchr; /* unsigned type that will hold a chr */ | |
73 | typedef int celt; /* type to hold chr, MCCE number, or | |
74 | * NOCELT */ | |
75 | ||
76 | #define NOCELT (-1) /* celt value which is not valid chr or | |
77 | * MCCE */ | |
78 | #define CHR(c) ((unsigned char) (c)) /* turn char literal into chr | |
79 | * literal */ | |
80 | #define DIGITVAL(c) ((c)-'0') /* turn chr digit into its value */ | |
81 | #define CHRBITS 32 /* bits in a chr; must not use sizeof */ | |
82 | #define CHR_MIN 0x00000000 /* smallest and largest chr; the value */ | |
83 | #define CHR_MAX 0xfffffffe /* CHR_MAX-CHR_MIN+1 should fit in uchr */ | |
84 | ||
85 | /* functions operating on chr */ | |
86 | #define iscalnum(x) wx_isalnum(x) | |
87 | #define iscalpha(x) wx_isalpha(x) | |
88 | #define iscdigit(x) wx_isdigit(x) | |
89 | #define iscspace(x) wx_isspace(x) | |
90 | ||
91 | /* and pick up the standard header */ | |
92 | #include "regex.h" |