/*****************************************************************************
* modules_inner.h : Macros used from within a module.
*****************************************************************************
- * Copyright (C) 2001 VideoLAN (Centrale Réseaux) and its contributors
+ * Copyright (C) 2001 the VideoLAN team
* $Id$
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/*****************************************************************************
* this can't easily be done with the C preprocessor, thus a few ugly hacks.
*/
-/* I can't believe I need to do this to change « foo » to « "foo" » */
+/* I can't believe I need to do this to change « foo » to « "foo" » */
#define STRINGIFY( z ) UGLY_KLUDGE( z )
#define UGLY_KLUDGE( z ) #z
-/* And I need to do _this_ to change « foo bar » to « module_foo_bar » ! */
+/* And I need to do _this_ to change « foo bar » to « module_foo_bar » ! */
#define CONCATENATE( y, z ) CRUDE_HACK( y, z )
#define CRUDE_HACK( y, z ) y##__##z
} \
if( p_config ) \
{ \
+ int i; \
p_config[ ++i_config ] = config_end; \
config_Duplicate( p_module, p_config ); \
+ for( i = 0; i < i_config; i++ ) \
+ { \
+ if( p_config[ i ].i_action ) \
+ { \
+ free( p_config[ i ].ppf_action ); \
+ free( p_config[ i ].ppsz_action_text ); \
+ } \
+ } \
free( p_config ); \
} \
else config_Duplicate( p_module, &config_end ); \