File timidity-fix-sndfont-list.diff of Package timidity

---
 timidity/sndfont.c |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

--- a/timidity/sndfont.c
+++ b/timidity/sndfont.c
@@ -226,12 +226,18 @@
 
 static SFInsts *new_soundfont(char *sf_file)
 {
-    SFInsts *sf;
+    SFInsts *sf, *prev;
 
     sf_file = FILENAME_NORMALIZE(sf_file);
-    for(sf = sfrecs; sf != NULL; sf = sf->next)
-	if(sf->fname == NULL)
+    for(prev = NULL, sf = sfrecs; sf != NULL; prev = sf, sf = sf->next)
+	if(sf->fname == NULL) {
+	    if (prev)
+		prev->next = sf->next;
+	    else
+		sfrecs = sf->next;
+	    sf->next = NULL;
 	    break;
+	}
     if(sf == NULL)
 	sf = (SFInsts *)safe_malloc(sizeof(SFInsts));
     memset(sf, 0, sizeof(SFInsts));
openSUSE Build Service is sponsored by