1 enum MSG_TYPE {		/* logged (Y or N), displayed (Y or N) */
2 	MSG_HEADING = 0,	/* -- - heading: valid only if a warning message follows */
3 	MSG_DEBUG,			/* YN - debug info */
4 	MSG_NOTICE,			/* YN - notice */
5 	MSG_AUDIT,			/* YN - user actions (audit trail) */
6 	MSG_I,				/* YY - informational message */
7 	MSG_i,				/* NY - informational message not to be logged */
8 	MSG_W,				/* YY - warning */
9 	MSG_w,				/* NY - warning not to be logged */
10 	_MSG_TOTAL_
11 };
12 
13 #define MSG_MASK	15	/* 4 bits for MSG_TYPE */
14 
15 /* modifiers which may be ORed with MSG_TYPE */
16 #define MSG_NOTIFY	16	/* mention the notification panel */
17 
18 /*
19  * MSG_HEADING usage example:
20  *   msgout(MSG_HEADING,"Reading the xxx file");
21  *   ....
22  *   if (err1)
23  *     msgout(MSG_W,"read error");
24  *   ....
25  *   if (err2)
26  *     msgout(MSG_W,"parse error");
27  *   ....
28  *   msgout(MSG_HEADING,0);
29  */
30 
31 extern void logfile_open(const char *);
32 extern void logfile_close(void);
33 extern int log_prepare(void);
34 extern void log_panel_data(void);
35 extern void cx_log_right(void);
36 extern void cx_log_left(void);
37 extern void cx_log_mark(void);
38 extern void cx_log_home(void);
39 extern void msgout(int, const char *, ...);
40 extern void vmsgout(int, const char *, va_list);
41