VLC  4.0.0-dev
Modules | Files | Typedefs | Functions
Collaboration diagram for String helpers:


 Character sets
 Uniform Resource Locator (URL)


file  vlc_strings.h
 Helper functions for nul-terminated strings.


typedef struct vlc_player_t vlc_player_t


static int vlc_ascii_toupper (int c)
static int vlc_ascii_tolower (int c)
static int vlc_ascii_strcasecmp (const char *psz1, const char *psz2)
 Compare two ASCII strings ignoring case. More...
static int vlc_ascii_strncasecmp (const char *psz1, const char *psz2, size_t n)
void vlc_xml_decode (char *st)
 Decodes XML entities. More...
char * vlc_xml_encode (const char *str)
 Encodes XML entites. More...
void vlc_hex_encode_binary (const void *input, size_t size, char *output)
 Encode binary data as hex string. More...
char * vlc_b64_encode_binary (const void *base, size_t length)
 Base64 encoding. More...
char * vlc_b64_encode (const char *str)
 Base64 encoding (string). More...
size_t vlc_b64_decode_binary_to_buffer (void *p_dst, size_t i_dst_max, const char *psz_src)
size_t vlc_b64_decode_binary (uint8_t **pp_dst, const char *psz_src)
char * vlc_b64_decode (const char *psz_src)
char * vlc_strftime (const char *)
 Convenience wrapper for strftime(). More...
char * vlc_strfplayer (vlc_player_t *player, input_item_t *item, const char *fmt)
 Formats input meta-data. More...
static char * str_format (vlc_player_t *player, input_item_t *item, const char *fmt)
int vlc_filenamecmp (const char *, const char *)
void filename_sanitize (char *)
 Sanitize a file name. More...

Detailed Description

Typedef Documentation

◆ vlc_player_t

typedef struct vlc_player_t vlc_player_t

Function Documentation

◆ filename_sanitize()

void filename_sanitize ( char *  str)

Sanitize a file name.

Remove forbidden, potentially forbidden and otherwise evil characters from file names. That includes slashes, and popular characters like colon (on Unix anyway).

This function should only be used for automatically generated file names. Do not use this on full paths, only single file names without any directory separator!

References EnsureUTF8().

Referenced by ArtCacheGetDirPath(), ArtCacheName(), input_item_CreateFilename(), str_format(), and vout_snapshot_SaveImage().

◆ str_format()

static char* str_format ( vlc_player_t player,
input_item_t item,
const char *  fmt 

◆ vlc_ascii_strcasecmp()

static int vlc_ascii_strcasecmp ( const char *  psz1,
const char *  psz2 

Compare two ASCII strings ignoring case.

The result is independent of the locale. If there are non-ASCII characters in the strings, their cases are NOT ignored in the comparison.

References vlc_ascii_tolower().

Referenced by cookie_domain_matches(), demux_mapping_cmp(), vlc_http_cookies_store(), vlc_http_res_get_redirect(), and vlc_http_res_init().

◆ vlc_ascii_strncasecmp()

static int vlc_ascii_strncasecmp ( const char *  psz1,
const char *  psz2,
size_t  n 

◆ vlc_ascii_tolower()

static int vlc_ascii_tolower ( int  c)

◆ vlc_ascii_toupper()

static int vlc_ascii_toupper ( int  c)

◆ vlc_b64_decode()

char* vlc_b64_decode ( const char *  psz_src)

◆ vlc_b64_decode_binary()

size_t vlc_b64_decode_binary ( uint8_t **  pp_dst,
const char *  psz_src 

◆ vlc_b64_decode_binary_to_buffer()

size_t vlc_b64_decode_binary_to_buffer ( void *  p_dst,
size_t  i_dst_max,
const char *  psz_src 

Referenced by vlc_ascii_strncasecmp().

◆ vlc_b64_encode()

char* vlc_b64_encode ( const char *  str)

Base64 encoding (string).

Encodes a nul-terminated string into Base64.

strnul-terminated string to encode
a heap-allocated nul-terminated string (or NULL on allocation error).

References vlc_b64_encode_binary().

Referenced by vlc_ascii_strncasecmp(), and vlc_http_auth_FormatAuthorizationHeader().

◆ vlc_b64_encode_binary()

char* vlc_b64_encode_binary ( const void *  base,
size_t  length 

Base64 encoding.

Encodes a buffer into base64 as a (nul-terminated) string.

basestart address of buffer to encode
lengthlength in bytes of buffer to encode
a heap-allocated nul-terminated string (or NULL on allocation error).

References unlikely.

Referenced by vlc_ascii_strncasecmp(), vlc_b64_encode(), and vlc_http_msg_add_creds_basic().

◆ vlc_filenamecmp()

int vlc_filenamecmp ( const char *  ,
const char *   

References strcoll.

Referenced by rdh_compar_filename(), and str_format().

◆ vlc_hex_encode_binary()

void vlc_hex_encode_binary ( const void *  input,
size_t  size,
char *  output 

Encode binary data as hex string.

Writes a given data buffer to the output buffer as a null terminated string in hexadecimal representation.

inputInput buffer
sizeInput buffer size
[out]outputOutput buffer to write the string to

Referenced by vlc_ascii_strncasecmp().

◆ vlc_strfplayer()

char* vlc_strfplayer ( vlc_player_t player,
input_item_t item,
const char *  fmt 

Formats input meta-data.

Formats input and input item meta-informations into a heap-allocated string.

playera locked player instance or NULL (player and item can't be both NULL)
itema valid item or NULL (player and item can't be both NULL)
fmtformat string
the formated string, or NULL in case of error, the string need to be freed with ()

References aout_Release(), aout_VolumeGet(), es_format_t::audio, AUDIO_ES, vlc_player_track::fmt, es_format_t::i_bitrate, input_stats_t::i_displayed_pictures, audio_format_t::i_rate, input_item_GetDuration(), input_item_GetName(), input_item_GetNowPlayingFb(), input_item_GetTitleFbName(), input_item_GetURI(), input_item_t::lock, name, input_item_t::p_stats, vlc_memstream::ptr, SPU_ES, vlc_memstream_close(), vlc_memstream_open(), vlc_memstream_printf(), vlc_memstream_putc(), vlc_memstream_puts(), vlc_meta_Album, vlc_meta_Artist, vlc_meta_Copyright, vlc_meta_Date, vlc_meta_Description, vlc_meta_EncodedBy, vlc_meta_Genre, vlc_meta_Language, vlc_meta_Publisher, vlc_meta_Rating, vlc_meta_Title, vlc_meta_TrackNumber, vlc_meta_TrackTotal, vlc_meta_URL, vlc_mutex_lock(), vlc_mutex_unlock(), vlc_player_aout_Hold(), vlc_player_GetCategoryLanguage(), vlc_player_GetCurrentMedia(), vlc_player_GetLength(), vlc_player_GetPosition(), vlc_player_GetRate(), vlc_player_GetSelectedChapterIdx(), vlc_player_GetSelectedTitleIdx(), vlc_player_GetSelectedTrack(), vlc_player_GetTime(), VLC_TICK_INVALID, write_duration(), and write_meta().

Referenced by str_format(), and vlc_ascii_strncasecmp().

◆ vlc_strftime()

char* vlc_strftime ( const char *  )

Convenience wrapper for strftime().

Formats the current time into a heap-allocated string.

tformattime format (as with C strftime())
an allocated string (must be free()'d), or NULL on memory error.

References localtime_r(), strdup(), and vlc_assert_unreachable.

Referenced by str_format(), and vlc_ascii_strncasecmp().

◆ vlc_xml_decode()

void vlc_xml_decode ( char *  st)

Decodes XML entities.

Decodes a null-terminated UTF-8 string of XML character data into a regular nul-terminated UTF-8 string. In other words, replaces XML entities and numerical character references with the corresponding characters.

This function operates in place (the output is always of smaller or equal length than the input) and always succeeds.

strnull-terminated string [IN/OUT]

References ARRAY_SIZE, cmp_entity(), xml_entity_s::psz_char, xml_entity_s::psz_entity, psz_value, and xml_entities.

Referenced by vlc_ascii_strncasecmp().

◆ vlc_xml_encode()

char* vlc_xml_encode ( const char *  str)

Encodes XML entites.

Substitutes unsafe characters in a null-terminated UTF-8 strings with an XML entity or numerical character reference.

strnull terminated UTF-8 string
On success, a heap-allocated null-terminated string is returned. If the input string was not a valid UTF-8 sequence, NULL is returned and errno is set to EILSEQ. If there was not enough memory, NULL is returned and errno is to ENOMEM.

References vlc_memstream::ptr, unlikely, vlc_memstream_close(), vlc_memstream_open(), vlc_memstream_printf(), vlc_memstream_puts(), vlc_memstream_write(), and vlc_towc().

Referenced by httpd_HtmlError(), and vlc_ascii_strncasecmp().