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);