This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: swprintf() and friends?
Corinna Vinschen wrote:
On Nov 3 16:26, Jeff Johnston wrote:
For fwide support, I assume you mean two bits and yes, I believe two bits
would work. One bit would mean decided (0 = undecided) and this should
take the free bit I mention above. The __srefill_r and __sfvwrite_r
functions could be modified to stamp a file as being narrow/wide and
decided, if currently undecided (an extra argument would be needed to these
functions to say which type of fn was calling). If setting and the file is
already undecided, then we must resolve any std stream first. The decided
orientation bit would be in _flags (0 = narrow, 1 = wide).
On second reading... what do you mean by "resolve any std stream first"?
The _REENT_SMALL platforms don't have space for the std FILEs allocated
at start-up. They have fake files
(first part of a real FILE structure which is smaller) and these fake
files have the _flags and buffer fields enough to cause a function call
to occur if using a macro like getc() or putc(). They will not have a
_flags2 field. The function call ends up resolving the fake std streams
via the CHECK_INIT macro.
Anyway, my comment was unnecessary. To get to the __srefill_r or
__sfvwrite_r functions, the std streams have to already be resolved at
that point which means they will have a full FILE structure and the
_flags2 field will exist for them at that point.
-- Jeff J.
Corinna