OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
11 #ifndef WEBRTC_BASE_STRINGUTILS_H__ | 11 #ifndef WEBRTC_RTC_BASE_STRINGUTILS_H_ |
12 #define WEBRTC_BASE_STRINGUTILS_H__ | 12 #define WEBRTC_RTC_BASE_STRINGUTILS_H_ |
13 | 13 |
14 #include <ctype.h> | 14 #include <ctype.h> |
15 #include <stdarg.h> | 15 #include <stdarg.h> |
16 #include <stdio.h> | 16 #include <stdio.h> |
17 #include <string.h> | 17 #include <string.h> |
18 | 18 |
19 #if defined(WEBRTC_WIN) | 19 #if defined(WEBRTC_WIN) |
20 #include <malloc.h> | 20 #include <malloc.h> |
21 #include <wchar.h> | 21 #include <wchar.h> |
22 #define alloca _alloca | 22 #define alloca _alloca |
23 #endif // WEBRTC_WIN | 23 #endif // WEBRTC_WIN |
24 | 24 |
25 #if defined(WEBRTC_POSIX) | 25 #if defined(WEBRTC_POSIX) |
26 #ifdef BSD | 26 #ifdef BSD |
27 #include <stdlib.h> | 27 #include <stdlib.h> |
28 #else // BSD | 28 #else // BSD |
29 #include <alloca.h> | 29 #include <alloca.h> |
30 #endif // !BSD | 30 #endif // !BSD |
31 #endif // WEBRTC_POSIX | 31 #endif // WEBRTC_POSIX |
32 | 32 |
33 #include <string> | 33 #include <string> |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 return _vsnwprintf(buf, n, fmt, args); | 96 return _vsnwprintf(buf, n, fmt, args); |
97 } | 97 } |
98 #endif // !vsnprintf | 98 #endif // !vsnprintf |
99 inline unsigned long strtoul(const wchar_t* snum, wchar_t** end, int base) { | 99 inline unsigned long strtoul(const wchar_t* snum, wchar_t** end, int base) { |
100 return wcstoul(snum, end, base); | 100 return wcstoul(snum, end, base); |
101 } | 101 } |
102 inline wchar_t tolowercase(wchar_t c) { | 102 inline wchar_t tolowercase(wchar_t c) { |
103 return static_cast<wchar_t>(towlower(c)); | 103 return static_cast<wchar_t>(towlower(c)); |
104 } | 104 } |
105 | 105 |
106 #endif // WEBRTC_WIN | 106 #endif // WEBRTC_WIN |
107 | 107 |
108 #if defined(WEBRTC_POSIX) | 108 #if defined(WEBRTC_POSIX) |
109 | 109 |
110 inline int _stricmp(const char* s1, const char* s2) { | 110 inline int _stricmp(const char* s1, const char* s2) { |
111 return strcasecmp(s1, s2); | 111 return strcasecmp(s1, s2); |
112 } | 112 } |
113 inline int _strnicmp(const char* s1, const char* s2, size_t n) { | 113 inline int _strnicmp(const char* s1, const char* s2, size_t n) { |
114 return strncasecmp(s1, s2, n); | 114 return strncasecmp(s1, s2, n); |
115 } | 115 } |
116 | 116 |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
262 } | 262 } |
263 inline int ascncmp(const wchar_t* s1, const char* s2, size_t n) { | 263 inline int ascncmp(const wchar_t* s1, const char* s2, size_t n) { |
264 return ascii_string_compare(s1, s2, n, identity); | 264 return ascii_string_compare(s1, s2, n, identity); |
265 } | 265 } |
266 inline int ascnicmp(const wchar_t* s1, const char* s2, size_t n) { | 266 inline int ascnicmp(const wchar_t* s1, const char* s2, size_t n) { |
267 return ascii_string_compare(s1, s2, n, tolowercase); | 267 return ascii_string_compare(s1, s2, n, tolowercase); |
268 } | 268 } |
269 size_t asccpyn(wchar_t* buffer, size_t buflen, | 269 size_t asccpyn(wchar_t* buffer, size_t buflen, |
270 const char* source, size_t srclen = SIZE_UNKNOWN); | 270 const char* source, size_t srclen = SIZE_UNKNOWN); |
271 | 271 |
272 #endif // WEBRTC_WIN | 272 #endif // WEBRTC_WIN |
273 | 273 |
274 /////////////////////////////////////////////////////////////////////////////// | 274 /////////////////////////////////////////////////////////////////////////////// |
275 // Traits<char> specializations | 275 // Traits<char> specializations |
276 /////////////////////////////////////////////////////////////////////////////// | 276 /////////////////////////////////////////////////////////////////////////////// |
277 | 277 |
278 template<> | 278 template<> |
279 struct Traits<char> { | 279 struct Traits<char> { |
280 typedef std::string string; | 280 typedef std::string string; |
281 inline static const char* empty_str() { return ""; } | 281 inline static const char* empty_str() { return ""; } |
282 }; | 282 }; |
283 | 283 |
284 /////////////////////////////////////////////////////////////////////////////// | 284 /////////////////////////////////////////////////////////////////////////////// |
285 // Traits<wchar_t> specializations (Windows only, currently) | 285 // Traits<wchar_t> specializations (Windows only, currently) |
286 /////////////////////////////////////////////////////////////////////////////// | 286 /////////////////////////////////////////////////////////////////////////////// |
287 | 287 |
288 #if defined(WEBRTC_WIN) | 288 #if defined(WEBRTC_WIN) |
289 | 289 |
290 template<> | 290 template<> |
291 struct Traits<wchar_t> { | 291 struct Traits<wchar_t> { |
292 typedef std::wstring string; | 292 typedef std::wstring string; |
293 inline static const wchar_t* empty_str() { return L""; } | 293 inline static const wchar_t* empty_str() { return L""; } |
294 }; | 294 }; |
295 | 295 |
296 #endif // WEBRTC_WIN | 296 #endif // WEBRTC_WIN |
297 | 297 |
298 // Replaces all occurrences of "search" with "replace". | 298 // Replaces all occurrences of "search" with "replace". |
299 void replace_substrs(const char *search, | 299 void replace_substrs(const char *search, |
300 size_t search_len, | 300 size_t search_len, |
301 const char *replace, | 301 const char *replace, |
302 size_t replace_len, | 302 size_t replace_len, |
303 std::string *s); | 303 std::string *s); |
304 | 304 |
305 // True iff s1 starts with s2. | 305 // True iff s1 starts with s2. |
306 bool starts_with(const char *s1, const char *s2); | 306 bool starts_with(const char *s1, const char *s2); |
307 | 307 |
308 // True iff s1 ends with s2. | 308 // True iff s1 ends with s2. |
309 bool ends_with(const char *s1, const char *s2); | 309 bool ends_with(const char *s1, const char *s2); |
310 | 310 |
311 // Remove leading and trailing whitespaces. | 311 // Remove leading and trailing whitespaces. |
312 std::string string_trim(const std::string& s); | 312 std::string string_trim(const std::string& s); |
313 | 313 |
314 } // namespace rtc | 314 } // namespace rtc |
315 | 315 |
316 #endif // WEBRTC_BASE_STRINGUTILS_H__ | 316 #endif // WEBRTC_RTC_BASE_STRINGUTILS_H_ |
OLD | NEW |