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
This commit is contained in:
parent
036d8008cb
commit
fb3404e2ba
62
main.c
62
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<argc; index++)
|
||||
for (index = 1; index<argc; index++)
|
||||
{
|
||||
if ( !strcmp(argv[index],"/?") ||
|
||||
!strcmp(argv[index],"/h") ||
|
||||
@ -201,7 +201,7 @@ void Analyze_command_line(int argc,char * argv[])
|
||||
if (index<argc)
|
||||
{
|
||||
Resolution_in_command_line = 1;
|
||||
Current_resolution=Convert_videomode_arg(argv[index]);
|
||||
Current_resolution = Convert_videomode_arg(argv[index]);
|
||||
if (Current_resolution == -1)
|
||||
{
|
||||
Error(ERROR_COMMAND_LINE);
|
||||
@ -278,7 +278,7 @@ void Analyze_command_line(int argc,char * argv[])
|
||||
index++;
|
||||
if (index<argc)
|
||||
{
|
||||
strcpy(Gui_skin_file,argv[index]);
|
||||
strcpy(Gui_skin_file, argv[index]);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -290,24 +290,31 @@ void Analyze_command_line(int argc,char * argv[])
|
||||
else
|
||||
{
|
||||
// Si ce n'est pas un paramètre, c'est le nom du fichier à ouvrir
|
||||
if (File_in_command_line)
|
||||
if (File_in_command_line > 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();
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user