On Mon, 19 Aug 2002, William A. Rowe, Jr. wrote: > Don't we -already- have some argv parsing code in either proc.c or the mod_cgi > that could be used for this purpose??? Let's make that exported, accessible > code from apr itself.
We already have it, and it is exported from APR. Look in strings/apr_cpystrn.c for apr_tokenize_to_argv. Ryan > > Bill > > At 03:31 PM 8/19/2002, Paul J. Reder wrote: > >After fixing the parse_cmd code to be able to handle escaped quotes (so that > >it would process the full > > <"/bin/awk '{print NR\": \" $N}'"> > >instead of just > > <"/bin/awk '{print NR\"> > >(and then an error for the <: \" $N}'"> part)) I ran into what appears to be > >the next problem. > > > >In parse_cmd it runs > > > > /* parms now has the command-line to parse */ > > while (filter->numArgs < 30 && > > strlen(filter->args[filter->numArgs] = > > ap_getword_white_nc(p, &parms))) { > > ++filter->numArgs; > > } > > > >to break the command string into an args list of tokens. This code uses > >*only* white > >space as delimeters. Thus the input command string > > "/bin/awk '{print NR\": \" $N}'" > > > >gets broken into > > /bin/awk > > '{print > > NR\": > > \" > > $N}' > > > >The question I have is, shouldn't this break down into either > > /bin/awk > > '{print NR\": \" $N}' > >or > > /bin/awk > > '{print NR\ > > ": \" > > $N}' > > > >The above listed pieces end up as the args list passed on the apr_proc_create > >call. > > > > > >Thanks, > > > >-- > >Paul J. Reder > >----------------------------------------------------------- > >"The strength of the Constitution lies entirely in the determination of each > >citizen to defend it. Only if every single citizen feels duty bound to do > >his share in this defense are the constitutional rights secure." > >-- Albert Einstein > > > > -- _______________________________________________________________________________ Ryan Bloom [EMAIL PROTECTED] 550 Jean St Oakland CA 94610 -------------------------------------------------------------------------------