Mercurial > p > roundup > code
diff roundup/cgi/TAL/TALGenerator.py @ 1244:8dd4f736370b
merge from maintenance branch
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Thu, 03 Oct 2002 06:56:30 +0000 |
| parents | b9988e118055 |
| children | fc52d57c6c3e |
line wrap: on
line diff
--- a/roundup/cgi/TAL/TALGenerator.py Wed Oct 02 19:15:46 2002 +0000 +++ b/roundup/cgi/TAL/TALGenerator.py Thu Oct 03 06:56:30 2002 +0000 @@ -237,7 +237,7 @@ else: self.emit("setGlobal", name, cexpr) - def emitOnError(self, name, onError): + def emitOnError(self, name, onError, TALtag, isend): block = self.popProgram() key, expr = parseSubstitution(onError) cexpr = self.compileExpression(expr) @@ -246,7 +246,10 @@ else: assert key == "structure" self.emit("insertStructure", cexpr, {}, []) - self.emitEndTag(name) + if TALtag: + self.emitOptTag(name, (None, 1), isend) + else: + self.emitEndTag(name) handler = self.popProgram() self.emit("onError", block, handler) @@ -471,7 +474,11 @@ todo["scope"] = 1 if onError: self.pushProgram() # handler + if TALtag: + self.pushProgram() # start self.emitStartTag(name, list(attrlist)) # Must copy attrlist! + if TALtag: + self.pushProgram() # start self.pushProgram() # block todo["onError"] = onError if define: @@ -560,7 +567,7 @@ if condition: self.emitCondition(condition) if onError: - self.emitOnError(name, onError) + self.emitOnError(name, onError, optTag and optTag[1], isend) if scope: self.emit("endScope") if defineSlot:
