1 /***********************************************************************
3 * This software is part of the ast package *
4 * Copyright (c) 1985-2010 AT&T Intellectual Property *
5 * and is licensed under the *
6 * Common Public License, Version 1.0 *
7 * by AT&T Intellectual Property *
9 * A copy of the License is available at *
10 * http://www.opensource.org/licenses/cpl1.0.txt *
11 * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
13 * Information and Software Systems Research *
17 * Glenn Fowler <gsf@research.att.com> *
18 * David Korn <dgk@research.att.com> *
19 * Phong Vo <kpv@research.att.com> *
21 ***********************************************************************/
25 * NOTE: mbs* and wcs* are provided to avoid link errors only
36 mbtowc(wchar_t* t
, const char* s
, size_t n
)
47 mbrtowc(wchar_t* t
, const char* s
, size_t n
, mbstate_t* q
)
51 memset(q
, 0, sizeof(*q
));
52 return mbtowc(t
, s
, n
);
65 mbstowcs(wchar_t* t
, const char* s
, size_t n
)
67 register wchar_t* p
= t
;
68 register wchar_t* e
= t
+ n
;
69 register unsigned char* u
= (unsigned char*)s
;
72 while (p
< e
&& (*p
++ = *u
++));
82 wctomb(char* s
, wchar_t c
)
93 wcrtomb(char* s
, wchar_t c
, mbstate_t* q
)
97 memset(q
, 0, sizeof(*q
));
111 wcslen(const wchar_t* s
)
113 register const wchar_t* p
= s
;
124 wcstombs(char* t
, register const wchar_t* s
, size_t n
)
126 register char* p
= t
;
127 register char* e
= t
+ n
;
130 while (p
< e
&& (*p
++ = *s
++));