X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2FTemplate.java;h=2ef5e1b2e131dd88dde1f16460b99eac52ff0a5d;hb=8908552c1a2ae233c95d0ed59ee6cfa9c4a91440;hp=ed91cd3e572ce46341563178c803a013fe09beff;hpb=db19c351a5a1e3ca8a817463baaa5bf6ea2cfe6b;p=org.ibex.core.git diff --git a/src/org/ibex/Template.java b/src/org/ibex/Template.java index ed91cd3..2ef5e1b 100644 --- a/src/org/ibex/Template.java +++ b/src/org/ibex/Template.java @@ -32,6 +32,7 @@ public class Template { private Vec children = new Vec(); ///< during XML parsing, this holds the list of currently-parsed children; null otherwise private JS script = null; ///< the script on this node Template prev; + Template prev2; JSScope staticScope = null; ///< the scope in which the static block is executed @@ -75,12 +76,14 @@ public class Template { private void apply(Box b, PerInstantiationScope parentPis) throws JSExn, IOException { if (prev != null) prev.apply(b, null); + if (prev2 != null) prev2.apply(b, null); // FIXME this dollar stuff is all wrong if (id != null) parentPis.putDollar(id, b); PerInstantiationScope pis = new PerInstantiationScope(b, ibex, parentPis, staticScope); for(int i=0; i", XML.Exn.SCHEMA, getLine(), getCol()); if (c.getAttrLen() != 0) throw new XML.Exn("root element must not have attributes", XML.Exn.SCHEMA, getLine(), getCol()); - if (c.getUri("ui") == null) c.addUri("ui", "ibex://ui"); - if (c.getUri("") == null) c.addUri("", initial_uri); + if (c.getUri("ui") == null || "".equals(c.getUri("ui"))) c.addUri("ui", "ibex://ui"); + if (c.getUri("meta") == null || "".equals(c.getUri("meta"))) c.addUri("meta", "ibex://meta"); + if (c.getUri("") == null || "".equals(c.getUri(""))) c.addUri("", initial_uri); state = STATE_IN_ROOT_NODE; return; case STATE_IN_ROOT_NODE: @@ -200,7 +204,8 @@ public class Template { String tagname = (c.getUri().equals("") ? "" : (c.getUri() + ".")) + c.getLocalName(); // GROSS hack try { - t.prev = (Template)t.ibex.resolveString(tagname, false).call(null, null, null, null, 9999); + // GROSSER hack + t.prev2 = (Template)t.ibex.resolveString(tagname, false).call(null, null, null, null, 9999); } catch (Exception e) { Log.error(Template.class, e); } @@ -214,8 +219,10 @@ public class Template { while(uriEnumeration.hasMoreElements()) { String key = (String)uriEnumeration.nextElement(); String val = (String)urimap.get(key); + if (val.equals("ibex://ui")) continue; + if (val.equals("ibex://meta")) continue; t.urikeys[ii] = key; - if (val.charAt(0) == '.') val = val.substring(1); + if (val.length() > 0 && val.charAt(0) == '.') val = val.substring(1); t.urivals[ii] = val; ii++; }