diff --git a/main.c b/main.c index 3ab7d50a..efc43569 100644 --- a/main.c +++ b/main.c @@ -173,18 +173,18 @@ void Error_function(int error_code, const char *filename, int line_number, const } // --------------------- Analyse de la ligne de commande --------------------- -void Analyze_command_line(int argc,char * argv[]) +void Analyze_command_line(int argc, char * argv[]) { char *buffer ; int index; - File_in_command_line=0; - Resolution_in_command_line=0; + File_in_command_line = 0; + Resolution_in_command_line = 0; - Current_resolution=Config.Default_resolution; + Current_resolution = Config.Default_resolution; - for (index=1; index 1) { - // plusieurs noms de fichier en argument + // Il y a déjà 2 noms de fichiers et on vient d'en trouver un 3ème Error(ERROR_COMMAND_LINE); Display_syntax(); exit(0); } else if (File_exists(argv[index])) { - File_in_command_line=1; + File_in_command_line ++; + buffer = Realpath(argv[index], NULL); - // On récupère le chemin complet du paramètre - // Et on découpe ce chemin en répertoire(path) + fichier(.ext) - buffer=Realpath(argv[index],NULL); - Extract_path(Main_file_directory, buffer); - Extract_filename(Main_filename, buffer); - free(buffer); - chdir(Main_file_directory); + if (File_in_command_line == 1) + { + // Separate path from filename + Extract_path(Main_file_directory, buffer); + Extract_filename(Main_filename, buffer); + DEBUG(Main_filename, 0); + free(buffer); + } else { + Extract_path(Spare_file_directory, buffer); + Extract_filename(Spare_filename, buffer); + DEBUG(Spare_filename, 1); + free(buffer); + } } else { @@ -548,7 +555,7 @@ int Init_program(int argc,char * argv[]) if (temp) Error(temp); - Analyze_command_line(argc,argv); + Analyze_command_line(argc, argv); Current_help_section=0; Help_position=0; @@ -650,7 +657,7 @@ int Init_program(int argc,char * argv[]) // Brouillon_* et pas les infos contenues dans la page de brouillon // elle-même ne m'inspire pas confiance mais ça a l'air de marcher sans // poser de problèmes, alors... - if (File_in_command_line) + if (File_in_command_line == 1) { strcpy(Spare_file_directory,Spare_current_directory); strcpy(Spare_filename,"NO_NAME.GIF"); @@ -808,11 +815,20 @@ int main(int argc,char * argv[]) if (Config.Opening_message && (!File_in_command_line)) Button_Message_initial(); - if (File_in_command_line) + switch (File_in_command_line) { - Button_Reload(); - Resolution_in_command_line=0; - } + case 2: + Button_Reload(); + DEBUG(Main_filename, 0); + DEBUG(Spare_filename, 0); + Button_Page(); + // no break ! proceed with the other file now + case 1: + Button_Reload(); + Resolution_in_command_line = 0; + default: + break; + } } Main_handler();