#ifndef PRINTMSG_H
#define PRINTMSG_H


/* Attributes for Messages */
#define DEFMSGATT(B) 1 << (B)		/* define msg attributes */
#define MSGATT_NULL     0		/* no atributes */
#define MSGATT_STDOUT   DEFMSGATT(0)	/* if not set then stderr is used */
#define MSGATT_RETURN	DEFMSGATT(1)	/* else exit */
#define MSGATT_NOBEGLF	DEFMSGATT(2)	/* beginn linefeed */
#define MSGATT_NOERRTXT	DEFMSGATT(3)	/* "ERROR: " */
#define MSGATT_NOEXCMRK	DEFMSGATT(4)	/* no " !" */
#define MSGATT_NOENDLF	DEFMSGATT(5)	/* end linefeed */
#define MSGATT_ERRWHILE	DEFMSGATT(6)	/* print spezific text */

#define ATTRTYPE u_int


#define CHANGEATTR(A) NULL,(ATTRTYPE)(A) /* first parameter in PrintMsg() */


typedef struct { ATTRTYPE DefAtt;	/* default attributes */
		 char *MsgTxt;
	       } MsgType;

typedef MsgType *MsgTypePtr;

typedef MsgType MsgTypeArr[1];


extern MsgTypeArr MSG_USAGE_S,		/* _S = needs a char * as arg ... */
		  MSG_HELP,
		  ERR_NOMEM,
		  ERR_OPEN_S,
		  ERR_CLOSE_S,
		  ERR_READ_S,
		  ERR_WRITE_S,
		  ERR_GROB_S,
		  ERR_EOF_S,
		  ERR_WORD_S,
		  MSG_OUTFNAM_S,
		  MSG_SKIPLN,
		  MSG_OUTFEX_S,
		  MSG_GPHFORMIS_DD,
		  MSG_OPSUCCESS;
#ifdef AMIGA
extern MsgTypeArr ERR_IFFREM_S,
		  ERR_IFFLOCK_S,
		  ERR_IFFEXAM_S,
		  ERR_IFFOPENLIB_SD,
		  ERR_IFFMEM,
		  ERR_IFFSIZE_S,
		  ERR_IFFNOILBM_S,
		  ERR_IFFNOBMHD_S,
		  ERR_IFFNOBODY_S,
		  ERR_IFFBADCOMP_S,
		  ERR_IFFUNKNOWN_S,
		  ERR_IFFNO1PL_S,
		  ERR_IFFNOIFF_S,
		  MSG_ASSUMBIN_S;
#endif


extern void PrintMsg(MsgTypePtr Msg, ...);


#endif /* PRINTMSG_H */
