Implement our own version of wcsrtombs().

* add WcharStringToMultibyte() to libroot's locale backend
* implement wcstombs(), wcsrtombs() and wcsnrtombs() on top of that
  new backend function
This commit is contained in:
Oliver Tappe
2011-12-12 17:27:42 +01:00
parent 5dd04ce5da
commit 995d6d827f
7 changed files with 292 additions and 16 deletions
@@ -39,6 +39,11 @@ public:
size_t& lengthOut);
status_t WcharToMultibyte(char* mbOut, wchar_t wc,
mbstate_t* mbState, size_t& lengthOut);
status_t WcharStringToMultibyte(char* mbDest,
size_t mbDestLength,
const wchar_t** wcSource,
size_t wcSourceLength, mbstate_t* mbState,
size_t& lengthOut);
const char* GetLanginfo(int index);
@@ -50,6 +50,11 @@ public:
size_t& lengthOut);
virtual status_t WcharToMultibyte(char* mbOut, wchar_t wc,
mbstate_t* mbState, size_t& lengthOut);
virtual status_t WcharStringToMultibyte(char* mbDest,
size_t mbDestLength,
const wchar_t** wcSource,
size_t wcSourceLength, mbstate_t* mbState,
size_t& lengthOut);
virtual const char* GetLanginfo(int index);
@@ -132,6 +132,11 @@ public:
size_t& lengthOut) = 0;
virtual status_t WcharToMultibyte(char* mbOut, wchar_t wc,
mbstate_t* mbState, size_t& lengthOut) = 0;
virtual status_t WcharStringToMultibyte(char* mbDest,
size_t mbDestLength,
const wchar_t** wcSource,
size_t wcSourceLength, mbstate_t* mbState,
size_t& lengthOut) = 0;
virtual const char* GetLanginfo(int index) = 0;