Add implementation of mbsrtowcs() to our locale backend.

* add MultibyteStringToWchar() to ICU locale backend
* implement mbsrtowcs() and mbsnrtowcs() on top of 
  MultibyteStringToWchar()
* drop respective glibc files
This commit is contained in:
Oliver Tappe
2011-12-12 17:27:41 +01:00
parent d0e7bc307c
commit 73186b2fcd
11 changed files with 216 additions and 312 deletions
@@ -33,6 +33,10 @@ public:
status_t MultibyteToWchar(wchar_t* wcOut, const char* mb,
size_t mbLength, mbstate_t* mbState,
size_t& lengthOut);
status_t MultibyteStringToWchar(wchar_t* wcDest,
size_t wcDestLength, const char** mbSource,
size_t mbSourceLength, mbstate_t* mbState,
size_t& lengthOut);
status_t WcharToMultibyte(char* mbOut, wchar_t wc,
mbstate_t* mbState, size_t& lengthOut);
@@ -44,6 +44,10 @@ public:
virtual status_t MultibyteToWchar(wchar_t* wcOut, const char* mb,
size_t mbLength, mbstate_t* mbState,
size_t& lengthOut);
virtual status_t MultibyteStringToWchar(wchar_t* wcDest,
size_t wcDestLength, const char** mbSource,
size_t mbSourceLength, mbstate_t* mbState,
size_t& lengthOut);
virtual status_t WcharToMultibyte(char* mbOut, wchar_t wc,
mbstate_t* mbState, size_t& lengthOut);
@@ -126,6 +126,10 @@ public:
virtual status_t MultibyteToWchar(wchar_t* wcOut, const char* mb,
size_t mbLength, mbstate_t* mbState,
size_t& lengthOut) = 0;
virtual status_t MultibyteStringToWchar(wchar_t* wcDest,
size_t wcDestLength, const char** mbSource,
size_t mbSourceLength, mbstate_t* mbState,
size_t& lengthOut) = 0;
virtual status_t WcharToMultibyte(char* mbOut, wchar_t wc,
mbstate_t* mbState, size_t& lengthOut) = 0;