Handle missing parameters better, allow - and + in .la dlname filenames.
authorJohan Dahlin <johan@gnome.org>
Sat, 3 May 2008 14:59:43 +0000 (14:59 +0000)
committerJohan Dahlin <johan@src.gnome.org>
Sat, 3 May 2008 14:59:43 +0000 (14:59 +0000)
2008-05-03  Johan Dahlin  <johan@gnome.org>

        * giscanner/glibtransformer.py:
        * tools/g-ir-scanner:
        Handle missing parameters better, allow - and + in .la dlname
        filenames.

svn path=/trunk/; revision=262

ChangeLog
giscanner/glibtransformer.py
tools/g-ir-scanner

index 8788018..0544c21 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2008-05-03  Johan Dahlin  <johan@gnome.org>
 
+       * giscanner/glibtransformer.py:
+       * tools/g-ir-scanner:
+       Handle missing parameters better, allow - and + in .la dlname
+       filenames.
+
+2008-05-03  Johan Dahlin  <johan@gnome.org>
+
        * giscanner/__init__.py:
        * giscanner/ast.py:
        * giscanner/girwriter.py:
index cd3ac9b..bebae5f 100644 (file)
@@ -44,7 +44,7 @@ def to_underscores(name):
     name = _upperstr_pat3.sub(r'\1_\2', name, count=1)
     return name
 
-_libtool_pat = re.compile("dlname='([A-z0-9\.]+)'\n")
+_libtool_pat = re.compile("dlname='([A-z0-9\.\-\+]+)'\n")
 
 def resolve_libtool(libname):
     data = open(libname).read()
@@ -176,6 +176,8 @@ class GLibTransformer(object):
             parameter.type = self._resolve_param_type(parameter.type)
 
     def _parse_get_type_function(self, func):
+        if self._library is None:
+            return False
         # GType *_get_type(void)
         symbol = func.symbol
         if not symbol.endswith('_get_type'):
index 570055b..9fd16f1 100755 (executable)
@@ -20,6 +20,7 @@
 
 import commands
 import optparse
+import os
 import sys
 
 sys.path.insert(0, '.')
@@ -72,9 +73,13 @@ def main(args):
 
     (options, args) = parser.parse_args(args)
 
-    if not args:
-        print 'ERROR: Needs at least one filename.'
-        return 0
+    if len(args) <= 1:
+        print 'ERROR: Need at least one filename.'
+        return 1
+
+    if not options.namespace:
+        print 'ERROR: Namespace missing.'
+        return 1
 
     for package in options.packages:
         output = commands.getoutput('pkg-config --cflags %s' % (package,))
@@ -91,6 +96,9 @@ def main(args):
     for arg in args:
         if (arg.endswith('.c') or
             arg.endswith('.h')):
+            if not os.path.exists(arg):
+                print 'ERROR: %s: no such a file or directory' % (arg,)
+                return 1
             filenames.append(arg)
 
     ss.parse_files(filenames)