From c0125860d3c267fa8dbb03eaafd665ccceed90bf Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Tue, 29 Jul 2008 09:26:31 +0000 Subject: [PATCH] Use fopen/fread instead of open/read for config file. That's the way things should be done. git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@68 416bcca6-2ee7-4201-b75f-2eb2f807beb1 --- init.c | 74 +-- windows-watcom/grafx2.tgt | 1137 +++++++++++++++++++++++-------------- windows-watcom/grafx2.wpj | 4 +- 3 files changed, 752 insertions(+), 463 deletions(-) diff --git a/init.c b/init.c index 33ddbfe7..2331db21 100644 --- a/init.c +++ b/init.c @@ -19,28 +19,27 @@ #include #include #include "divers.h" +#include "erreurs.h" #include "errno.h" #ifdef __linux__ #include #include +#elif __WATCOMC__ + #include #endif -// On déclare méchamment le prototype de Erreur pour éviter de faire un -// fichier "main.h": -void Erreur(int Code); - // Chercher le répertoire contenant GFX2.EXE void Chercher_repertoire_du_programme(char * Chaine) { - /*int Position; - - strcpy(Repertoire_du_programme,Chaine); - for (Position=strlen(Repertoire_du_programme);Repertoire_du_programme[Position]!='/';Position--); //sous linux c'est un /, sous windows c'est \\ - Repertoire_du_programme[Position+1]='\0';*/ - puts("Chercher_repertoire_du_programme: implémentation incomplète"); - Repertoire_du_programme[0]=0; //On va travailler dans le dossier courant ... + #ifdef __WATCOMC__ + GetCurrentDirectory(255,Repertoire_du_programme); + strcat(Repertoire_du_programme,"\\"); + #elif __linux__ + puts("Chercher_repertoire_du_programme: implémentation incomplète"); + Repertoire_du_programme[0]=0; //On va travailler dans le dossier courant ... + #endif } @@ -198,8 +197,8 @@ void Rechercher_drives(void) Ajouter_lecteur(Lecteur,DRIVE_NETWORK); } */ -//Sous linux, il n'y a pas de lecteurs, on va juste mettre un disque dur qui pointera vers la racine -Ajouter_lecteur(0,DRIVE_HDD); //Le lecteur numéro 0 est un disque dur. + //Sous linux, il n'y a pas de lecteurs, on va juste mettre un disque dur qui pointera vers la racine + Ajouter_lecteur(0,DRIVE_HDD); //Le lecteur numéro 0 est un disque dur. } @@ -207,7 +206,7 @@ Ajouter_lecteur(0,DRIVE_HDD); //Le lecteur num #define DECRYPT_TAILLE_CLE 14 byte Decrypt_compteur=0; - char Decrypt_cle[DECRYPT_TAILLE_CLE]="Sunset Design"; + const char Decrypt_cle[DECRYPT_TAILLE_CLE]="Sunset Design"; byte Decrypt(byte Octet) { @@ -232,7 +231,7 @@ void Decrypte(byte * Donnee,int Taille) void Charger_DAT(void) { - int Handle; + FILE* Handle; int Taille_fichier; int Indice; char Nom_du_fichier[256]; @@ -260,54 +259,61 @@ void Charger_DAT(void) case ELOOP: puts("Trop de liens symboliques rencontrés dans le chemin d'accès."); break; #endif } + Taille_fichier=Informations_Fichier.st_size; if (Taille_fichier!=TAILLE_FICHIER_DATA) + { + DEBUG("Taille",0); Erreur(ERREUR_DAT_CORROMPU); + } - Handle=open(Nom_du_fichier,O_RDONLY); - if (Handle==-1) - Erreur(ERREUR_DAT_ABSENT); + Handle=fopen(Nom_du_fichier,"rb"); + if (Handle==NULL) + { + DEBUG("Absent",0); + Erreur(ERREUR_DAT_ABSENT); + } - if (read(Handle,Palette_defaut,sizeof(T_Palette))!=sizeof(T_Palette)) + if (fread(Palette_defaut,1,sizeof(T_Palette),Handle)!=sizeof(T_Palette)) Erreur(ERREUR_DAT_CORROMPU); Decrypte((byte *)Palette_defaut,sizeof(T_Palette)); - if (read(Handle,BLOCK_MENU,LARGEUR_MENU*HAUTEUR_MENU)!=LARGEUR_MENU*HAUTEUR_MENU) + if (fread(BLOCK_MENU,1,LARGEUR_MENU*HAUTEUR_MENU,Handle)!=LARGEUR_MENU*HAUTEUR_MENU) Erreur(ERREUR_DAT_CORROMPU); Decrypte((byte *)BLOCK_MENU,LARGEUR_MENU*HAUTEUR_MENU); - if (read(Handle,SPRITE_EFFET,LARGEUR_SPRITE_MENU*HAUTEUR_SPRITE_MENU*NB_SPRITES_EFFETS)!= + if (fread(SPRITE_EFFET,1,LARGEUR_SPRITE_MENU*HAUTEUR_SPRITE_MENU*NB_SPRITES_EFFETS,Handle)!= LARGEUR_SPRITE_MENU*HAUTEUR_SPRITE_MENU*NB_SPRITES_EFFETS) Erreur(ERREUR_DAT_CORROMPU); Decrypte((byte *)SPRITE_EFFET,LARGEUR_SPRITE_MENU*HAUTEUR_SPRITE_MENU*NB_SPRITES_EFFETS); - if (read(Handle,SPRITE_CURSEUR,LARGEUR_SPRITE_CURSEUR*HAUTEUR_SPRITE_CURSEUR*NB_SPRITES_CURSEUR)!= + if (fread(SPRITE_CURSEUR,1,LARGEUR_SPRITE_CURSEUR*HAUTEUR_SPRITE_CURSEUR*NB_SPRITES_CURSEUR,Handle)!= LARGEUR_SPRITE_CURSEUR*HAUTEUR_SPRITE_CURSEUR*NB_SPRITES_CURSEUR) Erreur(ERREUR_DAT_CORROMPU); Decrypte((byte *)SPRITE_CURSEUR,LARGEUR_SPRITE_CURSEUR*HAUTEUR_SPRITE_CURSEUR*NB_SPRITES_CURSEUR); - if (read(Handle,SPRITE_MENU,LARGEUR_SPRITE_MENU*HAUTEUR_SPRITE_MENU*NB_SPRITES_MENU)!= + if (fread(SPRITE_MENU,1,LARGEUR_SPRITE_MENU*HAUTEUR_SPRITE_MENU*NB_SPRITES_MENU,Handle)!= LARGEUR_SPRITE_MENU*HAUTEUR_SPRITE_MENU*NB_SPRITES_MENU) Erreur(ERREUR_DAT_CORROMPU); Decrypte((byte *)SPRITE_MENU,LARGEUR_SPRITE_MENU*HAUTEUR_SPRITE_MENU*NB_SPRITES_MENU); - if (read(Handle,SPRITE_PINCEAU,LARGEUR_PINCEAU*HAUTEUR_PINCEAU*NB_SPRITES_PINCEAU)!= + if (fread(SPRITE_PINCEAU,1,LARGEUR_PINCEAU*HAUTEUR_PINCEAU*NB_SPRITES_PINCEAU,Handle)!= LARGEUR_PINCEAU*HAUTEUR_PINCEAU*NB_SPRITES_PINCEAU) Erreur(ERREUR_DAT_CORROMPU); Decrypte((byte *)SPRITE_PINCEAU,LARGEUR_PINCEAU*HAUTEUR_PINCEAU*NB_SPRITES_PINCEAU); - if (read(Handle,SPRITE_DRIVE,LARGEUR_SPRITE_DRIVE*HAUTEUR_SPRITE_DRIVE*NB_SPRITES_DRIVES)!= + if (fread(SPRITE_DRIVE,1,LARGEUR_SPRITE_DRIVE*HAUTEUR_SPRITE_DRIVE*NB_SPRITES_DRIVES,Handle)!= LARGEUR_SPRITE_DRIVE*HAUTEUR_SPRITE_DRIVE*NB_SPRITES_DRIVES) Erreur(ERREUR_DAT_CORROMPU); Decrypte((byte *)SPRITE_DRIVE,LARGEUR_SPRITE_DRIVE*HAUTEUR_SPRITE_DRIVE*NB_SPRITES_DRIVES); if (!(Logo_GrafX2=(byte *)malloc(231*56))) Erreur(ERREUR_MEMOIRE); - if (read(Handle,Logo_GrafX2,231*56)!=(231*56)) + if (fread(Logo_GrafX2,1,231*56,Handle)!=(231*56)) Erreur(ERREUR_DAT_CORROMPU); Decrypte(Logo_GrafX2,231*56); - if (read(Handle,TRAME_PREDEFINIE,2*16*NB_TRAMES_PREDEFINIES)!=2*16*NB_TRAMES_PREDEFINIES) + if (fread(TRAME_PREDEFINIE,1,2*16*NB_TRAMES_PREDEFINIES,Handle)!=2*16*NB_TRAMES_PREDEFINIES) Erreur(ERREUR_DAT_CORROMPU); Decrypte((byte *)TRAME_PREDEFINIE,2*16*NB_TRAMES_PREDEFINIES); @@ -316,7 +322,7 @@ void Charger_DAT(void) Erreur(ERREUR_MEMOIRE); // Lecture de la fonte systŠme - if (read(Handle,Fonte_temporaire,2048)!=2048) + if (fread(Fonte_temporaire,1,2048,Handle)!=2048) Erreur(ERREUR_DAT_CORROMPU); Decrypte(Fonte_temporaire,2048); for (Indice=0;Indice<256;Indice++) @@ -325,7 +331,7 @@ void Charger_DAT(void) Fonte_systeme[(Indice<<6)+(Pos_X<<3)+Pos_Y]=( ((*(Fonte_temporaire+(Indice*8)+Pos_Y))&(0x80>>Pos_X)) ? 1 : 0); // Lecture de la fonte alternative - if (read(Handle,Fonte_temporaire,2048)!=2048) + if (fread(Fonte_temporaire,1,2048,Handle)!=2048) Erreur(ERREUR_DAT_CORROMPU); Decrypte(Fonte_temporaire,2048); for (Indice=0;Indice<256;Indice++) @@ -338,7 +344,7 @@ void Charger_DAT(void) Fonte=Fonte_systeme; // Lecture de la fonte 6x8: (spéciale aide) - if (read(Handle,Fonte_help,(315*6*8))!=(315*6*8)) + if (fread(Fonte_help,1,315*6*8,Handle)!=(315*6*8)) Erreur(ERREUR_DAT_CORROMPU); Decrypte((byte*)Fonte_help,(315*6*8)); @@ -348,7 +354,7 @@ void Charger_DAT(void) for (Indice=0;Indice