| // Copyright 2006-2008 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef MINI_CHROMIUM_BASE_STRINGS_STRING_UTIL_H_ |
| #define MINI_CHROMIUM_BASE_STRINGS_STRING_UTIL_H_ |
| |
| #include "base/compiler_specific.h" |
| #include "base/logging.h" |
| |
| namespace base { |
| |
| int vsnprintf(char* buffer, size_t size, const char* format, va_list arguments) |
| PRINTF_FORMAT(3, 0); |
| |
| size_t strlcpy(char* dst, const char* src, size_t dst_size); |
| size_t wcslcpy(wchar_t* dst, const wchar_t* src, size_t dst_size); |
| |
| } // namespace base |
| |
| #if defined(OS_WIN) |
| #include "base/strings/string_util_win.h" |
| #elif defined(OS_POSIX) |
| #include "base/strings/string_util_posix.h" |
| #endif |
| |
| template <class string_type> |
| inline typename string_type::value_type* WriteInto(string_type* str, |
| size_t length_with_null) { |
| DCHECK_NE(0u, length_with_null); |
| str->reserve(length_with_null); |
| str->resize(length_with_null - 1); |
| |
| if (length_with_null <= 1) |
| return NULL; |
| |
| return &((*str)[0]); |
| } |
| |
| #endif // MINI_CHROMIUM_BASE_STRINGS_STRING_UTIL_H_ |