+static int CacheSaveSubmodule( FILE *file, module_t *p_module )
+{
+ if( !p_module )
+ return 0;
+ if( CacheSaveSubmodule( file, p_module->next ) )
+ goto error;
+
+ SAVE_STRING( p_module->psz_object_name );
+ SAVE_STRING( p_module->psz_shortname );
+ SAVE_STRING( p_module->psz_longname );
+ SAVE_STRING( p_module->psz_help );
+ for( unsigned j = 0; j < MODULE_SHORTCUT_MAX; j++ )
+ SAVE_STRING( p_module->pp_shortcuts[j] ); // FIXME
+
+ SAVE_STRING( p_module->psz_capability );
+ SAVE_IMMEDIATE( p_module->i_score );
+ SAVE_IMMEDIATE( p_module->i_cpu );
+ SAVE_IMMEDIATE( p_module->b_unloadable );
+ SAVE_IMMEDIATE( p_module->b_reentrant );
+ return 0;
+
+error:
+ return -1;
+}
+
+