1f0be0a1fSXin LI /* 2*f6b74a7dSXin LI * Copyright (C) 1984-2017 Mark Nudelman 3f0be0a1fSXin LI * 4f0be0a1fSXin LI * You may distribute under the terms of either the GNU General Public 5f0be0a1fSXin LI * License or the Less License, as specified in the README file. 6f0be0a1fSXin LI * 796e55cc7SXin LI * For more information, see the README file. 8f0be0a1fSXin LI */ 9f0be0a1fSXin LI 1096e55cc7SXin LI #if HAVE_GNU_REGEX 1196e55cc7SXin LI #define __USE_GNU 1 1296e55cc7SXin LI #include <regex.h> 13*f6b74a7dSXin LI #define PATTERN_TYPE struct re_pattern_buffer * 1496e55cc7SXin LI #define CLEAR_PATTERN(name) name = NULL 1596e55cc7SXin LI #endif 1696e55cc7SXin LI 17f0be0a1fSXin LI #if HAVE_POSIX_REGCOMP 18f0be0a1fSXin LI #include <regex.h> 19f0be0a1fSXin LI #ifdef REG_EXTENDED 20f0be0a1fSXin LI extern int less_is_more; 21f0be0a1fSXin LI #define REGCOMP_FLAG (less_is_more ? 0 : REG_EXTENDED) 22f0be0a1fSXin LI #else 23f0be0a1fSXin LI #define REGCOMP_FLAG 0 24f0be0a1fSXin LI #endif 25*f6b74a7dSXin LI #define PATTERN_TYPE regex_t * 26f0be0a1fSXin LI #define CLEAR_PATTERN(name) name = NULL 27f0be0a1fSXin LI #endif 28f0be0a1fSXin LI 29f0be0a1fSXin LI #if HAVE_PCRE 30f0be0a1fSXin LI #include <pcre.h> 31*f6b74a7dSXin LI #define PATTERN_TYPE pcre * 32f0be0a1fSXin LI #define CLEAR_PATTERN(name) name = NULL 33f0be0a1fSXin LI #endif 34f0be0a1fSXin LI 35f0be0a1fSXin LI #if HAVE_RE_COMP 36f0be0a1fSXin LI char *re_comp(); 37f0be0a1fSXin LI int re_exec(); 38*f6b74a7dSXin LI #define PATTERN_TYPE int 39f0be0a1fSXin LI #define CLEAR_PATTERN(name) name = 0 40f0be0a1fSXin LI #endif 41f0be0a1fSXin LI 42f0be0a1fSXin LI #if HAVE_REGCMP 43f0be0a1fSXin LI char *regcmp(); 44f0be0a1fSXin LI char *regex(); 45f0be0a1fSXin LI extern char *__loc1; 46*f6b74a7dSXin LI #define PATTERN_TYPE char ** 47f0be0a1fSXin LI #define CLEAR_PATTERN(name) name = NULL 48f0be0a1fSXin LI #endif 49f0be0a1fSXin LI 50f0be0a1fSXin LI #if HAVE_V8_REGCOMP 51f0be0a1fSXin LI #include "regexp.h" 52a15691bfSXin LI extern int reg_show_error; 53*f6b74a7dSXin LI #define PATTERN_TYPE struct regexp * 54f0be0a1fSXin LI #define CLEAR_PATTERN(name) name = NULL 55f0be0a1fSXin LI #endif 56f0be0a1fSXin LI 5796e55cc7SXin LI #if NO_REGEX 58*f6b74a7dSXin LI #define PATTERN_TYPE void * 5996e55cc7SXin LI #define CLEAR_PATTERN(name) 6096e55cc7SXin LI #endif 61