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