[PD-dev] Win32 - unicode support for files, with public API for externals
Miller Puckette
msp at ucsd.edu
Tue Dec 18 18:52:30 CET 2012
try out what I just pushed which is probably no worse than Hannes's..
cheers
M
On Tue, Dec 18, 2012 at 06:42:17PM +0100, IOhannes m zmoelnig wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 2012-12-18 18:22, Hans-Christoph Steiner wrote:
> > /* close a previously opened file this is needed on platforms where
> > you cannot open/close resources across dll-boundaries */ int
> > sys_close(int fd) { #ifdef _WIN32 return _close(fd); #else return
> > close(fd); #endif }
>
> yes, that's how i would do it.
> >
> >
> > And leave sys_open, sys_fopen, and sys_fclose as macros in the
> > header. This implementation of sys_open and warning are much more
> > complicated. And tho normally I think its good to avoid #ifdefs in
> > headers, in this case I think it actually communicates why we have
> > these sys_open/sys_close sys_fopen/sys_fclose in the first place:
> > "Win32 lacks good POSIX API support, everything else works as is".
> >
>
> if somebody had to implement sys_fopen() and friends, then i would
> understand why you want to minimize the effort, and replace it with
> ifdef's.
> but check the code: somebody already has implemented sys_fopen(),...
> so there is no reason to save labour time.
>
>
> there could be a very simple way to implement sys_open() without all
> the vararg headache. make it:
> > int sys_open(const char*name, int flags, mode_t mode);
>
> that is, force the users to always supply the mode.
> this would make the header much cleaner (it's clear which arguments
> need to be present).
>
> this way, sys_open() would not be 100% compatible with POSIX open().
> but afaik the reason for the vararg hell is really, that POSIX decided
> to introduce an extra argument to open() at some later point, and did
> not want to add yet another function.
> open() will happily ignore the 3rd argument if it doesn't need it.
>
>
> fgmadrs
> IOhannes
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.12 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
> iEYEARECAAYFAlDQqvUACgkQkX2Xpv6ydvQMoACgj6qsuUMpGwPkBatyC0Tvf9UF
> lm8Anio5wbFfG0WjPb4CcDU0fgnmaF6z
> =bTtX
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> Pd-dev mailing list
> Pd-dev at iem.at
> http://lists.puredata.info/listinfo/pd-dev
More information about the Pd-dev
mailing list