+static void mvar_VlmSetNewLoop( char *name, vlm_t *vlm, mvar_t *s,
+ vlm_message_t *el, bool b_name )
+{
+ /* Over name */
+ mvar_t *set;
+ int k;
+
+ /* Add a node with name and info */
+ set = mvar_New( name, "set" );
+ if( b_name == true )
+ {
+ mvar_AppendNewVar( set, "name", el->psz_name );
+ }
+
+ for( k = 0; k < el->i_child; k++ )
+ {
+ vlm_message_t *ch = el->child[k];
+ if( ch->i_child > 0 )
+ {
+ mvar_VlmSetNewLoop( ch->psz_name, vlm, set, ch, false );
+ }
+ else
+ {
+ if( ch->psz_value )
+ {
+ mvar_AppendNewVar( set, ch->psz_name, ch->psz_value );
+ }
+ else
+ {
+ mvar_AppendNewVar( set, el->psz_name, ch->psz_name );
+ }
+ }
+ }
+
+ mvar_AppendVar( s, set );
+}
+
+mvar_t *mvar_VlmSetNew( char *name, vlm_t *vlm )