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));