You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@locus.apache.org on 2000/05/06 01:17:57 UTC
cvs commit: apache-2.0/src/regex .cvsignore COPYRIGHT Makefile.in README WHATSNEW cclass.h cname.h config.m4 debug.c engine.c engine.ih main.c mkh regcomp.c regcomp.ih regerror.c regerror.ih regex.3 regex.7 regex.dsp regex2.h regexec.c regfree.c split.c tests utils.h
rbb 00/05/05 16:17:57
Modified: . STATUS
src Makefile.in configure.in
src/include httpd.h
src/lib Makefile.in
src/main util.c
Added: src/include pcreposix.h
Removed: src/regex .cvsignore COPYRIGHT Makefile.in README WHATSNEW
cclass.h cname.h config.m4 debug.c engine.c
engine.ih main.c mkh regcomp.c regcomp.ih
regerror.c regerror.ih regex.3 regex.7 regex.dsp
regex2.h regexec.c regfree.c split.c tests utils.h
Log:
Replace hsregex with PCRE. The PCRE library is always used in 2.0,
regardless of what system we are on. Currently, we are using the POSIX
wrappers that PCRE provides.
Revision Changes Path
1.62 +1 -6 apache-2.0/STATUS
Index: STATUS
===================================================================
RCS file: /home/cvs/apache-2.0/STATUS,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -r1.61 -r1.62
--- STATUS 2000/05/05 20:19:25 1.61
+++ STATUS 2000/05/05 23:17:51 1.62
@@ -1,5 +1,5 @@
Apache 2.0 STATUS:
-Last modified at [$Date: 2000/05/05 20:19:25 $]
+Last modified at [$Date: 2000/05/05 23:17:51 $]
Release:
@@ -63,11 +63,6 @@
* We need a thread-safe resolver, at least on Unix.
Status: The best known candidate would be something from
BIND v9.
-
- * Switch from HSRegex to PCRE. New code should be src/lib/pcre/
- (ftp://cus.cam.ac.uk/pub/software/programs/pcre/)
- Status: Greg +1
-
RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
* the top-level configure.in appears to use $USE_MAINTAINER_MODE = yes
1.19 +3 -2 apache-2.0/src/Makefile.in
Index: Makefile.in
===================================================================
RCS file: /home/cvs/apache-2.0/src/Makefile.in,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- Makefile.in 2000/05/04 23:34:44 1.18
+++ Makefile.in 2000/05/05 23:17:52 1.19
@@ -1,5 +1,5 @@
-SUBDIRS = ap lib main modules os support $(REGEX_DIR)
+SUBDIRS = ap lib main modules os support
PROGRAM_NAME = $(progname)
PROGRAM_SOURCES = modules.c buildmark.c
@@ -11,7 +11,8 @@
os/$(OS_DIR)/libos.la \
ap/libap.la \
lib/apr/$(LIBPRE)apr.a \
- $(REGEX_LIB)
+ lib/pcre/libpcre.la \
+ lib/pcre/libpcreposix.la
PROGRAMS = $(PROGRAM_NAME)
targets = $(PROGRAMS)
1.44 +1 -3 apache-2.0/src/configure.in
Index: configure.in
===================================================================
RCS file: /home/cvs/apache-2.0/src/configure.in,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- configure.in 2000/05/05 20:10:32 1.43
+++ configure.in 2000/05/05 23:17:52 1.44
@@ -30,7 +30,7 @@
fi
dnl ## Run configure for packages Apache uses
-AC_CONFIG_SUBDIRS(lib/apr)
+AC_CONFIG_SUBDIRS(lib/pcre lib/apr)
dnl
dnl ## Preload our OS configuration
@@ -164,8 +164,6 @@
APACHE_SUBST(EXTRA_LDFLAGS)
APACHE_SUBST(EXTRA_LIBS)
APACHE_SUBST(INCLUDES)
-APACHE_SUBST(REGEX_DIR)
-APACHE_SUBST(REGEX_LIB)
APACHE_SUBST(MPM_LIB)
APACHE_SUBST(OS)
APACHE_SUBST(OS_DIR)
1.45 +2 -7 apache-2.0/src/include/httpd.h
Index: httpd.h
===================================================================
RCS file: /home/cvs/apache-2.0/src/include/httpd.h,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- httpd.h 2000/04/28 19:02:59 1.44
+++ httpd.h 2000/05/05 23:17:53 1.45
@@ -967,17 +967,12 @@
int strncasecmp(const char *a, const char *b, size_t n);
#endif
-/* Regexes */
-#if defined(AP_USE_HSREGEX) || defined(WIN32)
-#include "hsregex.h"
-#else
-#include <regex.h>
-#endif
+#include "pcreposix.h"
API_EXPORT(regex_t *) ap_pregcomp(ap_pool_t *p, const char *pattern,
int cflags);
API_EXPORT(void) ap_pregfree(ap_pool_t *p, regex_t *reg);
-API_EXPORT(int) ap_regexec(const regex_t *preg, const char *string,
+API_EXPORT(int) ap_regexec(regex_t *preg, const char *string,
size_t nmatch, regmatch_t pmatch[], int eflags);
API_EXPORT(size_t) ap_regerror(int errcode, const regex_t *preg,
char *errbuf, size_t errbuf_size);
1.1 apache-2.0/src/include/pcreposix.h
Index: pcreposix.h
===================================================================
/*************************************************
* Perl-Compatible Regular Expressions *
*************************************************/
/* Copyright (c) 1997-2000 University of Cambridge */
/* Do not edit this file, this is provided by PCRE */
#ifndef _PCREPOSIX_H
#define _PCREPOSIX_H
/* This is the header for the POSIX wrapper interface to the PCRE Perl-
Compatible Regular Expression library. It defines the things POSIX says should
be there. I hope. */
/* Have to include stdlib.h in order to ensure that size_t is defined. */
#include <stdlib.h>
/* Allow for C++ users */
#ifdef __cplusplus
extern "C" {
#endif
/* Options defined by POSIX. */
#define REG_ICASE 0x01
#define REG_NEWLINE 0x02
#define REG_NOTBOL 0x04
#define REG_NOTEOL 0x08
/* These are not used by PCRE, but by defining them we make it easier
to slot PCRE into existing programs that make POSIX calls. */
#define REG_EXTENDED 0
#define REG_NOSUB 0
/* Error values. Not all these are relevant or used by the wrapper. */
enum {
REG_ASSERT = 1, /* internal error ? */
REG_BADBR, /* invalid repeat counts in {} */
REG_BADPAT, /* pattern error */
REG_BADRPT, /* ? * + invalid */
REG_EBRACE, /* unbalanced {} */
REG_EBRACK, /* unbalanced [] */
REG_ECOLLATE, /* collation error - not relevant */
REG_ECTYPE, /* bad class */
REG_EESCAPE, /* bad escape sequence */
REG_EMPTY, /* empty expression */
REG_EPAREN, /* unbalanced () */
REG_ERANGE, /* bad range inside [] */
REG_ESIZE, /* expression too big */
REG_ESPACE, /* failed to get memory */
REG_ESUBREG, /* bad back reference */
REG_INVARG, /* bad argument */
REG_NOMATCH /* match failed */
};
/* The structure representing a compiled regular expression. */
typedef struct {
void *re_pcre;
size_t re_nsub;
size_t re_erroffset;
} regex_t;
/* The structure in which a captured offset is returned. */
typedef int regoff_t;
typedef struct {
regoff_t rm_so;
regoff_t rm_eo;
} regmatch_t;
/* The functions */
extern int regcomp(regex_t *, const char *, int);
extern int regexec(regex_t *, const char *, size_t, regmatch_t *, int);
extern size_t regerror(int, const regex_t *, char *, size_t);
extern void regfree(regex_t *);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* End of pcreposix.h */
1.4 +1 -1 apache-2.0/src/lib/Makefile.in
Index: Makefile.in
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/Makefile.in,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Makefile.in 2000/04/30 00:06:02 1.3
+++ Makefile.in 2000/05/05 23:17:54 1.4
@@ -1,4 +1,4 @@
-SUBDIRS = apr
+SUBDIRS = apr pcre
include $(top_srcdir)/build/rules.mk
1.41 +1 -1 apache-2.0/src/main/util.c
Index: util.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/main/util.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- util.c 2000/04/29 16:00:31 1.40
+++ util.c 2000/05/05 23:17:54 1.41
@@ -318,7 +318,7 @@
* This is especially important for the DSO situations of modules.
* DO NOT MAKE A MACRO OUT OF THIS FUNCTION!
*/
-API_EXPORT(int) ap_regexec(const regex_t *preg, const char *string,
+API_EXPORT(int) ap_regexec(regex_t *preg, const char *string,
size_t nmatch, regmatch_t pmatch[], int eflags)
{
return regexec(preg, string, nmatch, pmatch, eflags);