From 48fca5ceb30b166e8b31fd005cfe7dc7c723e61b Mon Sep 17 00:00:00 2001 From: Yves Rizoud Date: Sat, 27 Sep 2008 20:17:00 +0000 Subject: [PATCH] When gfx2.ini is missing, default values are now taken from gfx2.dat. Removed a custom toupper() function. git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@174 416bcca6-2ee7-4201-b75f-2eb2f807beb1 --- Makefile.dep | 5 +- const.h | 2 +- files.h | 18 +- gfx2.dat | Bin 78544 -> 78544 bytes gfx2.ini | 340 +++++++++++++++--------------- init.c | 3 +- main.c | 3 +- readini.c | 578 +++++++++++++++++++++++++-------------------------- saveini.c | 460 ++++++++++++++++++++-------------------- 9 files changed, 699 insertions(+), 710 deletions(-) diff --git a/Makefile.dep b/Makefile.dep index 34c36ec0..d92fe1ed 100644 --- a/Makefile.dep +++ b/Makefile.dep @@ -8,7 +8,7 @@ graph.o: graph.c sdlscreen.h struct.h const.h graph.h divers.h moteur.h \ sdlscreen.o: sdlscreen.c global.h struct.h const.h loadsave.h sdlscreen.h \ divers.h erreurs.h divers.o: divers.c struct.h const.h sdlscreen.h global.h loadsave.h \ - graph.h erreurs.h boutons.h moteur.h divers.h + graph.h erreurs.h boutons.h moteur.h divers.h clavier.h special.o: special.c const.h struct.h global.h loadsave.h graph.h \ moteur.h boutons.o: boutons.c const.h struct.h global.h loadsave.h divers.h \ @@ -34,7 +34,8 @@ op_c.o: op_c.c op_c.h struct.h const.h op_asm.h erreurs.h linux.o: linux.c op_asm.o: op_asm.c op_c.h struct.h const.h graph.h readini.o: readini.c const.h global.h struct.h loadsave.h -saveini.o: saveini.c const.h global.h struct.h loadsave.h readini.h +saveini.o: saveini.c const.h global.h struct.h loadsave.h readini.h \ + files.h erreurs.h shade.o: shade.c global.h struct.h const.h loadsave.h graph.h moteur.h \ divers.h readline.h clavier.o: clavier.c global.h struct.h const.h loadsave.h diff --git a/const.h b/const.h index 5e4ad70a..7968db36 100644 --- a/const.h +++ b/const.h @@ -15,6 +15,7 @@ #define BETA2 0 // | #define ALPHA_BETA "ß" // Type de la version "Þ" ou "ß" #define TAILLE_FICHIER_CONFIG 10351 // Taille du fichier GFX2.CFG +#define DAT_DEBUT_INI_PAR_DEFAUT 0xF385 // Dans gfx2.dat, début du fichier gfx2.ini standard #define NB_MODES_VIDEO 60 // Nombre de modes vidéo #define NB_BOUTONS 38 // Nombre de boutons à gérer #define NB_TOUCHES 134 // Nombre de combinaisons de touches @@ -104,7 +105,6 @@ enum CODES_D_ERREURS ERREUR_NUMERO_MODE, // Erreur de choix de mode sur la ligne de commande ERREUR_SAUVEGARDE_CFG, // Erreur en écriture pour GFX2.CFG ERREUR_REPERTOIRE_DISPARU, // Le répertoire de lancement n'existe plus - ERREUR_INI_ABSENT, // Le fichier GFX2.INI est absent ERREUR_INI_CORROMPU, // Le fichier GFX2.INI est corrompu ERREUR_SAUVEGARDE_INI, // Le fichier GFX2.INI n'est pas inscriptible ERREUR_SORRY_SORRY_SORRY // On le refera plus, promis diff --git a/files.h b/files.h index e8da20e8..95b36e57 100644 --- a/files.h +++ b/files.h @@ -1,25 +1,25 @@ // Modifie Principal_Repertoire_courant en y mettant sa nouvelle valeur // (avec le nom du disque) int Determiner_repertoire_courant(void); -// D‚termine si un r‚pertoire pass‚ en paramŠtre existe ou non dans le -// r‚pertoire courant. +// Détermine si un répertoire passé en paramètre existe ou non dans le +// répertoire courant. int Repertoire_existe(char * Repertoire); -// D‚termine si un fichier pass‚ en paramŠtre existe ou non dans le -// r‚pertoire courant. +// Détermine si un fichier passé en paramètre existe ou non dans le +// répertoire courant. int Fichier_existe(char * Fichier); -// -- Destruction de la liste chaŒn‚e --------------------------------------- +// -- Destruction de la liste chaînée --------------------------------------- void Detruire_liste_du_fileselect(void); // -- Lecture d'une liste de fichiers --------------------------------------- void Lire_liste_des_fichiers(byte Format_demande); -// -- Tri de la liste des fichiers et r‚pertoires --------------------------- +// -- Tri de la liste des fichiers et répertoires --------------------------- void Trier_la_liste_des_fichiers(void); -// -- Affichage des ‚l‚ments de la liste de fichier / r‚pertoire ------------ +// -- Affichage des éléments de la liste de fichier / répertoire ------------ void Afficher_la_liste_des_fichiers(short Decalage_premier,short Decalage_select); -// -- R‚cup‚rer le libell‚ d'un ‚l‚ment de la liste ------------------------- +// -- Récupérer le libellé d'un élément de la liste ------------------------- void Determiner_element_de_la_liste(short Decalage_premier,short Decalage_select,char * Libelle); -// -- D‚placements dans la liste des fichiers ------------------------------- +// -- Déplacements dans la liste des fichiers ------------------------------- void Select_Scroll_Down(short * Decalage_premier,short * Decalage_select); void Select_Scroll_Up (short * Decalage_premier,short * Decalage_select); diff --git a/gfx2.dat b/gfx2.dat index 9e6d7ba73f27b64c0a62548858e3c2e84a87223f..2c380b40d290ecc394751f71f00a44e1442ab021 100644 GIT binary patch delta 2669 zcmZ8jTWnlM8P@Mh>PzhSmi0CE*h#!=d+)6qli&!~PMX^B#%WPVWgv`qkL?k==WNeq zm4s78KCZd)an0+uu2WF{;`$f0K{m(*Ny>n~&o9(q^X7XIaa#bCzia}RFzMRe8H60ZH`k{^7K)bb8n!AS z&yl@gumU&5TKV~V$qt{DEYD$Pn0vNyUYA-aU%mGg@_*DwC-A#S$MO41nn#MK#MbOw zAc^R3vx;upMphNbDsrA^QU`Qx<3Wjzs#;zm0@(7;L~~ybldPhd9X?w&%yoIbie|C5 ztl9<78=mbT<{ztQYBx4~ziSRV%?y`4t%8nJQvWnQ)X^b4{IHHP2#i0~@xT>!AcyN|6t7O!6SyH?s;6!W*+8ijW>{m-Y-~r0Rka$mfJk*uF1;{^a$Snqk+Z&Ggcq< zOhwb9s=!H>mg9|dVUN$ImX}3#RYe7q>QWfM5<5XXR~so+3p|T~d}t>fL%4;V^j?k6 zW&+vOM8}#yU2ZyhsT0UT6MgL=pQR?^={5P=CYtW_S~)HqORk+XbcO^?oyxC{WNmIn zK@AXii}bS8Lf`7~*|Y(LFsrC3XgDtOT*w=hf7(Lh5Iq(wad1@Oh^OgRnne6!D|OMD zyx6J%eWz6?ZEhom<|NuE3iw@1U{w~-8YTz6fi&B6mtR%WD)OT?iX+nPHqC%oJ3Wp& zubmdqfNcb~!9VhKjVLzy_jaALvxA;MmgK?zZ;;bL@FMy14mu3r(PXSy@1U2Uk_GNK z^790>%S*dy96iIUKke4U8Vpeaj5?*XoHI(cfR-T<9-?;C>V+r*titCEC(L-!UUL{P zVSh}Rt70jTmqV0BeB~YTvk-Of2vn17c_KxTh;j%m748Ozo7c`b<+&Ej(LG}uj+F=I zmMK4vqOxx?+9~}`f;Y-nI;kJo-|3_T?*7?H#~|-quq;fZMq^O^kuHMO$O~Os7eDQy zDC)#tE^OIiMVQ7AYJ@;c(552))VA3#gV(PMe7B!CwmALZAdraxEsVth8po_34gk`$e0_i>pyFvD_~`&0!Hb6( zeS`TdV-=RR$X?_tDzR&2zpE-ROjZcwtBhipg@eKsrg~gq+%&!XeXqy?Xt5@5F`aVn zAQij8DFMwY8^`o*DS;@z8q`F-HmF@>bV!S5Ziq(IW`-z(;k_Z6!_cyqUdHg+Ufqe! zz2psTS6bj_MZqg5d6wY1#@THFzp#(uI4o4Bi&p;J%60kseS~vOw(qC;I<*Ow2H30n zHM@SYpU&c4>oDzyh7SzuGWf90_?ux(h`YFhXr2n>$*`{Z#V}1&nU-t~Q;+;CtU22j z(My&hRQR8h3ON5YqH!J^(OW8v=x)6|LK!$>iQ9t15dr6x#%x|#lWbHUdW)l!QJ!Gn z^v_zrS{-a#BJ@my4I%dXqnf|BM+u(-GBrjW+hr|{(GX6gZAN~}{Gt2@MdA_Z-_JcF)8J!%@Bl(oy@&$}5(pkB2&EFF^Z@}crBYu)As{suVmslRaS|?; zymRK9`7iVR-~Y{Aem`{i{m>gXJ|w?>^TV5se$m(c`n7AyjY#!-0Fp2N(z=Gn%IO0`yh`_4xxINwT-;rBGn;rIJAj}TArt<}0O zh-f-2z1y}?lnJt$m?wHjIdpB~UW$&)TD(jIti>ORj{mQl>^3^IJz$H5xhht+(J}0; zD0iWi49|Ap^PO!pvl|<}TQrBAVus5;EuD@vP*RqnT`V?Gw|wdrFE-E+0{x^xW-S^+ zl*cd?qWu^uA*y2tHPSqWlNhjpRhcWG;)@4%&{4QM zv4h?W1?-S7y4&bz8wjkKjxu$8QEsD;KM=6oR64&Ve$+;@(STJf2St&-?;(>zxx!&O z32$0hVf=cSj$n2@O!?9Ou*ZzAx-e5+p@Q5cCGwivNfR)5dZ(nG_{~n`C9;c-MFLie z`$bzblOPCayhVLc-9?{8%g!3;6J}Ku5e>&>o{Jtw=6~BoljwXHENEb=#1U`v?eq}* zSK6tY*2MGe3ecaotDxZyVkl0ggOY&XwK%MbsJ&roAb>B-4prqJ$YnM0RtKfw=~jng zK&q1-!OZKV6DYua1n+}?_!A0IZ1lZO6*JmJk0MI;!2cJ>=^_Y{_-+?X19%h}Hdngn z0^U8ho90m|y!gXzMW>+%Wx%5+WgqKC)#m79w1*aWsN1z%i@P#zs9bwgZ@C}K88DV31Ipn5}deYh+sJ)H4e3zF!bu?@#60c3FQgA@&j zXQBi(6yJ{00Al_kN*TLi(TZQ^&HzkoB{`9zI^CfN? z!^jNHV1gnw@oqO|p^E@OG0hi!J*qpN>Y)eW<%J$Pjp0g<>cjoLbPO}UR~7R2y^1}o zkNO&LI*92$%0ZnVNDg;Bs4COElx~!2;wybL1-qYZ4d6jUwDzkk5BEb(YGSFMl4xni zu%!rqxZu!t`srbmMv|>2uJqF**akO?%bL05BXx%}qXfy``hI+mqRGl0dLDs719TQc zbwDNf<^XBf;_N-?7uiA81fLnCN$9tfhXo0?;m9sm%ebkbgT&WE$n=+k6hkY|0@}Y1 z(qZ`B$LLcmUPDCYKF8fg*Z)#eWSETT#YN{b|lpL zg#?xV>x2TRe@-Y+hsIR?%h8d%kAu0aEV-By3uT6s;dadp_89;bp-0RyLg z(E_mYK-+3S&otODeE)h}vG~?F;R+yf6WE2yNt>Wy96in!HbqP6`9;*88grag!l0FZQD@nDfOG#SB?7@_3k1wYv0@XX8QY(L(qR-)5Dowb@ zh+}CbJ6}qxn!S~#6JREe45_xMRT0Z5EJ_*bLszV3NQ3E>49yS7o50;I;wWA8ZS)uF zcu$5unWenE6vZvCic=L=4T%c`K_2{4W%Rf&zL%vOnn;Q}j(-SxnkDAtxRR0(i+^Tm z67k|W8rtsbpyG-MM=1gFOY1M@s06qRK*6?{j%ya~LrT^x_`~hT7oj|5zydt&&np%@ Xo2TjaZ1X{u(2YgSE4eH?*4FZGcOQkS diff --git a/gfx2.ini b/gfx2.ini index 36a67449..a5473a0a 100644 --- a/gfx2.ini +++ b/gfx2.ini @@ -24,55 +24,55 @@ [MOUSE] # [SOURIS] - ; The sensitivity of the mouse can ³ La sensibilité de la souris peut - ; take values from 1 to 64. The ³ prendre des valeurs de 1 à 64. Plus - ; smaller values, the faster. ³ les valeurs sont petites, plus c'est - ; ³ rapide. + ; The sensitivity of the mouse can | La sensibilité de la souris peut + ; take values from 1 to 64. The | prendre des valeurs de 1 à 64. Plus + ; smaller values, the faster. | les valeurs sont petites, plus c'est + ; | rapide. X_sensitivity = 1 ; (default 3) Y_sensitivity = 1 ; (default 3) - ; Due to the fact that those stupid ³ A cause du fait que ces imbéciles de - ; mouse drivers' makers don't care ³ programmeurs de gestionnaires de - ; if the mouse moves by steps of 2, ³ souris se fichent que votre souris se - ; 4 or even 8 pixels, we have to ³ deplace par pas de 2, 4 ou même 8 - ; stretch the virtual area of the ³ pixels, nous devons élargir la zone - ; mouse and divide coordinates to ³ virtuelle de la souris et diviser les - ; get a one-pixel step motion. ³ coordonnées pour obtenir un pas de 1. - ; (Warning: the mouse movement can ³ (Attention: le déplacement de la - ; be correct in some video modes ³ souris peut être correct dans certains - ; but not in others... But all the ³ modes vidéos mais pas dans d'autres... - ; "Modes X" should behave the same ³ Mais tout les Modes X devraient se - ; way, so you won't have to test ³ comporter de la même manière, donc - ; them all). ³ vous n'aurez pas à tous les tester. - ; A correction factor of 0 means ³ Un facteur de correction de 0 signifie - ; that you are very lucky because ³ que vous avez de la chace car votre - ; your driver doesn't need any ³ driver n'a pas besoin de correction. - ; correction. If you set the ³ Si vous définissez le facteur de - ; correction factor to 1, it means ³ correction à 1, cela signifie que - ; that your mouse moves by steps of ³ votre souris se déplace par pas de 2 - ; 2 pixels; 2 for 4; 3 for 8, etc...³ pixels; 2 pour 4; 3 pour 8, etc... - ; If you want to use GrafX2 in a ³ Si vous désirez lancer GrafX2 dans une - ; Win95 window, you should turn ³ fenêtre Windows95, vous devriez passer - ; these values to 0 (and increase X ³ ces valeurs à 0 (et augmenter les sen- - ; and Y sensitivities above). ³ sibilités X et Y définies plus haut). + ; Due to the fact that those stupid | A cause du fait que ces imbéciles de + ; mouse drivers' makers don't care | programmeurs de gestionnaires de + ; if the mouse moves by steps of 2, | souris se fichent que votre souris se + ; 4 or even 8 pixels, we have to | deplace par pas de 2, 4 ou même 8 + ; stretch the virtual area of the | pixels, nous devons élargir la zone + ; mouse and divide coordinates to | virtuelle de la souris et diviser les + ; get a one-pixel step motion. | coordonnées pour obtenir un pas de 1. + ; (Warning: the mouse movement can | (Attention: le déplacement de la + ; be correct in some video modes | souris peut être correct dans certains + ; but not in others... But all the | modes vidéos mais pas dans d'autres... + ; "Modes X" should behave the same | Mais tout les Modes X devraient se + ; way, so you won't have to test | comporter de la même manière, donc + ; them all). | vous n'aurez pas à tous les tester. + ; A correction factor of 0 means | Un facteur de correction de 0 signifie + ; that you are very lucky because | que vous avez de la chace car votre + ; your driver doesn't need any | driver n'a pas besoin de correction. + ; correction. If you set the | Si vous définissez le facteur de + ; correction factor to 1, it means | correction à 1, cela signifie que + ; that your mouse moves by steps of | votre souris se déplace par pas de 2 + ; 2 pixels; 2 for 4; 3 for 8, etc...| pixels; 2 pour 4; 3 pour 8, etc... + ; If you want to use GrafX2 in a | Si vous désirez lancer GrafX2 dans une + ; Win95 window, you should turn | fenêtre Windows95, vous devriez passer + ; these values to 0 (and increase X | ces valeurs à 0 (et augmenter les sen- + ; and Y sensitivities above). | sibilités X et Y définies plus haut). X_correction_factor = 0 ; (default 3) Y_correction_factor = 0 ; (default 3) - ; Aspect of the main cursor (cross) ³ Aspect du curseur principal (croix) - ; 1: Solid ³ 1: Solide - ; 2: Transparent ³ 2: Transparent - ; 3: Thin (solid) ³ 3: Fin (solide) + ; Aspect of the main cursor (cross) | Aspect du curseur principal (croix) + ; 1: Solid | 1: Solide + ; 2: Transparent | 2: Transparent + ; 3: Thin (solid) | 3: Fin (solide) Cursor_aspect = 1 ; (default 1) [MENU] # [MENU] - ; Colors of the menus (the black ³ Couleurs des menus (la couleur noire - ; and the white colors cannot be ³ et la couleur blanche ne peuvent pas - ; modified). ³ être modifiées). - ; Values are in {Red,Green,Blue} ³ Les valeurs sont dans l'ordre {Rouge, - ; order and are between 0 and 63. ³ Vert,Bleu} et vont de 0 à 63. + ; Colors of the menus (the black | Couleurs des menus (la couleur noire + ; and the white colors cannot be | et la couleur blanche ne peuvent pas + ; modified). | être modifiées). + ; Values are in {Red,Green,Blue} | Les valeurs sont dans l'ordre {Rouge, + ; order and are between 0 and 63. | Vert,Bleu} et vont de 0 à 63. Light_color = 42,42,42 ; (default 42,42,42) Dark_color = 27,27,27 ; (default 27,27,27) ; @@ -88,202 +88,202 @@ ; Light_color = 10,40,55 ; \_ Oceanic ; Dark_color = 10,20,32 ; / - ; Aspect ratio and size of the ³ Proportion des menus et de la barre - ; menus and the tool-bar. ³ d'outils. - ; Possible values: ³ Valeurs possibles: - ; 0: Do not adapt (pixels are not ³ 0: Ne pas adapter (les pixels ne sont - ; stretched) ³ pas étirés) - ; 1: Adapt the menus and the tool- ³ 1: Adapter les menus et la barre - ; bar according to the resolution³ d'outils suivant la résolution - ; 2: Slightly adapt the ratio of ³ 2: Adapter légèrement les proportions - ; the menus and tool-bar ³ des menus et de la barre d'outils + ; Aspect ratio and size of the | Proportion des menus et de la barre + ; menus and the tool-bar. | d'outils. + ; Possible values: | Valeurs possibles: + ; 0: Do not adapt (pixels are not | 0: Ne pas adapter (les pixels ne sont + ; stretched) | pas étirés) + ; 1: Adapt the menus and the tool- | 1: Adapter les menus et la barre + ; bar according to the resolution| d'outils suivant la résolution + ; 2: Slightly adapt the ratio of | 2: Adapter légèrement les proportions + ; the menus and tool-bar | des menus et de la barre d'outils Menu_ratio = 1 ; (default 1) - ; Font: ³ Police de caractères (fonte): - ; 1: Classic ³ 1: Classique - ; 2: Fun ³ 2: Fun + ; Font: | Police de caractères (fonte): + ; 1: Classic | 1: Classique + ; 2: Fun | 2: Fun Font = 2 ; (default 1) [FILE_SELECTOR] # [SELECTEUR_DE_FICHIERS] - ; Show special files and ³ Afficher les fichiers et répertoires - ; directories (values are 'yes' or ³ spéciaux (les valeurs sont 'yes' ou - ; 'no'). ³ 'no'). + ; Show special files and | Afficher les fichiers et répertoires + ; directories (values are 'yes' or | spéciaux (les valeurs sont 'yes' ou + ; 'no'). | 'no'). Show_hidden_files = no ; (default 'no') Show_hidden_directories = no ; (default 'no') Show_system_directories = no ; (default 'no') - ; Delay before displaying a preview ³ Délai avant d'afficher une preview - ; in file-selectors (in 18.2th of ³ dans les sélecteurs de fichiers (en - ; second). Possible values range ³ 18.2èmes de seconde) Les valeurs - ; from 1 to 256. ³ possibles vont de 1 à 256. + ; Delay before displaying a preview | Délai avant d'afficher une preview + ; in file-selectors (in 18.2th of | dans les sélecteurs de fichiers (en + ; second). Possible values range | 18.2èmes de seconde) Les valeurs + ; from 1 to 256. | possibles vont de 1 à 256. Preview_delay = 8 ; (default 8) - ; Maximize the preview of the ³ Maximiser la preview des images pour - ; pictures so that it is as big as ³ qu'elle soit aussi grande que - ; possible. If you're not in the ³ possible. - ; same resolution as the picture's ³ Si vous n'êtes pas dans la même réso- - ; one, it can try to correct the ³ lution que celle de l'image, cela peut - ; aspect ratio, but if the picture ³ essayer de corriger les proportions, - ; does not fill the whole screen, ³ mais si l'image ne prend pas tout - ; it can be worse. ³ l'écran, cela peut être pire. + ; Maximize the preview of the | Maximiser la preview des images pour + ; pictures so that it is as big as | qu'elle soit aussi grande que + ; possible. If you're not in the | possible. + ; same resolution as the picture's | Si vous n'êtes pas dans la même réso- + ; one, it can try to correct the | lution que celle de l'image, cela peut + ; aspect ratio, but if the picture | essayer de corriger les proportions, + ; does not fill the whole screen, | mais si l'image ne prend pas tout + ; it can be worse. | l'écran, cela peut être pire. Maximize_preview = no ; (default 'no') - ; This option is used to place the ³ Cette option est utilisée pour placer - ; selection bar on a filename by ³ la barre de sélection sur un nom de - ; typing its first letters. ³ fichier en tapant ses 1ères lettres. - ; For example, if you want to find ³ Par exemple, si vous voulez trouver le - ; the "PICTURE.PKM" in a directory ³ fichier "PICTURE.PKM" dans un réper- - ; that also contains "PALETTE.PAL", ³ toire contenant également le fichier - ; you'll just have to type P and I. ³ "PALETTE.PAL", vous n'aurez qu'à taper - ; The different values of "FFF" ³ P puis I. - ; indicate if you want to find the ³ Les different valeurs de "FFF" - ; name in both files and directories³ indiquent si vous voulez trouvez le nom - ; or just in only one of these: ³ dans les fichiers ET les répertoires ou - ; 0: files and directories ³ simplement dans l'un OU l'autre. - ; 1: files only ³ 0: fichiers et répertoires - ; 2: directories only ³ 1: fichiers seulement - ; ³ 2: répertoires seulement + ; This option is used to place the | Cette option est utilisée pour placer + ; selection bar on a filename by | la barre de sélection sur un nom de + ; typing its first letters. | fichier en tapant ses 1ères lettres. + ; For example, if you want to find | Par exemple, si vous voulez trouver le + ; the "PICTURE.PKM" in a directory | fichier "PICTURE.PKM" dans un réper- + ; that also contains "PALETTE.PAL", | toire contenant également le fichier + ; you'll just have to type P and I. | "PALETTE.PAL", vous n'aurez qu'à taper + ; The different values of "FFF" | P puis I. + ; indicate if you want to find the | Les different valeurs de "FFF" + ; name in both files and directories| indiquent si vous voulez trouvez le nom + ; or just in only one of these: | dans les fichiers ET les répertoires ou + ; 0: files and directories | simplement dans l'un OU l'autre. + ; 1: files only | 0: fichiers et répertoires + ; 2: directories only | 1: fichiers seulement + ; | 2: répertoires seulement Find_file_fast = 0 ; (default 0) [LOADING] # [CHARGEMENT] - ; Automatically set the resolution ³ Passer automatiquement dans la bonne - ; when loading a picture. ³ résolution lors du chargement d'une - ; You should set this value to ³ image. - ; 'yes' after disabling the video ³ Vous devriez définir cette option à - ; modes that are not supported by ³ 'yes' après avoir inhibé les modes - ; your video card or monitor. ³ vidéo qui ne sont pas supportés par - ; ³ votre matériel. + ; Automatically set the resolution | Passer automatiquement dans la bonne + ; when loading a picture. | résolution lors du chargement d'une + ; You should set this value to | image. + ; 'yes' after disabling the video | Vous devriez définir cette option à + ; modes that are not supported by | 'yes' après avoir inhibé les modes + ; your video card or monitor. | vidéo qui ne sont pas supportés par + ; | votre matériel. Auto_set_resolution = yes ; (default 'no') - ; If the variable above is set to ³ Si la variable ci-dessus est à 'yes', - ; 'yes', this one tells if you want ³ celle-ci indique si vous voulez - ; to set the resolution according ³ définir la résolution suivant: - ; to: ³ 1: les dimensions de "l'écran - ; 1: the internal "original screen" ³ d'origine" internes à l'image - ; dimensions of the picture ³ 2: les véritables dimensions de - ; 2: the actual dimensions of the ³ l'image - ; picture ³ + ; If the variable above is set to | Si la variable ci-dessus est à 'yes', + ; 'yes', this one tells if you want | celle-ci indique si vous voulez + ; to set the resolution according | définir la résolution suivant: + ; to: | 1: les dimensions de "l'écran + ; 1: the internal "original screen" | d'origine" internes à l'image + ; dimensions of the picture | 2: les véritables dimensions de + ; 2: the actual dimensions of the | l'image + ; picture | Set_resolution_according_to = 1 ; (default 1) - ; If you load a picture with a ³ Si vous chargez une image ayant une - ; palette of less than 256 colors, ³ palette de moins de 256 couleurs, - ; this option defines if you want ³ cette option indique si vous souhaitez - ; to clear the palette or to keep ³ effacer la palette ou bien conserver - ; the colors of the previous ³ les couleurs de l'image précédente qui - ; picture that are over the number ³ se situent au-delà du nombre de la - ; of colors of the new picture. ³ nouvelle image. - ; For example, if you load a ³ Par exemple, si vous chargez une image - ; 32-color picture, the colors 32 ³ de 32 couleurs, les couleurs 32 à 255 - ; to 255 will be set to black if ³ seront passées en noir si cette option - ; this option is set to 'yes', or ³ est à 'yes', ou bien elles resteront - ; they will be kept unchanged if ³ inchangées si elle est à 'no'. - ; this option is set to 'no'. ³ + ; If you load a picture with a | Si vous chargez une image ayant une + ; palette of less than 256 colors, | palette de moins de 256 couleurs, + ; this option defines if you want | cette option indique si vous souhaitez + ; to clear the palette or to keep | effacer la palette ou bien conserver + ; the colors of the previous | les couleurs de l'image précédente qui + ; picture that are over the number | se situent au-delà du nombre de la + ; of colors of the new picture. | nouvelle image. + ; For example, if you load a | Par exemple, si vous chargez une image + ; 32-color picture, the colors 32 | de 32 couleurs, les couleurs 32 à 255 + ; to 255 will be set to black if | seront passées en noir si cette option + ; this option is set to 'yes', or | est à 'yes', ou bien elles resteront + ; they will be kept unchanged if | inchangées si elle est à 'no'. + ; this option is set to 'no'. | Clear_palette = yes ; (default 'yes') [MISCELLANEOUS] # [DIVERS] - ; Draw the limits of the picture. ³ Afficher les limites de l'image + ; Draw the limits of the picture. | Afficher les limites de l'image Draw_limits = yes ; (default 'yes') - ; Adjust the brush grabbing in ³ Ajuster la capture de brosse en mode - ; "grid" mode. ³ "grille". + ; Adjust the brush grabbing in | Ajuster la capture de brosse en mode + ; "grid" mode. | "grille". Adjust_brush_pick = yes ; (default 'yes') - ; Coordinates: ³ Coordonnées: - ; 1: Relative ³ 1: Relatives - ; 2: Absolute ³ 2: Absolues + ; Coordinates: | Coordonnées: + ; 1: Relative | 1: Relatives + ; 2: Absolute | 2: Absolues Coordinates = 2 ; (default 1) - ; Create a backup file when saving. ³ Créer un fichier backup lors des - ; ³ sauvegardes. + ; Create a backup file when saving. | Créer un fichier backup lors des + ; | sauvegardes. Backup = no ; (default 'no') - ; Number of pages stored in memory ³ Nombre de pages stockées en mémoire - ; for "undoing". ³ destinées à annuler les dernières - ; Values are between 1 and 99. ³ modifications. Valeurs entre 1 et 99. + ; Number of pages stored in memory | Nombre de pages stockées en mémoire + ; for "undoing". | destinées à annuler les dernières + ; Values are between 1 and 99. | modifications. Valeurs entre 1 et 99. Undo_pages = 1 ; (default 1) - ; Speed of the scroll-bars (in VBLs ³ Vitesse des barre de défilement (en - ; waited) while clicking with the ³ VBLs attendus) lorsque l'un des - ; left or right button of the mouse.³ boutons de la souris est enfoncé. - ; Values can be between 1 and 255. ³ Les valeurs sont comprises entre 1 et - ; The bigger values, the slower. ³ 255. Plus elles sont grandes, plus - ; ³ c'est lent. + ; Speed of the scroll-bars (in VBLs | Vitesse des barre de défilement (en + ; waited) while clicking with the | VBLs attendus) lorsque l'un des + ; left or right button of the mouse.| boutons de la souris est enfoncé. + ; Values can be between 1 and 255. | Les valeurs sont comprises entre 1 et + ; The bigger values, the slower. | 255. Plus elles sont grandes, plus + ; | c'est lent. Gauges_scrolling_speed_Left = 10 ; (default 10) Gauges_scrolling_speed_Right = 3 ; (default 3) - ; Automatically save the configu- ³ Enregistre automatiquement la configu- - ; ration when exiting the program. ³ ration lorsqu'on quitte le programme. + ; Automatically save the configu- | Enregistre automatiquement la configu- + ; ration when exiting the program. | ration lorsqu'on quitte le programme. Auto_save = yes ; (default 'yes') - ; Maximum number of vertices used ³ Nombre maximum de vertex utilisés dans - ; in filled polygons and polyforms, ³ les polygônes et polyformes pleins, et - ; and lasso. Possible values range ³ le lasso. Les valeurs possibles vont - ; from 2 to 16384. ³ de 2 à 16384. - ; Each vertex takes 4 bytes. ³ Chaque vertex prend 4 octets. + ; Maximum number of vertices used | Nombre maximum de vertex utilisés dans + ; in filled polygons and polyforms, | les polygônes et polyformes pleins, et + ; and lasso. Possible values range | le lasso. Les valeurs possibles vont + ; from 2 to 16384. | de 2 à 16384. + ; Each vertex takes 4 bytes. | Chaque vertex prend 4 octets. Vertices_per_polygon = 1024 ; (default 1024) - ; Automatically zoom into the ³ Zoomer automatiquement la zone pointée - ; pointed area when you press the ³ par la souris lorsque vous appuyez sur - ; short-key of the Magnifier button ³ la touche de raccourci de la loupe. - ; while being above the picture. ³ + ; Automatically zoom into the | Zoomer automatiquement la zone pointée + ; pointed area when you press the | par la souris lorsque vous appuyez sur + ; short-key of the Magnifier button | la touche de raccourci de la loupe. + ; while being above the picture. | Fast_zoom = yes ; (default 'yes') - ; Separate the colors in the tool- ³ Séparer les couleurs dans la barre - ; bar by a black squaring. ³ d'outils par un quadrillage noir. + ; Separate the colors in the tool- | Séparer les couleurs dans la barre + ; bar by a black squaring. | d'outils par un quadrillage noir. Separate_colors = no ; (default 'yes') - ; Initial value of the feedback for ³ Valeur initiale du "feedback" pour les - ; the drawing modes (cf. docs). ³ modes de dessin (cf. docs). + ; Initial value of the feedback for | Valeur initiale du "feedback" pour les + ; the drawing modes (cf. docs). | modes de dessin (cf. docs). FX_feedback = yes ; (default 'yes') - ; When you reduce the palette or ³ Si vous réduisez la palette ou "zappez" - ; "zap" some colors out of it, it is³ quelques couleurs, il est possible - ; possible that there are not enough³ qu'il ne reste pas assez de couleurs - ; colors left to draw the menus. ³ pour afficher les menus. Mettre cette - ; Switching the following variable ³ variable à 'yes' ramènera automatiquent - ; on will bring back the colors of ³ les couleurs du menu s'il reste moins - ; the menu if there are less than 4 ³ de 4 couleurs après une "réduction" ou - ; colors left after "reducing" or ³ un "zapping". - ; "zapping". ³ + ; When you reduce the palette or | Si vous réduisez la palette ou "zappez" + ; "zap" some colors out of it, it is| quelques couleurs, il est possible + ; possible that there are not enough| qu'il ne reste pas assez de couleurs + ; colors left to draw the menus. | pour afficher les menus. Mettre cette + ; Switching the following variable | variable à 'yes' ramènera automatiquent + ; on will bring back the colors of | les couleurs du menu s'il reste moins + ; the menu if there are less than 4 | de 4 couleurs après une "réduction" ou + ; colors left after "reducing" or | un "zapping". + ; "zapping". | Safety_colors = no ; (default 'yes') - ; Display a message at startup ³ Afficher un message au démarrage - ; telling the version number of the ³ indiquant le numéro de version du - ; program. ³ programme. + ; Display a message at startup | Afficher un message au démarrage + ; telling the version number of the | indiquant le numéro de version du + ; program. | programme. Opening_message = yes ; (default 'yes') - ; Take the Stencil into account when³ Prendre le Stencil en compte lorsqu'on - ; clearing the image. ³ efface l'image. + ; Take the Stencil into account when| Prendre le Stencil en compte lorsqu'on + ; clearing the image. | efface l'image. Clear_with_stencil = yes ; (default 'yes') - ; Directly set the discontinuous ³ Passer automatiquement en mode de - ; freehand drawing mode after brush ³ dessin discontinu après la prise d'une - ; grabbing. ³ brosse. + ; Directly set the discontinuous | Passer automatiquement en mode de + ; freehand drawing mode after brush | dessin discontinu après la prise d'une + ; grabbing. | brosse. Auto_discontinuous = no ; (default 'no') - ; Save the screen dimensions in GIF ³ Sauver les dimensions de l'écran dans - ; files. If you want to read these ³ les fichiers GIF. Si vous voulez lire - ; files with Photoshop or Alchemy, ³ ces fichiers avec Photoshop ou Alchemy, - ; and maybe some other programs, you³ et peut-être d'autres programmes, vous - ; must set this option to 'no'. ³ devez mettre cette option à 'no'. + ; Save the screen dimensions in GIF | Sauver les dimensions de l'écran dans + ; files. If you want to read these | les fichiers GIF. Si vous voulez lire + ; files with Photoshop or Alchemy, | ces fichiers avec Photoshop ou Alchemy, + ; and maybe some other programs, you| et peut-être d'autres programmes, vous + ; must set this option to 'no'. | devez mettre cette option à 'no'. Save_screen_size_in_GIF = no ; (default 'no') - ; Automaticaly count the number of ³ Compter automatiquement le nombre de - ; different colors used when opening³ couleurs différentes utilisées lors de - ; the palette editor window. (Set it³ d'ouverture de la fenêtre d'édition de - ; to 'no' if you have a slow PC or ³ la palette. (Mettez-le à 'no' si vous - ; if you edit huge pictures) ³ avez un PC lent ou bien si vous éditez - ; ³ d'énormes images). + ; Automaticaly count the number of | Compter automatiquement le nombre de + ; different colors used when opening| couleurs différentes utilisées lors de + ; the palette editor window. (Set it| d'ouverture de la fenêtre d'édition de + ; to 'no' if you have a slow PC or | la palette. (Mettez-le à 'no' si vous + ; if you edit huge pictures) | avez un PC lent ou bien si vous éditez + ; | d'énormes images). Auto_nb_colors_used = yes ; (default 'yes') - ; Number of the default video mode ³ Numéro du mode vidéo par défaut au - ; at startup (see the list by typing³ démarrage (voir la liste en tapant - ; "gfx2 /?" at the DOS prompt). ³ "gfx2 /?" sur la ligne de commande). + ; Number of the default video mode | Numéro du mode vidéo par défaut au + ; at startup (see the list by typing| démarrage (voir la liste en tapant + ; "gfx2 /?" at the DOS prompt). | "gfx2 /?" sur la ligne de commande). Default_video_mode = 58 ; (default 0) diff --git a/init.c b/init.c index c5dd2e33..934cb607 100644 --- a/init.c +++ b/init.c @@ -1,4 +1,3 @@ -#define TAILLE_FICHIER_DATA 78544 // Taille du fichier GFX2.DAT #include #include @@ -223,7 +222,7 @@ void Charger_DAT(void) } Taille_fichier=Informations_Fichier.st_size; - if (Taille_fichier!=TAILLE_FICHIER_DATA) + if (Taille_fichier #include #include +#include #include "const.h" #include "global.h" -char lowercase_to_uppercase[256]; - - - -void Calculer_la_table_lowercase_to_uppercase(void) -{ - int Indice; - int Resultat; - - for (Indice=0;Indice<256;Indice++) - { - Resultat=Indice; - - if ((Indice>='a') && (Indice<='z')) - Resultat+='A'-'a'; - - lowercase_to_uppercase[Indice]=Resultat; - } -} - - - void Charger_INI_Clear_string(char * String) { int Indice; @@ -42,6 +21,7 @@ void Charger_INI_Clear_string(char * String) else if ((String[Indice]==';') || (String[Indice]=='#') || + (String[Indice]=='\r') || (String[Indice]=='\n')) { // Rencontre d'un commentaire ou d'un saut de ligne: @@ -52,7 +32,7 @@ void Charger_INI_Clear_string(char * String) { // Passage en majuscule d'un caractère: - String[Indice]=lowercase_to_uppercase[(int)String[Indice]]; + String[Indice]=toupper((int)String[Indice]); Indice++; } } @@ -338,8 +318,6 @@ int Charger_INI(struct S_Config * Conf) char * Nom_du_fichier; int Retour; - Calculer_la_table_lowercase_to_uppercase(); - Ligne_INI=0; // On alloue les zones de mémoire: @@ -350,277 +328,289 @@ int Charger_INI(struct S_Config * Conf) strcpy(Nom_du_fichier,Repertoire_du_programme); strcat(Nom_du_fichier,"gfx2.ini"); - Fichier=fopen(Nom_du_fichier,"r"); - if (Fichier!=0) + Fichier=fopen(Nom_du_fichier,"rb"); + if (Fichier==0) { - if ((Retour=Charger_INI_Reach_group(Fichier,Buffer,"[MOUSE]"))) - goto Erreur_Retour; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"X_sensitivity",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<1) || (Valeurs[0]>255)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Indice_Sensibilite_souris_X=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Y_sensitivity",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<1) || (Valeurs[0]>255)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Indice_Sensibilite_souris_Y=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"X_correction_factor",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>4)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Mouse_Facteur_de_correction_X=Mouse_Facteur_de_correction_X=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Y_correction_factor",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>4)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Mouse_Facteur_de_correction_Y=Mouse_Facteur_de_correction_Y=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Cursor_aspect",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<1) || (Valeurs[0]>3)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Curseur=Valeurs[0]-1; - - - if ((Retour=Charger_INI_Reach_group(Fichier,Buffer,"[MENU]"))) - goto Erreur_Retour; - - Conf->Coul_menu_pref[0].R=0; - Conf->Coul_menu_pref[0].V=0; - Conf->Coul_menu_pref[0].B=0; - Conf->Coul_menu_pref[3].R=63; - Conf->Coul_menu_pref[3].V=63; - Conf->Coul_menu_pref[3].B=63; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Light_color",3,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>63)) - goto Erreur_ERREUR_INI_CORROMPU; - if ((Valeurs[1]<0) || (Valeurs[1]>63)) - goto Erreur_ERREUR_INI_CORROMPU; - if ((Valeurs[2]<0) || (Valeurs[2]>63)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Coul_menu_pref[2].R=Valeurs[0]; - Conf->Coul_menu_pref[2].V=Valeurs[1]; - Conf->Coul_menu_pref[2].B=Valeurs[2]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Dark_color",3,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>63)) - goto Erreur_ERREUR_INI_CORROMPU; - if ((Valeurs[1]<0) || (Valeurs[1]>63)) - goto Erreur_ERREUR_INI_CORROMPU; - if ((Valeurs[2]<0) || (Valeurs[2]>63)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Coul_menu_pref[1].R=Valeurs[0]; - Conf->Coul_menu_pref[1].V=Valeurs[1]; - Conf->Coul_menu_pref[1].B=Valeurs[2]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Menu_ratio",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>2)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Ratio=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Font",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<1) || (Valeurs[0]>2)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Fonte=Valeurs[0]-1; - - - if ((Retour=Charger_INI_Reach_group(Fichier,Buffer,"[FILE_SELECTOR]"))) - goto Erreur_Retour; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Show_hidden_files",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Lire_les_fichiers_caches=Valeurs[0]?-1:0; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Show_hidden_directories",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Lire_les_repertoires_caches=Valeurs[0]?-1:0; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Show_system_directories",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Lire_les_repertoires_systemes=Valeurs[0]?-1:0; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Preview_delay",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<1) || (Valeurs[0]>256)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Chrono_delay=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Maximize_preview",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Maximize_preview=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Find_file_fast",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>2)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Find_file_fast=Valeurs[0]; - - - if ((Retour=Charger_INI_Reach_group(Fichier,Buffer,"[LOADING]"))) - goto Erreur_Retour; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Auto_set_resolution",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Auto_set_res=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Set_resolution_according_to",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<1) || (Valeurs[0]>2)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Set_resolution_according_to=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Clear_palette",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Clear_palette=Valeurs[0]; - - - if ((Retour=Charger_INI_Reach_group(Fichier,Buffer,"[MISCELLANEOUS]"))) - goto Erreur_Retour; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Draw_limits",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Afficher_limites_image=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Adjust_brush_pick",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Adjust_brush_pick=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Coordinates",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<1) || (Valeurs[0]>2)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Coords_rel=2-Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Backup",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Backup=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Undo_pages",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<1) || (Valeurs[0]>99)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Nb_pages_Undo=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Gauges_scrolling_speed_Left",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<1) || (Valeurs[0]>255)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Valeur_tempo_jauge_gauche=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Gauges_scrolling_speed_Right",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<1) || (Valeurs[0]>255)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Valeur_tempo_jauge_droite=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Auto_save",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Auto_save=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Vertices_per_polygon",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<2) || (Valeurs[0]>16384)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Nb_max_de_vertex_par_polygon=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Fast_zoom",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Fast_zoom=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Separate_colors",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Couleurs_separees=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"FX_feedback",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->FX_Feedback=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Safety_colors",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Safety_colors=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Opening_message",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Opening_message=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Clear_with_stencil",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Clear_with_stencil=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Auto_discontinuous",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Auto_discontinuous=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Save_screen_size_in_GIF",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Taille_ecran_dans_GIF=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Auto_nb_colors_used",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]<0) || (Valeurs[0]>1)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Auto_nb_used=Valeurs[0]; - - if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Default_video_mode",1,Valeurs))) - goto Erreur_Retour; - if ((Valeurs[0]MODE_1024_768)) - goto Erreur_ERREUR_INI_CORROMPU; - Conf->Resolution_par_defaut=Valeurs[0]; - - fclose(Fichier); - } - else - { - free(Nom_du_fichier); - free(Buffer); - return ERREUR_INI_ABSENT; + // Si le fichier ini est absent on le relit depuis gfx2.dat + strcpy(Nom_du_fichier,Repertoire_du_programme); + strcat(Nom_du_fichier,"gfx2.dat"); + Fichier=fopen(Nom_du_fichier,"rb"); + if (Fichier == 0) + { + free(Nom_du_fichier); + free(Buffer); + return ERREUR_DAT_ABSENT; + } + if (fseek(Fichier, DAT_DEBUT_INI_PAR_DEFAUT ,SEEK_SET)) + { + fclose(Fichier); + free(Nom_du_fichier); + free(Buffer); + return ERREUR_DAT_CORROMPU; + } } + + if ((Retour=Charger_INI_Reach_group(Fichier,Buffer,"[MOUSE]"))) + goto Erreur_Retour; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"X_sensitivity",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<1) || (Valeurs[0]>255)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Indice_Sensibilite_souris_X=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Y_sensitivity",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<1) || (Valeurs[0]>255)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Indice_Sensibilite_souris_Y=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"X_correction_factor",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>4)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Mouse_Facteur_de_correction_X=Mouse_Facteur_de_correction_X=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Y_correction_factor",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>4)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Mouse_Facteur_de_correction_Y=Mouse_Facteur_de_correction_Y=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Cursor_aspect",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<1) || (Valeurs[0]>3)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Curseur=Valeurs[0]-1; + + + if ((Retour=Charger_INI_Reach_group(Fichier,Buffer,"[MENU]"))) + goto Erreur_Retour; + + Conf->Coul_menu_pref[0].R=0; + Conf->Coul_menu_pref[0].V=0; + Conf->Coul_menu_pref[0].B=0; + Conf->Coul_menu_pref[3].R=63; + Conf->Coul_menu_pref[3].V=63; + Conf->Coul_menu_pref[3].B=63; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Light_color",3,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>63)) + goto Erreur_ERREUR_INI_CORROMPU; + if ((Valeurs[1]<0) || (Valeurs[1]>63)) + goto Erreur_ERREUR_INI_CORROMPU; + if ((Valeurs[2]<0) || (Valeurs[2]>63)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Coul_menu_pref[2].R=Valeurs[0]; + Conf->Coul_menu_pref[2].V=Valeurs[1]; + Conf->Coul_menu_pref[2].B=Valeurs[2]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Dark_color",3,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>63)) + goto Erreur_ERREUR_INI_CORROMPU; + if ((Valeurs[1]<0) || (Valeurs[1]>63)) + goto Erreur_ERREUR_INI_CORROMPU; + if ((Valeurs[2]<0) || (Valeurs[2]>63)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Coul_menu_pref[1].R=Valeurs[0]; + Conf->Coul_menu_pref[1].V=Valeurs[1]; + Conf->Coul_menu_pref[1].B=Valeurs[2]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Menu_ratio",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>2)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Ratio=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Font",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<1) || (Valeurs[0]>2)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Fonte=Valeurs[0]-1; + + + if ((Retour=Charger_INI_Reach_group(Fichier,Buffer,"[FILE_SELECTOR]"))) + goto Erreur_Retour; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Show_hidden_files",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Lire_les_fichiers_caches=Valeurs[0]?-1:0; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Show_hidden_directories",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Lire_les_repertoires_caches=Valeurs[0]?-1:0; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Show_system_directories",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Lire_les_repertoires_systemes=Valeurs[0]?-1:0; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Preview_delay",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<1) || (Valeurs[0]>256)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Chrono_delay=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Maximize_preview",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Maximize_preview=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Find_file_fast",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>2)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Find_file_fast=Valeurs[0]; + + + if ((Retour=Charger_INI_Reach_group(Fichier,Buffer,"[LOADING]"))) + goto Erreur_Retour; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Auto_set_resolution",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Auto_set_res=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Set_resolution_according_to",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<1) || (Valeurs[0]>2)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Set_resolution_according_to=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Clear_palette",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Clear_palette=Valeurs[0]; + + + if ((Retour=Charger_INI_Reach_group(Fichier,Buffer,"[MISCELLANEOUS]"))) + goto Erreur_Retour; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Draw_limits",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Afficher_limites_image=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Adjust_brush_pick",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Adjust_brush_pick=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Coordinates",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<1) || (Valeurs[0]>2)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Coords_rel=2-Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Backup",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Backup=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Undo_pages",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<1) || (Valeurs[0]>99)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Nb_pages_Undo=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Gauges_scrolling_speed_Left",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<1) || (Valeurs[0]>255)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Valeur_tempo_jauge_gauche=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Gauges_scrolling_speed_Right",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<1) || (Valeurs[0]>255)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Valeur_tempo_jauge_droite=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Auto_save",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Auto_save=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Vertices_per_polygon",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<2) || (Valeurs[0]>16384)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Nb_max_de_vertex_par_polygon=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Fast_zoom",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Fast_zoom=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Separate_colors",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Couleurs_separees=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"FX_feedback",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->FX_Feedback=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Safety_colors",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Safety_colors=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Opening_message",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Opening_message=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Clear_with_stencil",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Clear_with_stencil=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Auto_discontinuous",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Auto_discontinuous=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Save_screen_size_in_GIF",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Taille_ecran_dans_GIF=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Auto_nb_colors_used",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]<0) || (Valeurs[0]>1)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Auto_nb_used=Valeurs[0]; + + if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Default_video_mode",1,Valeurs))) + goto Erreur_Retour; + if ((Valeurs[0]MODE_1024_768)) + goto Erreur_ERREUR_INI_CORROMPU; + Conf->Resolution_par_defaut=Valeurs[0]; + + fclose(Fichier); free(Nom_du_fichier); free(Buffer); diff --git a/saveini.c b/saveini.c index f695c24a..052b305c 100644 --- a/saveini.c +++ b/saveini.c @@ -4,6 +4,8 @@ #include "const.h" #include "global.h" #include "readini.h" +#include "files.h" +#include "erreurs.h" int Sauver_INI_Reach_group(FILE * Old_file,FILE * New_file,char * Buffer,char * Group) { @@ -11,11 +13,11 @@ int Sauver_INI_Reach_group(FILE * Old_file,FILE * New_file,char * Buffer,char * char * Group_upper; char * Buffer_upper; - // On alloue les zones de m‚moire: + // On alloue les zones de mémoire: Group_upper =(char *)malloc(1024); Buffer_upper=(char *)malloc(1024); - // On commence par se faire une version majuscule du groupe … rechercher: + // On commence par se faire une version majuscule du groupe à rechercher: strcpy(Group_upper,Group); Charger_INI_Clear_string(Group_upper); @@ -34,7 +36,7 @@ int Sauver_INI_Reach_group(FILE * Old_file,FILE * New_file,char * Buffer,char * strcpy(Buffer_upper,Buffer); Charger_INI_Clear_string(Buffer_upper); - // On compare la chaŒne avec le groupe recherch‚: + // On compare la chaîne avec le groupe recherché: Arret=Charger_INI_Seek_pattern(Buffer_upper,Group_upper); if (fprintf(New_file,"%s",Buffer)<0) { @@ -68,7 +70,7 @@ int Sauver_INI_char_in_value_alphabet(char Char) (Char>='a') && (Char<='z') ) || - (Char == '$') // Symbole d'hexad‚cimal + (Char == '$') // Symbole d'hexadécimal ) return 1; else @@ -95,20 +97,20 @@ void Sauver_INI_Set_value(char * Destination,char * Source,int Nb_values_to_set, for (;Source[Indice_source]==' ';Indice_source++) Destination[Indice_source]=Source[Indice_source]; - // Pour l'instant, la source et la destination en sont au mˆme point: + // Pour l'instant, la source et la destination en sont au même point: Indice_destination=Indice_source; - // Puis pour chaque valeur … recopier: + // Puis pour chaque valeur à recopier: for (Indice_valeur=0;Indice_valeur Yes + // La valeur <=> Yes memcpy(Destination+Indice_destination,"yes",3); Indice_destination+=3; @@ -123,11 +125,11 @@ void Sauver_INI_Set_value(char * Destination,char * Source,int Nb_values_to_set, } else { - // La valeur doit ˆtre ‚crite sous forme num‚rique + // La valeur doit être écrite sous forme numérique if (Source[Indice_source]=='$') { - // On va ‚crire la valeur sous forme hexad‚cimale: + // On va écrire la valeur sous forme hexadécimale: // On commence par inscrire le symbole '$': Destination[Indice_destination]='$'; @@ -138,7 +140,7 @@ void Sauver_INI_Set_value(char * Destination,char * Source,int Nb_values_to_set, } else { - // On va ‚crire la valeur sous forme d‚cimale: + // On va écrire la valeur sous forme décimale: sprintf(Destination+Indice_destination,"%d",Values[Indice_valeur]); Indice_destination+=strlen(Destination+Indice_destination); @@ -150,16 +152,16 @@ void Sauver_INI_Set_value(char * Destination,char * Source,int Nb_values_to_set, if (Indice_valeur!=(Nb_values_to_set-1)) { - // Il reste d'autres valeurs … ‚crire + // Il reste d'autres valeurs à écrire // On recopie tous les caractŠres de la source jusqu'au suivant qui - // d‚signe une valeur: + // désigne une valeur: for (;(!Sauver_INI_char_in_value_alphabet(Source[Indice_source])) && (Source[Indice_source]!='\0');Indice_source++,Indice_destination++) Destination[Indice_destination]=Source[Indice_source]; } else { - // C'est la derniŠre valeur … initialiser + // C'est la derniŠre valeur à initialiser // On recopie toute la fin de la ligne: for (;Source[Indice_source]!='\0';Indice_source++,Indice_destination++) @@ -181,12 +183,12 @@ int Sauver_INI_Set_values(FILE * Old_file,FILE * New_file,char * Buffer,char * O char * Buffer_resultat; //int Indice_buffer; - // On alloue les zones de m‚moire: + // On alloue les zones de mémoire: Option_upper=(char *)malloc(1024); Buffer_upper=(char *)malloc(1024); Buffer_resultat=(char *)malloc(1024); - // On commence par se faire une version majuscule de l'option … rechercher: + // On commence par se faire une version majuscule de l'option à rechercher: strcpy(Option_upper,Option); Charger_INI_Clear_string(Option_upper); @@ -206,12 +208,12 @@ int Sauver_INI_Set_values(FILE * Old_file,FILE * New_file,char * Buffer,char * O strcpy(Buffer_upper,Buffer); Charger_INI_Clear_string(Buffer_upper); - // On compare la chaŒne avec l'option recherch‚e: + // On compare la chaîne avec l'option recherchée: Arret=Charger_INI_Seek_pattern(Buffer_upper,Option_upper); if (Arret) { - // On l'a trouv‚e: + // On l'a trouvée: Sauver_INI_Set_value(Buffer_resultat,Buffer,Nb_values_to_set,Values,Litteral); if (fprintf(New_file,"%s",Buffer_resultat)<0) @@ -224,7 +226,7 @@ int Sauver_INI_Set_values(FILE * Old_file,FILE * New_file,char * Buffer,char * O } else { - // On l'a pas trouv‚e: + // On l'a pas trouvée: if (fprintf(New_file,"%s",Buffer)<0) { @@ -260,228 +262,230 @@ int Sauver_INI(struct S_Config * Conf) FILE * Nouveau_fichier; char * Buffer; int Valeurs[3]; - char * Nom_du_fichier; - char * Nom_du_fichier_temporaire; + char Nom_du_fichier[256]; + char Nom_du_fichier_temporaire[256]; int Retour; + char Nom_du_fichier_DAT[256]; + int Ini_existe; - // On alloue les zones de m‚moire: + // On alloue les zones de mémoire: Buffer=(char *)malloc(1024); - Nom_du_fichier=(char *)malloc(256); - Nom_du_fichier_temporaire=(char *)malloc(256); - + // On calcule les noms des fichiers qu'on manipule: strcpy(Nom_du_fichier,Repertoire_du_programme); strcat(Nom_du_fichier,"gfx2.ini"); - strcpy(Nom_du_fichier_temporaire,Repertoire_du_programme); - strcat(Nom_du_fichier_temporaire,"gfx2.$$$"); - - // On renome l'ancienne version du fichier INI vers un fichier temporaire: - if (rename(Nom_du_fichier,Nom_du_fichier_temporaire)!=0) - goto Erreur_ERREUR_SAUVEGARDE_INI; - - Ancien_fichier=fopen(Nom_du_fichier_temporaire,"r"); - if (Ancien_fichier!=0) + // On vérifie si le fichier INI existe + if ((Ini_existe = Fichier_existe(Nom_du_fichier))) { - Nouveau_fichier=fopen(Nom_du_fichier,"w"); - if (Nouveau_fichier!=0) + strcpy(Nom_du_fichier_temporaire,Repertoire_du_programme); + strcat(Nom_du_fichier_temporaire,"gfx2.$$$"); + + // On renome l'ancienne version du fichier INI vers un fichier temporaire: + if (rename(Nom_du_fichier,Nom_du_fichier_temporaire)!=0) { - if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[MOUSE]"))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Indice_Sensibilite_souris_X; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"X_sensitivity",1,Valeurs,0))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Indice_Sensibilite_souris_Y; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Y_sensitivity",1,Valeurs,0))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Mouse_Facteur_de_correction_X; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"X_correction_factor",1,Valeurs,0))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Mouse_Facteur_de_correction_Y; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Y_correction_factor",1,Valeurs,0))) - goto Erreur_Retour; - - Valeurs[0]=(Conf->Curseur)+1; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Cursor_aspect",1,Valeurs,0))) - goto Erreur_Retour; - - - if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[MENU]"))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Coul_menu_pref[2].R; - Valeurs[1]=Conf->Coul_menu_pref[2].V; - Valeurs[2]=Conf->Coul_menu_pref[2].B; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Light_color",3,Valeurs,0))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Coul_menu_pref[1].R; - Valeurs[1]=Conf->Coul_menu_pref[1].V; - Valeurs[2]=Conf->Coul_menu_pref[1].B; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Dark_color",3,Valeurs,0))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Ratio; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Menu_ratio",1,Valeurs,0))) - goto Erreur_Retour; - - Valeurs[0]=(Conf->Fonte)+1; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Font",1,Valeurs,0))) - goto Erreur_Retour; - - - if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[FILE_SELECTOR]"))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Lire_les_fichiers_caches?1:0; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Show_hidden_files",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Lire_les_repertoires_caches?1:0; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Show_hidden_directories",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Lire_les_repertoires_systemes?1:0; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Show_system_directories",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Chrono_delay; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Preview_delay",1,Valeurs,0))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Maximize_preview; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Maximize_preview",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Find_file_fast; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Find_file_fast",1,Valeurs,0))) - goto Erreur_Retour; - - - if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[LOADING]"))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Auto_set_res; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Auto_set_resolution",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Set_resolution_according_to; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Set_resolution_according_to",1,Valeurs,0))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Clear_palette; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Clear_palette",1,Valeurs,1))) - goto Erreur_Retour; - - - if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[MISCELLANEOUS]"))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Afficher_limites_image; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Draw_limits",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Adjust_brush_pick; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Adjust_brush_pick",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=2-Conf->Coords_rel; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Coordinates",1,Valeurs,0))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Backup; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Backup",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Nb_pages_Undo; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Undo_pages",1,Valeurs,0))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Valeur_tempo_jauge_gauche; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Gauges_scrolling_speed_Left",1,Valeurs,0))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Valeur_tempo_jauge_droite; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Gauges_scrolling_speed_Right",1,Valeurs,0))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Auto_save; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Auto_save",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Nb_max_de_vertex_par_polygon; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Vertices_per_polygon",1,Valeurs,0))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Fast_zoom; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Fast_zoom",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Couleurs_separees; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Separate_colors",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=Conf->FX_Feedback; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"FX_feedback",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Safety_colors; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Safety_colors",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Opening_message; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Opening_message",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Clear_with_stencil; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Clear_with_stencil",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Auto_discontinuous; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Auto_discontinuous",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Taille_ecran_dans_GIF; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Save_screen_size_in_GIF",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Auto_nb_used; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Auto_nb_colors_used",1,Valeurs,1))) - goto Erreur_Retour; - - Valeurs[0]=Conf->Resolution_par_defaut; - if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Default_video_mode",1,Valeurs,0))) - goto Erreur_Retour; - - Sauver_INI_Flush(Ancien_fichier,Nouveau_fichier,Buffer); - - fclose(Nouveau_fichier); - } - else - { - fclose(Ancien_fichier); goto Erreur_ERREUR_SAUVEGARDE_INI; } - - fclose(Ancien_fichier); } - else + // On récupère un fichier INI "propre" dans GFX2.DAT + strcpy(Nom_du_fichier_DAT,Repertoire_du_programme); + strcat(Nom_du_fichier_DAT,"gfx2.dat"); + Ancien_fichier=fopen(Nom_du_fichier_DAT,"rb"); + if (Ancien_fichier==0) { - free(Nom_du_fichier_temporaire); - free(Nom_du_fichier); - free(Buffer); - return ERREUR_INI_ABSENT; + fclose(Ancien_fichier); + return ERREUR_DAT_ABSENT; } + if (fseek(Ancien_fichier, DAT_DEBUT_INI_PAR_DEFAUT, SEEK_SET)) + { + fclose(Ancien_fichier); + return ERREUR_DAT_CORROMPU; + } + Nouveau_fichier=fopen(Nom_du_fichier,"wb"); + if (Nouveau_fichier==0) + { + free(Buffer); + return ERREUR_SAUVEGARDE_INI; + } + if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[MOUSE]"))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Indice_Sensibilite_souris_X; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"X_sensitivity",1,Valeurs,0))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Indice_Sensibilite_souris_Y; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Y_sensitivity",1,Valeurs,0))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Mouse_Facteur_de_correction_X; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"X_correction_factor",1,Valeurs,0))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Mouse_Facteur_de_correction_Y; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Y_correction_factor",1,Valeurs,0))) + goto Erreur_Retour; + + Valeurs[0]=(Conf->Curseur)+1; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Cursor_aspect",1,Valeurs,0))) + goto Erreur_Retour; + + + if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[MENU]"))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Coul_menu_pref[2].R; + Valeurs[1]=Conf->Coul_menu_pref[2].V; + Valeurs[2]=Conf->Coul_menu_pref[2].B; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Light_color",3,Valeurs,0))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Coul_menu_pref[1].R; + Valeurs[1]=Conf->Coul_menu_pref[1].V; + Valeurs[2]=Conf->Coul_menu_pref[1].B; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Dark_color",3,Valeurs,0))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Ratio; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Menu_ratio",1,Valeurs,0))) + goto Erreur_Retour; + + Valeurs[0]=(Conf->Fonte)+1; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Font",1,Valeurs,0))) + goto Erreur_Retour; + + + if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[FILE_SELECTOR]"))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Lire_les_fichiers_caches?1:0; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Show_hidden_files",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Lire_les_repertoires_caches?1:0; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Show_hidden_directories",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Lire_les_repertoires_systemes?1:0; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Show_system_directories",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Chrono_delay; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Preview_delay",1,Valeurs,0))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Maximize_preview; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Maximize_preview",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Find_file_fast; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Find_file_fast",1,Valeurs,0))) + goto Erreur_Retour; + + + if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[LOADING]"))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Auto_set_res; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Auto_set_resolution",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Set_resolution_according_to; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Set_resolution_according_to",1,Valeurs,0))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Clear_palette; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Clear_palette",1,Valeurs,1))) + goto Erreur_Retour; + + + if ((Retour=Sauver_INI_Reach_group(Ancien_fichier,Nouveau_fichier,Buffer,"[MISCELLANEOUS]"))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Afficher_limites_image; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Draw_limits",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Adjust_brush_pick; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Adjust_brush_pick",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=2-Conf->Coords_rel; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Coordinates",1,Valeurs,0))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Backup; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Backup",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Nb_pages_Undo; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Undo_pages",1,Valeurs,0))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Valeur_tempo_jauge_gauche; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Gauges_scrolling_speed_Left",1,Valeurs,0))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Valeur_tempo_jauge_droite; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Gauges_scrolling_speed_Right",1,Valeurs,0))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Auto_save; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Auto_save",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Nb_max_de_vertex_par_polygon; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Vertices_per_polygon",1,Valeurs,0))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Fast_zoom; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Fast_zoom",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Couleurs_separees; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Separate_colors",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=Conf->FX_Feedback; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"FX_feedback",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Safety_colors; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Safety_colors",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Opening_message; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Opening_message",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Clear_with_stencil; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Clear_with_stencil",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Auto_discontinuous; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Auto_discontinuous",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Taille_ecran_dans_GIF; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Save_screen_size_in_GIF",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Auto_nb_used; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Auto_nb_colors_used",1,Valeurs,1))) + goto Erreur_Retour; + + Valeurs[0]=Conf->Resolution_par_defaut; + if ((Retour=Sauver_INI_Set_values (Ancien_fichier,Nouveau_fichier,Buffer,"Default_video_mode",1,Valeurs,0))) + goto Erreur_Retour; + + Sauver_INI_Flush(Ancien_fichier,Nouveau_fichier,Buffer); + + fclose(Nouveau_fichier); + fclose(Ancien_fichier); // On efface le fichier temporaire <=> Ancienne version du .INI - remove(Nom_du_fichier_temporaire); - - free(Nom_du_fichier_temporaire); - free(Nom_du_fichier); + if (Ini_existe) + remove(Nom_du_fichier_temporaire); free(Buffer); return 0; @@ -491,15 +495,11 @@ int Sauver_INI(struct S_Config * Conf) fclose(Nouveau_fichier); fclose(Ancien_fichier); - free(Nom_du_fichier_temporaire); - free(Nom_du_fichier); free(Buffer); return Retour; Erreur_ERREUR_SAUVEGARDE_INI: - free(Nom_du_fichier_temporaire); - free(Nom_du_fichier); free(Buffer); return ERREUR_SAUVEGARDE_INI; }