If it is any help, here is a patch I wrote to restore the functionality in our 4.0.10 distribution. Seems to work....
Index: nsd/adpparse.c =================================================================== RCS file: /bom-cvs/out-source/aolserver-4.0.10/nsd/adpparse.c,v retrieving revision 1.1 retrieving revision 1.3 diff -u -r1.1 -r1.3 --- nsd/adpparse.c 19 Aug 2005 20:29:04 -0000 1.1 +++ nsd/adpparse.c 19 Aug 2005 21:12:57 -0000 1.3 @@ -66,7 +66,7 @@ */ static void AppendBlock(AdpParse *parsePtr, char *s, char *e, int type); -static void Parse(AdpParse *parsePtr, NsServer *servPtr, char *utf); +static void Parse(AdpParse *parsePtr, NsServer *servPtr, char *utf, int safe); static int RegisterCmd(ClientData arg, Tcl_Interp *interp, int argc, char **argv, int type); @@ -197,8 +197,6 @@ void NsAdpParse(AdpParse *parsePtr, NsServer *servPtr, char *utf, int safe) { - char *s, *e; - /* * Initialize the parse structure. */ @@ -208,33 +206,11 @@ parsePtr->code.nscripts = parsePtr->code.nblocks = 0; /* - * Scan for <% ... %> sequences which take precedence over - * other tags. - */ - - while ((s = strstr(utf, "<%")) && (e = strstr(s, "%>"))) { - /* - * Parse text preceeding the script. - */ - - *s = '\0'; - Parse(parsePtr, servPtr, utf); - *s = '<'; - if (!safe) { - if (s[2] != '=') { - AppendBlock(parsePtr, s + 2, e, 's'); - } else { - AppendBlock(parsePtr, s + 3, e, 'S'); - } - } - utf = e + 2; - } - - /* - * Parse the remaining text. + * Alastair Young - Arena - 8/19/2005 - Restored AOLS3 tag precedence + * Moved <%%> parsing to Parse() */ - Parse(parsePtr, servPtr, utf);; + Parse(parsePtr, servPtr, utf, safe);; /* * Complete the parse code structure. @@ -553,7 +529,7 @@ */ static void -Parse(AdpParse *parsePtr, NsServer *servPtr, char *utf) +Parse(AdpParse *parsePtr, NsServer *servPtr, char *utf, int safe) { Tag *tagPtr = NULL; char *ss = NULL, *se = NULL, *s = NULL, *e = NULL; @@ -579,7 +555,25 @@ */ GetTag(&tag, s, e, &a); - if (IsServer(tag.string, a, e, &stream)) { + /* Alastair Young - Arena - 8/19/2005 - Restored AOLS3 tag precedence */ + if (s[1] == '%') { + if (strstr(s, "%>")) { + AppendBlock(parsePtr, t, s, 't'); + e = strstr(s, "%>"); + if (!safe) { + if (s[2] != '=') { + AppendBlock(parsePtr, s + 2, e, 's'); + } else { + AppendBlock(parsePtr, s + 3, e, 'S'); + } + } + t = e + 2; + } else { + /* no closer. Include it as text */ + AppendBlock(parsePtr, t, s + 2, 't'); + t = s + 2; + } + } else if (IsServer(tag.string, a, e, &stream)) { /* * Record start of script. */ -----Original Message----- From: AOLserver Discussion [mailto:[EMAIL PROTECTED] On Behalf Of Jeremy Collins Sent: Wednesday, August 24, 2005 7:46 AM To: AOLSERVER@LISTSERV.AOL.COM Subject: Re: [AOLSERVER] AOLserver 4.x ADP parser On Aug 23 06:17:22PM, Jim Davidson wrote: > Hi, > > Jeremy: Can you update the patch to work against the HEAD branch? > Sure, I'll look into it later this week. - Jeremy -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank. -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.