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.

Reply via email to