Date: Sat, 18 Jun 2011 19:43:08 +0000 (UTC) From: Gabor Kovesdan <gabor@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r223265 - in user/gabor/tre-integration: contrib/tre/lib include lib/libc/regex Message-ID: <201106181943.p5IJh8Gl054429@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: gabor Date: Sat Jun 18 19:43:08 2011 New Revision: 223265 URL: http://svn.freebsd.org/changeset/base/223265 Log: - Use weak references to allow userland tools to replace libc regex Replaced: user/gabor/tre-integration/include/regex.h - copied, changed from r223109, user/gabor/tre-integration/include/tre.h Deleted: user/gabor/tre-integration/include/tre.h Modified: user/gabor/tre-integration/contrib/tre/lib/regcomp.c user/gabor/tre-integration/contrib/tre/lib/regerror.c user/gabor/tre-integration/contrib/tre/lib/regexec.c user/gabor/tre-integration/contrib/tre/lib/tre-compile.c user/gabor/tre-integration/contrib/tre/lib/tre-internal.h user/gabor/tre-integration/contrib/tre/lib/tre-match-approx.c user/gabor/tre-integration/contrib/tre/lib/tre-match-backtrack.c user/gabor/tre-integration/contrib/tre/lib/tre-match-parallel.c user/gabor/tre-integration/contrib/tre/lib/tre-stack.h user/gabor/tre-integration/include/Makefile user/gabor/tre-integration/lib/libc/regex/Symbol.map Modified: user/gabor/tre-integration/contrib/tre/lib/regcomp.c ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/regcomp.c Sat Jun 18 19:41:05 2011 (r223264) +++ user/gabor/tre-integration/contrib/tre/lib/regcomp.c Sat Jun 18 19:43:08 2011 (r223265) @@ -13,11 +13,17 @@ #include <string.h> #include <errno.h> #include <stdlib.h> -#include <tre.h> #include "tre-internal.h" +#include "tre.h" #include "xmalloc.h" +__weak_reference(tre_regcomp, regcomp); +__weak_reference(tre_regncomp, regncomp); +__weak_reference(tre_regwcomp, regwcomp); +__weak_reference(tre_regwncomp, regwncomp); +__weak_reference(tre_regfree, regfree); + int tre_regncomp(regex_t *preg, const char *regex, size_t n, int cflags) { Modified: user/gabor/tre-integration/contrib/tre/lib/regerror.c ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/regerror.c Sat Jun 18 19:41:05 2011 (r223264) +++ user/gabor/tre-integration/contrib/tre/lib/regerror.c Sat Jun 18 19:43:08 2011 (r223265) @@ -11,7 +11,6 @@ #endif /* HAVE_CONFIG_H */ #include <string.h> -#include <tre.h> #ifdef HAVE_WCHAR_H #include <wchar.h> #endif /* HAVE_WCHAR_H */ @@ -20,6 +19,7 @@ #endif /* HAVE_WCTYPE_H */ #include "tre-internal.h" +#include "tre.h" #ifdef HAVE_GETTEXT #include <libintl.h> @@ -28,6 +28,8 @@ #define gettext(s) s #endif +__weak_reference(tre_regerror, regerror); + #define _(String) dgettext(PACKAGE, String) #define gettext_noop(String) String Modified: user/gabor/tre-integration/contrib/tre/lib/regexec.c ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/regexec.c Sat Jun 18 19:41:05 2011 (r223264) +++ user/gabor/tre-integration/contrib/tre/lib/regexec.c Sat Jun 18 19:43:08 2011 (r223265) @@ -27,11 +27,9 @@ char *alloca (); #endif #endif /* TRE_USE_ALLOCA */ -#include <stdio.h> #include <assert.h> #include <stdlib.h> #include <string.h> -#include <tre.h> #ifdef HAVE_WCHAR_H #include <wchar.h> #endif /* HAVE_WCHAR_H */ @@ -47,8 +45,18 @@ char *alloca (); #include <limits.h> #include "tre-internal.h" +#include "tre.h" #include "xmalloc.h" +__weak_reference(tre_regexec, regexec); +__weak_reference(tre_regnexec, regnexec); +__weak_reference(tre_regwexec, regwexec); +__weak_reference(tre_regwnexec, regwnexec); +__weak_reference(tre_reguexec, reguexec); +__weak_reference(tre_regaexec, regaexec); +__weak_reference(tre_reganexec, reganexec); +__weak_reference(tre_regawexec, regawexec); +__weak_reference(tre_regawnexec, regawnexec); /* Fills the POSIX.2 regmatch_t array according to the TNFA tag and match endpoint values. */ Modified: user/gabor/tre-integration/contrib/tre/lib/tre-compile.c ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/tre-compile.c Sat Jun 18 19:41:05 2011 (r223264) +++ user/gabor/tre-integration/contrib/tre/lib/tre-compile.c Sat Jun 18 19:43:08 2011 (r223265) @@ -19,7 +19,6 @@ #include <stdio.h> #include <assert.h> #include <string.h> -#include <tre.h> #include "tre-internal.h" #include "tre-mem.h" @@ -27,6 +26,7 @@ #include "tre-ast.h" #include "tre-parse.h" #include "tre-compile.h" +#include "tre.h" #include "xmalloc.h" /* Modified: user/gabor/tre-integration/contrib/tre/lib/tre-internal.h ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/tre-internal.h Sat Jun 18 19:41:05 2011 (r223264) +++ user/gabor/tre-integration/contrib/tre/lib/tre-internal.h Sat Jun 18 19:43:08 2011 (r223265) @@ -18,7 +18,7 @@ #endif /* !HAVE_WCTYPE_H */ #include <ctype.h> -#include <tre.h> +#include "tre.h" #ifdef TRE_DEBUG #include <stdio.h> Modified: user/gabor/tre-integration/contrib/tre/lib/tre-match-approx.c ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/tre-match-approx.c Sat Jun 18 19:41:05 2011 (r223264) +++ user/gabor/tre-integration/contrib/tre/lib/tre-match-approx.c Sat Jun 18 19:43:08 2011 (r223265) @@ -33,7 +33,6 @@ char *alloca (); #include <assert.h> #include <stdlib.h> #include <string.h> -#include <tre.h> #include <limits.h> #ifdef HAVE_WCHAR_H #include <wchar.h> @@ -50,6 +49,7 @@ char *alloca (); #include "tre-internal.h" #include "tre-match-utils.h" +#include "tre.h" #include "xmalloc.h" #define TRE_M_COST 0 Modified: user/gabor/tre-integration/contrib/tre/lib/tre-match-backtrack.c ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/tre-match-backtrack.c Sat Jun 18 19:41:05 2011 (r223264) +++ user/gabor/tre-integration/contrib/tre/lib/tre-match-backtrack.c Sat Jun 18 19:43:08 2011 (r223265) @@ -54,7 +54,6 @@ char *alloca (); #include <assert.h> #include <stdlib.h> #include <string.h> -#include <tre.h> #ifdef HAVE_WCHAR_H #include <wchar.h> #endif /* HAVE_WCHAR_H */ @@ -71,6 +70,7 @@ char *alloca (); #include "tre-internal.h" #include "tre-mem.h" #include "tre-match-utils.h" +#include "tre.h" #include "xmalloc.h" typedef struct { Modified: user/gabor/tre-integration/contrib/tre/lib/tre-match-parallel.c ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/tre-match-parallel.c Sat Jun 18 19:41:05 2011 (r223264) +++ user/gabor/tre-integration/contrib/tre/lib/tre-match-parallel.c Sat Jun 18 19:43:08 2011 (r223265) @@ -47,7 +47,6 @@ char *alloca (); #include <assert.h> #include <stdlib.h> #include <string.h> -#include <tre.h> #ifdef HAVE_WCHAR_H #include <wchar.h> #endif /* HAVE_WCHAR_H */ @@ -63,6 +62,7 @@ char *alloca (); #include "tre-internal.h" #include "tre-match-utils.h" +#include "tre.h" #include "xmalloc.h" Modified: user/gabor/tre-integration/contrib/tre/lib/tre-stack.h ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/tre-stack.h Sat Jun 18 19:41:05 2011 (r223264) +++ user/gabor/tre-integration/contrib/tre/lib/tre-stack.h Sat Jun 18 19:43:08 2011 (r223265) @@ -10,7 +10,7 @@ #ifndef TRE_STACK_H #define TRE_STACK_H 1 -#include <tre.h> +#include "tre.h" typedef struct tre_stack_rec tre_stack_t; Modified: user/gabor/tre-integration/include/Makefile ============================================================================== --- user/gabor/tre-integration/include/Makefile Sat Jun 18 19:41:05 2011 (r223264) +++ user/gabor/tre-integration/include/Makefile Sat Jun 18 19:43:08 2011 (r223265) @@ -22,7 +22,7 @@ INCS= a.out.h ar.h assert.h bitstring.h signal.h spawn.h stab.h \ stdbool.h stddef.h stdio.h stdlib.h string.h stringlist.h \ strings.h sysexits.h tar.h termios.h tgmath.h \ - time.h timeconv.h timers.h tre.h ttyent.h \ + time.h timeconv.h timers.h ttyent.h \ ulimit.h unistd.h utime.h utmpx.h uuid.h varargs.h vis.h \ wchar.h wctype.h wordexp.h Copied and modified: user/gabor/tre-integration/include/regex.h (from r223109, user/gabor/tre-integration/include/tre.h) ============================================================================== --- user/gabor/tre-integration/include/tre.h Wed Jun 15 14:07:16 2011 (r223109, copy source) +++ user/gabor/tre-integration/include/regex.h Sat Jun 18 19:43:08 2011 (r223265) @@ -6,8 +6,8 @@ */ -#ifndef TRE_H -#define TRE_H 1 +#ifndef REGEX_H +#define REGEX_H 1 #include <sys/types.h> @@ -18,6 +18,24 @@ extern "C" { #endif +#define tre_regcomp regcomp +#define tre_regerror regerror +#define tre_regexec regexec +#define tre_regfree regfree + +#define tre_regacomp regacomp +#define tre_regaexec regaexec +#define tre_regancomp regancomp +#define tre_reganexec reganexec +#define tre_regawncomp regawncomp +#define tre_regawnexec regawnexec +#define tre_regncomp regncomp +#define tre_regnexec regnexec +#define tre_regwcomp regwcomp +#define tre_regwexec regwexec +#define tre_regwncomp regwncomp +#define tre_regwnexec regwnexec + typedef int regoff_t; typedef struct { size_t re_nsub; /* Number of parenthesized subexpressions. */ @@ -85,46 +103,46 @@ typedef enum { /* The POSIX.2 regexp functions */ extern int -tre_regcomp(regex_t *preg, const char *regex, int cflags); +regcomp(regex_t *preg, const char *regex, int cflags); extern int -tre_regexec(const regex_t *preg, const char *string, size_t nmatch, +regexec(const regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags); extern size_t -tre_regerror(int errcode, const regex_t *preg, char *errbuf, +regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size); extern void -tre_regfree(regex_t *preg); +regfree(regex_t *preg); #ifdef TRE_WCHAR #include <wchar.h> /* Wide character versions (not in POSIX.2). */ extern int -tre_regwcomp(regex_t *preg, const wchar_t *regex, int cflags); +regwcomp(regex_t *preg, const wchar_t *regex, int cflags); extern int -tre_regwexec(const regex_t *preg, const wchar_t *string, +regwexec(const regex_t *preg, const wchar_t *string, size_t nmatch, regmatch_t pmatch[], int eflags); #endif /* TRE_WCHAR */ /* Versions with a maximum length argument and therefore the capability to handle null characters in the middle of the strings (not in POSIX.2). */ extern int -tre_regncomp(regex_t *preg, const char *regex, size_t len, int cflags); +regncomp(regex_t *preg, const char *regex, size_t len, int cflags); extern int -tre_regnexec(const regex_t *preg, const char *string, size_t len, +regnexec(const regex_t *preg, const char *string, size_t len, size_t nmatch, regmatch_t pmatch[], int eflags); #ifdef TRE_WCHAR extern int -tre_regwncomp(regex_t *preg, const wchar_t *regex, size_t len, int cflags); +regwncomp(regex_t *preg, const wchar_t *regex, size_t len, int cflags); extern int -tre_regwnexec(const regex_t *preg, const wchar_t *string, size_t len, +regwnexec(const regex_t *preg, const wchar_t *string, size_t len, size_t nmatch, regmatch_t pmatch[], int eflags); #endif /* TRE_WCHAR */ @@ -156,20 +174,20 @@ typedef struct { /* Approximate matching functions. */ extern int -tre_regaexec(const regex_t *preg, const char *string, +regaexec(const regex_t *preg, const char *string, regamatch_t *match, regaparams_t params, int eflags); extern int -tre_reganexec(const regex_t *preg, const char *string, size_t len, +reganexec(const regex_t *preg, const char *string, size_t len, regamatch_t *match, regaparams_t params, int eflags); #ifdef TRE_WCHAR /* Wide character approximate matching. */ extern int -tre_regawexec(const regex_t *preg, const wchar_t *string, +regawexec(const regex_t *preg, const wchar_t *string, regamatch_t *match, regaparams_t params, int eflags); extern int -tre_regawnexec(const regex_t *preg, const wchar_t *string, size_t len, +regawnexec(const regex_t *preg, const wchar_t *string, size_t len, regamatch_t *match, regaparams_t params, int eflags); #endif /* TRE_WCHAR */ @@ -192,7 +210,7 @@ typedef struct { } tre_str_source; extern int -tre_reguexec(const regex_t *preg, const tre_str_source *string, +reguexec(const regex_t *preg, const tre_str_source *string, size_t nmatch, regmatch_t pmatch[], int eflags); /* Returns the version string. The returned string is static. */ @@ -225,6 +243,6 @@ tre_have_approx(const regex_t *preg); #ifdef __cplusplus } #endif -#endif /* TRE_H */ +#endif /* REGEX_H */ /* EOF */ Modified: user/gabor/tre-integration/lib/libc/regex/Symbol.map ============================================================================== --- user/gabor/tre-integration/lib/libc/regex/Symbol.map Sat Jun 18 19:41:05 2011 (r223264) +++ user/gabor/tre-integration/lib/libc/regex/Symbol.map Sat Jun 18 19:43:08 2011 (r223265) @@ -3,12 +3,28 @@ */ FBSD_1.2 { + regacomp; + regaexec; + regancomp; + reganexec; + regawncomp; + regawnexec; + regcomp; + regerror; + regexec; + regfree; + regncomp; + regnexec; + regwcomp; + regwexec; + regwncomp; + regwnexec; tre_config; tre_regacomp; tre_regaexec; + tre_regaparams_default; tre_regancomp; tre_reganexec; - tre_regaparams_default; tre_regawncomp; tre_regawnexec; tre_regcomp;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106181943.p5IJh8Gl054429>