From 1f108b0b6cd7f1610f2b2ed0dbe96c9be44e72e9 Mon Sep 17 00:00:00 2001
From: Miguel Angel Ajo <miguelangel@nbee.es>
Date: Sun, 8 Apr 2012 17:00:15 +0200
Subject: [PATCH] missing script

---
 scripting/fixswigimports.py | 55 +++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)
 create mode 100755 scripting/fixswigimports.py

diff --git a/scripting/fixswigimports.py b/scripting/fixswigimports.py
new file mode 100755
index 0000000000..484552970d
--- /dev/null
+++ b/scripting/fixswigimports.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+
+# the purpose of this script is rewriting the swig_import_helper
+# call so it will not load _xxxxx.so/dso from inside a kicad executable
+# because the kicad executable itself sill provide an _xxxxx module
+# that's linked inside itself.
+#
+# for the normal module import it should work the same way with this
+# fix in the swig_import_helper
+#
+
+from sys import argv,exit
+
+if len(argv)<2:
+    print "usage:"
+    print "   fixswigimports.py file.py"
+    print ""
+    print "   will fix the swig import code for working inside KiCad"
+    print "   where it happended that the external _pcbnew.so/dll was"
+    print "   loaded too -and the internal _pcbnew module was to be used"
+    exit(1)
+
+
+filename = argv[1]
+
+f = open(filename,"rb")
+lines = f.readlines()
+f.close()
+
+f = open(filename,"wb")
+
+doneOk = False
+
+for l in lines:
+    if l.startswith("if version_info >= (2,6,0):"):
+        l = l.replace("version_info >= (2,6,0)","False")
+        doneOk = True
+    elif l.startswith("if False:"):  # it was already patched?
+        doneOk = True
+    f.write(l)
+
+f.close()
+
+if doneOk:
+    print "swig_import_helper fixed for",filename
+else:
+    print "Error: the swig import helper was not fixed, check",filename
+    print "       and fix this script: fixswigimports.py"
+    exit(2)
+
+    
+exit(0)
+    
+    
+