Cross Reference: wc.c
xref
: /
osnet-11
/
usr
/
src
/
lib
/
libast
/
common
/
comp
/
wc.c
Home
History
Annotate
Line#
Navigate
Download
Search
only in
./
1
N/A
/***********************************************************************
1
N/A
* *
1
N/A
* This software is part of the ast package *
1
N/A
* Copyright (c) 1985-2011 AT&T Intellectual Property *
1
N/A
* and is licensed under the *
1
N/A
* Common Public License, Version 1.0 *
1
N/A
* by AT&T Intellectual Property *
1
N/A
* *
1
N/A
* A copy of the License is available at *
1
N/A
*
http://www.opensource.org/licenses/cpl1.0.txt
*
1
N/A
* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
1
N/A
* *
1
N/A
* Information and Software Systems Research *
1
N/A
* AT&T Research *
1
N/A
* Florham Park NJ *
1
N/A
* *
1
N/A
* Glenn Fowler <gsf@research.att.com> *
1
N/A
* David Korn <dgk@research.att.com> *
1
N/A
* Phong Vo <kpv@research.att.com> *
1
N/A
* *
1
N/A
***********************************************************************/
1
N/A
#
pragma
prototyped
1
N/A
1
N/A
/*
1
N/A
* NOTE: mbs* and wcs* are provided to avoid link errors only
1
N/A
*/
1
N/A
1
N/A
#
include
<
ast.h
>
1
N/A
#
include
<
wchar.h
>
1
N/A
1
N/A
#
define
STUB
1
1
N/A
1
N/A
#
if
!
_lib_mbtowc
1
N/A
#
undef
STUB
1
N/A
size_t
1
N/A
mbtowc
(
wchar_t
* t,
const
char
* s,
size_t
n)
1
N/A
{
1
N/A
if
(t && n > 0)
1
N/A
*t = *s;
1
N/A
return
1
;
1
N/A
}
1
N/A
#
endif
1
N/A
1
N/A
#
if
!
_lib_mbrtowc
1
N/A
#
undef
STUB
1
N/A
size_t
1
N/A
mbrtowc
(
wchar_t
* t,
const
char
* s,
size_t
n,
mbstate_t
* q)
1
N/A
{
1
N/A
#
if
_lib_mbtowc
1
N/A
#
undef
STUB
1
N/A
memset
(q, 0,
sizeof
(*q));
1
N/A
return
mbtowc
(t, s, n);
1
N/A
#
else
1
N/A
*q = 0;
1
N/A
if
(t && n > 0)
1
N/A
*t = *s;
1
N/A
return
1
;
1
N/A
#
endif
1
N/A
}
1
N/A
#
endif
1
N/A
1
N/A
#
if
!
_lib_mbstowcs
1
N/A
#
undef
STUB
1
N/A
size_t
1
N/A
mbstowcs
(
wchar_t
* t,
const
char
* s,
size_t
n)
1
N/A
{
1
N/A
register
wchar_t
* p = t;
1
N/A
register
wchar_t
* e = t + n;
1
N/A
register
unsigned
char
* u = (
unsigned
char
*)s;
1
N/A
1
N/A
if
(t)
1
N/A
while
(p < e && (*p++ = *u++));
1
N/A
else
1
N/A
while
(p++, *u++);
1
N/A
return
p - t;
1
N/A
}
1
N/A
#
endif
1
N/A
1
N/A
#
if
!
_lib_wctomb
1
N/A
#
undef
STUB
1
N/A
int
1
N/A
wctomb
(
char
* s,
wchar_t
c)
1
N/A
{
1
N/A
if
(s)
1
N/A
*s = c;
1
N/A
return
1
;
1
N/A
}
1
N/A
#
endif
1
N/A
1
N/A
#
if
!
_lib_wcrtomb
1
N/A
#
undef
STUB
1
N/A
size_t
1
N/A
wcrtomb
(
char
* s,
wchar_t
c,
mbstate_t
* q)
1
N/A
{
1
N/A
#
if
_lib_wctomb
1
N/A
#
undef
STUB
1
N/A
memset
(q, 0,
sizeof
(*q));
1
N/A
return
wctomb
(s, c);
1
N/A
#
else
1
N/A
if
(s)
1
N/A
*s = c;
1
N/A
*q = 0;
1
N/A
return
1
;
1
N/A
#
endif
1
N/A
}
1
N/A
#
endif
1
N/A
1
N/A
#
if
!
_lib_wcslen
1
N/A
#
undef
STUB
1
N/A
size_t
1
N/A
wcslen
(
const
wchar_t
* s)
1
N/A
{
1
N/A
register
const
wchar_t
* p = s;
1
N/A
1
N/A
while
(*p)
1
N/A
p++;
1
N/A
return
p - s;
1
N/A
}
1
N/A
#
endif
1
N/A
1
N/A
#
if
!
_lib_wcstombs
1
N/A
#
undef
STUB
1
N/A
size_t
1
N/A
wcstombs
(
char
* t,
register
const
wchar_t
* s,
size_t
n)
1
N/A
{
1
N/A
register
char
* p = t;
1
N/A
register
char
* e = t + n;
1
N/A
1
N/A
if
(t)
1
N/A
while
(p < e && (*p++ = *s++));
1
N/A
else
1
N/A
while
(p++, *s++);
1
N/A
return
p - t;
1
N/A
}
1
N/A
#
endif
1
N/A
1
N/A
#
if
STUB
1
N/A
NoN
(
wc
)
1
N/A
#
endif