#ifndef INI_H
#define INI_H
/* ---------------------------------------------------------------------
   (c) ED 1998-2002
   Projet       : CLIB
   Fonction     : Lecture de parametres dans un fichier INI
   Module       : INI
   Fichier      : INI.H
   Creation     : 04-09-1998
   Modification : 13-07-2002
   --------------------------------------------------------------------- */

/* ---------------------------------------------------------------------
   Journal

   0.0 du 04-09-1998 Creation
   1.0 du 07-09-1998 Version operationelle
   .                 - GetSz()
   .                 - GetDw()
   .                 - Cr2Sz()
   1.1 du 07-09-1998 Ajoute commentaire en fin de ligne 'x=y ; comment'
   1.2 du 24-11-1998 Parametres en constante
   1.3 du 16-12-1998 Supprime const dans sGET.par.sz.iLen
   1.4 du 18-12-1998 Rempace GetDw() par GetD() (plus sur...)
   1.5 du 12-01-1999 Mise au point (ligne vide dans le fichier)
   1.6 du 24-01-2001 Rempace GetDw() par Getul()
   1.7 du 13-07-2002 LCLint

   --------------------------------------------------------------------- */
#include "ed/inc/sys.h"

/* ---------------------------------------------------------------------
   Constantes
   --------------------------------------------------------------------- */
typedef enum
{
#define ITEM(a,b) a,
#include "ed/inc/ini_err.itm"
#undef ITEM
   INI_CR_NB
}
eINI_CR;

/* ---------------------------------------------------------------------
   Structures
   --------------------------------------------------------------------- */
#if 0
typedef struct
{
   int reserve;
}
sINI;
#endif

/* ---------------------------------------------------------------------
   Donnees
   --------------------------------------------------------------------- */

/* =====================================================================
   Fonctions
   ===================================================================== */

/* ---------------------------------------------------------------------
   INI_sver()
   ---------------------------------------------------------------------
   Role : Retourne une chaine "Version"
   ---------------------------------------------------------------------
   E :
   S : Pointeur de chaine ASCIIZ
   --------------------------------------------------------------------- */
const char *INI_sver (void);

/* ---------------------------------------------------------------------
   INI_sid()
   ---------------------------------------------------------------------
   Role : Retourne une chaine "Identification"
   ---------------------------------------------------------------------
   E :
   S : Pointeur de chaine ASCIIZ
   --------------------------------------------------------------------- */
const char *INI_sid (void);

#if 0
/* ---------------------------------------------------------------------
   INI_init()
   ---------------------------------------------------------------------
   Role : Creation/Initialisation
   ---------------------------------------------------------------------
   E : 
   S : Pointeur de donnees
   --------------------------------------------------------------------- */
sINI *INI_init (void);

/* ---------------------------------------------------------------------
   INI_end()
   ---------------------------------------------------------------------
   Role : Suppression
   ---------------------------------------------------------------------
   E : Pointeur de donnees
   S :
   --------------------------------------------------------------------- */
void INI_end (sINI * p);
#endif

/* ---------------------------------------------------------------------
   INI_Cr2Sz()
   ---------------------------------------------------------------------
   Role : Retourne la chaine du code d'erreur
   ---------------------------------------------------------------------
   E : Erreur
   S : Chaine (ASCIIz)
   --------------------------------------------------------------------- */
char const *INI_Cr2Sz (eINI_CR cr);

/* ---------------------------------------------------------------------
   INI_GetSz()
   ---------------------------------------------------------------------
   Role : Recherche d'une variable chaine ASCIIz dans un fichier de
   configuration
   ---------------------------------------------------------------------
   E : Fichier
   E : Section
   E : Variable
   E : Valeur lue
   E : Longueur max
   S : 0=Pas trouve 1=Trouve.
   Si 'pas trouve', la valeur initiale de la variable est conservee
   --------------------------------------------------------------------- */
eINI_CR INI_GetSz (const char *sfile
                   ,const char *ssection
                   ,const char *svar
                   ,char *svalue
                   ,const size_t len);

/* ---------------------------------------------------------------------
   INI_Getul()
   ---------------------------------------------------------------------
   Role : Recherche d'une variable numerique dans un fichier de
   configuration (ulong)
   ---------------------------------------------------------------------
   E : Fichier
   E : Section
   E : Variable
   E : Ptr pour la valeur lue
   S : 0=Pas trouve 1=Trouve.
   Si 'pas trouve', la valeur initiale de la variable est conservee
   --------------------------------------------------------------------- */
eINI_CR INI_Getul (char const *sfile
                   ,char const *ssection
                   ,char const *svar
                   ,ulong * Value
);

#if 0
/* ---------------------------------------------------------------------
   INI_PutSz()
   ---------------------------------------------------------------------
   Role : Inscription d'une variable dans un fichier de configuration
   ---------------------------------------------------------------------
   E : Fichier
   E : Section
   E : Variable
   E : Valeur a ecrire
   --------------------------------------------------------------------- */
void INI_PutSz (char *sfile, char *ssection, char *svar, char *svalue);
#endif

#endif /* INI_H */

/* File generated by 'NEW.EXE' Ver 1.13 (c) ED 1998 */
