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 (大前 潤)
* 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);