On 08/01/2012 08:38 AM, Rüdiger Plüm wrote: > > > -------- Original Message -------- > Subject: svn commit: r1367725 - > /httpd/httpd/trunk/modules/lua/mod_lua.c > Date: Tue, 31 Jul 2012 19:43:30 GMT > From: humbed...@apache.org > > > > Author: humbedooh > Date: Tue Jul 31 19:43:29 2012 > New Revision: 1367725 > > URL: http://svn.apache.org/viewvc?rev=1367725&view=rev > Log: > mod_lua: Add the (missing) LuaMapHandler directive to the fold. > This should work as the existing documentation describes. > > Modified: > httpd/httpd/trunk/modules/lua/mod_lua.c > > Modified: httpd/httpd/trunk/modules/lua/mod_lua.c > URL: > http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/lua/mod_lua.c?rev=1367725&r1=1367724&r2=1367725&view=diff > > ============================================================================== > > --- httpd/httpd/trunk/modules/lua/mod_lua.c (original) > +++ httpd/httpd/trunk/modules/lua/mod_lua.c Tue Jul 31 19:43:29 2012 > @@ -170,6 +170,35 @@ static ap_lua_vm_spec *create_vm_spec(ap > return spec; > } > > +static const char* ap_lua_interpolate_string(apr_pool_t* pool, const > char* string, const > char** values) > +{ > + char *stringBetween; > + const char* ret; > + int srclen,x,y; > + srclen = strlen(string); > + ret = ""; > + y = 0; > + for (x=0; x< srclen; x++) { > + if (string[x] == ' > && x != srclen-1&& string[x+1]>= '0'&& > string[x+1]<= '9') { > + if (x-y> 0) { > + stringBetween = apr_pstrndup(pool, string+y, x-y); > + } > + else stringBetween = ""; > > Style. Please review the style guide (code should be on the next line) > > + int v = atoi(apr_pstrndup(pool,string+x+1, 1)); > > As this is only one digit you can convert directly, e.g. *(string+x+1) - > '0' and avoid > copying the string. > > + ret = apr_psprintf(pool, "%s%s%s", ret, stringBetween, > values[v]); > > As you only concat strings here use apr_pstrcat here. > > + y = ++x; > + } > + } > + > + if (x-y> 0&& y> 0) { > + stringBetween = apr_pstrndup(pool, string+y+1, x-y); > + ret = apr_psprintf(pool, "%s%s", ret, stringBetween); > > > As you only concat strings here use apr_pstrcat here. > > + } > + else if (y==0) return string; /* If no replacement was made, just > return the original > str. */ > > Style. Please review the style guide (comment should be on a separate > line, code on the next line) > > + return ret; > +} > + > + > > Regards > > Rüdiger > > Thanks for the heads up :) This also made me discover a bug in the string interpolation function, that kept the number (fx 1 in $1) instead of discarding it in the replacement string.
With regards, Daniel.