From: Stefan Behnel Date: Sat, 9 Feb 2008 16:25:17 +0000 (+0100) Subject: merge X-Git-Tag: 0.9.6.14~29^2~37^2~2 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=ed4b9d5135bdcf2be807cd63328f54ba1d12cbdb;p=cython.git merge --- ed4b9d5135bdcf2be807cd63328f54ba1d12cbdb diff --cc Cython/Compiler/Nodes.py index c90b4d02,82f992da..dfd8ae65 --- a/Cython/Compiler/Nodes.py +++ b/Cython/Compiler/Nodes.py @@@ -860,8 -952,21 +952,21 @@@ class CFuncDefNode(FuncDefNode) def generate_keyword_list(self, code): pass - def generate_argument_parsing_code(self, code): + def generate_argument_parsing_code(self, env, code): - pass + i = 0 + if self.type.optional_arg_count: + code.putln('if (%s) {' % Naming.optional_args_cname) + for arg in self.args: + if arg.default: + code.putln('if (%s->%sn > %s) {' % (Naming.optional_args_cname, Naming.pyrex_prefix, i)) + declarator = arg.declarator + while not hasattr(declarator, 'name'): + declarator = declarator.base + code.putln('%s = %s->%s;' % (arg.cname, Naming.optional_args_cname, declarator.name)) + i += 1 + for _ in range(self.type.optional_arg_count): + code.putln('}') + code.putln('}') def generate_argument_conversion_code(self, code): pass