@@ -90,6 +90,8 @@ struct hp_info {
9090 char in_instrument_list ;
9191 char in_instrument ;
9292 char in_layer ;
93+ char in_drumkit_component ;
94+
9395 char counted_cur_inst ;
9496 int cur_off ;
9597 char cur_buf [MAX_CHAR_DATA ];
@@ -106,7 +108,7 @@ startElement(void *userData, const char *name, const char **atts)
106108 info -> cur_off = 0 ;
107109 if (info -> in_info ) {
108110 if (info -> in_instrument ) {
109- if (!strcmp (name ,"layer" ) && !info -> scan_only ) {
111+ if (!strcmp (name ,"layer" ) && !info -> scan_only ) {
110112 info -> in_layer = 1 ;
111113 info -> cur_layer = malloc (sizeof (struct instrument_layer ));
112114 memset (info -> cur_layer ,0 ,sizeof (struct instrument_layer ));
@@ -121,6 +123,10 @@ startElement(void *userData, const char *name, const char **atts)
121123 } else {
122124 if (!strcmp (name ,"instrumentList" ))
123125 info -> in_instrument_list = 1 ;
126+
127+ if (! strcmp (name ,"drumkitComponent" ))
128+ info -> in_drumkit_component = 1 ;
129+
124130 }
125131 } else {
126132 if (!strcmp (name ,"drumkit_info" ))
@@ -135,7 +141,7 @@ endElement(void *userData, const char *name)
135141 if (info -> cur_off == MAX_CHAR_DATA ) info -> cur_off -- ;
136142 info -> cur_buf [info -> cur_off ]= '\0' ;
137143
138- if (info -> in_info && !info -> in_instrument_list && !strcmp (name ,"name" ))
144+ if (info -> in_info && ! info -> in_drumkit_component && ! info -> in_instrument_list && !strcmp (name ,"name" ))
139145 info -> kit_info -> name = strdup (info -> cur_buf );
140146 if (info -> scan_only && info -> in_info && !info -> in_instrument_list && !strcmp (name ,"info" ))
141147 info -> kit_info -> desc = strdup (info -> cur_buf );
@@ -188,6 +194,9 @@ endElement(void *userData, const char *name)
188194 info -> in_instrument = 0 ;
189195 }
190196 if (info -> in_instrument_list && !strcmp (name ,"instrumentList" )) info -> in_instrument_list = 0 ;
197+ if (info -> in_drumkit_component && ! strcmp (name , "drumkitComponent" ))
198+ info -> in_drumkit_component = 0 ;
199+
191200 if (info -> in_info && !strcmp (name ,"drumkit_info" )) info -> in_info = 0 ;
192201}
193202
0 commit comments