/*
Fichier ficonf.c
Auteur Bernard Chardonneau
Logiciel libre, droits d'utilisation précisés en français
dans le fichier : licence.fr
Traductions des droits d'utilisation dans les fichiers :
licence.de , licence.en , licence.es , licence.it
licence.nl , licence.pt , licence.eo , licence.eo-utf
Fonction permettant d'ouvrir en lecture le fichier de
configuration.
*/
#include <stdio.h>
#include <string.h>
#include "ficonf.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 [80];
// 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;
}