Re: Comparing binary files with Diff 3.2 compiled with MinGW

Bruno Haible <[email protected]>
Newsgroups gmane.comp.lib.gnulib.bugs,gmane.comp.gnu.utils.bugs
Message-ID <3849188.imJT9edYp7@linuix>
Eli Zaretskii wrote:
> > > > > -# if defined __EMX__ || defined __DJGPP__ || defined __CYGWIN__
> > > > > +# if defined __EMX__ || defined __DJGPP__ || defined __CYGWIN__ || defined __MINGW32__
> > > > >  #  include <io.h> /* declares setmode() */
> > > > >  # else
> > > > >  #  define setmode _setmode
> > > > 
> > > > What is the rationale/benefit for this proposed change?
> > > 
> > > MinGW provides 'setmode' whose declaration is in io.h.
> > 
> > But mingw's declaration of 'fileno' in stdio.h is not always enabled
> > (only if !defined _NO_OLDNAMES).
> 
> _NO_OLDNAMES is undefined by default.

But it may be defined.

> > Therefore the #else branch is needed on mingw.
> 
> That's okay, but then io.h should be included anyway, because it
> provides the prototype of _setmode as well.  According to MSDN, the
> same is true for MSVC.

<io.h> is not needed here. When I add a use of setmode() to the unit test,
with the existing code, I do not get a warning about _setmode() being
undeclared - neither with mingw nor with MSVC. (Maybe this is because
<fcntl.h> already includes <io.h>.)

There is no need to change the code to #include a non-POSIX include file.

Bruno
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.