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