diff options
Diffstat (limited to 'libc/misc/regex/regex.c')
-rw-r--r-- | libc/misc/regex/regex.c | 137 |
1 files changed, 25 insertions, 112 deletions
diff --git a/libc/misc/regex/regex.c b/libc/misc/regex/regex.c index 623a3c6bb..edf02a89d 100644 --- a/libc/misc/regex/regex.c +++ b/libc/misc/regex/regex.c @@ -18,80 +18,33 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -/* uClibc addons */ #include <features.h> #ifdef __UCLIBC__ -#undef _LIBC -#define _REGEX_RE_COMP -#ifdef __USE_GNU -# define HAVE_MEMPCPY -#endif -#define HAVE_LANGINFO -#define HAVE_LANGINFO_CODESET -#include <stdbool.h> -#include <stdint.h> -#include <string.h> -#include <stdlib.h> -#ifdef __UCLIBC_HAS_WCHAR__ -#define RE_ENABLE_I18N -#include <wchar.h> -#include <wctype.h> - -#define __iswctype iswctype -#define __wcrtomb wcrtomb -#define __btowc btowc -#define __wctype wctype -/* libc_hidden_proto(wcscoll) */ -/* libc_hidden_proto(wcrtomb) */ -/* libc_hidden_proto(mbrtowc) */ -/* libc_hidden_proto(iswctype) */ -/* libc_hidden_proto(iswlower) */ -/* libc_hidden_proto(iswalnum) */ -/* libc_hidden_proto(towlower) */ -/* libc_hidden_proto(towupper) */ -/* libc_hidden_proto(mbsinit) */ -/* libc_hidden_proto(btowc) */ -/* libc_hidden_proto(wctype) */ - -#endif - -#include <ctype.h> -#ifdef __UCLIBC_HAS_CTYPE_TABLES__ -#define __toupper toupper -#define __tolower tolower -#endif -#define __mempcpy mempcpy -#ifdef __UCLIBC_HAS_XLOCALE__ -/* libc_hidden_proto(__ctype_b_loc) */ -/* libc_hidden_proto(__ctype_toupper_loc) */ -#elif defined __UCLIBC_HAS_CTYPE_TABLES__ -/* libc_hidden_proto(__ctype_b) */ -/* libc_hidden_proto(__ctype_toupper) */ -#else -/* libc_hidden_proto(isascii) */ -#endif -/* libc_hidden_proto(toupper) */ -/* libc_hidden_proto(tolower) */ -/* Experimentally off - libc_hidden_proto(memcmp) */ -/* Experimentally off - libc_hidden_proto(memcpy) */ -/* Experimentally off - libc_hidden_proto(memmove) */ -/* Experimentally off - libc_hidden_proto(memset) */ -/* Experimentally off - libc_hidden_proto(strchr) */ -/* Experimentally off - libc_hidden_proto(strcmp) */ -/* Experimentally off - libc_hidden_proto(strlen) */ -/* Experimentally off - libc_hidden_proto(strncpy) */ -/* libc_hidden_proto(getenv) */ -/* Experimentally off - libc_hidden_proto(strcasecmp) */ -/* libc_hidden_proto(abort) */ -#ifdef __USE_GNU -/* Experimentally off - libc_hidden_proto(mempcpy) */ -#endif - +/* TODO: having _LIBC *off* is very confusing - the rest of uclibc + * has it *on*. Fix it. */ +# undef _LIBC +# define _REGEX_RE_COMP +# define HAVE_LANGINFO +# define HAVE_LANGINFO_CODESET +# include <stdbool.h> +# include <stdint.h> +# include <string.h> +# include <stdlib.h> +# ifdef __UCLIBC_HAS_WCHAR__ +# define RE_ENABLE_I18N +# include <wchar.h> +# include <wctype.h> +# define __iswctype iswctype +# define __wcrtomb wcrtomb +# define __btowc btowc +# define __wctype wctype +# endif +# include <ctype.h> +# ifdef __UCLIBC_HAS_CTYPE_TABLES__ +# define __toupper toupper +# define __tolower tolower +# endif #endif /* Make sure noone compiles this code with a C++ compiler. */ @@ -99,54 +52,14 @@ # error "This is C code, use a C compiler" #endif -#if defined _LIBC || defined __UCLIBC__ -/* We have to keep the namespace clean. */ -# define regfree(preg) __regfree (preg) -# define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef) -# define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags) -# define regerror(errcode, preg, errbuf, errbuf_size) \ - __regerror(errcode, preg, errbuf, errbuf_size) -# define re_set_registers(bu, re, nu, st, en) \ - __re_set_registers (bu, re, nu, st, en) -# define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \ - __re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop) -# define re_match(bufp, string, size, pos, regs) \ - __re_match (bufp, string, size, pos, regs) -# define re_search(bufp, string, size, startpos, range, regs) \ - __re_search (bufp, string, size, startpos, range, regs) -# define re_compile_pattern(pattern, length, bufp) \ - __re_compile_pattern (pattern, length, bufp) -# define re_set_syntax(syntax) __re_set_syntax (syntax) -# define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \ - __re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop) -# define re_compile_fastmap(bufp) __re_compile_fastmap (bufp) - -#ifndef __UCLIBC__ -# include "../locale/localeinfo.h" -#endif -#endif - /* On some systems, limits.h sets RE_DUP_MAX to a lower value than GNU regex allows. Include it before <regex.h>, which correctly #undefs RE_DUP_MAX and sets it to the right value. */ #include <limits.h> -#ifdef __UCLIBC__ -#include "_regex.h" -#else #include <regex.h> -#endif -#include "regex_internal.h" +#include "regex_internal.h" #include "regex_internal.c" #include "regcomp.c" #include "regexec.c" - -/* Binary backward compatibility. */ -#if _LIBC -# include <shlib-compat.h> -# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3) -link_warning (re_max_failures, "the 're_max_failures' variable is obsolete and will go away.") -int re_max_failures = 2000; -# endif -#endif |