Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
regcustom.h98 linesDownload Raw Back to regex
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 Scriptics6 * Corporation, none of whom are responsible for the results.  The author7 * thanks all of them.8 *9 * Redistribution and use in source and binary forms -- with or without10 * modification -- are permitted for any purpose, provided that11 * redistributions in source form retain this entire copyright notice and12 * indicate the origin and nature of any modifications.13 *14 * I'd appreciate being given credit for this package in the documentation15 * 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 MERCHANTABILITY19 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL20 * 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 OR25 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF26 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.27 *28 * src/include/regex/regcustom.h29 */30 31/* headers if any */32 33/*34 * It's against Postgres coding conventions to include postgres.h in a35 * header file, but we allow the violation here because the regexp library36 * files specifically intend this file to supply application-dependent37 * headers, and are careful to include this file before anything else.38 */39#include "postgres.h"40 41#include <ctype.h>42#include <limits.h>43#include <wctype.h>44 45#include "mb/pg_wchar.h"46 47#include "miscadmin.h"			/* needed by rstacktoodeep */48 49 50/* overrides for regguts.h definitions, if any */51#define FUNCPTR(name, args) (*name) args52#define MALLOC(n)		palloc_extended((n), MCXT_ALLOC_NO_OOM)53#define FREE(p)			pfree(VS(p))54#define REALLOC(p,n)	repalloc_extended(VS(p),(n), MCXT_ALLOC_NO_OOM)55#define INTERRUPT(re)	CHECK_FOR_INTERRUPTS()56#define assert(x)		Assert(x)57 58/* internal character type and related */59typedef pg_wchar chr;			/* the type itself */60typedef unsigned uchr;			/* unsigned type that will hold a chr */61 62#define CHR(c)	((unsigned char) (c))	/* turn char literal into chr literal */63#define DIGITVAL(c) ((c)-'0')	/* turn chr digit into its value */64#define CHRBITS 32				/* bits in a chr; must not use sizeof */65#define CHR_MIN 0x00000000		/* smallest and largest chr; the value */66#define CHR_MAX 0x7ffffffe		/* CHR_MAX-CHR_MIN+1 must fit in an int, and67								 * CHR_MAX+1 must fit in a chr variable */68 69/*70 * Check if a chr value is in range.  Ideally we'd just write this as71 *		((c) >= CHR_MIN && (c) <= CHR_MAX)72 * However, if chr is unsigned and CHR_MIN is zero, the first part of that73 * is a no-op, and certain overly-nannyish compilers give warnings about it.74 * So we leave that out here.  If you want to make chr signed and/or CHR_MIN75 * not zero, redefine this macro as above.  Callers should assume that the76 * macro may multiply evaluate its argument, even though it does not today.77 */78#define CHR_IS_IN_RANGE(c)	((c) <= CHR_MAX)79 80/*81 * MAX_SIMPLE_CHR is the cutoff between "simple" and "complicated" processing82 * in the color map logic.  It should usually be chosen high enough to ensure83 * that all common characters are <= MAX_SIMPLE_CHR.  However, very large84 * values will be counterproductive since they cause more regex setup time.85 * Also, small values can be helpful for testing the high-color-map logic86 * with plain old ASCII input.87 */88#define MAX_SIMPLE_CHR	0x7FF	/* suitable value for Unicode */89 90/* functions operating on chr */91#define iscalnum(x) pg_wc_isalnum(x)92#define iscalpha(x) pg_wc_isalpha(x)93#define iscdigit(x) pg_wc_isdigit(x)94#define iscspace(x) pg_wc_isspace(x)95 96/* and pick up the standard header */97#include "regex.h"98 
codekingpro/portable-devtools · Team Ai