blob: 3fed809df46183e0fd9a6c16c993ebb483ebdb78 [file] [log] [blame] [view] [edit]
Project: /youtube/cobalt/_project.yaml
Book: /youtube/cobalt/_book.yaml
# Starboard Module Reference: `string.h`
Defines functions for interacting with c-style strings.
## Functions
### SbStringCompareNoCase
Compares two strings, ignoring differences in case. The return value is:
* `< 0` if `string1` is ASCII-betically lower than `string2`.
* `0` if the two strings are equal.
* `> 0` if `string1` is ASCII-betically higher than `string2`.
This function is meant to be a drop-in replacement for `strcasecmp`.
`string1`: The first string to compare. `string2`: The second string to compare.
#### Declaration
```
int SbStringCompareNoCase(const char *string1, const char *string2)
```
### SbStringCompareNoCaseN
Compares the first `count` characters of two strings, ignoring differences in
case. The return value is:
* `< 0` if `string1` is ASCII-betically lower than `string2`.
* `0` if the two strings are equal.
* `> 0` if `string1` is ASCII-betically higher than `string2`.
This function is meant to be a drop-in replacement for `strncasecmp`.
`string1`: The first string to compare. `string2`: The second string to compare.
`count`: The number of characters to compare.
#### Declaration
```
int SbStringCompareNoCaseN(const char *string1, const char *string2, size_t count)
```
### SbStringDuplicate
Copies `source` into a buffer that is allocated by this function and that can be
freed with SbMemoryDeallocate. This function is meant to be a drop-in
replacement for `strdup`.
`source`: The string to be copied.
#### Declaration
```
char* SbStringDuplicate(const char *source)
```
### SbStringFormat
Produces a string formatted with `format` and `arguments`, placing as much of
the result that will fit into `out_buffer`. The return value specifies the
number of characters that the format would produce if `buffer_size` were
infinite.
This function is meant to be a drop-in replacement for `vsnprintf`.
`out_buffer`: The location where the formatted string is stored. `buffer_size`:
The size of `out_buffer`. `format`: A string that specifies how the data should
be formatted. `arguments`: Variable arguments used in the string.
#### Declaration
```
int SbStringFormat(char *out_buffer, size_t buffer_size, const char *format, va_list arguments) SB_PRINTF_FORMAT(3
```
### SbStringFormatF
An inline wrapper of SbStringFormat that converts from ellipsis to va_args. This
function is meant to be a drop-in replacement for `snprintf`.
`out_buffer`: The location where the formatted string is stored. `buffer_size`:
The size of `out_buffer`. `format`: A string that specifies how the data should
be formatted. `...`: Arguments used in the string.
#### Declaration
```
int static int static int SbStringFormatF(char *out_buffer, size_t buffer_size, const char *format,...) SB_PRINTF_FORMAT(3
```
### SbStringFormatUnsafeF
An inline wrapper of SbStringFormat that is meant to be a drop-in replacement
for the unsafe but commonly used `sprintf`.
`out_buffer`: The location where the formatted string is stored. `format`: A
string that specifies how the data should be formatted. `...`: Arguments used in
the string.
#### Declaration
```
static int static int SbStringFormatUnsafeF(char *out_buffer, const char *format,...) SB_PRINTF_FORMAT(2
```
### SbStringFormatWide
This function is identical to SbStringFormat, but is for wide characters. It is
meant to be a drop-in replacement for `vswprintf`.
`out_buffer`: The location where the formatted string is stored. `buffer_size`:
The size of `out_buffer`. `format`: A string that specifies how the data should
be formatted. `arguments`: Variable arguments used in the string.
#### Declaration
```
int SbStringFormatWide(wchar_t *out_buffer, size_t buffer_size, const wchar_t *format, va_list arguments)
```
### SbStringFormatWideF
An inline wrapper of SbStringFormatWide that converts from ellipsis to
`va_args`.
`out_buffer`: The location where the formatted string is stored. `buffer_size`:
The size of `out_buffer`. `format`: A string that specifies how the data should
be formatted. `...`: Arguments used in the string.
#### Declaration
```
static int SbStringFormatWideF(wchar_t *out_buffer, size_t buffer_size, const wchar_t *format,...)
```
### SbStringScan
Scans `buffer` for `pattern`, placing the extracted values in `arguments`. The
return value specifies the number of successfully matched items, which may be
`0`.
This function is meant to be a drop-in replacement for `vsscanf`.
`buffer`: The string to scan for the pattern. `pattern`: The string to search
for in `buffer`. `arguments`: Values matching `pattern` that were extracted from
`buffer`.
#### Declaration
```
int SbStringScan(const char *buffer, const char *pattern, va_list arguments)
```
### SbStringScanF
An inline wrapper of SbStringScan that converts from ellipsis to `va_args`. This
function is meant to be a drop-in replacement for `sscanf`. `buffer`: The string
to scan for the pattern. `pattern`: The string to search for in `buffer`. `...`:
Values matching `pattern` that were extracted from `buffer`.
#### Declaration
```
static int SbStringScanF(const char *buffer, const char *pattern,...)
```