1N/A/***********************************************************************
1N/A* *
1N/A* This software is part of the ast package *
1N/A* Copyright (c) 1985-2011 AT&T Intellectual Property *
1N/A* and is licensed under the *
1N/A* Common Public License, Version 1.0 *
1N/A* by AT&T Intellectual Property *
1N/A* *
1N/A* A copy of the License is available at *
1N/A* http://www.opensource.org/licenses/cpl1.0.txt *
1N/A* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
1N/A* *
1N/A* Information and Software Systems Research *
1N/A* AT&T Research *
1N/A* Florham Park NJ *
1N/A* *
1N/A* Glenn Fowler <gsf@research.att.com> *
1N/A* David Korn <dgk@research.att.com> *
1N/A* Phong Vo <kpv@research.att.com> *
1N/A* *
1N/A***********************************************************************/
1N/A#pragma prototyped
1N/A
1N/A/*
1N/A * NOTE: mbs* and wcs* are provided to avoid link errors only
1N/A */
1N/A
1N/A#include <ast.h>
1N/A#include <wchar.h>
1N/A
1N/A#define STUB 1
1N/A
1N/A#if !_lib_mbtowc
1N/A#undef STUB
1N/Asize_t
1N/Ambtowc(wchar_t* t, const char* s, size_t n)
1N/A{
1N/A if (t && n > 0)
1N/A *t = *s;
1N/A return 1;
1N/A}
1N/A#endif
1N/A
1N/A#if !_lib_mbrtowc
1N/A#undef STUB
1N/Asize_t
1N/Ambrtowc(wchar_t* t, const char* s, size_t n, mbstate_t* q)
1N/A{
1N/A#if _lib_mbtowc
1N/A#undef STUB
1N/A memset(q, 0, sizeof(*q));
1N/A return mbtowc(t, s, n);
1N/A#else
1N/A *q = 0;
1N/A if (t && n > 0)
1N/A *t = *s;
1N/A return 1;
1N/A#endif
1N/A}
1N/A#endif
1N/A
1N/A#if !_lib_mbstowcs
1N/A#undef STUB
1N/Asize_t
1N/Ambstowcs(wchar_t* t, const char* s, size_t n)
1N/A{
1N/A register wchar_t* p = t;
1N/A register wchar_t* e = t + n;
1N/A register unsigned char* u = (unsigned char*)s;
1N/A
1N/A if (t)
1N/A while (p < e && (*p++ = *u++));
1N/A else
1N/A while (p++, *u++);
1N/A return p - t;
1N/A}
1N/A#endif
1N/A
1N/A#if !_lib_wctomb
1N/A#undef STUB
1N/Aint
1N/Awctomb(char* s, wchar_t c)
1N/A{
1N/A if (s)
1N/A *s = c;
1N/A return 1;
1N/A}
1N/A#endif
1N/A
1N/A#if !_lib_wcrtomb
1N/A#undef STUB
1N/Asize_t
1N/Awcrtomb(char* s, wchar_t c, mbstate_t* q)
1N/A{
1N/A#if _lib_wctomb
1N/A#undef STUB
1N/A memset(q, 0, sizeof(*q));
1N/A return wctomb(s, c);
1N/A#else
1N/A if (s)
1N/A *s = c;
1N/A *q = 0;
1N/A return 1;
1N/A#endif
1N/A}
1N/A#endif
1N/A
1N/A#if !_lib_wcslen
1N/A#undef STUB
1N/Asize_t
1N/Awcslen(const wchar_t* s)
1N/A{
1N/A register const wchar_t* p = s;
1N/A
1N/A while (*p)
1N/A p++;
1N/A return p - s;
1N/A}
1N/A#endif
1N/A
1N/A#if !_lib_wcstombs
1N/A#undef STUB
1N/Asize_t
1N/Awcstombs(char* t, register const wchar_t* s, size_t n)
1N/A{
1N/A register char* p = t;
1N/A register char* e = t + n;
1N/A
1N/A if (t)
1N/A while (p < e && (*p++ = *s++));
1N/A else
1N/A while (p++, *s++);
1N/A return p - t;
1N/A}
1N/A#endif
1N/A
1N/A#if STUB
1N/ANoN(wc)
1N/A#endif