X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fconfig%2Fchain.c;h=13661e5bdf852b2339857e23e445ea4968909fb6;hb=7fe6a6974bf47daf77d2f18757c7cdc646641bb0;hp=3356ba87932f70f814cc4f16c21e2e97409ba65b;hpb=c7325f2fd6bba5dcc59fee98037f090dc3346dc4;p=vlc diff --git a/src/config/chain.c b/src/config/chain.c index 3356ba8793..13661e5bdf 100644 --- a/src/config/chain.c +++ b/src/config/chain.c @@ -189,10 +189,6 @@ char *config_ChainCreate( char **ppsz_name, config_chain_t **pp_cfg, /* Look for parameter (a {...} or :...) or end of name (space or nul) */ len = strcspn( psz_chain, "{: \t" ); - if( len == 0 ) - return NULL; - - /* Extract the name */ *ppsz_name = strndup( psz_chain, len ); psz_chain += len; @@ -416,6 +412,26 @@ void __config_ChainParse( vlc_object_t *p_this, const char *psz_prefix, } } +config_chain_t *config_ChainDuplicate( const config_chain_t *p_src ) +{ + config_chain_t *p_dst = NULL; + config_chain_t **pp_last = &p_dst; + + for( ; p_src != NULL; p_src = p_src->p_next ) + { + config_chain_t *p = malloc( sizeof(*p) ); + if( !p ) + break; + p->p_next = NULL; + p->psz_name = p_src->psz_name ? strdup( p_src->psz_name ) : NULL; + p->psz_value = p_src->psz_value ? strdup( p_src->psz_value ) : NULL; + + *pp_last = p; + pp_last = &p->p_next; + } + return p_dst; +} + char *config_StringUnescape( char *psz_string ) { char *psz_src = psz_string;