[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [MiNT] stdio write problem in mintlib
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).
Any comment is welcome.
--
Vincent Rivière