xref: /aosp_15_r20/external/libchrome/base/strings/string_util_posix.h (revision 635a864187cb8b6c713ff48b7e790a6b21769273)
1*635a8641SAndroid Build Coastguard Worker // Copyright 2013 The Chromium Authors. All rights reserved.
2*635a8641SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*635a8641SAndroid Build Coastguard Worker // found in the LICENSE file.
4*635a8641SAndroid Build Coastguard Worker 
5*635a8641SAndroid Build Coastguard Worker #ifndef BASE_STRINGS_STRING_UTIL_POSIX_H_
6*635a8641SAndroid Build Coastguard Worker #define BASE_STRINGS_STRING_UTIL_POSIX_H_
7*635a8641SAndroid Build Coastguard Worker 
8*635a8641SAndroid Build Coastguard Worker #include <stdarg.h>
9*635a8641SAndroid Build Coastguard Worker #include <stddef.h>
10*635a8641SAndroid Build Coastguard Worker #include <stdio.h>
11*635a8641SAndroid Build Coastguard Worker #include <string.h>
12*635a8641SAndroid Build Coastguard Worker #include <wchar.h>
13*635a8641SAndroid Build Coastguard Worker 
14*635a8641SAndroid Build Coastguard Worker #include "base/logging.h"
15*635a8641SAndroid Build Coastguard Worker 
16*635a8641SAndroid Build Coastguard Worker namespace base {
17*635a8641SAndroid Build Coastguard Worker 
18*635a8641SAndroid Build Coastguard Worker // Chromium code style is to not use malloc'd strings; this is only for use
19*635a8641SAndroid Build Coastguard Worker // for interaction with APIs that require it.
strdup(const char * str)20*635a8641SAndroid Build Coastguard Worker inline char* strdup(const char* str) {
21*635a8641SAndroid Build Coastguard Worker   return ::strdup(str);
22*635a8641SAndroid Build Coastguard Worker }
23*635a8641SAndroid Build Coastguard Worker 
vsnprintf(char * buffer,size_t size,const char * format,va_list arguments)24*635a8641SAndroid Build Coastguard Worker inline int vsnprintf(char* buffer, size_t size,
25*635a8641SAndroid Build Coastguard Worker                      const char* format, va_list arguments) {
26*635a8641SAndroid Build Coastguard Worker   return ::vsnprintf(buffer, size, format, arguments);
27*635a8641SAndroid Build Coastguard Worker }
28*635a8641SAndroid Build Coastguard Worker 
vswprintf(wchar_t * buffer,size_t size,const wchar_t * format,va_list arguments)29*635a8641SAndroid Build Coastguard Worker inline int vswprintf(wchar_t* buffer, size_t size,
30*635a8641SAndroid Build Coastguard Worker                      const wchar_t* format, va_list arguments) {
31*635a8641SAndroid Build Coastguard Worker   DCHECK(IsWprintfFormatPortable(format));
32*635a8641SAndroid Build Coastguard Worker   return ::vswprintf(buffer, size, format, arguments);
33*635a8641SAndroid Build Coastguard Worker }
34*635a8641SAndroid Build Coastguard Worker 
35*635a8641SAndroid Build Coastguard Worker }  // namespace base
36*635a8641SAndroid Build Coastguard Worker 
37*635a8641SAndroid Build Coastguard Worker #endif  // BASE_STRINGS_STRING_UTIL_POSIX_H_
38