[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

[PATCH] Fix non-portable use of filehandles in Perl bindings (was: [PATCH] Fix warnings in the Windows build of the Perl bindings)

From: David James <james82_at_gmail.com>
Date: 2005-08-29 20:48:27 CEST

On 8/29/05, Branko Èibej <brane@xbc.nu> wrote:
> David James wrote:
>
> >Index: subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
> >===================================================================
> >--- subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c (revision 15951)
> >+++ subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c (working copy)
> >@@ -1370,7 +1370,8 @@
> > pool);
> > } else if (SvROK(file) && SvTYPE(SvRV(file)) == SVt_PVGV) {
> > apr_status_t status;
> >- apr_os_file_t osfile = PerlIO_fileno(IoIFP(sv_2io(file)));
> >+ apr_os_file_t osfile = (apr_os_file_t)
> >+ PerlIO_fileno(IoIFP(sv_2io(file)));
> >
> >
> This won't work and can't work on Windows. PerlIO_fileno returns an int
> file descriptor. apr_os_file_t is a HANDLE, a completely different,
> totally incompatible beast.
Good catch! I've upgraded the Perl bindings to use _get_os_fhandle on
Win32. I believe this construct is more portable -- the python
bindings use this technique. A new patch is attached.

portable_filehandles_patch.txt:
[[[

Fix non-portable use of filehandles in the Perl bindings.

* swig/perl/libsvn_swig_perl/swigutil_pl.c
  (svn_swig_pl_make_file): On Win32, use _get_os_fhandle to convert
  Perl file numbers into Windows file handles.

]]]

missing_svn_time_header_patch.txt:
[[[

* swig/include/svn_global.swg:
 Include svn_time.h, so that the return type of svn_parse_date will
 be defined.

]]]

Cheers,

David

-- 
David James -- http://www.cs.toronto.edu/~james



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Received on Mon Aug 29 20:49:13 2005

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.