* configuration.c management of the modules configuration
*****************************************************************************
* Copyright (C) 2001-2004 VideoLAN
- * $Id: configuration.c,v 1.75 2004/01/25 17:16:06 zorglub Exp $
+ * $Id: configuration.c,v 1.76 2004/01/29 17:04:01 gbazin Exp $
*
* Authors: Gildas Bazin <gbazin@netcourrier.com>
*
}
}
+ /* duplicate the actions list */
+ if( p_orig[i].i_action )
+ {
+ int j;
+
+ p_module->p_config[i].ppf_action =
+ malloc( p_orig[i].i_action * sizeof(void *) );
+ p_module->p_config[i].ppsz_action_text =
+ malloc( p_orig[i].i_action * sizeof(char *) );
+
+ for( j = 0; j < p_orig[i].i_action; j++ )
+ {
+ p_module->p_config[i].ppf_action[j] =
+ p_orig[i].ppf_action[j];
+ p_module->p_config[i].ppsz_action_text[j] =
+ p_orig[i].ppsz_action_text[j] ?
+ strdup( p_orig[i].ppsz_action_text[j] ) : NULL;
+ }
+ }
+
p_module->p_config[i].pf_callback = p_orig[i].pf_callback;
}
}
if( p_item->ppsz_list_text ) free( p_item->ppsz_list_text );
if( p_item->pi_list ) free( p_item->pi_list );
}
+
+ if( p_item->i_action )
+ {
+ for( i = 0; i < p_item->i_action; i++ )
+ {
+ if( p_item->ppsz_action_text[i] )
+ free( p_item->ppsz_action_text[i] );
+ }
+ if( p_item->ppf_action ) free( p_item->ppf_action );
+ if( p_item->ppsz_action_text ) free( p_item->ppsz_action_text );
+ }
}
free( p_module->p_config );