/*
Fichier ficonf.c
Auteur Bernard Chardonneau
Logiciel libre, droits d'utilisation précisés en français
dans le fichier : licence-fr.txt
Traductions des droits d'utilisation dans les fichiers :
licence-de.txt , licence-en.txt , licence-es.txt ,
licence-it.txt , licence-nl.txt , licence-pt.txt ,
licence-eo.txt , licence-eo-utf.txt
Droits d'utilisation également sur la page web :
http://libremail.tuxfamily.org/voir.php?page=droits
Fonction permettant d'ouvrir en lecture le fichier de
configuration.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "ficonf.h"
#include "messages.h"
#include "szchemin.h"
/* Ouverture en lecture du fichier de configuration */
FILE * ouvre_ficonf (char *nomfich)
{
// fichier de configuration si présent dans le répertoire courant
char ficonf [120];
// fichier de configuration si présent dans le répertoire $libremail_cfg
char chemficonf [szchemin];
FILE *fconf; // descripteur du fichier de configuration
// récupérer le nom du fichier de configuration
strcpy (ficonf, nomfich);
// rajouter le suffixe si nécessaire
if (ficonf [strlen (ficonf) - 4] != '.')
strcat (ficonf, ".cfg");
// tenter d'ouvrir le fichier de configuration
fconf = fopen (ficonf, "r");
// si l'ouverture s'est mal passé et que la
// variable d'environnement libremail_cfg existe
if (!fconf && getenv ("libremail_cfg"))
{
// générer le chemin d'accès au fichier de configuration
sprintf (chemficonf, "%s/%s", getenv ("libremail_cfg"), ficonf);
// et tenter d'ouvrir ce fichier
fconf = fopen (chemficonf, "r");
}
// si toujours pas de fichier de configuration ouvert
if (!fconf)
// message d'erreur
// "Fichier %s non trouvé"
aff_err_arg ("FICH_ABSENT", ficonf);
// retourner le résultat de l'ouverture du fichier
return fconf;
}