File tree 1 file changed +12
-7
lines changed
1 file changed +12
-7
lines changed Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ main (int argc, char *argv[])
26
26
int channels = 2 ;
27
27
int volume = 100 ;
28
28
FILE * output = stdout ;
29
+ const char * outname = NULL ;
29
30
char * cfgfile = NULL ;
30
31
int arg ;
31
32
MidIStream * stream ;
@@ -79,12 +80,7 @@ main (int argc, char *argv[])
79
80
else if (!strcmp (argv [arg ], "-o" ))
80
81
{
81
82
if (++ arg >= argc ) break ;
82
- output = fopen (argv [arg ], "wb" );
83
- if (output == NULL )
84
- {
85
- fprintf (stderr , "Could not open output file %s\n" , argv [arg ]);
86
- return 1 ;
87
- }
83
+ outname = argv [arg ];
88
84
}
89
85
else if (!strcmp (argv [arg ], "-cfg" ))
90
86
{
@@ -150,6 +146,15 @@ main (int argc, char *argv[])
150
146
return 1 ;
151
147
}
152
148
149
+ if (outname && !(output = fopen (outname , "wb" )))
150
+ {
151
+ fprintf (stderr , "Could not open output file %s\n" , outname );
152
+ mid_song_free (song );
153
+ mid_exit ();
154
+ free (cfgfile );
155
+ return 1 ;
156
+ }
157
+
153
158
mid_song_set_volume (song , volume );
154
159
mid_song_start (song );
155
160
@@ -159,7 +164,7 @@ main (int argc, char *argv[])
159
164
mid_song_free (song );
160
165
mid_exit ();
161
166
free (cfgfile );
162
- fclose (output );
167
+ if ( outname ) fclose (output );
163
168
164
169
return 0 ;
165
170
}
You can’t perform that action at this time.
0 commit comments