| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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_STRING_UTIL_H_ | 7 #ifndef BASE_STRING_UTIL_H_ |
| 8 #define BASE_STRING_UTIL_H_ | 8 #define BASE_STRING_UTIL_H_ |
| 9 | 9 |
| 10 #include <stdarg.h> // va_list | 10 #include <stdarg.h> // va_list |
| (...skipping 577 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 588 | 588 |
| 589 // Returns a hex string representation of a binary buffer. | 589 // Returns a hex string representation of a binary buffer. |
| 590 // The returned hex string will be in upper case. | 590 // The returned hex string will be in upper case. |
| 591 // This function does not check if |size| is within reasonable limits since | 591 // This function does not check if |size| is within reasonable limits since |
| 592 // it's written with trusted data in mind. | 592 // it's written with trusted data in mind. |
| 593 // If you suspect that the data you want to format might be large, | 593 // If you suspect that the data you want to format might be large, |
| 594 // the absolute max size for |size| should be is | 594 // the absolute max size for |size| should be is |
| 595 // std::numeric_limits<size_t>::max() / 2 | 595 // std::numeric_limits<size_t>::max() / 2 |
| 596 std::string HexEncode(const void* bytes, size_t size); | 596 std::string HexEncode(const void* bytes, size_t size); |
| 597 | 597 |
| 598 // Hack to convert any char-like type to its unsigned counterpart. |
| 599 // For example, it will convert char, signed char and unsigned char to unsigned |
| 600 // char. |
| 601 template<typename T> |
| 602 struct ToUnsigned { |
| 603 typedef T Unsigned; |
| 604 }; |
| 605 |
| 606 template<> |
| 607 struct ToUnsigned<char> { |
| 608 typedef unsigned char Unsigned; |
| 609 }; |
| 610 template<> |
| 611 struct ToUnsigned<signed char> { |
| 612 typedef unsigned char Unsigned; |
| 613 }; |
| 614 template<> |
| 615 struct ToUnsigned<wchar_t> { |
| 616 #if defined(WCHAR_T_IS_UTF16) |
| 617 typedef unsigned short Unsigned; |
| 618 #elif defined(WCHAR_T_IS_UTF32) |
| 619 typedef uint32 Unsigned; |
| 620 #endif |
| 621 }; |
| 622 template<> |
| 623 struct ToUnsigned<short> { |
| 624 typedef unsigned short Unsigned; |
| 625 }; |
| 598 | 626 |
| 599 #endif // BASE_STRING_UTIL_H_ | 627 #endif // BASE_STRING_UTIL_H_ |
| OLD | NEW |