mirror of https://github.com/postgres/postgres
In my cvs source tree, tihs directory existed, which is why it compiled on my system, but nobody elses...REL2_0B
parent
5995953a02
commit
985acb8ea0
@ -0,0 +1,70 @@ |
||||
/*-
|
||||
* Copyright (c) 1992, 1993, 1994 Henry Spencer. |
||||
* Copyright (c) 1992, 1993, 1994 |
||||
* The Regents of the University of California. All rights reserved. |
||||
* |
||||
* This code is derived from software contributed to Berkeley by |
||||
* Henry Spencer. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions |
||||
* are met: |
||||
* 1. Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* 2. Redistributions in binary form must reproduce the above copyright |
||||
* notice, this list of conditions and the following disclaimer in the |
||||
* documentation and/or other materials provided with the distribution. |
||||
* 3. All advertising materials mentioning features or use of this software |
||||
* must display the following acknowledgement: |
||||
* This product includes software developed by the University of |
||||
* California, Berkeley and its contributors. |
||||
* 4. Neither the name of the University nor the names of its contributors |
||||
* may be used to endorse or promote products derived from this software |
||||
* without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
||||
* SUCH DAMAGE. |
||||
* |
||||
* @(#)cclass.h 8.3 (Berkeley) 3/20/94 |
||||
*/ |
||||
|
||||
/* character-class table */ |
||||
static struct cclass { |
||||
char *name; |
||||
char *chars; |
||||
char *multis; |
||||
} cclasses[] = { |
||||
{"alnum", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\
|
||||
0123456789", ""}, |
||||
{"alpha", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", |
||||
""}, |
||||
{"blank", " \t", ""}, |
||||
{"cntrl", "\007\b\t\n\v\f\r\1\2\3\4\5\6\16\17\20\21\22\23\24\
|
||||
\25\26\27\30\31\32\33\34\35\36\37\177", ""}, |
||||
{"digit", "0123456789", ""}, |
||||
{"graph", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\
|
||||
0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", |
||||
""}, |
||||
{"lower", "abcdefghijklmnopqrstuvwxyz", |
||||
""}, |
||||
{"print", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\
|
||||
0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ ", |
||||
""}, |
||||
{"punct", "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", |
||||
""}, |
||||
{"space", "\t\n\v\f\r ", ""}, |
||||
{"upper", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", |
||||
""}, |
||||
{"xdigit", "0123456789ABCDEFabcdef", |
||||
""}, |
||||
{NULL, 0, ""} |
||||
}; |
@ -0,0 +1,144 @@ |
||||
/*
|
||||
* ++Copyright++ 1991, 1993 |
||||
* - |
||||
* Copyright (c) 1991, 1993 |
||||
* The Regents of the University of California. All rights reserved. |
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions |
||||
* are met: |
||||
* 1. Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* 2. Redistributions in binary form must reproduce the above copyright |
||||
* notice, this list of conditions and the following disclaimer in the |
||||
* documentation and/or other materials provided with the distribution. |
||||
* 3. All advertising materials mentioning features or use of this software |
||||
* must display the following acknowledgement: |
||||
* This product includes software developed by the University of |
||||
* California, Berkeley and its contributors. |
||||
* 4. Neither the name of the University nor the names of its contributors |
||||
* may be used to endorse or promote products derived from this software |
||||
* without specific prior written permission. |
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
||||
* SUCH DAMAGE. |
||||
* - |
||||
* Portions Copyright (c) 1993 by Digital Equipment Corporation. |
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any |
||||
* purpose with or without fee is hereby granted, provided that the above |
||||
* copyright notice and this permission notice appear in all copies, and that |
||||
* the name of Digital Equipment Corporation not be used in advertising or |
||||
* publicity pertaining to distribution of the document or software without |
||||
* specific, written prior permission. |
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL |
||||
* WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES |
||||
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT |
||||
* CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL |
||||
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR |
||||
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS |
||||
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS |
||||
* SOFTWARE. |
||||
* - |
||||
* --Copyright-- |
||||
*/ |
||||
|
||||
/*
|
||||
* @(#)cdefs.h 8.1 (Berkeley) 6/2/93 |
||||
* $Id: cdefs.h,v 1.1 1996/09/20 05:29:23 scrappy Exp $ |
||||
*/ |
||||
|
||||
#ifndef _CDEFS_H_ |
||||
#define _CDEFS_H_ |
||||
|
||||
#if defined(__cplusplus) |
||||
#define __BEGIN_DECLS extern "C" { |
||||
#define __END_DECLS }; |
||||
#else |
||||
#define __BEGIN_DECLS |
||||
#define __END_DECLS |
||||
#endif |
||||
|
||||
/*
|
||||
* The __CONCAT macro is used to concatenate parts of symbol names, e.g. |
||||
* with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. |
||||
* The __CONCAT macro is a bit tricky -- make sure you don't put spaces |
||||
* in between its arguments. __CONCAT can also concatenate double-quoted |
||||
* strings produced by the __STRING macro, but this only works with ANSI C. |
||||
*/ |
||||
#if defined(__STDC__) || defined(__cplusplus) |
||||
#define __P(protos) protos /* full-blown ANSI C */ |
||||
#define __CONCAT(x,y) x ## y |
||||
#define __STRING(x) #x |
||||
|
||||
#define __const const /* define reserved names to standard */ |
||||
#define __signed signed |
||||
#define __volatile volatile |
||||
#if defined(__cplusplus) |
||||
#define __inline inline /* convert to C++ keyword */ |
||||
#else |
||||
#ifndef __GNUC__ |
||||
#define __inline /* delete GCC keyword */ |
||||
#endif /* !__GNUC__ */ |
||||
#endif /* !__cplusplus */ |
||||
|
||||
#else /* !(__STDC__ || __cplusplus) */ |
||||
#define __P(protos) () /* traditional C preprocessor */ |
||||
#define __CONCAT(x,y) x/**/y |
||||
#define __STRING(x) "x" |
||||
|
||||
#ifndef __GNUC__ |
||||
#define __const /* delete pseudo-ANSI C keywords */ |
||||
#define __inline |
||||
#define __signed |
||||
#define __volatile |
||||
/*
|
||||
* In non-ANSI C environments, new programs will want ANSI-only C keywords |
||||
* deleted from the program and old programs will want them left alone. |
||||
* When using a compiler other than gcc, programs using the ANSI C keywords |
||||
* const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. |
||||
* When using "gcc -traditional", we assume that this is the intent; if |
||||
* __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. |
||||
*/ |
||||
#ifndef NO_ANSI_KEYWORDS |
||||
#define const /* delete ANSI C keywords */ |
||||
#define inline |
||||
#define signed |
||||
#define volatile |
||||
#endif |
||||
#endif /* !__GNUC__ */ |
||||
#endif /* !(__STDC__ || __cplusplus) */ |
||||
|
||||
/*
|
||||
* GCC1 and some versions of GCC2 declare dead (non-returning) and |
||||
* pure (no side effects) functions using "volatile" and "const"; |
||||
* unfortunately, these then cause warnings under "-ansi -pedantic". |
||||
* GCC2 uses a new, peculiar __attribute__((attrs)) style. All of |
||||
* these work for GNU C++ (modulo a slight glitch in the C++ grammar |
||||
* in the distribution version of 2.5.5). |
||||
*/ |
||||
#if !defined(__GNUC__) || __GNUC__ < 2 || __GNUC_MINOR__ < 5 |
||||
#define __attribute__(x) /* delete __attribute__ if non-gcc or gcc1 */ |
||||
#if defined(__GNUC__) && !defined(__STRICT_ANSI__) |
||||
#define __dead __volatile |
||||
#define __pure __const |
||||
#endif |
||||
#endif |
||||
|
||||
/* Delete pseudo-keywords wherever they are not available or needed. */ |
||||
#ifndef __dead |
||||
#define __dead |
||||
#define __pure |
||||
#endif |
||||
|
||||
#endif /* !_CDEFS_H_ */ |
@ -0,0 +1,141 @@ |
||||
/*-
|
||||
* Copyright (c) 1992, 1993, 1994 Henry Spencer. |
||||
* Copyright (c) 1992, 1993, 1994 |
||||
* The Regents of the University of California. All rights reserved. |
||||
* |
||||
* This code is derived from software contributed to Berkeley by |
||||
* Henry Spencer. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions |
||||
* are met: |
||||
* 1. Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* 2. Redistributions in binary form must reproduce the above copyright |
||||
* notice, this list of conditions and the following disclaimer in the |
||||
* documentation and/or other materials provided with the distribution. |
||||
* 3. All advertising materials mentioning features or use of this software |
||||
* must display the following acknowledgement: |
||||
* This product includes software developed by the University of |
||||
* California, Berkeley and its contributors. |
||||
* 4. Neither the name of the University nor the names of its contributors |
||||
* may be used to endorse or promote products derived from this software |
||||
* without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
||||
* SUCH DAMAGE. |
||||
* |
||||
* @(#)cname.h 8.3 (Berkeley) 3/20/94 |
||||
*/ |
||||
|
||||
/* character-name table */ |
||||
static struct cname { |
||||
char *name; |
||||
char code; |
||||
} cnames[] = { |
||||
{"NUL", '\0'}, |
||||
{"SOH", '\001'}, |
||||
{"STX", '\002'}, |
||||
{"ETX", '\003'}, |
||||
{"EOT", '\004'}, |
||||
{"ENQ", '\005'}, |
||||
{"ACK", '\006'}, |
||||
{"BEL", '\007'}, |
||||
{"alert", '\007'}, |
||||
{"BS", '\010'}, |
||||
{"backspace", '\b'}, |
||||
{"HT", '\011'}, |
||||
{"tab", '\t'}, |
||||
{"LF", '\012'}, |
||||
{"newline", '\n'}, |
||||
{"VT", '\013'}, |
||||
{"vertical-tab", '\v'}, |
||||
{"FF", '\014'}, |
||||
{"form-feed", '\f'}, |
||||
{"CR", '\015'}, |
||||
{"carriage-return", '\r'}, |
||||
{"SO", '\016'}, |
||||
{"SI", '\017'}, |
||||
{"DLE", '\020'}, |
||||
{"DC1", '\021'}, |
||||
{"DC2", '\022'}, |
||||
{"DC3", '\023'}, |
||||
{"DC4", '\024'}, |
||||
{"NAK", '\025'}, |
||||
{"SYN", '\026'}, |
||||
{"ETB", '\027'}, |
||||
{"CAN", '\030'}, |
||||
{"EM", '\031'}, |
||||
{"SUB", '\032'}, |
||||
{"ESC", '\033'}, |
||||
{"IS4", '\034'}, |
||||
{"FS", '\034'}, |
||||
{"IS3", '\035'}, |
||||
{"GS", '\035'}, |
||||
{"IS2", '\036'}, |
||||
{"RS", '\036'}, |
||||
{"IS1", '\037'}, |
||||
{"US", '\037'}, |
||||
{"space", ' '}, |
||||
{"exclamation-mark", '!'}, |
||||
{"quotation-mark", '"'}, |
||||
{"number-sign", '#'}, |
||||
{"dollar-sign", '$'}, |
||||
{"percent-sign", '%'}, |
||||
{"ampersand", '&'}, |
||||
{"apostrophe", '\''}, |
||||
{"left-parenthesis", '('}, |
||||
{"right-parenthesis", ')'}, |
||||
{"asterisk", '*'}, |
||||
{"plus-sign", '+'}, |
||||
{"comma", ','}, |
||||
{"hyphen", '-'}, |
||||
{"hyphen-minus", '-'}, |
||||
{"period", '.'}, |
||||
{"full-stop", '.'}, |
||||
{"slash", '/'}, |
||||
{"solidus", '/'}, |
||||
{"zero", '0'}, |
||||
{"one", '1'}, |
||||
{"two", '2'}, |
||||
{"three", '3'}, |
||||
{"four", '4'}, |
||||
{"five", '5'}, |
||||
{"six", '6'}, |
||||
{"seven", '7'}, |
||||
{"eight", '8'}, |
||||
{"nine", '9'}, |
||||
{"colon", ':'}, |
||||
{"semicolon", ';'}, |
||||
{"less-than-sign", '<'}, |
||||
{"equals-sign", '='}, |
||||
{"greater-than-sign", '>'}, |
||||
{"question-mark", '?'}, |
||||
{"commercial-at", '@'}, |
||||
{"left-square-bracket", '['}, |
||||
{"backslash", '\\'}, |
||||
{"reverse-solidus", '\\'}, |
||||
{"right-square-bracket", ']'}, |
||||
{"circumflex", '^'}, |
||||
{"circumflex-accent", '^'}, |
||||
{"underscore", '_'}, |
||||
{"low-line", '_'}, |
||||
{"grave-accent", '`'}, |
||||
{"left-brace", '{'}, |
||||
{"left-curly-bracket", '{'}, |
||||
{"vertical-line", '|'}, |
||||
{"right-brace", '}'}, |
||||
{"right-curly-bracket", '}'}, |
||||
{"tilde", '~'}, |
||||
{"DEL", '\177'}, |
||||
{NULL, 0} |
||||
}; |
@ -0,0 +1,108 @@ |
||||
/*-
|
||||
* Copyright (c) 1992 Henry Spencer. |
||||
* Copyright (c) 1992, 1993 |
||||
* The Regents of the University of California. All rights reserved. |
||||
* |
||||
* This code is derived from software contributed to Berkeley by |
||||
* Henry Spencer of the University of Toronto. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions |
||||
* are met: |
||||
* 1. Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* 2. Redistributions in binary form must reproduce the above copyright |
||||
* notice, this list of conditions and the following disclaimer in the |
||||
* documentation and/or other materials provided with the distribution. |
||||
* 3. All advertising materials mentioning features or use of this software |
||||
* must display the following acknowledgement: |
||||
* This product includes software developed by the University of |
||||
* California, Berkeley and its contributors. |
||||
* 4. Neither the name of the University nor the names of its contributors |
||||
* may be used to endorse or promote products derived from this software |
||||
* without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
||||
* SUCH DAMAGE. |
||||
* |
||||
* @(#)regex.h 8.2 (Berkeley) 1/3/94 |
||||
*/ |
||||
|
||||
#ifndef _REGEX_H_ |
||||
#define _REGEX_H_ |
||||
|
||||
/* #include <sys/cdefs.h> */ |
||||
/* since not all systems have cdefs.h, we'll use our own here - jolly */ |
||||
#include "cdefs.h" |
||||
|
||||
/* types */ |
||||
typedef off_t regoff_t; |
||||
|
||||
typedef struct { |
||||
int re_magic; |
||||
size_t re_nsub; /* number of parenthesized subexpressions */ |
||||
__const char *re_endp; /* end pointer for REG_PEND */ |
||||
struct re_guts *re_g; /* none of your business :-) */ |
||||
} regex_t; |
||||
|
||||
typedef struct { |
||||
regoff_t rm_so; /* start of match */ |
||||
regoff_t rm_eo; /* end of match */ |
||||
} regmatch_t; |
||||
|
||||
/* regcomp() flags */ |
||||
#define REG_BASIC 0000 |
||||
#define REG_EXTENDED 0001 |
||||
#define REG_ICASE 0002 |
||||
#define REG_NOSUB 0004 |
||||
#define REG_NEWLINE 0010 |
||||
#define REG_NOSPEC 0020 |
||||
#define REG_PEND 0040 |
||||
#define REG_DUMP 0200 |
||||
|
||||
/* regerror() flags */ |
||||
#define REG_NOMATCH 1 |
||||
#define REG_BADPAT 2 |
||||
#define REG_ECOLLATE 3 |
||||
#define REG_ECTYPE 4 |
||||
#define REG_EESCAPE 5 |
||||
#define REG_ESUBREG 6 |
||||
#define REG_EBRACK 7 |
||||
#define REG_EPAREN 8 |
||||
#define REG_EBRACE 9 |
||||
#define REG_BADBR 10 |
||||
#define REG_ERANGE 11 |
||||
#define REG_ESPACE 12 |
||||
#define REG_BADRPT 13 |
||||
#define REG_EMPTY 14 |
||||
#define REG_ASSERT 15 |
||||
#define REG_INVARG 16 |
||||
#define REG_ATOI 255 /* convert name to number (!) */ |
||||
#define REG_ITOA 0400 /* convert number to name (!) */ |
||||
|
||||
/* regexec() flags */ |
||||
#define REG_NOTBOL 00001 |
||||
#define REG_NOTEOL 00002 |
||||
#define REG_STARTEND 00004 |
||||
#define REG_TRACE 00400 /* tracing of execution */ |
||||
#define REG_LARGE 01000 /* force large representation */ |
||||
#define REG_BACKR 02000 /* force use of backref code */ |
||||
|
||||
__BEGIN_DECLS |
||||
int pg95_regcomp __P((regex_t *, const char *, int)); |
||||
size_t pg95_regerror __P((int, const regex_t *, char *, size_t)); |
||||
int pg95_regexec __P((const regex_t *, |
||||
const char *, size_t, regmatch_t [], int)); |
||||
void pg95_regfree __P((regex_t *)); |
||||
__END_DECLS |
||||
|
||||
#endif /* !_REGEX_H_ */ |
@ -0,0 +1,175 @@ |
||||
/*-
|
||||
* Copyright (c) 1992, 1993, 1994 Henry Spencer. |
||||
* Copyright (c) 1992, 1993, 1994 |
||||
* The Regents of the University of California. All rights reserved. |
||||
* |
||||
* This code is derived from software contributed to Berkeley by |
||||
* Henry Spencer. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions |
||||
* are met: |
||||
* 1. Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* 2. Redistributions in binary form must reproduce the above copyright |
||||
* notice, this list of conditions and the following disclaimer in the |
||||
* documentation and/or other materials provided with the distribution. |
||||
* 3. All advertising materials mentioning features or use of this software |
||||
* must display the following acknowledgement: |
||||
* This product includes software developed by the University of |
||||
* California, Berkeley and its contributors. |
||||
* 4. Neither the name of the University nor the names of its contributors |
||||
* may be used to endorse or promote products derived from this software |
||||
* without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
||||
* SUCH DAMAGE. |
||||
* |
||||
* @(#)regex2.h 8.4 (Berkeley) 3/20/94 |
||||
*/ |
||||
|
||||
/*
|
||||
* First, the stuff that ends up in the outside-world include file |
||||
*/ |
||||
/*
|
||||
typedef off_t regoff_t; |
||||
typedef struct { |
||||
int re_magic; |
||||
size_t re_nsub; // number of parenthesized subexpressions
|
||||
const char *re_endp; // end pointer for REG_PEND
|
||||
struct re_guts *re_g; // none of your business :-)
|
||||
} regex_t; |
||||
typedef struct { |
||||
regoff_t rm_so; // start of match
|
||||
regoff_t rm_eo; // end of match
|
||||
} regmatch_t; |
||||
*/ |
||||
/*
|
||||
* internals of regex_t |
||||
*/ |
||||
#define MAGIC1 ((('r'^0200)<<8) | 'e') |
||||
|
||||
/*
|
||||
* The internal representation is a *strip*, a sequence of |
||||
* operators ending with an endmarker. (Some terminology etc. is a |
||||
* historical relic of earlier versions which used multiple strips.) |
||||
* Certain oddities in the representation are there to permit running |
||||
* the machinery backwards; in particular, any deviation from sequential |
||||
* flow must be marked at both its source and its destination. Some |
||||
* fine points: |
||||
* |
||||
* - OPLUS_ and O_PLUS are *inside* the loop they create. |
||||
* - OQUEST_ and O_QUEST are *outside* the bypass they create. |
||||
* - OCH_ and O_CH are *outside* the multi-way branch they create, while |
||||
* OOR1 and OOR2 are respectively the end and the beginning of one of |
||||
* the branches. Note that there is an implicit OOR2 following OCH_ |
||||
* and an implicit OOR1 preceding O_CH. |
||||
* |
||||
* In state representations, an operator's bit is on to signify a state |
||||
* immediately *preceding* "execution" of that operator. |
||||
*/ |
||||
typedef unsigned long sop; /* strip operator */ |
||||
typedef long sopno; |
||||
#define OPRMASK 0xf8000000 |
||||
#define OPDMASK 0x07ffffff |
||||
#define OPSHIFT ((unsigned)27) |
||||
#define OP(n) ((n)&OPRMASK) |
||||
#define OPND(n) ((n)&OPDMASK) |
||||
#define SOP(op, opnd) ((op)|(opnd)) |
||||
/* operators meaning operand */ |
||||
/* (back, fwd are offsets) */ |
||||
#define OEND (1<<OPSHIFT) /* endmarker - */ |
||||
#define OCHAR (2<<OPSHIFT) /* character unsigned char */ |
||||
#define OBOL (3<<OPSHIFT) /* left anchor - */ |
||||
#define OEOL (4<<OPSHIFT) /* right anchor - */ |
||||
#define OANY (5<<OPSHIFT) /* . - */ |
||||
#define OANYOF (6<<OPSHIFT) /* [...] set number */ |
||||
#define OBACK_ (7<<OPSHIFT) /* begin \d paren number */ |
||||
#define O_BACK (8<<OPSHIFT) /* end \d paren number */ |
||||
#define OPLUS_ (9<<OPSHIFT) /* + prefix fwd to suffix */ |
||||
#define O_PLUS (10<<OPSHIFT) /* + suffix back to prefix */ |
||||
#define OQUEST_ (11<<OPSHIFT) /* ? prefix fwd to suffix */ |
||||
#define O_QUEST (12<<OPSHIFT) /* ? suffix back to prefix */ |
||||
#define OLPAREN (13<<OPSHIFT) /* ( fwd to ) */ |
||||
#define ORPAREN (14<<OPSHIFT) /* ) back to ( */ |
||||
#define OCH_ (15<<OPSHIFT) /* begin choice fwd to OOR2 */ |
||||
#define OOR1 (16<<OPSHIFT) /* | pt. 1 back to OOR1 or OCH_ */ |
||||
#define OOR2 (17<<OPSHIFT) /* | pt. 2 fwd to OOR2 or O_CH */ |
||||
#define O_CH (18<<OPSHIFT) /* end choice back to OOR1 */ |
||||
#define OBOW (19<<OPSHIFT) /* begin word - */ |
||||
#define OEOW (20<<OPSHIFT) /* end word - */ |
||||
|
||||
/*
|
||||
* Structure for [] character-set representation. Character sets are |
||||
* done as bit vectors, grouped 8 to a byte vector for compactness. |
||||
* The individual set therefore has both a pointer to the byte vector |
||||
* and a mask to pick out the relevant bit of each byte. A hash code |
||||
* simplifies testing whether two sets could be identical. |
||||
* |
||||
* This will get trickier for multicharacter collating elements. As |
||||
* preliminary hooks for dealing with such things, we also carry along |
||||
* a string of multi-character elements, and decide the size of the |
||||
* vectors at run time. |
||||
*/ |
||||
typedef struct { |
||||
uch *ptr; /* -> uch [csetsize] */ |
||||
uch mask; /* bit within array */ |
||||
uch hash; /* hash code */ |
||||
size_t smultis; |
||||
char *multis; /* -> char[smulti] ab\0cd\0ef\0\0 */ |
||||
} cset; |
||||
/* note that CHadd and CHsub are unsafe, and CHIN doesn't yield 0/1 */ |
||||
#define CHadd(cs, c) ((cs)->ptr[(uch)(c)] |= (cs)->mask, (cs)->hash += (c)) |
||||
#define CHsub(cs, c) ((cs)->ptr[(uch)(c)] &= ~(cs)->mask, (cs)->hash -= (c)) |
||||
#define CHIN(cs, c) ((cs)->ptr[(uch)(c)] & (cs)->mask) |
||||
#define MCadd(p, cs, cp) mcadd(p, cs, cp) /* regcomp() internal fns */ |
||||
#define MCsub(p, cs, cp) mcsub(p, cs, cp) |
||||
#define MCin(p, cs, cp) mcin(p, cs, cp) |
||||
|
||||
/* stuff for character categories */ |
||||
typedef unsigned char cat_t; |
||||
|
||||
/*
|
||||
* main compiled-expression structure |
||||
*/ |
||||
struct re_guts { |
||||
int magic; |
||||
# define MAGIC2 ((('R'^0200)<<8)|'E') |
||||
sop *strip; /* malloced area for strip */ |
||||
int csetsize; /* number of bits in a cset vector */ |
||||
int ncsets; /* number of csets in use */ |
||||
cset *sets; /* -> cset [ncsets] */ |
||||
uch *setbits; /* -> uch[csetsize][ncsets/CHAR_BIT] */ |
||||
int cflags; /* copy of regcomp() cflags argument */ |
||||
sopno nstates; /* = number of sops */ |
||||
sopno firststate; /* the initial OEND (normally 0) */ |
||||
sopno laststate; /* the final OEND */ |
||||
int iflags; /* internal flags */ |
||||
# define USEBOL 01 /* used ^ */ |
||||
# define USEEOL 02 /* used $ */ |
||||
# define BAD 04 /* something wrong */ |
||||
int nbol; /* number of ^ used */ |
||||
int neol; /* number of $ used */ |
||||
int ncategories; /* how many character categories */ |
||||
cat_t *categories; /* ->catspace[-CHAR_MIN] */ |
||||
char *must; /* match must contain this string */ |
||||
int mlen; /* length of must */ |
||||
size_t nsub; /* copy of re_nsub */ |
||||
int backrefs; /* does it use back references? */ |
||||
sopno nplus; /* how deep does it nest +s? */ |
||||
/* catspace must be last */ |
||||
cat_t catspace[1]; /* actually [NC] */ |
||||
}; |
||||
|
||||
/* misc utilities */ |
||||
#define OUT (CHAR_MAX+1) /* a non-character value */ |
||||
#define ISWORD(c) (isalnum(c) || (c) == '_') |
@ -0,0 +1,71 @@ |
||||
/*
|
||||
* Copyright (c) 1986 by University of Toronto. |
||||
* Copyright (c) 1989, 1993 |
||||
* The Regents of the University of California. All rights reserved. |
||||
* |
||||
* This code is derived from software contributed to Berkeley |
||||
* by Henry Spencer. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions |
||||
* are met: |
||||
* 1. Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* 2. Redistributions in binary form must reproduce the above copyright |
||||
* notice, this list of conditions and the following disclaimer in the |
||||
* documentation and/or other materials provided with the distribution. |
||||
* 3. All advertising materials mentioning features or use of this software |
||||
* must display the following acknowledgement: |
||||
* This product includes software developed by the University of |
||||
* California, Berkeley and its contributors. |
||||
* 4. Neither the name of the University nor the names of its contributors |
||||
* may be used to endorse or promote products derived from this software |
||||
* without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
||||
* SUCH DAMAGE. |
||||
* |
||||
* @(#)regexp.h 8.1 (Berkeley) 6/2/93 |
||||
*/ |
||||
|
||||
#ifndef _REGEXP_H_ |
||||
#define _REGEXP_H_ |
||||
|
||||
/*
|
||||
* Definitions etc. for regexp(3) routines. |
||||
* |
||||
* Caveat: this is V8 regexp(3) [actually, a reimplementation thereof], |
||||
* not the System V one. |
||||
*/ |
||||
#define NSUBEXP 10 |
||||
typedef struct regexp { |
||||
char *startp[NSUBEXP]; |
||||
char *endp[NSUBEXP]; |
||||
char regstart; /* Internal use only. */ |
||||
char reganch; /* Internal use only. */ |
||||
char *regmust; /* Internal use only. */ |
||||
int regmlen; /* Internal use only. */ |
||||
char program[1]; /* Unwarranted chumminess with compiler. */ |
||||
} regexp; |
||||
|
||||
/* #include <sys/cdefs.h> */ |
||||
/* since not all systems have cdefs.h, we'll use our own here - jolly */ |
||||
#include "cdefs.h" |
||||
|
||||
__BEGIN_DECLS |
||||
regexp *pg95_regcomp __P((const char *)); |
||||
int pg95_regexec __P((const regexp *, const char *)); |
||||
void pg95_regsub __P((const regexp *, const char *, char *)); |
||||
void pg95_regerror __P((const char *)); |
||||
__END_DECLS |
||||
|
||||
#endif /* !_REGEXP_H_ */ |
@ -0,0 +1,57 @@ |
||||
/*-
|
||||
* Copyright (c) 1992, 1993, 1994 Henry Spencer. |
||||
* Copyright (c) 1992, 1993, 1994 |
||||
* The Regents of the University of California. All rights reserved. |
||||
* |
||||
* This code is derived from software contributed to Berkeley by |
||||
* Henry Spencer. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions |
||||
* are met: |
||||
* 1. Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* 2. Redistributions in binary form must reproduce the above copyright |
||||
* notice, this list of conditions and the following disclaimer in the |
||||
* documentation and/or other materials provided with the distribution. |
||||
* 3. All advertising materials mentioning features or use of this software |
||||
* must display the following acknowledgement: |
||||
* This product includes software developed by the University of |
||||
* California, Berkeley and its contributors. |
||||
* 4. Neither the name of the University nor the names of its contributors |
||||
* may be used to endorse or promote products derived from this software |
||||
* without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
||||
* SUCH DAMAGE. |
||||
* |
||||
* @(#)utils.h 8.3 (Berkeley) 3/20/94 |
||||
*/ |
||||
|
||||
/* utility definitions */ |
||||
#define DUPMAX 100000000 /* xxx is this right? */ |
||||
#define INFINITY (DUPMAX + 1) |
||||
#define NC (CHAR_MAX - CHAR_MIN + 1) |
||||
typedef unsigned char uch; |
||||
|
||||
/* switch off assertions (if not already off) if no REDEBUG */ |
||||
#ifndef REDEBUG |
||||
#ifndef NDEBUG |
||||
#define NDEBUG /* no assertions please */ |
||||
#endif |
||||
#endif |
||||
#include <assert.h> |
||||
|
||||
/* for old systems with bcopy() but no memmove() */ |
||||
#if defined(PORTNAME_sparc) |
||||
#define memmove(d, s, c) bcopy(s, d, c) |
||||
#endif |
Loading…
Reference in new issue