1195902Sdelphij/* 2240121Sdelphij * Copyright (C) 1984-2012 Mark Nudelman 3195902Sdelphij * 4195902Sdelphij * You may distribute under the terms of either the GNU General Public 5195902Sdelphij * License or the Less License, as specified in the README file. 6195902Sdelphij * 7240121Sdelphij * For more information, see the README file. 8195902Sdelphij */ 9195902Sdelphij 10240121Sdelphij#if HAVE_GNU_REGEX 11240121Sdelphij#define __USE_GNU 1 12240121Sdelphij#include <regex.h> 13240121Sdelphij#define DEFINE_PATTERN(name) struct re_pattern_buffer *name 14240121Sdelphij#define CLEAR_PATTERN(name) name = NULL 15240121Sdelphij#endif 16240121Sdelphij 17195902Sdelphij#if HAVE_POSIX_REGCOMP 18195902Sdelphij#include <regex.h> 19195902Sdelphij#ifdef REG_EXTENDED 20195941Sdelphijextern int less_is_more; 21195941Sdelphij#define REGCOMP_FLAG (less_is_more ? 0 : REG_EXTENDED) 22195902Sdelphij#else 23195902Sdelphij#define REGCOMP_FLAG 0 24195902Sdelphij#endif 25195902Sdelphij#define DEFINE_PATTERN(name) regex_t *name 26195902Sdelphij#define CLEAR_PATTERN(name) name = NULL 27195902Sdelphij#endif 28195902Sdelphij 29195902Sdelphij#if HAVE_PCRE 30195902Sdelphij#include <pcre.h> 31195902Sdelphij#define DEFINE_PATTERN(name) pcre *name 32195902Sdelphij#define CLEAR_PATTERN(name) name = NULL 33195902Sdelphij#endif 34195902Sdelphij 35195902Sdelphij#if HAVE_RE_COMP 36195902Sdelphijchar *re_comp(); 37195902Sdelphijint re_exec(); 38195902Sdelphij#define DEFINE_PATTERN(name) int name 39195902Sdelphij#define CLEAR_PATTERN(name) name = 0 40195902Sdelphij#endif 41195902Sdelphij 42195902Sdelphij#if HAVE_REGCMP 43195902Sdelphijchar *regcmp(); 44195902Sdelphijchar *regex(); 45195902Sdelphijextern char *__loc1; 46195902Sdelphij#define DEFINE_PATTERN(name) char *name 47195902Sdelphij#define CLEAR_PATTERN(name) name = NULL 48195902Sdelphij#endif 49195902Sdelphij 50195902Sdelphij#if HAVE_V8_REGCOMP 51195902Sdelphij#include "regexp.h" 52195902Sdelphij#define DEFINE_PATTERN(name) struct regexp *name 53195902Sdelphij#define CLEAR_PATTERN(name) name = NULL 54195902Sdelphij#endif 55195902Sdelphij 56240121Sdelphij#if NO_REGEX 57240121Sdelphij#define DEFINE_PATTERN(name) 58240121Sdelphij#define CLEAR_PATTERN(name) 59240121Sdelphij#endif 60