[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [MiNT] stdio write problem in mintlib
On Fri, 2008-01-11 at 08:39 +0100, Vincent Rivière wrote:
> My latest patch made the MiNTLib act as Cygwin regarding to the mode:
>
> > - default mode (text or binary, according to UNIXMODE) must be only used
> > for regular files
> > - binmode must be used in all the other cases (including pipes)
>
> This is good because arbitrary binary data can be used in pipes (like in
> UNIX), and regular files are always written in the mode requested by
> the user (according to UNIXMODE). Furthermore, software that is know to
> work on Cygwin (regarding to textmode in stdio) will work as well with
> the MiNTLib.
>
> These rules work well as long as everyone respects it.
> Unfortunately, this is not the case for existing MiNT software.
> - Plain TOS programs always use stdout in textmode (including pipes)
> - Current MiNTLib programs always use stdout in default mode (including
> pipes)
>
> So if an old program is piped into a newly patched MiNTLib proram, the
> new program will not work correctly, because it will find trailing CRs
> in stdin and will not discard them.
>
> In order to be compatible with the existing programs, the best solution
> would probably to not patch anything. In that case the pipes use default
> mode, so it is impossible to use real binary data in pipes when UNIXMODE
> is not set to b (is it a real problem ?). And UNIX software will have
> to be patched explicitly for MiNT in order to be prepared to find CR in
> pipes (like bash with the ` ` syntax).
With limited people on FreeMiNT development anyway, I think we don't
have the resources to patch all UNIX software explicitly for MiNT.
So I'd rather correct this now and just recompile the programs that are
broken.
I think if you have a new application compiled with new MiNTlib you
should compile your other applications with new MiNTlib too.
Alan.