Mercurial > genshi > mirror
diff genshi/template/astutil.py @ 802:47f715774b12 trunk
Fix handling of function arguments with default values in template code, applying patch by Scott Wilson plus an additional fix. Closes #292.
author | cmlenz |
---|---|
date | Thu, 05 Mar 2009 09:16:43 +0000 |
parents | f9e23d472a6e |
children | c66c83861266 |
line wrap: on
line diff
--- a/genshi/template/astutil.py +++ b/genshi/template/astutil.py @@ -106,18 +106,19 @@ return self.visit(node.body) # arguments = (expr* args, identifier? vararg, - # identifier? kwarg, expr* defaults) + # identifier? kwarg, expr* defaults) def visit_arguments(self, node): first = True + no_default_count = len(node.args) - len(node.defaults) for i, arg in enumerate(node.args): if not first: self._write(', ') else: first = False self.visit(arg) - if i < len(node.defaults): + if i >= no_default_count: self._write('=') - self.visit(node.defaults[i]) + self.visit(node.defaults[i - no_default_count]) if getattr(node, 'vararg', None): if not first: self._write(', ')