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(', ')
Copyright (C) 2012-2017 Edgewall Software