| @@ -41,7 +41,7 @@ public: | |||||
| Fl_Flip_Button ( int X, int Y, int W, int H, const char *L = 0 ) : | Fl_Flip_Button ( int X, int Y, int W, int H, const char *L = 0 ) : | ||||
| Fl_Button( X, Y, W, H, 0 ) | Fl_Button( X, Y, W, H, 0 ) | ||||
| { | { | ||||
| sscanf( L, "%a[^/]/%as", &_off, &_on ); | |||||
| sscanf( L, "%m[^/]/%ms", &_off, &_on ); | |||||
| type( FL_TOGGLE_BUTTON ); | type( FL_TOGGLE_BUTTON ); | ||||
| } | } | ||||
| @@ -220,7 +220,7 @@ get_connections_for_ports ( std::vector<Module::Port> ports ) | |||||
| char *strip_name = 0; | char *strip_name = 0; | ||||
| // char *client_name = 0; | // char *client_name = 0; | ||||
| if ( 2 == sscanf( *c, "Non-Mixer.%a[^:/]/%a[^:]:", &client_id, &strip_name ) ) | |||||
| if ( 2 == sscanf( *c, "Non-Mixer.%m[^:/]/%m[^:]:", &client_id, &strip_name ) ) | |||||
| { | { | ||||
| free( client_id ); | free( client_id ); | ||||
| char *s = NULL; | char *s = NULL; | ||||
| @@ -228,7 +228,7 @@ get_connections_for_ports ( std::vector<Module::Port> ports ) | |||||
| free( strip_name ); | free( strip_name ); | ||||
| strip_name = s; | strip_name = s; | ||||
| } | } | ||||
| else if ( 2 == sscanf( *c, "Non-Mixer.%a[^:(] (%a[^:)]):", &client_id, &strip_name ) ) | |||||
| else if ( 2 == sscanf( *c, "Non-Mixer.%m[^:(] (%m[^:)]):", &client_id, &strip_name ) ) | |||||
| { | { | ||||
| free( client_id ); | free( client_id ); | ||||
| char *s = NULL; | char *s = NULL; | ||||
| @@ -236,7 +236,7 @@ get_connections_for_ports ( std::vector<Module::Port> ports ) | |||||
| free( strip_name ); | free( strip_name ); | ||||
| strip_name = s; | strip_name = s; | ||||
| } | } | ||||
| else if ( 2 == sscanf( *c, "Non-Timeline.%a[^:/]:%a[^/]/", &client_id, &strip_name ) ) | |||||
| else if ( 2 == sscanf( *c, "Non-Timeline.%m[^:/]:%m[^/]/", &client_id, &strip_name ) ) | |||||
| { | { | ||||
| free( client_id ); | free( client_id ); | ||||
| char *s = NULL; | char *s = NULL; | ||||
| @@ -244,7 +244,7 @@ get_connections_for_ports ( std::vector<Module::Port> ports ) | |||||
| free( strip_name ); | free( strip_name ); | ||||
| strip_name = s; | strip_name = s; | ||||
| } | } | ||||
| else if ( 2 == sscanf( *c, "Non-DAW.%a[^:/]:%a[^/]/", &client_id, &strip_name ) ) | |||||
| else if ( 2 == sscanf( *c, "Non-DAW.%m[^:/]:%m[^/]/", &client_id, &strip_name ) ) | |||||
| { | { | ||||
| free( client_id ); | free( client_id ); | ||||
| char *s = NULL; | char *s = NULL; | ||||
| @@ -252,7 +252,7 @@ get_connections_for_ports ( std::vector<Module::Port> ports ) | |||||
| free( strip_name ); | free( strip_name ); | ||||
| strip_name = s; | strip_name = s; | ||||
| } | } | ||||
| else if ( 1 == sscanf( *c, "%a[^:]:", &strip_name ) ) | |||||
| else if ( 1 == sscanf( *c, "%m[^:]:", &strip_name ) ) | |||||
| { | { | ||||
| char *s = NULL; | char *s = NULL; | ||||
| asprintf( &s, "@C3%s%s", is_output ? "@r" : "", strip_name ); | asprintf( &s, "@C3%s%s", is_output ? "@r" : "", strip_name ); | ||||
| @@ -663,7 +663,7 @@ JACK_Module::handle ( int m ) | |||||
| char *port_name; | char *port_name; | ||||
| int end; | int end; | ||||
| while ( sscanf( text, "jack.port://%a[^\r\n]\r\n%n", &port_name, &end ) > 0 ) | |||||
| while ( sscanf( text, "jack.port://%m[^\r\n]\r\n%n", &port_name, &end ) > 0 ) | |||||
| { | { | ||||
| DMESSAGE( "Scanning %s", port_name ); | DMESSAGE( "Scanning %s", port_name ); | ||||
| port_names.push_back( port_name ); | port_names.push_back( port_name ); | ||||
| @@ -609,7 +609,7 @@ Mixer::osc_strip_by_number ( const char *path, const char *types, lo_arg **argv, | |||||
| OSC::Endpoint *ep = (OSC::Endpoint*)user_data; | OSC::Endpoint *ep = (OSC::Endpoint*)user_data; | ||||
| if ( 3 != sscanf( path, "%a[^/]/strip#/%d/%a[^\n]", &client_name, &n, &rem ) ) | |||||
| if ( 3 != sscanf( path, "%m[^/]/strip#/%d/%m[^\n]", &client_name, &n, &rem ) ) | |||||
| return -1; | return -1; | ||||
| Mixer_Strip *o = mixer->track_by_number( n ); | Mixer_Strip *o = mixer->track_by_number( n ); | ||||
| @@ -647,7 +647,7 @@ Mixer::load_translations ( void ) | |||||
| char *to; | char *to; | ||||
| char *from; | char *from; | ||||
| while ( 2 == fscanf( fp, "%a[^|> ] |> %a[^ \n]\n", &from, &to ) ) | |||||
| while ( 2 == fscanf( fp, "%m[^|> ] |> %m[^ \n]\n", &from, &to ) ) | |||||
| { | { | ||||
| osc_endpoint->add_translation( from, to ); | osc_endpoint->add_translation( from, to ); | ||||
| free(from); | free(from); | ||||
| @@ -1087,7 +1087,7 @@ Mixer::handle ( int m ) | |||||
| char *file; | char *file; | ||||
| if ( ! sscanf( text, "file://%a[^\r\n]\n", &file ) ) | |||||
| if ( ! sscanf( text, "file://%m[^\r\n]\n", &file ) ) | |||||
| { | { | ||||
| WARNING( "invalid drop \"%s\"\n", text ); | WARNING( "invalid drop \"%s\"\n", text ); | ||||
| return 0; | return 0; | ||||
| @@ -301,7 +301,7 @@ Module::Port::osc_number_path ( void ) | |||||
| char *client_name; | char *client_name; | ||||
| char *strip_name; | char *strip_name; | ||||
| if ( 3 != sscanf( _scaled_signal->path(), "%a[^/]/strip/%a[^/]/%a[^\n]", &client_name, &strip_name, &rem ) ) | |||||
| if ( 3 != sscanf( _scaled_signal->path(), "%m[^/]/strip/%m[^/]/%m[^\n]", &client_name, &strip_name, &rem ) ) | |||||
| return NULL; | return NULL; | ||||
| free( strip_name ); | free( strip_name ); | ||||
| @@ -285,7 +285,7 @@ Plugin_Chooser::load_favorites ( void ) | |||||
| char *type; | char *type; | ||||
| int favorites = 0; | int favorites = 0; | ||||
| while ( 2 == fscanf( fp, "%a[^:]:%lu\n", &type, &id ) ) | |||||
| while ( 2 == fscanf( fp, "%m[^:]:%lu\n", &type, &id ) ) | |||||
| { | { | ||||
| for ( std::list<Plugin_Module::Plugin_Info>::iterator i = _plugins.begin(); | for ( std::list<Plugin_Module::Plugin_Info>::iterator i = _plugins.begin(); | ||||
| i != _plugins.end(); | i != _plugins.end(); | ||||
| @@ -141,7 +141,7 @@ Project::read_info ( int *version, char **creation_date, char **created_by ) | |||||
| char *name, *value; | char *name, *value; | ||||
| while ( fscanf( fp, "%a[^\n]\n\t%a[^\n]\n", &name, &value ) == 2 ) | |||||
| while ( fscanf( fp, "%m[^\n]\n\t%m[^\n]\n", &name, &value ) == 2 ) | |||||
| { | { | ||||
| MESSAGE( "Info: %s = %s", name, value ); | MESSAGE( "Info: %s = %s", name, value ); | ||||
| @@ -313,7 +313,7 @@ public: | |||||
| char *opcode; | char *opcode; | ||||
| int control; | int control; | ||||
| if ( 3 == sscanf( s, "%as %d %d", &opcode, &channel, &control ) ) | |||||
| if ( 3 == sscanf( s, "%ms %d %d", &opcode, &channel, &control ) ) | |||||
| { | { | ||||
| event.channel( channel ); | event.channel( channel ); | ||||
| event.opcode( MIDI::midievent::CONTROL_CHANGE ); | event.opcode( MIDI::midievent::CONTROL_CHANGE ); | ||||
| @@ -451,7 +451,7 @@ load_settings ( void ) | |||||
| char *signal_name; | char *signal_name; | ||||
| char *midi_event; | char *midi_event; | ||||
| while ( 2 == fscanf( fp, "[%a[^]]] %a[^\n]\n", &midi_event, &signal_name ) ) | |||||
| while ( 2 == fscanf( fp, "[%m[^]]] %m[^\n]\n", &midi_event, &signal_name ) ) | |||||
| { | { | ||||
| DMESSAGE( "%s, %s", midi_event, signal_name ); | DMESSAGE( "%s, %s", midi_event, signal_name ); | ||||
| @@ -179,7 +179,7 @@ Loggable::load_unjournaled_state ( void ) | |||||
| unsigned int id; | unsigned int id; | ||||
| char *buf; | char *buf; | ||||
| while ( fscanf( fp, "%X set %a[^\n]\n", &id, &buf ) == 2 ) | |||||
| while ( fscanf( fp, "%X set %m[^\n]\n", &id, &buf ) == 2 ) | |||||
| { | { | ||||
| _loggables[ id ].unjournaled_state = new Log_Entry( buf ); | _loggables[ id ].unjournaled_state = new Log_Entry( buf ); | ||||
| free(buf); | free(buf); | ||||
| @@ -224,7 +224,7 @@ Loggable::replay ( FILE *fp ) | |||||
| if ( _progress_callback ) | if ( _progress_callback ) | ||||
| _progress_callback( 0, _progress_callback_arg ); | _progress_callback( 0, _progress_callback_arg ); | ||||
| while ( fscanf( fp, "%a[^\n]\n", &buf ) == 1 ) | |||||
| while ( fscanf( fp, "%m[^\n]\n", &buf ) == 1 ) | |||||
| { | { | ||||
| if ( ! ( ! strcmp( buf, "{" ) || ! strcmp( buf, "}" ) ) ) | if ( ! ( ! strcmp( buf, "{" ) || ! strcmp( buf, "}" ) ) ) | ||||
| { | { | ||||
| @@ -408,8 +408,8 @@ Loggable::do_this ( const char *s, bool reverse ) | |||||
| if ( reverse ) | if ( reverse ) | ||||
| { | { | ||||
| // sscanf( s, "%s %*X %s %*[^\n<]<< %a[^\n]", classname, command, &arguments ); | |||||
| sscanf( s, "%s %*X %s%*[^\n<]<< %a[^\n]", classname, command, &arguments ); | |||||
| // sscanf( s, "%s %*X %s %*[^\n<]<< %m[^\n]", classname, command, &arguments ); | |||||
| sscanf( s, "%s %*X %s%*[^\n<]<< %m[^\n]", classname, command, &arguments ); | |||||
| create = "destroy"; | create = "destroy"; | ||||
| destroy = "create"; | destroy = "create"; | ||||
| @@ -417,7 +417,7 @@ Loggable::do_this ( const char *s, bool reverse ) | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| sscanf( s, "%s %*X %s %a[^\n<]", classname, command, &arguments ); | |||||
| sscanf( s, "%s %*X %s %m[^\n<]", classname, command, &arguments ); | |||||
| create = "create"; | create = "create"; | ||||
| destroy = "destroy"; | destroy = "destroy"; | ||||
| } | } | ||||
| @@ -744,7 +744,7 @@ smf::read_phrase_info ( phrase *p ) | |||||
| char *s; | char *s; | ||||
| if ( 1 != sscanf( data, "Non: xywh=%a[0-9:]", | |||||
| if ( 1 != sscanf( data, "Non: xywh=%m[0-9:]", | |||||
| &s ) ) | &s ) ) | ||||
| WARNING( "Invalid phrase info event" ); | WARNING( "Invalid phrase info event" ); | ||||
| else | else | ||||
| @@ -863,7 +863,7 @@ smf::read_pattern_info ( pattern *p ) | |||||
| int ppqn, key, note, mode; | int ppqn, key, note, mode; | ||||
| char *s; | char *s; | ||||
| if ( 5 != sscanf( data, "Non: xywh=%a[0-9:], ppqn=%d, key=%d, note=%d, mode=%d", | |||||
| if ( 5 != sscanf( data, "Non: xywh=%m[0-9:], ppqn=%d, key=%d, note=%d, mode=%d", | |||||
| &s, &ppqn, &key, ¬e, &mode ) ) | &s, &ppqn, &key, ¬e, &mode ) ) | ||||
| WARNING( "Invalid pattern info event" ); | WARNING( "Invalid pattern info event" ); | ||||
| else | else | ||||
| @@ -152,7 +152,7 @@ process_patch ( const char *patch ) | |||||
| int retval; | int retval; | ||||
| retval = sscanf( patch, " %a[^:]:%a[^|] |%1[<>|] %a[^:]:%a[^\n]", | |||||
| retval = sscanf( patch, " %m[^:]:%m[^|] |%1[<>|] %m[^:]:%m[^\n]", | |||||
| &leftc, &leftp, dir, &rightc, &rightp ); | &leftc, &leftp, dir, &rightc, &rightp ); | ||||
| if ( retval == EOF ) | if ( retval == EOF ) | ||||
| @@ -254,7 +254,7 @@ public: | |||||
| MESSAGE( "Loading file config \"%s\"", path ); | MESSAGE( "Loading file config \"%s\"", path ); | ||||
| while ( 2 == fscanf( fp, "%a[^\n]\n\t%a[^\n]\n", &name, &value ) ) | |||||
| while ( 2 == fscanf( fp, "%m[^\n]\n\t%m[^\n]\n", &name, &value ) ) | |||||
| { | { | ||||
| DMESSAGE( "%s=%s", name, value ); | DMESSAGE( "%s=%s", name, value ); | ||||
| @@ -1222,7 +1222,7 @@ load_session_file ( const char * path ) | |||||
| char * client_id = NULL; | char * client_id = NULL; | ||||
| // load the client list | // load the client list | ||||
| while ( fscanf( fp, "%a[^:]:%a[^:]:%a[^:\n]\n", &client_name, &client_executable, &client_id ) > 0 ) | |||||
| while ( fscanf( fp, "%m[^:]:%m[^:]:%m[^:\n]\n", &client_name, &client_executable, &client_id ) > 0 ) | |||||
| { | { | ||||
| Client *c = new Client(); | Client *c = new Client(); | ||||
| @@ -152,7 +152,7 @@ Project::read_info ( int *version, nframes_t *sample_rate, char **creation_date, | |||||
| char *name, *value; | char *name, *value; | ||||
| while ( fscanf( fp, "%a[^\n]\n\t%a[^\n]\n", &name, &value ) == 2 ) | |||||
| while ( fscanf( fp, "%m[^\n]\n\t%m[^\n]\n", &name, &value ) == 2 ) | |||||
| { | { | ||||
| MESSAGE( "Info: %s = %s", name, value ); | MESSAGE( "Info: %s = %s", name, value ); | ||||
| @@ -1194,7 +1194,7 @@ Track::handle ( int m ) | |||||
| char *port_name; | char *port_name; | ||||
| int end; | int end; | ||||
| while ( sscanf( text, "jack.port://%a[^\r\n]\r\n%n", &port_name, &end ) > 0 ) | |||||
| while ( sscanf( text, "jack.port://%m[^\r\n]\r\n%n", &port_name, &end ) > 0 ) | |||||
| { | { | ||||
| DMESSAGE( "Scanning %s", port_name ); | DMESSAGE( "Scanning %s", port_name ); | ||||
| port_names.push_back( port_name ); | port_names.push_back( port_name ); | ||||