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