* Ron Park wrote: > At line 438 of mod_include, we see the code is set up to handle > this 'left over partial match' and it increments the temporary > buffer pointer, c, by 2 as it walks past the '--' at the start > of this bucket. So it (as far as I could determine) adds the > left over '<!' to this bucket
That's a misreading. It doesn't prepend the bucket, it prepends the brigade, leaving the bucket untouched. That way... > and continues on, calling the > quick scanner function, bndm(), passing in the recently updated > parameter 'c'. ... here comes the obvious failure. c is the wrong pointer. It must be buf (i.e. start of the bucket content). Then pos should be correct. The following solves this problem finally (for me): Index: modules/filters/mod_include.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/filters/mod_include.c,v retrieving revision 1.233 diff -u -r1.233 mod_include.c --- modules/filters/mod_include.c 3 Feb 2003 17:53:01 -0000 1.233 +++ modules/filters/mod_include.c 9 Jul 2003 22:43:46 -0000 @@ -477,7 +477,7 @@ if (len) { - pos = bndm(str, slen, c, len, ctx->start_seq_pat); + pos = bndm(str, slen, buf, len, ctx->start_seq_pat); if (pos != len) { ctx->head_start_bucket = dptr; (Note that is even more logically, since len is also untouched). digging into the second problem now... Thanks for your deep investigation! nd