[cfe-commits] [PATCH] libclang python bindings: CompileCommand.arguments should return python strings

David Röthlisberger david at rothlis.net
Sun Jul 8 08:55:07 PDT 2012


With this change, CompileCommand.arguments is consistent with
CompileCommand.directory (and with the rest of our python bindings).

Note that setting the ctypes errcheck attribute to achieve this
(instead of manually calling _CXString.spelling, as
CompileCommand.directory used to do) is also consistent with the
rest of our python bindings.
---
 bindings/python/clang/cindex.py          | 4 +++-
 bindings/python/tests/cindex/test_cdb.py | 4 ++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/bindings/python/clang/cindex.py b/bindings/python/clang/cindex.py
index afbfe3d..295f1a7 100644
--- a/bindings/python/clang/cindex.py
+++ b/bindings/python/clang/cindex.py
@@ -2132,7 +2132,7 @@ class CompileCommand(object):
     @property
     def directory(self):
         """Get the working directory for this CompileCommand"""
-        return CompileCommand_getDirectory(self.cmd).spelling
+        return CompileCommand_getDirectory(self.cmd)
 
     @property
     def arguments(self):
@@ -2603,6 +2603,7 @@ CompileCommands_getCommand.restype = c_object_p
 CompileCommand_getDirectory = lib.clang_CompileCommand_getDirectory
 CompileCommand_getDirectory.argtypes = [c_object_p]
 CompileCommand_getDirectory.restype = _CXString
+CompileCommand_getDirectory.errcheck = _CXString.from_result
 
 CompileCommand_getNumArgs = lib.clang_CompileCommand_getNumArgs
 CompileCommand_getNumArgs.argtypes = [c_object_p]
@@ -2611,6 +2612,7 @@ CompileCommand_getNumArgs.restype = c_uint
 CompileCommand_getArg = lib.clang_CompileCommand_getArg
 CompileCommand_getArg.argtypes = [c_object_p, c_uint]
 CompileCommand_getArg.restype = _CXString
+CompileCommand_getArg.errcheck = _CXString.from_result
 
 __all__ = [
     'CodeCompletionResults',
diff --git a/bindings/python/tests/cindex/test_cdb.py b/bindings/python/tests/cindex/test_cdb.py
index 38de4b1..c59c439 100644
--- a/bindings/python/tests/cindex/test_cdb.py
+++ b/bindings/python/tests/cindex/test_cdb.py
@@ -41,7 +41,7 @@ def test_1_compilecommand():
     expected = [ 'clang++', '-o', 'project.o', '-c',
                  '/home/john.doe/MyProject/project.cpp']
     for arg, exp in zip(cmds[0].arguments, expected):
-        assert arg.spelling == exp
+        assert arg == exp
 
 def test_2_compilecommand():
     """Check file with 2 compile commands"""
@@ -59,7 +59,7 @@ def test_2_compilecommand():
     for i in range(len(cmds)):
         assert cmds[i].directory == expected[i]['wd']
         for arg, exp in zip(cmds[i].arguments, expected[i]['line']):
-            assert arg.spelling == exp
+            assert arg == exp
 
 def test_compilationDB_references():
     """Ensure CompilationsCommands are independent of the database"""
-- 
1.7.11.1







More information about the cfe-commits mailing list