manoj       99/09/20 15:18:53

  Modified:    src/include httpd.h
               src/lib/apr/include apr_lib.h
               src/lib/apr/lib apr_pools.c
               src/main util.c
  Log:
  Move ap_pregcomp and ap_pregfree from APR to Apache proper, since these
  functions depend on Apache's regex libraries. This also should fix
  compilation on platforms not using hsregex.
  
  Revision  Changes    Path
  1.9       +3 -0      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.8
  retrieving revision 1.9
  diff -u -d -u -r1.8 -r1.9
  --- httpd.h   1999/09/08 14:15:40     1.8
  +++ httpd.h   1999/09/20 22:18:43     1.9
  @@ -962,6 +962,9 @@
   char *ap_double_quotes(ap_context_t *p, char *str);
   #endif
   
  +API_EXPORT(regex_t *) ap_pregcomp(ap_context_t *p, const char *pattern,
  +                                int cflags);
  +API_EXPORT(void) ap_pregfree(ap_context_t *p, regex_t *reg);
   API_EXPORT(int)    ap_regexec(const 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, 
  
  
  
  1.9       +0 -4      apache-2.0/src/lib/apr/include/apr_lib.h
  
  Index: apr_lib.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_lib.h,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -d -u -r1.8 -r1.9
  --- apr_lib.h 1999/09/12 10:52:16     1.8
  +++ apr_lib.h 1999/09/20 22:18:46     1.9
  @@ -76,7 +76,6 @@
   #include "../file_io/win32/readdir.h" /* definition of DIR for WIN32 */
   #include "apr_win.h"
   #endif
  -#include "hsregex.h"
   #ifdef HAVE_STDARG_H
   #include <stdarg.h>
   #endif
  @@ -372,9 +371,6 @@
   API_EXPORT(ap_status_t) ap_getpass(const char *prompt, char *pwbuf, size_t 
*bufsize);
   API_EXPORT_NONSTD(ap_status_t) ap_null_cleanup(void *data);
   
  -API_EXPORT(regex_t *) ap_pregcomp(ap_context_t *p, const char *pattern,
  -                                int cflags);
  -API_EXPORT(void) ap_pregfree(ap_context_t *p, regex_t *reg);
   /*API_EXPORT(void) ap_note_subprocess(ap_pool_t *a, pid_t pid,
                                     enum kill_conditions how);
   */
  
  
  
  1.11      +0 -37     apache-2.0/src/lib/apr/lib/apr_pools.c
  
  Index: apr_pools.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/lib/apr_pools.c,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -d -u -r1.10 -r1.11
  --- apr_pools.c       1999/09/20 21:51:06     1.10
  +++ apr_pools.c       1999/09/20 22:18:49     1.11
  @@ -1176,43 +1176,6 @@
       return APR_SUCCESS;
   }
   
  -/*
  - * Here's a pool-based interface to POSIX regex's regcomp().
  - * Note that we return regex_t instead of being passed one.
  - * The reason is that if you use an already-used regex_t structure,
  - * the memory that you've already allocated gets forgotten, and
  - * regfree() doesn't clear it. So we don't allow it.
  - */
  -
  -static ap_status_t regex_cleanup(void *preg)
  -{
  -    regfree((regex_t *) preg);
  -    return APR_SUCCESS;
  -}
  -
  -API_EXPORT(regex_t *) ap_pregcomp(ap_context_t *p, const char *pattern,
  -                                int cflags)
  -{
  -    regex_t *preg = ap_palloc(p, sizeof(regex_t));
  -
  -    if (regcomp(preg, pattern, cflags)) {
  -     return NULL;
  -    }
  -
  -    ap_register_cleanup(p, (void *) preg, regex_cleanup, regex_cleanup);
  -
  -    return preg;
  -}
  -
  -
  -API_EXPORT(void) ap_pregfree(ap_context_t *p, regex_t * reg)
  -{
  -    ap_block_alarms();
  -    regfree(reg);
  -    ap_kill_cleanup(p, (void *) reg, regex_cleanup);
  -    ap_unblock_alarms();
  -}
  -
   /*****************************************************************
    *
    * More grotty system stuff... subprocesses.  Frump.  These don't use
  
  
  
  1.8       +36 -0     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.7
  retrieving revision 1.8
  diff -u -d -u -r1.7 -r1.8
  --- util.c    1999/09/08 14:15:44     1.7
  +++ util.c    1999/09/20 22:18:51     1.8
  @@ -348,6 +348,42 @@
       return 0;
   }
   
  +/*
  + * Here's a pool-based interface to POSIX regex's regcomp().
  + * Note that we return regex_t instead of being passed one.
  + * The reason is that if you use an already-used regex_t structure,
  + * the memory that you've already allocated gets forgotten, and
  + * regfree() doesn't clear it. So we don't allow it.
  + */
  +
  +static ap_status_t regex_cleanup(void *preg)
  +{
  +    regfree((regex_t *) preg);
  +    return APR_SUCCESS;
  +}
  +
  +API_EXPORT(regex_t *) ap_pregcomp(ap_context_t *p, const char *pattern,
  +                                int cflags)
  +{
  +    regex_t *preg = ap_palloc(p, sizeof(regex_t));
  +
  +    if (regcomp(preg, pattern, cflags)) {
  +     return NULL;
  +    }
  +
  +    ap_register_cleanup(p, (void *) preg, regex_cleanup, regex_cleanup);
  +
  +    return preg;
  +}
  +
  +API_EXPORT(void) ap_pregfree(ap_context_t *p, regex_t * reg)
  +{
  +    ap_block_alarms();
  +    regfree(reg);
  +    ap_kill_cleanup(p, (void *) reg, regex_cleanup);
  +    ap_unblock_alarms();
  +}
  +
   /* 
    * Apache stub function for the regex libraries regexec() to make sure the
    * whole regex(3) API is available through the Apache (exported) namespace.
  
  
  

Reply via email to