From: Vadim Zeitlin Date: Fri, 4 Feb 2005 09:37:55 +0000 (+0000) Subject: a better fix for using builtin regex under BSD (also fixes compilation for Mac OS... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/2af7511ea7ecae3f5c1b783756750216e2f97d0e a better fix for using builtin regex under BSD (also fixes compilation for Mac OS X) (patch 1089445) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31747 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/regex.cpp b/src/common/regex.cpp index 8ae727359c..896d2ad248 100644 --- a/src/common/regex.cpp +++ b/src/common/regex.cpp @@ -199,7 +199,7 @@ bool wxRegExImpl::Compile(const wxString& expr, int flags) // compile it #ifdef __REG_NOFRONT bool conv = true; - int errorcode = re_comp(&m_RegEx, expr, expr.length(), flagsRE); + int errorcode = wx_re_comp(&m_RegEx, expr, expr.length(), flagsRE); #else const wxWX2MBbuf conv = expr.mbc_str(); int errorcode = conv ? regcomp(&m_RegEx, conv, flagsRE) : REG_BADPAT; @@ -283,7 +283,7 @@ bool wxRegExImpl::Matches(const wxChar *str, int flags) const // do match it #ifdef __REG_NOFRONT bool conv = true; - int rc = re_exec(&self->m_RegEx, str, wxStrlen(str), NULL, m_nMatches, m_Matches, flagsRE); + int rc = wx_re_exec(&self->m_RegEx, str, wxStrlen(str), NULL, m_nMatches, m_Matches, flagsRE); #else const wxWX2MBbuf conv = wxConvertWX2MB(str); int rc = conv ? regexec(&self->m_RegEx, conv, m_nMatches, m_Matches, flagsRE) : REG_BADPAT; diff --git a/src/regex/regcustom.h b/src/regex/regcustom.h index f3018b2574..0e2d199121 100644 --- a/src/regex/regcustom.h +++ b/src/regex/regcustom.h @@ -70,18 +70,12 @@ #endif #if wxUSE_UNICODE # define __REG_WIDE_T wxChar -# define __REG_WIDE_COMPILE re_comp -# define __REG_WIDE_EXEC re_exec +# define __REG_WIDE_COMPILE wx_re_comp +# define __REG_WIDE_EXEC wx_re_exec # define __REG_NOCHAR /* don't want the char versions */ #endif #define __REG_NOFRONT /* don't want regcomp() and regexec() */ #define _ANSI_ARGS_(x) x - -/* under FreeBSD re_comp and re_exec are declared (differently) in unistd.h */ -#ifdef __FreeBSD__ -#define re_comp wx_re_comp -#define re_exec wx_re_exec -#endif /* --- end --- */ /* internal character type and related */ @@ -119,8 +113,8 @@ typedef int celt; /* type to hold chr, MCCE number, or NOCELT */ #define iscspace(x) ((wxUChar)(x) < 128 && isspace(x)) /* name the external functions */ -#define compile re_comp -#define exec re_exec +#define compile wx_re_comp +#define exec wx_re_exec /* enable/disable debugging code (by whether REG_DEBUG is defined or not) */ #if 0 /* no debug unless requested by makefile */ diff --git a/src/regex/regex.h b/src/regex/regex.h index 5bcda32dec..03498bbf7b 100644 --- a/src/regex/regex.h +++ b/src/regex/regex.h @@ -109,18 +109,12 @@ extern "C" { #endif #if wxUSE_UNICODE # define __REG_WIDE_T wxChar -# define __REG_WIDE_COMPILE re_comp -# define __REG_WIDE_EXEC re_exec +# define __REG_WIDE_COMPILE wx_re_comp +# define __REG_WIDE_EXEC wx_re_exec # define __REG_NOCHAR /* don't want the char versions */ #endif #define __REG_NOFRONT /* don't want regcomp() and regexec() */ #define _ANSI_ARGS_(x) x - -/* under FreeBSD re_comp and re_exec are declared (differently) in unistd.h */ -#ifdef __FreeBSD__ -#define re_comp wx_re_comp -#define re_exec wx_re_exec -#endif /* --- end --- */ @@ -307,7 +301,7 @@ typedef struct { /* automatically gathered by fwd; do not hand-edit */ /* === regproto.h === */ #ifndef __REG_NOCHAR -int re_comp _ANSI_ARGS_((regex_t *, __REG_CONST char *, size_t, int)); +int wx_re_comp _ANSI_ARGS_((regex_t *, __REG_CONST char *, size_t, int)); #endif #ifndef __REG_NOFRONT int regcomp _ANSI_ARGS_((regex_t *, __REG_CONST char *, int)); @@ -316,7 +310,7 @@ int regcomp _ANSI_ARGS_((regex_t *, __REG_CONST char *, int)); int __REG_WIDE_COMPILE _ANSI_ARGS_((regex_t *, __REG_CONST __REG_WIDE_T *, size_t, int)); #endif #ifndef __REG_NOCHAR -int re_exec _ANSI_ARGS_((regex_t *, __REG_CONST char *, size_t, rm_detail_t *, size_t, regmatch_t [], int)); +int wx_re_exec _ANSI_ARGS_((regex_t *, __REG_CONST char *, size_t, rm_detail_t *, size_t, regmatch_t [], int)); #endif #ifndef __REG_NOFRONT int regexec _ANSI_ARGS_((regex_t *, __REG_CONST char *, size_t, regmatch_t [], int));