SMF: fix breakage when instrument names contain spaces.

pull/3/head
Jonathan Moore Liles 2008-04-10 19:08:13 -05:00
parent 047a003df1
commit 4f186d9acb
1 changed files with 8 additions and 4 deletions

12
smf.C
View File

@ -805,23 +805,27 @@ smf::read_pattern_info ( pattern *p )
name_set = true;
break;
case smf::INSTRUMENT:
// FIXME: decode mapping;
{
char *s = read_text();
char pat[256];
if ( 1 == sscanf( s, "Instrument: %s", pat ) )
if ( 1 == sscanf( s, "Instrument: %[^\n]", pat ) )
{
if ( ! p->mapping.open( Mapping::INSTRUMENT, pat ) )
{
p->mapping.open( Mapping::SCALE, "Chromatic" );
WARNING( "could not find instrument \"%s\"", pat );
}
}
else
if ( 1 == sscanf( s, "Scale: %s", pat ) )
if ( 1 == sscanf( s, "Scale: %[^\n]", pat ) )
{
if ( ! p->mapping.open( Mapping::SCALE, pat ) )
{
p->mapping.open( Mapping::SCALE, "Chromatic" );
WARNING( "could not find scale \"%s\"", pat );
}
}
break;
}