| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // | 4 // |
| 5 // This file defines utility functions for working with strings. | 5 // This file defines utility functions for working with strings. |
| 6 | 6 |
| 7 #ifndef BASE_STRINGS_STRING_UTIL_H_ | 7 #ifndef BASE_STRINGS_STRING_UTIL_H_ |
| 8 #define BASE_STRINGS_STRING_UTIL_H_ | 8 #define BASE_STRINGS_STRING_UTIL_H_ |
| 9 | 9 |
| 10 #include <ctype.h> | 10 #include <ctype.h> |
| (...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 410 inline bool IsUnicodeWhitespace(wchar_t c) { | 410 inline bool IsUnicodeWhitespace(wchar_t c) { |
| 411 return wcschr(base::kWhitespaceWide, c) != NULL; | 411 return wcschr(base::kWhitespaceWide, c) != NULL; |
| 412 } | 412 } |
| 413 | 413 |
| 414 // Return a byte string in human-readable format with a unit suffix. Not | 414 // Return a byte string in human-readable format with a unit suffix. Not |
| 415 // appropriate for use in any UI; use of FormatBytes and friends in ui/base is | 415 // appropriate for use in any UI; use of FormatBytes and friends in ui/base is |
| 416 // highly recommended instead. TODO(avi): Figure out how to get callers to use | 416 // highly recommended instead. TODO(avi): Figure out how to get callers to use |
| 417 // FormatBytes instead; remove this. | 417 // FormatBytes instead; remove this. |
| 418 BASE_EXPORT string16 FormatBytesUnlocalized(int64 bytes); | 418 BASE_EXPORT string16 FormatBytesUnlocalized(int64 bytes); |
| 419 | 419 |
| 420 } // namespace base | |
| 421 | |
| 422 #if defined(OS_WIN) | |
| 423 #include "base/strings/string_util_win.h" | |
| 424 #elif defined(OS_POSIX) | |
| 425 #include "base/strings/string_util_posix.h" | |
| 426 #else | |
| 427 #error Define string operations appropriately for your platform | |
| 428 #endif | |
| 429 | |
| 430 // Starting at |start_offset| (usually 0), replace the first instance of | 420 // Starting at |start_offset| (usually 0), replace the first instance of |
| 431 // |find_this| with |replace_with|. | 421 // |find_this| with |replace_with|. |
| 432 BASE_EXPORT void ReplaceFirstSubstringAfterOffset( | 422 BASE_EXPORT void ReplaceFirstSubstringAfterOffset( |
| 433 base::string16* str, | 423 base::string16* str, |
| 434 size_t start_offset, | 424 size_t start_offset, |
| 435 const base::string16& find_this, | 425 StringPiece16 find_this, |
| 436 const base::string16& replace_with); | 426 StringPiece16 replace_with); |
| 437 BASE_EXPORT void ReplaceFirstSubstringAfterOffset( | 427 BASE_EXPORT void ReplaceFirstSubstringAfterOffset( |
| 438 std::string* str, | 428 std::string* str, |
| 439 size_t start_offset, | 429 size_t start_offset, |
| 440 const std::string& find_this, | 430 StringPiece find_this, |
| 441 const std::string& replace_with); | 431 StringPiece replace_with); |
| 442 | 432 |
| 443 // Starting at |start_offset| (usually 0), look through |str| and replace all | 433 // Starting at |start_offset| (usually 0), look through |str| and replace all |
| 444 // instances of |find_this| with |replace_with|. | 434 // instances of |find_this| with |replace_with|. |
| 445 // | 435 // |
| 446 // This does entire substrings; use std::replace in <algorithm> for single | 436 // This does entire substrings; use std::replace in <algorithm> for single |
| 447 // characters, for example: | 437 // characters, for example: |
| 448 // std::replace(str.begin(), str.end(), 'a', 'b'); | 438 // std::replace(str.begin(), str.end(), 'a', 'b'); |
| 449 BASE_EXPORT void ReplaceSubstringsAfterOffset( | 439 BASE_EXPORT void ReplaceSubstringsAfterOffset( |
| 450 base::string16* str, | 440 base::string16* str, |
| 451 size_t start_offset, | 441 size_t start_offset, |
| 452 const base::string16& find_this, | 442 StringPiece16 find_this, |
| 453 const base::string16& replace_with); | 443 StringPiece16 replace_with); |
| 454 BASE_EXPORT void ReplaceSubstringsAfterOffset(std::string* str, | 444 BASE_EXPORT void ReplaceSubstringsAfterOffset( |
| 455 size_t start_offset, | 445 std::string* str, |
| 456 const std::string& find_this, | 446 size_t start_offset, |
| 457 const std::string& replace_with); | 447 StringPiece find_this, |
| 448 StringPiece replace_with); |
| 449 |
| 450 } // namespace base |
| 451 |
| 452 #if defined(OS_WIN) |
| 453 #include "base/strings/string_util_win.h" |
| 454 #elif defined(OS_POSIX) |
| 455 #include "base/strings/string_util_posix.h" |
| 456 #else |
| 457 #error Define string operations appropriately for your platform |
| 458 #endif |
| 458 | 459 |
| 459 // Reserves enough memory in |str| to accommodate |length_with_null| characters, | 460 // Reserves enough memory in |str| to accommodate |length_with_null| characters, |
| 460 // sets the size of |str| to |length_with_null - 1| characters, and returns a | 461 // sets the size of |str| to |length_with_null - 1| characters, and returns a |
| 461 // pointer to the underlying contiguous array of characters. This is typically | 462 // pointer to the underlying contiguous array of characters. This is typically |
| 462 // used when calling a function that writes results into a character array, but | 463 // used when calling a function that writes results into a character array, but |
| 463 // the caller wants the data to be managed by a string-like object. It is | 464 // the caller wants the data to be managed by a string-like object. It is |
| 464 // convenient in that is can be used inline in the call, and fast in that it | 465 // convenient in that is can be used inline in the call, and fast in that it |
| 465 // avoids copying the results of the call from a char* into a string. | 466 // avoids copying the results of the call from a char* into a string. |
| 466 // | 467 // |
| 467 // |length_with_null| must be at least 2, since otherwise the underlying string | 468 // |length_with_null| must be at least 2, since otherwise the underlying string |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 541 // string can contain wildcards like * and ? | 542 // string can contain wildcards like * and ? |
| 542 // The backslash character (\) is an escape character for * and ? | 543 // The backslash character (\) is an escape character for * and ? |
| 543 // We limit the patterns to having a max of 16 * or ? characters. | 544 // We limit the patterns to having a max of 16 * or ? characters. |
| 544 // ? matches 0 or 1 character, while * matches 0 or more characters. | 545 // ? matches 0 or 1 character, while * matches 0 or more characters. |
| 545 BASE_EXPORT bool MatchPattern(const base::StringPiece& string, | 546 BASE_EXPORT bool MatchPattern(const base::StringPiece& string, |
| 546 const base::StringPiece& pattern); | 547 const base::StringPiece& pattern); |
| 547 BASE_EXPORT bool MatchPattern(const base::string16& string, | 548 BASE_EXPORT bool MatchPattern(const base::string16& string, |
| 548 const base::string16& pattern); | 549 const base::string16& pattern); |
| 549 | 550 |
| 550 #endif // BASE_STRINGS_STRING_UTIL_H_ | 551 #endif // BASE_STRINGS_STRING_UTIL_H_ |
| OLD | NEW |