| 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 | |
| 500 } // namespace base | 494 } // namespace base |
| 501 | 495 |
| 502 #if defined(OS_WIN) | 496 #if defined(OS_WIN) |
| 503 #include "base/strings/string_util_win.h" | 497 #include "base/strings/string_util_win.h" |
| 504 #elif defined(OS_POSIX) | 498 #elif defined(OS_POSIX) |
| 505 #include "base/strings/string_util_posix.h" | 499 #include "base/strings/string_util_posix.h" |
| 506 #else | 500 #else |
| 507 #error Define string operations appropriately for your platform | 501 #error Define string operations appropriately for your platform |
| 508 #endif | 502 #endif |
| 509 | 503 |
| 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 |
| 510 // Replace $1-$2-$3..$9 in the format string with |a|-|b|-|c|..|i| respectively. | 520 // Replace $1-$2-$3..$9 in the format string with |a|-|b|-|c|..|i| respectively. |
| 511 // Additionally, any number of consecutive '$' characters is replaced by that | 521 // Additionally, any number of consecutive '$' characters is replaced by that |
| 512 // number less one. Eg $$->$, $$$->$$, etc. The offsets parameter here can be | 522 // number less one. Eg $$->$, $$$->$$, etc. The offsets parameter here can be |
| 513 // NULL. This only allows you to use up to nine replacements. | 523 // NULL. This only allows you to use up to nine replacements. |
| 514 BASE_EXPORT base::string16 ReplaceStringPlaceholders( | 524 BASE_EXPORT base::string16 ReplaceStringPlaceholders( |
| 515 const base::string16& format_string, | 525 const base::string16& format_string, |
| 516 const std::vector<base::string16>& subst, | 526 const std::vector<base::string16>& subst, |
| 517 std::vector<size_t>* offsets); | 527 std::vector<size_t>* offsets); |
| 518 | 528 |
| 519 BASE_EXPORT std::string ReplaceStringPlaceholders( | 529 BASE_EXPORT std::string ReplaceStringPlaceholders( |
| 520 const base::StringPiece& format_string, | 530 const base::StringPiece& format_string, |
| 521 const std::vector<std::string>& subst, | 531 const std::vector<std::string>& subst, |
| 522 std::vector<size_t>* offsets); | 532 std::vector<size_t>* offsets); |
| 523 | 533 |
| 524 // Single-string shortcut for ReplaceStringHolders. |offset| may be NULL. | 534 // Single-string shortcut for ReplaceStringHolders. |offset| may be NULL. |
| 525 BASE_EXPORT base::string16 ReplaceStringPlaceholders( | 535 BASE_EXPORT base::string16 ReplaceStringPlaceholders( |
| 526 const base::string16& format_string, | 536 const base::string16& format_string, |
| 527 const base::string16& a, | 537 const base::string16& a, |
| 528 size_t* offset); | 538 size_t* offset); |
| 529 | 539 |
| 530 #endif // BASE_STRINGS_STRING_UTIL_H_ | 540 #endif // BASE_STRINGS_STRING_UTIL_H_ |
| OLD | NEW |