Merge from vendor branch LIBARCHIVE:
[dragonfly.git] / contrib / bind-9.3 / lib / isc / include / isc / string.h
1 /*
2  * Copyright (C) 2004  Internet Systems Consortium, Inc. ("ISC")
3  * Copyright (C) 2000, 2001, 2003  Internet Software Consortium.
4  *
5  * Permission to use, copy, modify, and distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
10  * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11  * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
12  * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
14  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15  * PERFORMANCE OF THIS SOFTWARE.
16  */
17
18 /* $Id: string.h,v 1.9.164.3 2004/03/06 08:14:49 marka Exp $ */
19
20 #ifndef ISC_STRING_H
21 #define ISC_STRING_H 1
22
23 #include <string.h>
24
25 #include <isc/int.h>
26 #include <isc/lang.h>
27 #include <isc/platform.h>
28
29 ISC_LANG_BEGINDECLS
30
31 isc_uint64_t
32 isc_string_touint64(char *source, char **endp, int base);
33 /*
34  * Convert the string pointed to by 'source' to isc_uint64_t.
35  *
36  * On successful conversion 'endp' points to the first character
37  * after conversion is complete.
38  *
39  * 'base': 0 or 2..36
40  *
41  * If base is 0 the base is computed from the string type.
42  *
43  * On error 'endp' points to 'source'.
44  */
45
46
47 char *
48 isc_string_separate(char **stringp, const char *delim);
49
50 #ifdef ISC_PLATFORM_NEEDSTRSEP
51 #define strsep isc_string_separate
52 #endif
53
54 #ifdef ISC_PLATFORM_NEEDMEMMOVE
55 #define memmove(a,b,c) bcopy(b,a,c)
56 #endif
57
58 size_t
59 isc_string_strlcpy(char *dst, const char *src, size_t size);
60
61
62 #ifdef ISC_PLATFORM_NEEDSTRLCPY
63 #define strlcpy isc_string_strlcpy
64 #endif
65
66
67 size_t
68 isc_string_strlcat(char *dst, const char *src, size_t size);
69
70 #ifdef ISC_PLATFORM_NEEDSTRLCAT
71 #define strlcat isc_string_strlcat
72 #endif
73
74 ISC_LANG_ENDDECLS
75
76 #endif /* ISC_STRING_H */