@@ -110,6 +110,13 @@ static char* config_file_string[5];
110110static char output_file_name [30 ];
111111static char output_file_directory [255 ];
112112static char input_file_directory [255 ];
113+ static const char * default_directory = NULL ;
114+ static int using_default_directory [2 ];
115+ enum
116+ {
117+ INPUT_DIR ,
118+ OUTPUT_DIR
119+ };
113120
114121static void clear_stdin ();
115122static int selected_option ();
@@ -201,10 +208,19 @@ static int load_input_files()
201208{
202209 long i ;
203210
211+ using_default_directory [INPUT_DIR ] = 0 ;
204212 if (!SetCurrentDirectory (input_file_directory ))
205213 {
206- printf ("\nBefore creating an autoexec file, you must first specify a valid input directory." );
207- return 0 ;
214+ if (input_file_directory [0 ])
215+ printf ("\nThe program was unable to set the input directory to: %s" , input_file_directory );
216+ if ((!default_directory || !SetCurrentDirectory (default_directory )))
217+ {
218+ if (default_directory && default_directory [0 ])
219+ printf ("\nThe program was unable to set the input directory to: %s" , default_directory );
220+ printf ("\nBefore creating an autoexec file, you must first specify a valid input directory." );
221+ return 0 ;
222+ }
223+ using_default_directory [INPUT_DIR ] = 1 ;
208224 }
209225
210226 for (i = 0 ; i < 4 ; i ++ )
@@ -235,10 +251,19 @@ static int create_autoexec_file(FILE** autoexec)
235251{
236252 int default_name = 0 ;
237253
254+ using_default_directory [OUTPUT_DIR ] = 0 ;
238255 if (!SetCurrentDirectory (output_file_directory ))
239256 {
240- printf ("\nBefore creating an autoexec file, you must first specify a valid output directory." );
241- return 0 ;
257+ if (output_file_directory [0 ])
258+ printf ("\nThe program was unable to set the output directory to: %s" , output_file_directory );
259+ if ((!default_directory || !SetCurrentDirectory (default_directory )))
260+ {
261+ if (default_directory && default_directory [0 ])
262+ printf ("\nThe program was unable to set the output directory to: %s" , default_directory );
263+ printf ("\nBefore creating an autoexec file, you must first specify a valid output directory." );
264+ return 0 ;
265+ }
266+ using_default_directory [OUTPUT_DIR ] = 1 ;
242267 }
243268 * autoexec = fopen (output_file_name , "wb" );
244269
@@ -257,7 +282,7 @@ static int create_autoexec_file(FILE** autoexec)
257282 return 0 ;
258283 }
259284
260- printf ("\nAutoexec file \"%s\" created in:\n\t%s" , (default_name ) ? default_output_file_name : output_file_name , output_file_directory );
285+ printf ("\nAutoexec file \"%s\" created in:\n\t%s" , (default_name ) ? default_output_file_name : output_file_name , ( using_default_directory [ OUTPUT_DIR ]) ? default_directory : output_file_directory );
261286 return 1 ;
262287}
263288
@@ -276,6 +301,11 @@ void print_menu(int menu_index)
276301 fflush (stdout );
277302}
278303
304+ void change_default_directory (const char * directory )
305+ {
306+ default_directory = directory ;
307+ }
308+
279309int main_menu ()
280310{
281311 int option = selected_option ();
0 commit comments