Update of /cvsroot/mod-c/mod_c/src
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv25170
Modified Files:
mod_c.c
Log Message:
* My previous commit was wrong. ap_rflush calls were not needed. The browser
skipped some stubs due to '<' & '>' chars in some profile stubs name.
Index: mod_c.c
===================================================================
RCS file: /cvsroot/mod-c/mod_c/src/mod_c.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -C2 -d -r1.30 -r1.31
*** mod_c.c 10 Oct 2006 12:37:38 -0000 1.30
--- mod_c.c 10 Oct 2006 13:11:23 -0000 1.31
***************
*** 152,159 ****
}
static void show_spec(request_rec* r, struct runspec* spec) {
ap_rprintf(r, "%20llu %20llu %20lld %20lld %s/%s:%d\n",
spec->accum, spec->self, spec->self / spec->ncalls, spec->ncalls,
! spec->name, spec->file, spec->line);
}
--- 152,187 ----
}
+ const char* html_quote(request_rec* r, const char* s) {
+ size_t n = 0;
+ const char* c = s;
+ for (; *c; ++c)
+ if (*c == '<' || *c == '>') ++n;
+ size_t len = c-s;
+ if (n == 0)
+ return s;
+ char* dev = (char*)apr_palloc(r->pool, len + 4*n + 1);
+ char* cdev = dev;
+ c = s;
+ while (*c) {
+ if (*c == '<') {
+ *cdev++ = '&'; *cdev++ = 'l'; *cdev++ = 't'; *cdev++ = ';';
+ ++c;
+ continue;
+ }
+ if (*c == '>') {
+ *cdev++ = '&'; *cdev++ = 'g'; *cdev++ = 't'; *cdev++ = ';';
+ ++c;
+ continue;
+ }
+ *cdev++ = *c++;
+ }
+ *cdev = '\0';
+ return dev;
+ }
+
static void show_spec(request_rec* r, struct runspec* spec) {
ap_rprintf(r, "%20llu %20llu %20lld %20lld %s/%s:%d\n",
spec->accum, spec->self, spec->self / spec->ncalls, spec->ncalls,
! html_quote(r, spec->name), spec->file, spec->line);
}
***************
*** 201,206 ****
show_spec(r, &spec);
- ap_rflush(r);
-
if (v != NULL) free(v);
if (p != NULL) free(p);
--- 229,232 ----
***************
*** 224,229 ****
}
- ap_rflush(r);
-
free(p);
free(v);
--- 250,253 ----
|