02eb0734f8cf6a6bcc56d232de72b2037410c351
[blender.git] / source / blender / blenlib / BLI_string.h
1 /*
2  * ***** BEGIN GPL LICENSE BLOCK *****
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  *
9  * This program 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
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software Foundation,
16  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  *
18  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
19  * All rights reserved.
20  *
21  * The Original Code is: all of this file.
22  *
23  * Contributor(s): none yet.
24  *
25  * ***** END GPL LICENSE BLOCK *****
26  */
27
28 #ifndef __BLI_STRING_H__
29 #define __BLI_STRING_H__
30
31 /** \file BLI_string.h
32  *  \ingroup bli
33  */
34
35 #include <stdarg.h>
36
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40
41 char *BLI_strdupn(const char *str, const size_t len)
42 #ifdef __GNUC__
43 __attribute__((warn_unused_result))
44 __attribute__((nonnull))
45 #endif
46 ;
47
48 char *BLI_strdup(const char *str)
49 #ifdef __GNUC__
50 __attribute__((warn_unused_result))
51 __attribute__((nonnull))
52 #endif
53 ;
54
55 char *BLI_strdupcat(const char *__restrict str1, const char *__restrict str2)
56 #ifdef __GNUC__
57 __attribute__((warn_unused_result))
58 __attribute__((nonnull))
59 #endif
60 ;
61
62 char *BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy)
63 #ifdef __GNUC__
64 __attribute__((nonnull))
65 #endif
66 ;
67
68 size_t BLI_strncpy_rlen(char *__restrict dst, const char *__restrict src, const size_t maxncpy)
69 #ifdef __GNUC__
70 __attribute__((warn_unused_result))
71 __attribute__((nonnull))
72 #endif
73 ;
74
75 size_t BLI_strcpy_rlen(char *__restrict dst, const char *__restrict src)
76 #ifdef __GNUC__
77 __attribute__((warn_unused_result))
78 __attribute__((nonnull))
79 #endif
80 ;
81
82 char *BLI_str_quoted_substrN(const char *__restrict str, const char *__restrict prefix)
83 #ifdef __GNUC__
84 __attribute__((warn_unused_result))
85 __attribute__((nonnull))
86 #endif
87 ;
88
89 char *BLI_replacestr(char *__restrict str, const char *__restrict oldText, const char *__restrict newText)
90 #ifdef __GNUC__
91 __attribute__((warn_unused_result))
92 __attribute__((nonnull))
93 #endif
94 ;
95
96 size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format, ...)
97 #ifdef __GNUC__
98 __attribute__ ((format(printf, 3, 4)))
99 __attribute__((nonnull))
100 #endif
101 ;
102
103 size_t BLI_vsnprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format, va_list arg)
104 #ifdef __GNUC__
105 __attribute__ ((format(printf, 3, 0)))
106 #endif
107 ;
108
109 char *BLI_sprintfN(const char *__restrict format, ...)
110 #ifdef __GNUC__
111 __attribute__ ((format(printf, 1, 2)))
112 __attribute__((warn_unused_result))
113 __attribute__((nonnull))
114 #endif
115 ;
116
117 size_t BLI_strescape(char *__restrict dst, const char *__restrict src, const size_t maxncpy)
118 #ifdef __GNUC__
119 __attribute__((nonnull))
120 #endif
121 ;
122
123 int BLI_strcaseeq(const char *a, const char *b)
124 #ifdef __GNUC__
125 __attribute__((warn_unused_result))
126 __attribute__((nonnull))
127 #endif
128 ;
129
130 char *BLI_strcasestr(const char *s, const char *find)
131 #ifdef __GNUC__
132 __attribute__((warn_unused_result))
133 __attribute__((nonnull))
134 #endif
135 ;
136 int BLI_strcasecmp(const char *s1, const char *s2)
137 #ifdef __GNUC__
138 __attribute__((warn_unused_result))
139 __attribute__((nonnull))
140 #endif
141 ;
142 int BLI_strncasecmp(const char *s1, const char *s2, size_t len)
143 #ifdef __GNUC__
144 __attribute__((warn_unused_result))
145 __attribute__((nonnull))
146 #endif
147 ;
148 int BLI_natstrcmp(const char *s1, const char *s2)
149 #ifdef __GNUC__
150 __attribute__((warn_unused_result))
151 __attribute__((nonnull))
152 #endif
153 ;
154 size_t BLI_strnlen(const char *str, const size_t maxlen)
155 #ifdef __GNUC__
156 __attribute__((warn_unused_result))
157 __attribute__((nonnull))
158 #endif
159 ;
160 void BLI_timestr(double _time, char *str, size_t maxlen)
161 #ifdef __GNUC__
162 __attribute__((nonnull))
163 #endif
164 ;
165
166 void BLI_ascii_strtolower(char *str, const size_t len)
167 #ifdef __GNUC__
168 __attribute__((nonnull))
169 #endif
170 ;
171 void BLI_ascii_strtoupper(char *str, const size_t len)
172 #ifdef __GNUC__
173 __attribute__((nonnull))
174 #endif
175 ;
176 int BLI_str_rstrip_float_zero(char *str, const char pad)
177 #ifdef __GNUC__
178 __attribute__((nonnull))
179 #endif
180 ;
181
182 #ifdef __cplusplus
183 }
184 #endif
185
186 #endif