61#define VS(x) ((void *)(x))
66#define FUNCPTR(name, args) (*(name)) args
71#define MALLOC(n) malloc(n)
74#define REALLOC(p, n) realloc(VS(p), n)
77#define FREE(p) free(VS(p))
81#define MALLOC_ARRAY(type, n) ((type *) calloc(sizeof(type), n))
85#define REALLOC_ARRAY(p, type, n) ((type *) REALLOC(p, sizeof(type) * (n)))
94#ifndef _POSIX2_RE_DUP_MAX
95#define _POSIX2_RE_DUP_MAX 255
106#define DUPMAX _POSIX2_RE_DUP_MAX
107#define DUPINF (DUPMAX+1)
109#define REMAGIC 0xfed7
112#define LATYPE_AHEAD_POS 03
113#define LATYPE_AHEAD_NEG 02
114#define LATYPE_BEHIND_POS 01
115#define LATYPE_BEHIND_NEG 00
116#define LATYPE_IS_POS(la) ((la) & 01)
117#define LATYPE_IS_AHEAD(la) ((la) & 02)
125#define FDEBUG(arglist) { if (v->eflags®_FTRACE) printf arglist; }
127#define MDEBUG(arglist) { if (v->eflags®_MTRACE) printf arglist; }
129#define FDEBUG(arglist) {}
130#define MDEBUG(arglist) {}
138#define UBITS (CHAR_BIT * sizeof(unsigned))
139#define BSET(uv, sn) ((uv)[(sn)/UBITS] |= (unsigned)1 << ((sn)%UBITS))
140#define ISBSET(uv, sn) ((uv)[(sn)/UBITS] & ((unsigned)1 << ((sn)%UBITS)))
152#define NUM_CCLASSES 14
165#define MAX_COLOR 32767
166#define COLORLESS (-1)
189#define NOSUB COLORLESS
198#define UNUSEDCOLOR(cd) ((cd)->flags & FREECOL)
245#define CDEND(cm) (&(cm)->cd[(cm)->max + 1])
260#define NINLINECDS ((size_t) 10)
265#define GETCOLOR(cm, c) \
266 ((c) <= MAX_SIMPLE_CHR ? (cm)->locolormap[(c) - CHR_MIN] : pg_reg_getcolor(cm, c))
311#define freechain outchain
325#define ARCBATCHSIZE(n) ((n) * sizeof(struct arc) + offsetof(struct arcbatch, a))
327#define FIRSTABSIZE 64
328#define MAXABSIZE 1024
333#define FREESTATE (-1)
351#define STATEBATCHSIZE(n) ((n) * sizeof(struct state) + offsetof(struct statebatch, s))
353#define FIRSTSBSIZE 32
354#define MAXSBSIZE 1024
421#define HASCANTMATCH 04
428#define CNFA_NOPROGRESS 01
442#define ZAPCNFA(cnfa) memset(&(cnfa), 0, sizeof(cnfa))
444#define ZAPCNFA(cnfa) ((cnfa).nstates = 0)
446#define NULLCNFA(cnfa) ((cnfa).nstates == 0)
463#ifndef REG_MAX_COMPILE_SPACE
464#define REG_MAX_COMPILE_SPACE \
465 (500000 * (sizeof(struct state) + 4 * sizeof(struct arc)))
502#define UPPROP (MIXED|CAP|BACKR)
503#define LMIX(f) ((f)<<2)
504#define SMIX(f) ((f)<<1)
505#define UP(f) (((f)&UPPROP) | (LMIX(f) & SMIX(f) & MIXED))
506#define MESSY(f) ((f)&(MIXED|CAP|BACKR))
507#define PREF(f) ((f)&(LONGER|SHORTER))
508#define PREF2(f1, f2) ((PREF(f1) != 0) ? PREF(f1) : PREF(f2))
509#define COMBINE(f1, f2) (UP((f1)|(f2)) | PREF2(f1, f2))
536#define STACK_TOO_DEEP(re) \
537 ((*((struct fns *) (re)->re_fns)->stack_too_deep) ())
546#define GUTSMAGIC 0xfed9
#define FLEXIBLE_ARRAY_MEMBER
static int compare(const void *arg1, const void *arg2)
void pg_set_regex_collation(Oid collation)
color pg_reg_getcolor(struct colormap *cm, chr c)
struct arc * colorchainRev
struct arc a[FLEXIBLE_ARRAY_MEMBER]
int classbits[NUM_CCLASSES]
struct colordesc cdspace[NINLINECDS]
int FUNCPTR(stack_too_deep,(void))
void FUNCPTR(free,(regex_t *))
int FUNCPTR(compare,(const chr *, const chr *, size_t))
struct statebatch * lastsb
struct state * freestates
struct state s[FLEXIBLE_ARRAY_MEMBER]