Hi, I got the following syntax errors while building swigutil_py.c in trunk with Visual Studio 2008 (VC9).
"C:\usr\src\subversion\trunk\subversion_vcnet.sln" (__MORE__;__SWIG_PYTHON__ target) (1) -> (Libraries\Swig\svn_swig_py target) -> ..\..\..\subversion\bindings\swig\python\libsvn_swig_py\swigutil_py.c(1183): error C2143: syntax error : missing ';' before 'const' ..\..\..\subversion\bindings\swig\python\libsvn_swig_py\swigutil_py.c(1189): error C2065: 'propval' : undeclared identifier ..\..\..\subversion\bindings\swig\python\libsvn_swig_py\swigutil_py.c(1189): error C4022: 'apr_hash_set' : pointer mismatch for actual parameter 4 ..\..\..\subversion\bindings\swig\python\libsvn_swig_py\swigutil_py.c(1195): error C2143: syntax error : missing '{' before '*' ..\..\..\subversion\bindings\swig\python\libsvn_swig_py\swigutil_py.c(1197): error C2371: 'svn_swig_py_mergeinfo_from_dict' : redefinition; different basic types ..\..\..\subversion\bindings\swig\python\libsvn_swig_py\swigutil_py.c(1227): error C2143: syntax error : missing ';' before 'const' ..\..\..\subversion\bindings\swig\python\libsvn_swig_py\swigutil_py.c(1234): error C2065: 'ranges' : undeclared identifier ..\..\..\subversion\bindings\swig\python\libsvn_swig_py\swigutil_py.c(1241): error C2065: 'ranges' : undeclared identifier ..\..\..\subversion\bindings\swig\python\libsvn_swig_py\swigutil_py.c(1241): error C4022: 'apr_hash_set' : pointer mismatch for actual parameter 4 ..\..\..\subversion\bindings\swig\python\libsvn_swig_py\swigutil_py.c(1247): error C2143: syntax error : missing '{' before '*' ..\..\..\subversion\bindings\swig\python\libsvn_swig_py\swigutil_py.c(1249): error C2371: 'svn_swig_py_proparray_from_dict' : redefinition; different basic types ..\..\..\subversion\bindings\swig\python\libsvn_swig_py\swigutil_py.c(1326): error C2275: 'svn_string_t' : illegal use of this type as an expression ..\..\..\subversion\bindings\swig\python\libsvn_swig_py\swigutil_py.c(1326): error C2065: 'propval' : undeclared identifier ..\..\..\subversion\bindings\swig\python\libsvn_swig_py\swigutil_py.c(1332): error C2065: 'propval' : undeclared identifier ..\..\..\subversion\bindings\swig\python\libsvn_swig_py\swigutil_py.c(1332): error C4022: 'apr_hash_set' : pointer mismatch for actual parameter 4 It seems that several variable declarations are not at start of block. The declarations lead the syntax errors with Visual Studio 2008. After attached patch, the errors go away. -- Jun Omae <jun6...@gmail.com> (大前 潤)
* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c Move variable declarations at start of block to fix syntax errors with VC9. Index: subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c =================================================================== --- subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (revision 1876859) +++ subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (working copy) @@ -1171,6 +1171,7 @@ PyObject *key = PyList_GetItem(keys, i); PyObject *value = PyDict_GetItem(dict, key); const char *propname = make_string_from_ob(key, pool); + const char *propval; if (!propname) { if (!PyErr_Occurred()) @@ -1180,7 +1181,7 @@ Py_DECREF(keys); return NULL; } - const char *propval = make_string_from_ob_maybe_null(value, pool); + propval = make_string_from_ob_maybe_null(value, pool); if (PyErr_Occurred()) { Py_DECREF(keys); @@ -1215,6 +1216,7 @@ PyObject *key = PyList_GetItem(keys, i); PyObject *value = PyDict_GetItem(dict, key); const char *pathname = make_string_from_ob(key, pool); + const svn_rangelist_t *ranges; if (!pathname) { if (!PyErr_Occurred()) @@ -1224,7 +1226,7 @@ Py_DECREF(keys); return NULL; } - const svn_rangelist_t *ranges = svn_swig_py_seq_to_array(value, + ranges = svn_swig_py_seq_to_array(value, sizeof(const svn_merge_range_t *), svn_swig_py_unwrap_struct_ptr, svn_swig_TypeQuery("svn_merge_range_t *"), @@ -1314,6 +1316,7 @@ PyObject *key = PyList_GetItem(keys, i); PyObject *value = PyDict_GetItem(dict, key); const char *propname = make_string_from_ob(key, pool); + svn_string_t *propval; if (!propname) { if (!PyErr_Occurred()) @@ -1323,7 +1326,7 @@ Py_DECREF(keys); return NULL; } - svn_string_t *propval = make_svn_string_from_ob_maybe_null(value, pool); + propval = make_svn_string_from_ob_maybe_null(value, pool); if (PyErr_Occurred()) { Py_DECREF(keys);