Hi,
I develeloped my Patch independently of Matt's. I'm not sure which one is
more correct since I'm not an expert in SWIG. I really cant say for
certain. But it does look like his does more error checking. So its
probably better to go with his.
As for where I 'got stuck', I got stuck with the interface to
svn_stream_read(). Fs.py was passing in 2 parameters, and the function
takes 3 - but 1 of the parameters is a char * buffer out. I couldn't
resolve that mismatch, so I had to give up.
Regards,
-ryan
On 4/1/03 9:01 AM, "kfogel@collab.net" <kfogel@collab.net> wrote:
> ryan <ryan@netidea.com> writes:
>> I spent a bunch of more time looking into it. Matt is right, the .i
>> files are out of sync with the library interfaces. From my work on it,
>> I discovered i dont know enough about python or swig to really fix the
>> out of sync Python bindings. the problem is that the svn_* interface is
>> changing faster than the Python bindings. My solution was to use
>> version 0.20.1. but before I gave up I made the following fixes which
>> eased the problem a bit:
>>
>> Index: svn_fs.i
>> ===================================================================
>> --- svn_fs.i (revision 5501)
>> +++ svn_fs.i (working copy)
>> @@ -43,6 +43,10 @@
>> svn_stream_t **
>> };
>>
>> +%apply long long * OUTPUT {
>> + svn_filesize_t *
>> +};
>> +
>> /* and this is always an OUT param */
>> %apply const char **OUTPUT { const char ** };
>
> Hmmm. Your patch is different than Matt's patch, but you clearly know
> about Matt's patch since your mail quotes it in response :-). Can you
> say why to use one rather than the other? Did Matt's patch not solve
> things for you, or is yours as effective but preferable because
> simpler?
>
>> But then there is a problem with the interface to svn_stream_read which
>> I couldn't quite resolve, but here is a first stab which converts it to
>> using the proper type:
>>
>> Index: util.i
>> @@ -94,7 +95,7 @@
>> /*
>> -----------------------------------------------------------------------
>> fix up the svn_stream_read() ptr/len arguments
>> */
>> -%typemap(python, in) (char *buffer, apr_size_t *len) ($*2_type temp) {
>> +%typemap(python, in) (char *buffer, svn_filesize_t *len) ($*2_type
>> temp) {
>> if (!PyInt_Check($input)) {
>> PyErr_SetString(PyExc_TypeError,
>> "expecting an integer for the buffer size");
>>
>>
>>
>> These are all in subversion/bindings/swig
>>
>> In any case, I got stuck here, and I gave up and used subversion 0.20.1,
>> and I got ViewCVS working in no time flat.
>
> Thanks for the patches. When you say "got stuck", what were the exact
> symptoms you were seeing?
>
> -K
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Apr 2 07:35:40 2003