summaryrefslogtreecommitdiff
path: root/lib/mbsnrtowcs-impl.h
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2020-01-05 02:32:18 +0100
committerBruno Haible <bruno@clisp.org>2020-01-05 02:32:18 +0100
commit80ae5aa1307114f51bb47b1b1a4ac89a31422956 (patch)
tree8713f59dd64c2ca467c31ac73ec9e8bf5c1731b1 /lib/mbsnrtowcs-impl.h
parent578a53d73ca719a5b2edb6aac2c174c099718776 (diff)
downloadgnulib-80ae5aa1307114f51bb47b1b1a4ac89a31422956.tar.gz
mbsnrtoc32s: New module.
* lib/uchar.in.h (mbsnrtoc32s): New declaration. * lib/mbsnrtowcs-impl.h: Parameterize: Use macros FUNC, DCHAR_T, INTERNAL_STATE, MBRTOWC. * lib/mbsnrtowcs.c (FUNC, DCHAR_T, INTERNAL_STATE, MBRTOWC): New macros. * lib/mbsnrtoc32s.c: New file. * m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_MBSNRTOC32S. * modules/uchar (Makefile.am): Substitute GNULIB_MBSNRTOC32S. * modules/mbsnrtoc32s: New file. * tests/test-uchar-c++.cc: Test the signature of mbsnrtoc32s. * doc/posix-functions/mbsnrtowcs.texi: Mention the new module.
Diffstat (limited to 'lib/mbsnrtowcs-impl.h')
-rw-r--r--lib/mbsnrtowcs-impl.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/mbsnrtowcs-impl.h b/lib/mbsnrtowcs-impl.h
index 29ed870355..ede6fea157 100644
--- a/lib/mbsnrtowcs-impl.h
+++ b/lib/mbsnrtowcs-impl.h
@@ -16,16 +16,16 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. */
size_t
-mbsnrtowcs (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps)
+FUNC (DCHAR_T *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps)
{
if (ps == NULL)
- ps = &_gl_mbsrtowcs_state;
+ ps = &INTERNAL_STATE;
{
const char *src = *srcp;
if (dest != NULL)
{
- wchar_t *destptr = dest;
+ DCHAR_T *destptr = dest;
for (; srclen > 0 && len > 0; destptr++, len--)
{
@@ -46,7 +46,7 @@ mbsnrtowcs (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate
src_avail = 4 + strnlen1 (src + 4, MIN (srclen, MB_LEN_MAX) - 4);
/* Parse the next multibyte character. */
- ret = mbrtowc (destptr, src, src_avail, ps);
+ ret = MBRTOWC (destptr, src, src_avail, ps);
if (ret == (size_t)(-2))
/* Encountered a multibyte character that extends past a '\0' byte
@@ -94,7 +94,7 @@ mbsnrtowcs (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate
src_avail = 4 + strnlen1 (src + 4, MIN (srclen, MB_LEN_MAX) - 4);
/* Parse the next multibyte character. */
- ret = mbrtowc (NULL, src, src_avail, &state);
+ ret = MBRTOWC (NULL, src, src_avail, &state);
if (ret == (size_t)(-2))
/* Encountered a multibyte character that extends past a '\0' byte