crt: remove static helper function wcrtomb_cp
wcrtomb_cp's logic has been moved to wcrtomb.
wcsrtombs now directly calls wcrtomb instead of wcrtomb_cp.
Signed-off-by: Kirill Makurin <maiddaisuki@outlook.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
diff --git a/mingw-w64-crt/misc/wcrtomb.c b/mingw-w64-crt/misc/wcrtomb.c
index 71ded9c..e467434 100644
--- a/mingw-w64-crt/misc/wcrtomb.c
+++ b/mingw-w64-crt/misc/wcrtomb.c
@@ -13,12 +13,10 @@
#include <limits.h>
#include <windows.h>
-static size_t wcrtomb_cp (
+size_t wcrtomb (
char *__restrict__ mbc,
wchar_t wc,
- mbstate_t *__restrict__ state,
- unsigned cp,
- int mb_cur_max
+ mbstate_t *__restrict__ state
) {
/* Set `state` to initial state */
if (mbc == NULL) {
@@ -42,6 +40,12 @@
return 1;
}
+ /* Code page used by current locale */
+ unsigned cp = ___lc_codepage_func ();
+
+ /* Maximum character length in `cp` */
+ int mb_cur_max = ___mb_cur_max_func ();
+
/* Handle "C" locale */
if (cp == 0) {
if (wc > 0xFF) {
@@ -73,30 +77,12 @@
return (size_t) -1;
}
-size_t wcrtomb (
- char *__restrict__ mbc,
- wchar_t wc,
- mbstate_t *__restrict__ state
-) {
- /* Code page used by current locale */
- unsigned cp = ___lc_codepage_func ();
- /* Maximum character length in `cp` */
- int mb_cur_max = MB_CUR_MAX;
-
- return wcrtomb_cp (mbc, wc, state, cp, mb_cur_max);
-}
-
size_t wcsrtombs (
char *__restrict__ mbs,
const wchar_t **__restrict__ wcs,
size_t count,
mbstate_t *__restrict__ state
) {
- /* Code page used by current locale */
- unsigned cp = ___lc_codepage_func ();
- /* Maximum character length in `cp` */
- int mb_cur_max = MB_CUR_MAX;
-
/* Buffer to store single converted character */
char mbc[2];
/* Total number of bytes stored in `mbs` */
@@ -106,7 +92,7 @@
const wchar_t *wc = *wcs;
while (1) {
- const size_t length = wcrtomb_cp (mbc, *wc, state, cp, mb_cur_max);
+ const size_t length = wcrtomb (mbc, *wc, state);
/* Conversion failed */
if (length == (size_t) -1) {