1/* 2 * Copyright (C) 1984-2021 Mark Nudelman 3 * 4 * You may distribute under the terms of either the GNU General Public 5 * License or the Less License, as specified in the README file. 6 * 7 * For more information, see the README file. 8 */ 9 10#if HAVE_GNU_REGEX 11#define __USE_GNU 1 12#include <regex.h> 13#define PATTERN_TYPE struct re_pattern_buffer * 14#define SET_NULL_PATTERN(name) name = NULL 15#endif 16 17#if HAVE_POSIX_REGCOMP 18#include <regex.h> 19#ifdef REG_EXTENDED 20extern int less_is_more; 21#define REGCOMP_FLAG (less_is_more ? 0 : REG_EXTENDED) 22#else 23#define REGCOMP_FLAG 0 24#endif 25#define PATTERN_TYPE regex_t * 26#define SET_NULL_PATTERN(name) name = NULL 27#endif 28 29#if HAVE_PCRE 30#include <pcre.h> 31#define PATTERN_TYPE pcre * 32#define SET_NULL_PATTERN(name) name = NULL 33#endif 34 35#if HAVE_PCRE2 36#define PCRE2_CODE_UNIT_WIDTH 8 37#include <pcre2.h> 38#define PATTERN_TYPE pcre2_code * 39#define SET_NULL_PATTERN(name) name = NULL 40#endif 41 42#if HAVE_RE_COMP 43char *re_comp LESSPARAMS ((char*)); 44int re_exec LESSPARAMS ((char*)); 45#define PATTERN_TYPE int 46#define SET_NULL_PATTERN(name) name = 0 47#endif 48 49#if HAVE_REGCMP 50char *regcmp LESSPARAMS ((char*)); 51char *regex LESSPARAMS ((char**, char*)); 52extern char *__loc1; 53#define PATTERN_TYPE char ** 54#define SET_NULL_PATTERN(name) name = NULL 55#endif 56 57#if HAVE_V8_REGCOMP 58#include "regexp.h" 59extern int reg_show_error; 60#define PATTERN_TYPE struct regexp * 61#define SET_NULL_PATTERN(name) name = NULL 62#endif 63 64#if NO_REGEX 65#define PATTERN_TYPE void * 66#define SET_NULL_PATTERN(name) 67#endif 68