Re: [PATCH] Fix variable declarations in swigutil_py.c

2020-05-01 Thread Daniel Shahaf
Branko Čibej wrote on Fri, 01 May 2020 15:24 +0200:
> On 01.05.2020 12:18, Jun Omae wrote:
> > Hi,
> >
> > I got the following syntax errors while building swigutil_py.c in
> > trunk with Visual Studio 2008 (VC9).  
> [...]
> > 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.  
> 
> 
> r1877259, thanks!

Backport needed?  If so, my +0.


Re: [PATCH] Fix variable declarations in swigutil_py.c

2020-05-01 Thread Branko Čibej
On 01.05.2020 12:18, Jun Omae wrote:
> Hi,
>
> I got the following syntax errors while building swigutil_py.c in
> trunk with Visual Studio 2008 (VC9).
[...]
> 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.


r1877259, thanks!

-- Brane


[PATCH] Fix variable declarations in swigutil_py.c

2020-05-01 Thread Jun Omae

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);