Return-Path: Delivered-To: apmail-apache-cvs-archive@apache.org Received: (qmail 22179 invoked by uid 500); 30 Apr 2000 17:43:41 -0000 Mailing-List: contact apache-cvs-help@apache.org; run by ezmlm Precedence: bulk X-No-Archive: yes Reply-To: new-httpd@apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list apache-cvs@apache.org Received: (qmail 22168 invoked by uid 500); 30 Apr 2000 17:43:40 -0000 Delivered-To: apmail-apache-2.0-cvs@apache.org Date: 30 Apr 2000 17:43:40 -0000 Message-ID: <20000430174340.22164.qmail@locus.apache.org> From: rbb@locus.apache.org To: apache-2.0-cvs@apache.org Subject: cvs commit: apache-2.0/src/lib/apr/include apr_lib.h rbb 00/04/30 10:43:40 Modified: src CHANGES src/lib/apr/lib apr_cpystrn.c src/lib/apr/include apr_lib.h Log: Fix ap_tokenize_to_argv to respect the const arguments it is passed. This is the first step to getting piped and reliable piped logs workin in 2.0 Revision Changes Path 1.94 +4 -0 apache-2.0/src/CHANGES Index: CHANGES =================================================================== RCS file: /home/cvs/apache-2.0/src/CHANGES,v retrieving revision 1.93 retrieving revision 1.94 diff -u -r1.93 -r1.94 --- CHANGES 2000/04/30 03:11:42 1.93 +++ CHANGES 2000/04/30 17:43:39 1.94 @@ -1,4 +1,8 @@ Changes with Apache 2.0a4-dev + *) Fix ap_tokenize_to_argv to respect the const arguments that are + passed to it. + [Ryan Bloom] + *) Fix mm's memcpy/memset macros, pointer arithmetic was broken. Patch submitted to author. [Sascha Schumann] 1.18 +7 -4 apache-2.0/src/lib/apr/lib/apr_cpystrn.c Index: apr_cpystrn.c =================================================================== RCS file: /home/cvs/apache-2.0/src/lib/apr/lib/apr_cpystrn.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- apr_cpystrn.c 2000/04/28 01:14:12 1.17 +++ apr_cpystrn.c 2000/04/30 17:43:39 1.18 @@ -118,10 +118,12 @@ * pool and filled in with copies of the tokens * found during parsing of the arg_str. */ -API_EXPORT(ap_status_t) ap_tokenize_to_argv(char *arg_str, char ***argv_out, +API_EXPORT(ap_status_t) ap_tokenize_to_argv(const char *arg_str, + char ***argv_out, ap_pool_t *token_context) { - char *cp, *tmpCnt; + const char *cp; + const char *tmpCnt; int isquoted, numargs = 0, rc = APR_SUCCESS; #define SKIP_WHITESPACE(cp) \ @@ -186,8 +188,9 @@ break; } else { - *cp++ = '\0'; - (*argv_out)[numargs] = ap_pstrdup(token_context, tmpCnt); + cp++; + (*argv_out)[numargs] = ap_palloc(token_context, cp - tmpCnt); + ap_cpystrn((*argv_out)[numargs], tmpCnt, cp - tmpCnt); numargs++; } 1.29 +2 -1 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.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- apr_lib.h 2000/04/28 01:14:11 1.28 +++ apr_lib.h 2000/04/30 17:43:39 1.29 @@ -127,7 +127,8 @@ * Define the prototypes for the various APR GP routines. */ API_EXPORT(char *) ap_cpystrn(char *d, const char *s, size_t l); -API_EXPORT(ap_status_t) ap_tokenize_to_argv(char *arg_str, char ***argv_out, +API_EXPORT(ap_status_t) ap_tokenize_to_argv(const char *arg_str, + char ***argv_out, ap_pool_t *token_context); API_EXPORT(const char *) ap_filename_of_pathname(const char *pathname); API_EXPORT(char *) ap_collapse_spaces(char *dest, const char *src);