| 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 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 484 // immediately write over this memory, but there is no other way to set the size | 484 // immediately write over this memory, but there is no other way to set the size |
| 485 // of the string, and not doing that will mean people who access |str| rather | 485 // of the string, and not doing that will mean people who access |str| rather |
| 486 // than str.c_str() will get back a string of whatever size |str| had on entry | 486 // than str.c_str() will get back a string of whatever size |str| had on entry |
| 487 // to this function (probably 0). | 487 // to this function (probably 0). |
| 488 BASE_EXPORT char* WriteInto(std::string* str, size_t length_with_null); | 488 BASE_EXPORT char* WriteInto(std::string* str, size_t length_with_null); |
| 489 BASE_EXPORT char16* WriteInto(base::string16* str, size_t length_with_null); | 489 BASE_EXPORT char16* WriteInto(base::string16* str, size_t length_with_null); |
| 490 #ifndef OS_WIN | 490 #ifndef OS_WIN |
| 491 BASE_EXPORT wchar_t* WriteInto(std::wstring* str, size_t length_with_null); | 491 BASE_EXPORT wchar_t* WriteInto(std::wstring* str, size_t length_with_null); |
| 492 #endif | 492 #endif |
| 493 | 493 |
| 494 // Does the opposite of SplitString(). |
| 495 BASE_EXPORT std::string JoinString(const std::vector<std::string>& parts, |
| 496 StringPiece separator); |
| 497 BASE_EXPORT string16 JoinString(const std::vector<string16>& parts, |
| 498 StringPiece16 separator); |
| 499 |
| 494 } // namespace base | 500 } // namespace base |
| 495 | 501 |
| 496 #if defined(OS_WIN) | 502 #if defined(OS_WIN) |
| 497 #include "base/strings/string_util_win.h" | 503 #include "base/strings/string_util_win.h" |
| 498 #elif defined(OS_POSIX) | 504 #elif defined(OS_POSIX) |
| 499 #include "base/strings/string_util_posix.h" | 505 #include "base/strings/string_util_posix.h" |
| 500 #else | 506 #else |
| 501 #error Define string operations appropriately for your platform | 507 #error Define string operations appropriately for your platform |
| 502 #endif | 508 #endif |
| 503 | 509 |
| 504 //----------------------------------------------------------------------------- | |
| 505 | |
| 506 // Does the opposite of SplitString(). | |
| 507 BASE_EXPORT base::string16 JoinString(const std::vector<base::string16>& parts, | |
| 508 base::char16 s); | |
| 509 BASE_EXPORT std::string JoinString( | |
| 510 const std::vector<std::string>& parts, char s); | |
| 511 | |
| 512 // Join |parts| using |separator|. | |
| 513 BASE_EXPORT std::string JoinString( | |
| 514 const std::vector<std::string>& parts, | |
| 515 const std::string& separator); | |
| 516 BASE_EXPORT base::string16 JoinString( | |
| 517 const std::vector<base::string16>& parts, | |
| 518 const base::string16& separator); | |
| 519 | |
| 520 // Replace $1-$2-$3..$9 in the format string with |a|-|b|-|c|..|i| respectively. | 510 // Replace $1-$2-$3..$9 in the format string with |a|-|b|-|c|..|i| respectively. |
| 521 // Additionally, any number of consecutive '$' characters is replaced by that | 511 // Additionally, any number of consecutive '$' characters is replaced by that |
| 522 // number less one. Eg $$->$, $$$->$$, etc. The offsets parameter here can be | 512 // number less one. Eg $$->$, $$$->$$, etc. The offsets parameter here can be |
| 523 // NULL. This only allows you to use up to nine replacements. | 513 // NULL. This only allows you to use up to nine replacements. |
| 524 BASE_EXPORT base::string16 ReplaceStringPlaceholders( | 514 BASE_EXPORT base::string16 ReplaceStringPlaceholders( |
| 525 const base::string16& format_string, | 515 const base::string16& format_string, |
| 526 const std::vector<base::string16>& subst, | 516 const std::vector<base::string16>& subst, |
| 527 std::vector<size_t>* offsets); | 517 std::vector<size_t>* offsets); |
| 528 | 518 |
| 529 BASE_EXPORT std::string ReplaceStringPlaceholders( | 519 BASE_EXPORT std::string ReplaceStringPlaceholders( |
| 530 const base::StringPiece& format_string, | 520 const base::StringPiece& format_string, |
| 531 const std::vector<std::string>& subst, | 521 const std::vector<std::string>& subst, |
| 532 std::vector<size_t>* offsets); | 522 std::vector<size_t>* offsets); |
| 533 | 523 |
| 534 // Single-string shortcut for ReplaceStringHolders. |offset| may be NULL. | 524 // Single-string shortcut for ReplaceStringHolders. |offset| may be NULL. |
| 535 BASE_EXPORT base::string16 ReplaceStringPlaceholders( | 525 BASE_EXPORT base::string16 ReplaceStringPlaceholders( |
| 536 const base::string16& format_string, | 526 const base::string16& format_string, |
| 537 const base::string16& a, | 527 const base::string16& a, |
| 538 size_t* offset); | 528 size_t* offset); |
| 539 | 529 |
| 540 #endif // BASE_STRINGS_STRING_UTIL_H_ | 530 #endif // BASE_STRINGS_STRING_UTIL_H_ |
| OLD | NEW |