improvements in Load_INI()

This commit is contained in:
Thomas Bernard 2020-05-05 22:18:16 +02:00
parent 002512cc5b
commit eafa5b913c
No known key found for this signature in database
GPG Key ID: 0FF11B67A5C0863C

View File

@ -38,6 +38,8 @@
#include "realpath.h" #include "realpath.h"
#include "io.h" #include "io.h"
#include "windows.h" #include "windows.h"
#include "gfx2log.h"
#include "gfx2mem.h"
/** /**
@ -501,30 +503,27 @@ int Load_INI(T_Config * conf)
conf->Stylus_mode = 0; conf->Stylus_mode = 0;
#endif #endif
// allocate buffer
buffer = (char *)GFX2_malloc(1024);
// On alloue les zones de mémoire: filename = Filepath_append_to_dir(Config_directory, INI_FILENAME);
buffer=(char *)malloc(1024);
filename=(char *)malloc(256);
// On calcule le nom du fichier qu'on manipule:
strcpy(filename,Config_directory);
strcat(filename,INI_FILENAME);
file = fopen(filename, "r"); file = fopen(filename, "r");
if (file==0) if (file == NULL)
{ {
free(filename);
// Si le fichier ini est absent on le relit depuis gfx2def.ini // Si le fichier ini est absent on le relit depuis gfx2def.ini
strcpy(filename,Data_directory); filename = Filepath_append_to_dir(Data_directory, INIDEF_FILENAME);
strcat(filename,INIDEF_FILENAME);
file = fopen(filename, "r"); file = fopen(filename, "r");
if (file == 0) if (file == NULL)
{ {
GFX2_Log(GFX2_ERROR, "Load_INI() cannot open %s\n", filename);
free(filename); free(filename);
free(buffer); free(buffer);
return ERROR_INI_MISSING; return ERROR_INI_MISSING;
} }
} }
GFX2_Log(GFX2_DEBUG, "Load_INI() loading %s\n", filename); GFX2_Log(GFX2_DEBUG, "Load_INI() loading %s\n", filename);
free(filename);
if ((return_code=Load_INI_reach_group(file,buffer,"[MOUSE]"))) if ((return_code=Load_INI_reach_group(file,buffer,"[MOUSE]")))
goto Erreur_Retour; goto Erreur_Retour;
@ -1062,7 +1061,6 @@ int Load_INI(T_Config * conf)
fclose(file); fclose(file);
free(filename);
free(buffer); free(buffer);
return 0; return 0;
@ -1070,14 +1068,12 @@ int Load_INI(T_Config * conf)
Erreur_Retour: Erreur_Retour:
fclose(file); fclose(file);
free(filename);
free(buffer); free(buffer);
return return_code; return return_code;
Erreur_ERREUR_INI_CORROMPU: Erreur_ERREUR_INI_CORROMPU:
fclose(file); fclose(file);
free(filename);
free(buffer); free(buffer);
return ERROR_INI_CORRUPTED; return ERROR_INI_CORRUPTED;
} }