svn commit: r223265 - in user/gabor/tre-integration:
contrib/tre/lib include lib/libc/regex
Gabor Kovesdan
gabor at FreeBSD.org
Sat Jun 18 19:43:09 UTC 2011
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;
More information about the svn-src-user
mailing list