New wide char/multibyte char functions from drepper.
[kopensolaris-gnu/glibc.git] / wcsmbs / wcstr.h
1 /* Copyright (C) 1995 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
3
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public License as
6 published by the Free Software Foundation; either version 2 of the
7 License, or (at your option) any later version.
8
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public
15 License along with the GNU C Library; see the file COPYING.LIB.  If
16 not, write to the, 1992 Free Software Foundation, Inc., 675 Mass Ave,
17 Cambridge, MA 02139, USA.  */
18
19 #ifndef _WCSTRING_H
20
21 #define _WCSTRING_H 1
22 #include <features.h>
23
24 __BEGIN_DECLS
25
26 /* Get size_t, wchar_t, uwchar_t and NULL from <stddef.h>.  */
27 #define __need_size_t
28 #define __need_wchar_t
29 /* #define __need_uwchar_t */
30 #define __need_NULL
31 #include <stddef.h>
32
33 /* FIXME: Should go with this or another name in stddef.h.  */
34 typedef unsigned int uwchar_t;
35
36
37 /* Copy SRC to DEST.  */
38 extern wchar_t *wcscpy __P ((wchar_t *__dest, __const wchar_t *__src));
39 /* Copy no more than N wide-characters of SRC to DEST.  */
40 extern wchar_t *wcsncpy __P ((wchar_t *__dest, __const wchar_t *__src,
41                               size_t __n));
42
43 /* Append SRC onto DEST.  */
44 extern wchar_t *wcscat __P ((wchar_t *__dest, __const wchar_t *__src));
45 /* Append no more than N wide-characters of SRC onto DEST.  */
46 extern wchar_t *wcsncat __P ((wchar_t *__dest, __const wchar_t *__src,
47                               size_t __n));
48
49 /* Compare S1 and S2.  */
50 extern int wcscmp __P ((__const wchar_t *__s1, __const wchar_t *__s2));
51 /* Compare N wide-characters of S1 and S2.  */
52 extern int wcsncmp __P ((__const wchar_t *__s1, __const wchar_t *__s2,
53                          size_t __n));
54
55 /* Duplicate S, returning an identical malloc'd string.  */
56 extern wchar_t *wcsdup __P ((__const wchar_t *__s));
57
58 /* Find the first occurence of WC in WCS.  */
59 extern wchar_t *wcschr __P ((__const wchar_t *__wcs, wchar_t __wc));
60 /* Find the last occurence of WC in WCS.  */
61 extern wchar_t *wcsrchr __P ((__const wchar_t *__wcs, wchar_t __wc));
62
63 /* Return the length of the initial segmet of WCS which
64    consists entirely of wide-characters not in REJECT.  */
65 extern size_t wcscspn __P ((__const wchar_t *__wcs,
66                             __const wchar_t *__reject));
67 /* Return the length of the initial segmet of WCS which
68    consists entirely of wide-characters in  ACCEPT.  */
69 extern size_t wcsspn __P ((__const wchar_t *__wcs, __const wchar_t *__accept));
70 /* Find the first occurence in WCS of any character in ACCEPT.  */
71 extern wchar_t *wcspbrk __P ((__const wchar_t *__wcs,
72                               __const wchar_t *__accept));
73 /* Find the first occurence of NEEDLE in HAYSTACK.  */
74 extern wchar_t *wcswcs __P ((__const wchar_t *__haystack,
75                              __const wchar_t *__needle));
76 /* Divide WCS into tokens separated by characters in DELIM.  */
77 extern wchar_t *wcstok __P ((wchar_t *__s, __const wchar_t *__delim));
78
79 /* Return the number of wide-characters in S.  */
80 extern size_t wcslen __P ((__const wchar_t *__s));
81
82 __END_DECLS
83
84 #endif /* wcstring.h */