swprintf() and friends?

Jeff Johnston jjohnstn@redhat.com
Wed Nov 12 19:25:00 GMT 2008

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

More information about the Newlib mailing list