From fb3404e2baf460fefe2df017829db155d966c6e1 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sat, 31 Oct 2009 16:42:08 +0000 Subject: [PATCH] Partial patch to allow loading spare page from command line. It's not working yet but does not introduce regressions instead. Cleaned up version of patch proposed on the issue tracker. git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1122 416bcca6-2ee7-4201-b75f-2eb2f807beb1 --- main.c | 64 ++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 24 deletions(-) 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();