Since there seems to be a couple minds on this last bit of const work, I'm posting this patch (inline, below) rather than applying it. See my other note for why I believe that we need this.
Any reasons not to apply? [ I'll wait until Monday, after the holiday ] Cheers, -g -- Greg Stein, http://www.lyra.org/ Index: include/apr_getopt.h =================================================================== RCS file: /home/cvs/apr/include/apr_getopt.h,v retrieving revision 1.25 diff -u -r1.25 apr_getopt.h --- include/apr_getopt.h 2000/11/25 05:27:39 1.25 +++ include/apr_getopt.h 2000/11/25 22:22:47 @@ -108,7 +108,7 @@ * @deffunc apr_status_t apr_initopt(apr_getopt_t **os, apr_pool_t *cont,int argc, char *const *argv) */ APR_DECLARE(apr_status_t) apr_initopt(apr_getopt_t **os, apr_pool_t *cont, - int argc, char *const *argv); + int argc, const char *const *argv); /** * Parse the options initialized by apr_initopt(). Index: misc/unix/getopt.c =================================================================== RCS file: /home/cvs/apr/misc/unix/getopt.c,v retrieving revision 1.27 diff -u -r1.27 getopt.c --- misc/unix/getopt.c 2000/11/25 05:52:17 1.27 +++ misc/unix/getopt.c 2000/11/25 22:25:24 @@ -49,10 +49,8 @@ } APR_DECLARE(apr_status_t) apr_initopt(apr_getopt_t **os, apr_pool_t *cont, - int argc, char *const *argv) + int argc, const char *const *argv) { - int i; - *os = apr_palloc(cont, sizeof(apr_getopt_t)); (*os)->cont = cont; (*os)->err = 1; @@ -64,19 +62,19 @@ want to use this function with arrays other than the main argv, and we shouldn't touch the caller's data. So we copy. */ (*os)->argv = apr_palloc(cont, (argc + 1) * sizeof(const char *)); - for (i = 0; i < argc; i++) - (*os)->argv[i] = argv[i]; + memcpy((*os)->argv, argv, argc * sizeof(const char *)); (*os)->argv[argc] = NULL; (*os)->interleave = 0; (*os)->ind = 1; (*os)->skip_start = 1; (*os)->skip_end = 1; + return APR_SUCCESS; } APR_DECLARE(apr_status_t) apr_getopt(apr_getopt_t *os, const char *opts, - char *optch, const char **optarg) + char *optch, const char **optarg) { const char *oli; /* option letter list index */ Index: test/testargs.c =================================================================== RCS file: /home/cvs/apr/test/testargs.c,v retrieving revision 1.16 diff -u -r1.16 testargs.c --- test/testargs.c 2000/11/25 22:34:04 1.16 +++ test/testargs.c 2000/11/25 22:34:58 @@ -73,7 +73,7 @@ } } -int main(int argc, char * const argv[]) +int main(int argc, const char * const argv[]) { apr_pool_t *context; apr_getopt_t *opt;
