/*
 * lastlog.h: header for lastlog.c 
 *
 * Written By Michael Sandrof
 *
 * Copyright(c) 1990 
 *
 * See the COPYRIGHT file, or do a HELP IRCII COPYRIGHT 
 *
 * @(#)$Id$
 */
#ifndef LASTLOG_H_
#define LASTLOG_H_

#define LOG_NONE	0x00000000
#define LOG_CURRENT	0x00000000
#define LOG_CRAP	0x00000001
#define LOG_PUBLIC	0x00000002
#define LOG_MSG		0x00000004
#define LOG_NOTICE	0x00000008
#define LOG_WALL	0x00000010
#define LOG_WALLOP	0x00000020
#define LOG_NOTES	0x00000040
#define LOG_OPNOTE	0x00000080
#define	LOG_SNOTE	0x00000100
#define	LOG_ACTION	0x00000200
#define	LOG_DCC		0x00000400
#define LOG_CTCP	0x00000800
#define	LOG_USER1	0x00001000
#define LOG_USER2	0x00002000
#define LOG_USER3	0x00004000
#define LOG_USER4	0x00008000
#define LOG_USER5	0x00010000
#define LOG_BEEP	0x00020000
#define LOG_TCL		0x00040000
#define LOG_SEND_MSG	0x00080000
#define LOG_KILL	0x00100000
#define LOG_MODE_USER	0x00200000
#define LOG_MODE_CHAN	0x00400000
#define LOG_KICK	0x00800000
#define LOG_KICK_USER	0x01000000
#define LOG_PART	0x02000000
#define LOG_INVITE	0x04000000
#define LOG_JOIN	0x08000000
#define LOG_TOPIC	0x10000000
#define LOG_HELP	0x20000000
#define LOG_NOTIFY	0x40000000
#define LOG_DEBUG	0x80000000

#define LOG_ALL (LOG_CRAP | LOG_PUBLIC | LOG_MSG | LOG_NOTICE | LOG_WALL | \
		LOG_WALLOP | LOG_NOTES | LOG_OPNOTE | LOG_SNOTE | LOG_ACTION | \
		LOG_CTCP | LOG_DCC | LOG_USER1 | LOG_USER2 | LOG_USER3 | \
		LOG_USER4 | LOG_USER5 | LOG_BEEP | LOG_TCL | LOG_SEND_MSG | \
		LOG_MODE_USER | LOG_MODE_CHAN | LOG_KICK_USER | LOG_KICK | \
		LOG_PART | LOG_INVITE | LOG_JOIN | LOG_TOPIC | LOG_HELP | \
		LOG_KILL | LOG_NOTIFY)

#define LOG_DEFAULT LOG_NONE

void set_lastlog_level(Window *, char *, int);
unsigned long BX_set_lastlog_msg_level(unsigned long);
void set_lastlog_size(Window *, char *, int);
void set_notify_level(Window *, char *, int);
void set_msglog_level(Window *, char *, int);
void set_new_server_lastlog_level(Window *, char *, int);
	
BUILT_IN_COMMAND(lastlog);

void add_to_lastlog(Window *, const char *);
char *bits_to_lastlog_level(unsigned long);
unsigned long real_lastlog_level(void);
unsigned long real_notify_level(void);
unsigned long parse_lastlog_level(char *, int);
int	islogged(Window *);
extern void remove_from_lastlog(Window *);
extern int grab_http(char *, char *, char *);

BUILT_IN_FUNCTION(function_line);
BUILT_IN_FUNCTION(function_lastlog);

extern unsigned long beep_on_level;
extern unsigned long new_server_lastlog_level;

void set_beep_on_msg(Window *, char *, int);
Lastlog *get_lastlog_current_head(Window *);
void free_lastlog(Window *);
int logmsg(unsigned long log_type, const char *from, int flag, const char *format, ...);
void reset_hold_mode(Window *);
		  				
#endif /* LASTLOG_H_ */
