This is the mail archive of the mailing list for the newlib project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH]: Implement fwide (was Re: swprintf() and friends?)

Corinna Vinschen wrote:
On Nov 7 15:11, Corinna Vinschen wrote:
As a starting point I removed the __SMOD flag and created two new flags
__SORD and __SWID, the latter for _flags2 and using the same bit mask
as __SORD. I also created two functions fwide and _fwide_r. Other than
that the new orientation bits are not used so far. We can build the other
missing functionality slowly around this.

Scratch that patch. I guess it's better to restart and use the OpenBSD implementation as basis for this. The _flags2 would be
replaced by a pointer _wcio to a structure wchar_io_data

  struct wchar_io_data {
    mbstate_t wcio_mbstate_in;
    mbstate_t wcio_mbstate_out;

    wchar_t wcio_ungetwc_buf[WCIO_UNGETWC_BUFSIZE];
    size_t wcio_ungetwc_inbuf;

    int wcio_mode; /* orientation */

Would that be ok for newlib, Jeff?


It is fine except that all field and type names need to be underscored. Obviously some checks have to be put in place to ensure that the allocated structure gets freed as needed.

The old unused flag in _flags should still be removed and the field _flags2 itself should be added to the regular file structure, but it is not officially part of this effort.

Obviously some checking has to be added for allocating/freeing this structure properly. I'm sure there is stuff in the _REENT_SMALL that you could use as a basis.

-- Jeff J.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]