Well, here's a pretty ugly patch for the for-each problem.
.robin.
--- proc.cpp.orig Wed Jun 28 15:10:19 2000
+++ proc.cpp Wed Jun 28 15:30:14 2000
@@ -299,6 +299,10 @@
{
E( IPlist.execute(c) );
c -> shift();
+
+ // Now remove any bindings, before we try & re-apply them
+ if (isXSLElement(IPlist[0]->parent) && toX(IPlist[0]->parent)->op ==
+XSL_FOR_EACH)
+ toX(IPlist[0]->parent)->removeBindings();
};
delete c;
return OK;
--- verts.cpp.orig Wed Jun 28 15:47:11 2000
+++ verts.cpp Wed Jun 28 15:45:02 2000
@@ -1352,7 +1352,8 @@
};
//remove the variable bindings that occured inside this element
- if ((op != XSL_TEMPLATE) && (op != XSL_TRANSFORM) && (op != XSL_STYLESHEET))
+ if ((op != XSL_TEMPLATE) && (op != XSL_TRANSFORM)
+ && (op != XSL_STYLESHEET) && (op != XSL_FOR_EACH))
removeBindings();
situation.popCurrent();
return OK;