diff options
Diffstat (limited to 'private/utils/ulib/inc/cstring.h')
-rw-r--r-- | private/utils/ulib/inc/cstring.h | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/private/utils/ulib/inc/cstring.h b/private/utils/ulib/inc/cstring.h new file mode 100644 index 000000000..b401d2fd2 --- /dev/null +++ b/private/utils/ulib/inc/cstring.h @@ -0,0 +1,174 @@ +/*++ + +Copyright (c) 1991 Microsoft Corporation + +Module Name: + + wstring.h + +Abstract: + + This module contains the prototypes for the wide character + C-runtime support. Since there is no C-runtime support for + wide characters, the functions here are wrappers to the + single-byte counterparts + +Author: + + Ramon San Andres (Ramonsa) 07-Jun-1991 + +Revision History: + +--*/ + +typedef char wchar; +typedef WCHAR wchar_t; +typedef size_t wsize_t; + +long watol( const wchar *); +wchar * wcschr(const wchar *, int); +wchar * wcslwr(wchar *); +wchar * wcsrchr(const wchar *, int); +wchar * wcsupr(wchar *); +wsize_t wcscspn(const wchar *, const wchar *); +wsize_t wcsspn(const wchar *, const wchar *); +wchar * wcsstr(const wchar *, const wchar *); +int wctomb( char *s, wchar_t wchar ); +int mbtowc(wchar_t *pwc, const char *s, size_t n); +wchar_t towupper( wchar_t wc); + +INLINE +long +watol( + const wchar * p + ) +{ + return atol( (char *)p ); +} + + +INLINE +wchar * +wcschr ( + const wchar * p, + int c + ) +{ + return (wchar *)strchr( (char *)p, c); +} + + +INLINE +wchar * +wcslwr ( + wchar * p + ) +{ + return (wchar *)strlwr( (char *)p ); +} + +INLINE +wchar * +wcsrchr ( + const wchar * p, + int c + ) +{ + return (char *)strrchr( (char *)p, c); +} + +INLINE +wchar * +wcsupr ( + wchar * p + ) +{ + return (char *)strupr( (char *)p ); +} + + +INLINE +wsize_t +wcscspn ( + const wchar *p1, + const wchar *p2 + ) +{ + + return (wsize_t)strcspn( (char *)p1, (char *)p2); + +} + +INLINE +wsize_t +wcsspn ( + const wchar *p1, + const wchar *p2 + ) +{ + + return (wsize_t)strspn( (char *)p1, (char *)p2); + +} + + +INLINE +wchar * +wcsstr ( + const wchar *p1, + const wchar *p2 + ) +{ + + return (wchar *)strstr( (char *)p1, (char *)p2); + +} + + +INLINE +int +wctomb ( + char *s, + wchar_t wchar + ) +{ + + if (s) { + *s = (char)wchar; + return 1; + } else { + return 0; + } +} + + +INLINE +int +mbtowc ( + wchar_t *pwc, + const char *s, + size_t n + ) +{ + UNREFERENCED_PARAMETER( n ); + + if ( s && *s && (n > 0) ) { + *pwc = (wchar_t)(*s); + return 1; + } else { + return 0; + } + +} + + +INLINE +wchar_t +towupper( + wchar_t wc + ) +{ + + return (wchar_t)toupper( (char)wc ); + +} |