[gobject-introspection] [scanner] Print error instead of throwing for unknown include



commit a77986a99b26812f1a560fb65e8036d2cf236b3a
Author: Colin Walters <walters verbum org>
Date:   Thu Feb 11 16:03:59 2010 -0500

    [scanner] Print error instead of throwing for unknown include
    
    We should avoid exceptions being propagated to the toplevel.

 giscanner/scannermain.py |    6 +++++-
 giscanner/transformer.py |    5 +++--
 2 files changed, 8 insertions(+), 3 deletions(-)
---
diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
index cc70fde..44c0287 100644
--- a/giscanner/scannermain.py
+++ b/giscanner/scannermain.py
@@ -276,7 +276,11 @@ def scanner_main(args):
     for include in options.includes:
         if os.sep in include:
             raise ValueError("Invalid include path %r" % (include, ))
-        include_obj = Include.from_string(include)
+        try:
+            include_obj = Include.from_string(include)
+        except:
+            sys.stderr.write("Malformed include %r\n" % (include, ))
+            sys.exit(1)
         transformer.register_include(include_obj)
 
     packages = set(options.packages)
diff --git a/giscanner/transformer.py b/giscanner/transformer.py
index f31408f..2863e73 100644
--- a/giscanner/transformer.py
+++ b/giscanner/transformer.py
@@ -18,7 +18,7 @@
 # Boston, MA 02111-1307, USA.
 #
 
-import os
+import os, sys
 
 from .ast import (Bitfield, Callback, Enum, Function, Namespace, Member,
                   Parameter, Return, Struct, Field,
@@ -125,8 +125,9 @@ class Transformer(object):
             path = os.path.join(d, girname)
             if os.path.exists(path):
                 return path
-        raise ValueError("Couldn't find include %r (search path: %r)"\
+        sys.stderr.write("Couldn't find include %r (search path: %r)\n"\
                          % (girname, searchdirs))
+        sys.exit(1)
 
     def _parse_include(self, filename):
         parser = self._cachestore.load(filename)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]