From bf7255fffb5dda1b9541892cc40412bb6bbd4409 Mon Sep 17 00:00:00 2001
From: Jack Jansen <jack.jansen@cwi.nl>
Date: Fri, 10 Jun 2005 10:46:40 +0000
Subject: Minor tweaks, to allow some (out-of-tree, until successful) tinkering
 with C++.

---
 Tools/bgen/bgen/bgenGenerator.py        | 10 +++++-----
 Tools/bgen/bgen/bgenObjectDefinition.py | 16 ++++++++++------
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/Tools/bgen/bgen/bgenGenerator.py b/Tools/bgen/bgen/bgenGenerator.py
index e1f240c..471c5fa 100644
--- a/Tools/bgen/bgen/bgenGenerator.py
+++ b/Tools/bgen/bgen/bgenGenerator.py
@@ -18,6 +18,7 @@ class BaseFunctionGenerator:
     def __init__(self, name, condition=None):
         if DEBUG: print "<--", name
         self.name = name
+        self.callname = name
         self.prefix = name
         self.objecttype = "PyObject" # Type of _self argument to function
         self.condition = condition
@@ -202,7 +203,7 @@ class FunctionGenerator(BaseFunctionGenerator):
     def callit(self):
         args = ""
         if self.rv:
-            s = "%s = %s(" % (self.rv.name, self.name)
+            s = "%s = %s(" % (self.rv.name, self.callname)
         else:
             s = "%s(" % self.name
         sep = ",\n" + ' '*len(s)
@@ -214,9 +215,9 @@ class FunctionGenerator(BaseFunctionGenerator):
             args = args + s
         if self.rv:
             Output("%s = %s(%s);",
-                   self.rv.name, self.name, args)
+                   self.rv.name, self.callname, args)
         else:
-            Output("%s(%s);", self.name, args)
+            Output("%s(%s);", self.callname, args)
 
     def checkit(self):
         for arg in self.argumentList:
@@ -255,8 +256,7 @@ class MethodGenerator(FunctionGenerator):
         self.itself = Variable(t0, "_self->ob_itself", SelfMode)
         self.argumentList.append(self.itself)
         FunctionGenerator.parseArgumentList(self, args)
-
-
+        
 def _test():
     void = None
     eggs = FunctionGenerator(void, "eggs",
diff --git a/Tools/bgen/bgen/bgenObjectDefinition.py b/Tools/bgen/bgen/bgenObjectDefinition.py
index 72e2678..ffdd544 100644
--- a/Tools/bgen/bgen/bgenObjectDefinition.py
+++ b/Tools/bgen/bgen/bgenObjectDefinition.py
@@ -44,12 +44,8 @@ class ObjectDefinition(GeneratorGroup):
 
         OutHeader2("Object type " + self.name)
 
-        sf = self.static and "static "
-        Output("%sPyTypeObject %s;", sf, self.typename)
-        Output()
-        Output("#define %s_Check(x) ((x)->ob_type == &%s || PyObject_TypeCheck((x), &%s))",
-               self.prefix, self.typename, self.typename)
-        Output()
+        self.outputCheck()
+        
         Output("typedef struct %s {", self.objecttype)
         IndentLevel()
         Output("PyObject_HEAD")
@@ -84,6 +80,14 @@ class ObjectDefinition(GeneratorGroup):
 
         OutHeader2("End object type " + self.name)
 
+    def outputCheck(self):
+        sf = self.static and "static "
+        Output("%sPyTypeObject %s;", sf, self.typename)
+        Output()
+        Output("#define %s_Check(x) ((x)->ob_type == &%s || PyObject_TypeCheck((x), &%s))",
+               self.prefix, self.typename, self.typename)
+        Output()
+
     def outputMethodChain(self):
         Output("%sPyMethodChain %s_chain = { %s_methods, %s };",
                 self.static,    self.prefix, self.prefix, self.basechain)
-- 
cgit v0.12

