xref: /openbsd/include/strings.h (revision 091ba0ad)
1*091ba0adSschwarze /*	$OpenBSD: strings.h,v 1.6 2017/09/10 21:50:36 schwarze Exp $	*/
2df930be7Sderaadt 
3df930be7Sderaadt /*-
4df930be7Sderaadt  * Copyright (c) 1990 The Regents of the University of California.
5df930be7Sderaadt  * All rights reserved.
6df930be7Sderaadt  *
7df930be7Sderaadt  * Redistribution and use in source and binary forms, with or without
8df930be7Sderaadt  * modification, are permitted provided that the following conditions
9df930be7Sderaadt  * are met:
10df930be7Sderaadt  * 1. Redistributions of source code must retain the above copyright
11df930be7Sderaadt  *    notice, this list of conditions and the following disclaimer.
12df930be7Sderaadt  * 2. Redistributions in binary form must reproduce the above copyright
13df930be7Sderaadt  *    notice, this list of conditions and the following disclaimer in the
14df930be7Sderaadt  *    documentation and/or other materials provided with the distribution.
15e33d3bd3Smillert  * 3. Neither the name of the University nor the names of its contributors
16df930be7Sderaadt  *    may be used to endorse or promote products derived from this software
17df930be7Sderaadt  *    without specific prior written permission.
18df930be7Sderaadt  *
19df930be7Sderaadt  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20df930be7Sderaadt  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21df930be7Sderaadt  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22df930be7Sderaadt  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23df930be7Sderaadt  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24df930be7Sderaadt  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25df930be7Sderaadt  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26df930be7Sderaadt  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27df930be7Sderaadt  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28df930be7Sderaadt  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29df930be7Sderaadt  * SUCH DAMAGE.
30df930be7Sderaadt  *
31df930be7Sderaadt  *	@(#)strings.h	5.8 (Berkeley) 5/15/90
32df930be7Sderaadt  */
33df930be7Sderaadt 
34e7fbb21cSmillert #ifndef _STRINGS_H_
35e7fbb21cSmillert #define	_STRINGS_H_
36e7fbb21cSmillert 
37e7fbb21cSmillert #include <sys/cdefs.h>
38e7fbb21cSmillert #include <machine/_types.h>
39e7fbb21cSmillert 
40e7fbb21cSmillert /*
41e7fbb21cSmillert  * POSIX mandates that certain string functions not present in ISO C
42e7fbb21cSmillert  * be prototyped in strings.h.
43e7fbb21cSmillert  */
44e7fbb21cSmillert 
45e7fbb21cSmillert #ifndef	_SIZE_T_DEFINED_
46e7fbb21cSmillert #define	_SIZE_T_DEFINED_
47e7fbb21cSmillert typedef	__size_t	size_t;
48e7fbb21cSmillert #endif
49e7fbb21cSmillert 
503a628b46Sschwarze #if __POSIX_VISIBLE >= 200809
513a628b46Sschwarze #ifndef	_LOCALE_T_DEFINED_
523a628b46Sschwarze #define	_LOCALE_T_DEFINED_
533a628b46Sschwarze typedef void	*locale_t;
543a628b46Sschwarze #endif
553a628b46Sschwarze #endif
563a628b46Sschwarze 
57e7fbb21cSmillert __BEGIN_DECLS
58e7fbb21cSmillert #if __BSD_VISIBLE || (__XPG_VISIBLE >= 420 && __POSIX_VISIBLE <= 200112)
59e7fbb21cSmillert /*
60e7fbb21cSmillert  * The following functions were removed from IEEE Std 1003.1-2008
61e7fbb21cSmillert  */
62e7fbb21cSmillert int	 bcmp(const void *, const void *, size_t);
63e7fbb21cSmillert void	 bcopy(const void *, void *, size_t)
64e7fbb21cSmillert 		__attribute__ ((__bounded__(__buffer__,1,3)))
65e7fbb21cSmillert 		__attribute__ ((__bounded__(__buffer__,2,3)));
66e7fbb21cSmillert void	 bzero(void *, size_t)
67e7fbb21cSmillert 		__attribute__ ((__bounded__(__buffer__,1,2)));
68e7fbb21cSmillert char	*index(const char *, int);
69e7fbb21cSmillert char	*rindex(const char *, int);
70e7fbb21cSmillert #endif
71e7fbb21cSmillert 
72e7fbb21cSmillert #if __XPG_VISIBLE >= 420
73e7fbb21cSmillert int	 ffs(int);
74e7fbb21cSmillert int	 strcasecmp(const char *, const char *);
75e7fbb21cSmillert int	 strncasecmp(const char *, const char *, size_t);
76*091ba0adSschwarze #endif
77*091ba0adSschwarze #if __POSIX_VISIBLE >= 200809
783a628b46Sschwarze int	 strcasecmp_l(const char *, const char *, locale_t);
793a628b46Sschwarze int	 strncasecmp_l(const char *, const char *, size_t, locale_t);
80e7fbb21cSmillert #endif
81e7fbb21cSmillert __END_DECLS
82e7fbb21cSmillert 
83e7fbb21cSmillert #endif /* _STRINGS_H_ */
84