/******************************************************************************
 * This file is part of a software distribution, which is furnished under the *
 * terms of a license.  Use of this software  by any means is subject to this *
 * license  and  signifies  the  acceptance of  the  licensing  terms  stated *
 * therein. Please see  the file LICENSE in the  top-level directory  of this *
 * software  distribution  for detailed copyright  disclaimers  and licensing *
 * terms.                                                                     *
 ******************************************************************************
 * Copryight (c) by Andreas S. Wetzel - All rights reserved.                  *
 ******************************************************************************/

/* $Id: proto_common.h,v 1.5 2002/06/23 23:29:37 mickey Exp $ */

#ifndef __PROTO_COMMON_H__
#define __PROTO_COMMON_H__

/*** clock.c ***/

void	update_clock(void);
void	update_onlinetime(time_t online);

/*** commands.c ***/

void	aclcmd(char *dat);
void	action(char *dat);
void	addnick(char *dat);
void	broadcast(char *dat);
void	chchan(char *chan);
void	modify_permissions(char *dat);
void	chnick(char *newnick);
void	chpasswd(u_char *nick);
void	chtopic(char *dat);
void	clientinfo(char *dat);
void	clientopts(char *dat);
void	delnick(char *dat);
void	fixchan(char *dat);
void	invite(char *user);
void	killclient(char *dat);
void	lastlog(char *dat);
void	prv_msg(char *dat);
void	querynick(char *dat);
void	rtcmp(char *dat);
void	serveropts(char *dat);
void	serverstatus(char *dat);
void	submit_topic(void);
void	ulist(char *dat);
void	wakeup(char *dat);
void	svdnsopt(char *dat);
void	exclude(char *dat);

/*** ed_funcs.c ***/

void	curs_left(void);
void	curs_right(void);
void	backspace(void);
void	normal_backspace(void);
void	slide_backspace(void);
void	inline_backspace(void);
void	jump_start(void);
void	jump_end(void);
void	erase_eol(void);
void	erase_line(void);
void	insert_char(char c);
void	append_char(char c);
void	delete(void);
void	word_forward(void);
char	*scan_forward(void);
char	*end_word(char *begin);
void	word_reverse(void);
char	*scan_reverse(void);
int	is_key_sequence(char *key, u_char c);
void	clear_ed(ED *ced);
void	tabcomplete(void);
int	matching_chars(char *c1, char *c2);

/*** heartbeat.c ***/

void	heartbeat(void);

/*** microtime.c ***/

void	timestamp(struct timeval *tm);
void	store_tm_value(struct timeval *tp);
char	*pr_time(struct timeval *tm);
TMREPORT *report_stat(void);
struct	timeval *diff_t(struct timeval *t1, struct timeval *t2);
void	push_value(struct timeval *srctp, struct timeval *stacktp);
void	avgvalue(struct timeval *pt);
void	clear_tm_stats(void);

/*** network.c ***/

int	connect_server(VCONN *vcn, struct in_addr *addr, u_short cport, u_long magic, u_char *passwd);
void	rcv_sv_msg(void);
void	snd_serv(u_short cmd, char *data, size_t siz);
void	snd_conn(int fd, u_short cmd, char *data, size_t siz);
char	*iptoname(struct in_addr ip);

/*** screen.c ***/

void	screen_init(void);
void	cprintf(int win, char *fmt, ...);
void	cputnchars(u_char *buf, size_t size);
int	real_len(char *s);
int	outc(u_char x);
void	mv(int x, int y);
void	cls(void);
void	keymode(int which);
void	scroll_reg(int start, int ende);
void	put_back_cursor(void);
void	clear_input(void);

/*** sigctl.c ***/

void	v_io_init(void);
void	v_timer_init(void);
void	v_winch_init(void);
void	v_io_end(void);
void	v_timer_end(void);
void	v_winch_end(void);
void	vlock(u_char mode, u_char items);
void	async_io(int x);

/*** snake.c ***/

void	display_snake(void);
void	snake_enable(void);
void	snake_disable(void);

/*** statusbar.c ***/

void	init_status(void);
void	alter_status(u_char item, char *fmt, ...);
void	update_flags();
void	update_status(u_char redraw);
u_char	status_maxpriority(void);
void	full_update(u_char maxpri);
void	optimized_update(u_char maxpri);

/*** subr.c ***/

void	history_init(void);
void	history_exit(void);
void	history_save(u_char *text);
void	vsleep(u_long sec, u_long usec);
void	str_lower(char *s);
char	*pr_timer(time_t tim);
void	pbc_enable(void);
void	pbc_disable(void);
void	line_update(void);
void	nop(void);
int	escape_str(u_char *str, u_char *buf, size_t len);
int	netmask_bits(struct in_addr netmask);
void	netmask_create(int bits, struct in_addr *netmask);
int	permission_mask(char *permname, u_int32_t *maskptr);
int	clopt_mask(char *optname, u_int32_t *maskptr);
int	svopt_mask(char *optname, u_int32_t *maskptr);

/*** tcap.c ***/

int	init_vtcap(void);

#if USE_TERMINFO
char	*getcap(char *capname);
#endif

/*** verror.c ***/

char	*v_error(u_char verrno);

#endif /* __PROTO_COMMON_H__ */


syntax highlighted by Code2HTML, v. 0.9.1