[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.