/************************************************************************/
/*																		*/
/*		CATRONDO.H														*/
/*																		*/
/*		Headerdatei zum Rundschreibengenerator fr CAT					*/
/*																		*/
/*		Matthias Strmer (C)1993										*/
/*																		*/
/************************************************************************/

#ifndef __CATRONDO__
#define __CATRONDO__

/* -------------------------------------------------------------------- */
/*		Definitionen													*/
/* -------------------------------------------------------------------- */

#define EOS			0
#define STPATHLEN	256
#define STFILELEN	256


/* -------------------------------------------------------------------- */
/*		Typdeklarationen												*/
/* -------------------------------------------------------------------- */

#ifndef BOOLEAN
typedef enum { FALSE, TRUE }    BOOLEAN;
#endif

typedef struct{
 int typ;
 int nummer;
 int wort3;
 int wort4;
 int status;
 int wort6;
 int distribution;
 int wort8;
 int laenge;
 int wort10;
 int wort11;
 int wort12;
} MSGINFO;

typedef struct{
 char			*start;
 unsigned long	laenge;
} MEMBLK;

typedef struct{
 char	database[256];
 char	messages[256];
 char	msginfodatei[256];
 char	intro[32];
 char	gruss[32];
 char	rund_name[32];
 char	rund_datei[256];
 int	hoechste_nummer;
 int	rund_nummer;
 BOOLEAN verteiler;
} RUNDINFO;

/* -------------------------------------------------------------------- */
/*		globale Variablen												*/
/* -------------------------------------------------------------------- */

char	rundinfodatei[256]	= "CATRONDO.INF";

/* -------------------------------------------------------------------- */
/*		Funktionsdeklarationen											*/
/* -------------------------------------------------------------------- */

int		rundschreiben ( RUNDINFO *rund, MSGINFO *msg );
int		msginfo_erweitern ( RUNDINFO *rund, MSGINFO *msg );
int		neuen_header_schreiben ( MEMBLK *puffer, RUNDINFO *rund, int nummer, char *adresse );
int		message_kopieren ( MEMBLK *puffer, RUNDINFO *rund, int nummer, char *adresse, MEMBLK *adresspuffer );
char	*adresse_holen ( char *start, char *adresse, char *ende, RUNDINFO *rund );
void	verteiler_suchen ( RUNDINFO *rund, MEMBLK *mail );
int		plattenplatz_pruefen ( MEMBLK *adresspuffer, RUNDINFO *rund );
int		rundschreiben_suchen ( MEMBLK *msginfopuffer, RUNDINFO *rund, MSGINFO **msg );
int		hoechste_nummer ( MEMBLK *msginfopuffer );
void	name_zusammensetzen ( char *headerdatei, RUNDINFO *rund, int nummer, const char *extension );
int		rundinfo_auswerten ( MEMBLK *puffer, RUNDINFO *rund );
BOOLEAN zeile_lesen ( char **pos, char *ende, char *var );
void	fehler_auswerten( char *dateiname, int fehler );
int		datei_laden ( const char *dateiname, MEMBLK *dateipuffer );
int		d_get_laufwerk ( const char *pfad, int *drv );
void	d_get_dateiname ( const char *pfad, char *datei );
int		d_get_pfadname ( const char *vollstaendiger_pfad, char *pfad, BOOLEAN lw );
void	d_get_extension ( const char *datei, char *ext );
void	d_set_extension ( char *datei, const char *ext );
void	dateiname ( char *dest, int drv, const char *s1, const char *s2 );

#endif

/************************************************************************/
/*		E n d e		CATRONDO.H											*/
/************************************************************************/
