=== modified file 'subversion/bindings/swig/include/svn_containers.swg' --- subversion/bindings/swig/include/svn_containers.swg 2007-06-12 22:52:07 +0000 +++ subversion/bindings/swig/include/svn_containers.swg 2007-07-20 01:51:20 +0000 @@ -308,6 +309,12 @@ }; #endif +#ifdef SWIGPYTHON +%typemap(argout) apr_array_header_t **OUTPUT_OF_PROP { + %append_output(svn_swig_py_proparray_to_dict(*$1)); +} +#endif + /* ----------------------------------------------------------------------- Output of apr_array_header_t * */ === modified file 'subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c' --- subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c 2007-05-04 20:46:57 +0000 +++ subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c 2007-07-20 01:53:13 +0000 @@ -643,7 +643,7 @@ return convert_hash(hash, convert_mergeinfo_hash, type, py_pool); } -static PyObject *proparray_to_dict(const apr_array_header_t *array) +PyObject *svn_swig_py_proparray_to_dict(const apr_array_header_t *array) { PyObject *dict = PyDict_New(); int i; @@ -2933,7 +2933,7 @@ goto error; } - py_prop_diffs = proparray_to_dict(prop_diffs); + py_prop_diffs = svn_swig_py_proparray_to_dict(prop_diffs); if (py_prop_diffs == NULL) { === modified file 'subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h' --- subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h 2007-05-04 18:30:10 +0000 +++ subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h 2007-07-20 01:54:21 +0000 @@ -208,6 +208,11 @@ apr_array_header_t *svn_swig_py_proparray_from_dict(PyObject *dict, apr_pool_t *pool); +/* helper function to convert a 'apr_array_header_t *' of 'svn_prop_t + to a Python dictionary mapping strings to strings. */ +SVN_SWIG_SWIGUTIL_EXPORT +PyObject *svn_swig_py_proparray_to_dict(const apr_array_header_t *array); + /* helper function to convert a Python dictionary mapping strings to strings into an apr_hash_t mapping const char *'s to svn_string_t's, allocated in POOL. */ === modified file 'subversion/bindings/swig/python/tests/wc.py' --- subversion/bindings/swig/python/tests/wc.py 2007-05-07 18:44:53 +0000 +++ subversion/bindings/swig/python/tests/wc.py 2007-07-20 01:58:16 +0000 @@ -167,6 +167,11 @@ self.failIf(wc.is_entry_prop('svn:foo:bar')) self.failIf(wc.is_entry_prop('foreign:foo:bar')) + def test_get_prop_diffs(self): + wc.prop_set("foreign:foo", "bla", self.path, self.wc) + self.assertEquals([{"foreign:foo": "bla"}, {}], + wc.get_prop_diffs(self.path, self.wc)) + def test_get_pristine_copy_path(self): path_to_file = '%s/%s' % (self.path, 'foo') path_to_text_base = '%s/%s/text-base/foo.svn-base' % (self.path,