VLC  3.0.15
Macros | Functions
chain.c File Reference
Include dependency graph for chain.c:

Macros

#define SKIPSPACE(p)   p += strspn( p, " \t" )
 
#define SKIPTRAILINGSPACE(p, e)   do { while( e > p && IsSpace( *(e-1) ) ) e--; } while(0)
 

Functions

static bool IsEscapeNeeded (char c)
 
static bool IsEscape (const char *psz)
 
static bool IsSpace (char c)
 
static const char * ChainGetEnd (const char *psz_string)
 This function will return a pointer after the end of a string element. More...
 
static char * ChainGetValue (const char **ppsz_string)
 It will extract an option value (=... More...
 
const char * config_ChainParseOptions (config_chain_t **pp_cfg, const char *psz_opts)
 This function will parse a configuration string (psz_opts) and. More...
 
char * config_ChainCreate (char **ppsz_name, config_chain_t **pp_cfg, const char *psz_chain)
 This function will parse a configuration string (psz_string) and. More...
 
void config_ChainDestroy (config_chain_t *p_cfg)
 This function will release a linked list of config_chain_t (Including the head) More...
 
void config_ChainParse (vlc_object_t *p_this, const char *psz_prefix, const char *const *ppsz_options, config_chain_t *cfg)
 This function will. More...
 
config_chain_tconfig_ChainDuplicate (const config_chain_t *p_src)
 This function will duplicate a linked list of config_chain_t. More...
 
char * config_StringUnescape (char *psz_string)
 This function will unescape a string in place and will return a pointer on the given string. More...
 
char * config_StringEscape (const char *str)
 This function will escape a string that can be unescaped by config_StringUnescape. More...
 

Macro Definition Documentation

◆ SKIPSPACE

#define SKIPSPACE (   p)    p += strspn( p, " \t" )

◆ SKIPTRAILINGSPACE

#define SKIPTRAILINGSPACE (   p,
 
)    do { while( e > p && IsSpace( *(e-1) ) ) e--; } while(0)

Function Documentation

◆ ChainGetEnd()

static const char* ChainGetEnd ( const char *  psz_string)
static

This function will return a pointer after the end of a string element.

It will search the closing element which is } for { (it will handle nested { ... }) " for " ' for '

References IsEscape(), p, and SKIPSPACE.

Referenced by ChainGetValue().

◆ ChainGetValue()

static char* ChainGetValue ( const char **  ppsz_string)
static

It will extract an option value (=...

or {...}). It will remove the initial = if present but keep the {}

References ChainGetEnd(), config_StringUnescape(), p, psz_value, SKIPSPACE, SKIPTRAILINGSPACE, and strndup().

Referenced by config_ChainParseOptions().

◆ config_ChainCreate()

char* config_ChainCreate ( char **  ppsz_name,
config_chain_t **  pp_cfg,
const char *  psz_string 
)

This function will parse a configuration string (psz_string) and.

  • set the module name (*ppsz_name)
  • set all options for this module in a chained list (*pp_cfg)
  • returns a pointer on the next module if any.

The string format is module{option=*,option=*}[:modulenext{option=*,...}]

The options values are unescaped using config_StringUnescape.

References config_ChainParseOptions(), SKIPSPACE, strdup(), and strndup().

Referenced by AppendRemapFilter(), filter_chain_AppendFromString(), intf_Create(), vlc_rd_new(), and vlc_sd_Create().

◆ config_ChainDestroy()

void config_ChainDestroy ( config_chain_t p_cfg)

◆ config_ChainDuplicate()

config_chain_t* config_ChainDuplicate ( const config_chain_t p_src)

This function will duplicate a linked list of config_chain_t.

References p, config_chain_t::p_next, config_chain_t::psz_name, config_chain_t::psz_value, and strdup().

◆ config_ChainParse()

void config_ChainParse ( vlc_object_t ,
const char *  psz_prefix,
const char *const *  ppsz_options,
config_chain_t  
)

◆ config_ChainParseOptions()

const char* config_ChainParseOptions ( config_chain_t **  pp_cfg,
const char *  ppsz_opts 
)

This function will parse a configuration string (psz_opts) and.

  • set all options for this module in a chained list (*pp_cfg)
  • returns a pointer on the next module if any.

The string format is module{option=*,option=*}

The options values are unescaped using config_StringUnescape.

References ChainGetValue(), config_chain_t::p_next, config_chain_t::psz_name, config_chain_t::psz_value, SKIPSPACE, and strndup().

Referenced by aout_FiltersPipelineCreate(), and config_ChainCreate().

◆ config_StringEscape()

char* config_StringEscape ( const char *  psz_string)

This function will escape a string that can be unescaped by config_StringUnescape.

The returned value is allocated by it. You have to free it once you do not need it anymore (unlike config_StringUnescape). If NULL is given as parameter nothing will be done (NULL will be returned).

The escaped characters are ' " and \

References IsEscapeNeeded(), p, and unlikely.

◆ config_StringUnescape()

char* config_StringUnescape ( char *  psz_string)

This function will unescape a string in place and will return a pointer on the given string.

No memory is allocated by it (unlike config_StringEscape). If NULL is given as parameter nothing will be done (NULL will be returned).

The following sequences will be unescaped (only one time): \ \' and "

References IsEscape().

Referenced by ChainGetValue().

◆ IsEscape()

static bool IsEscape ( const char *  psz)
static

◆ IsEscapeNeeded()

static bool IsEscapeNeeded ( char  c)
static

Referenced by config_StringEscape().

◆ IsSpace()

static bool IsSpace ( char  c)
static