summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Dahlin <johan@gnome.org>2008-05-03 14:59:43 +0000
committerJohan Dahlin <johan@src.gnome.org>2008-05-03 14:59:43 +0000
commit2851996accfa8f952d80b1633eff5d695000caa7 (patch)
treec2d1a08c49526fa1a8b3978ff3bbccb48740c0c5
parentb7e6d64c635284ec8a5315d2365722f1b00626f8 (diff)
downloadgobject-introspection-2851996accfa8f952d80b1633eff5d695000caa7.tar.gz
Handle missing parameters better, allow - and + in .la dlname filenames.
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
-rw-r--r--ChangeLog7
-rw-r--r--giscanner/glibtransformer.py4
-rwxr-xr-xtools/g-ir-scanner14
3 files changed, 21 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 8788018f..0544c210 100644
--- 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:
diff --git a/giscanner/glibtransformer.py b/giscanner/glibtransformer.py
index cd3ac9bf..bebae5f5 100644
--- a/giscanner/glibtransformer.py
+++ b/giscanner/glibtransformer.py
@@ -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'):
diff --git a/tools/g-ir-scanner b/tools/g-ir-scanner
index 570055b0..9fd16f18 100755
--- a/tools/g-ir-scanner
+++ b/tools/g-ir-scanner
@@ -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)