From 2426b5446454b46da974773771aed2c6914c99e4 Mon Sep 17 00:00:00 2001 From: Yves Rizoud Date: Tue, 30 Sep 2008 02:08:57 +0000 Subject: [PATCH] Fixed CEL loader git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@180 416bcca6-2ee7-4201-b75f-2eb2f807beb1 --- loadsave.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/loadsave.c b/loadsave.c index fa7feb55..bc0e3c6a 100644 --- a/loadsave.c +++ b/loadsave.c @@ -3854,14 +3854,18 @@ void Test_CEL(void) Erreur_fichier=0; Nom_fichier_complet(Nom_du_fichier,0); + if (!stat(Nom_du_fichier,&Informations_Fichier)) + { + Erreur_fichier = 1; // Si on ne peut pas faire de stat il vaut mieux laisser tomber + return; + } if ((Fichier=fopen(Nom_du_fichier, "rb"))) { if (read_bytes(Fichier,&Header1,sizeof(T_CEL_Header1))) { // Vu que ce header n'a pas de signature, il va falloir tester la // cohérence de la dimension de l'image avec celle du fichier. - if (!stat(Nom_du_fichier,&Informations_Fichier)) - Erreur_fichier = 1; // Si on ne peut pas faire de stat il vaut mieux laisser tomber + Taille=(Informations_Fichier.st_size)-sizeof(T_CEL_Header1); if ( (!Taille) || ( (((Header1.Width+1)>>1)*Header1.Height)!=Taille ) ) { @@ -3909,11 +3913,12 @@ void Load_CEL(void) Erreur_fichier=0; Nom_fichier_complet(Nom_du_fichier,0); + stat(Nom_du_fichier,&Informations_Fichier); + if ((Fichier=fopen(Nom_du_fichier, "rb"))) { if (read_bytes(Fichier,&Header1,sizeof(T_CEL_Header1))) { - stat(Nom_du_fichier,&Informations_Fichier); Taille_du_fichier=Informations_Fichier.st_size; if ( (Taille_du_fichier>sizeof(T_CEL_Header1)) && ( (((Header1.Width+1)>>1)*Header1.Height)==(Taille_du_fichier-sizeof(T_CEL_Header1)) ) )