On 05/12/2012 05:37 PM, Paul Eggert wrote:
> On 05/12/2012 10:41 AM, Bruno Haible wrote:
>> I would suggest to use a function
>>
>>    int setmode (int fd, int o_mode);
> 
> That would clash with the setmode function defined
> in <unistd.h> in FreeBSD etc., which is partly why we
> removed this stuff from diffutils.
> I agree that it'd be nicer to have a function
> with an additional argument.  But I'd rather
> not use a name like 'setmode' that clashes with BSD.
> 
> 'set_binary_mode' would be OK, but wouldn't it
> be cleaner to use fcntl?  The standard way to
> set and clear O_* flags is fcntl, so shouldn't
> it look like this?
> 
>    flags = fcntl (fd, F_GETFL);
>    fcntl (fd, F_SETFL, flags | O_BINARY);

No, because cygwin doesn't do it that way.  The only way to change
between O_BINARY and O_TEXT on cygwin is via setmode(), and it is not
worth wrapping fcntl() to make that an alternate interface.

-- 
Eric Blake   [email protected]    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to