1 /*
2  * names.h: Header for names.c
3  *
4  * Written By Michael Sandrof
5  *
6  * Copyright(c) 1990
7  *
8  * See the COPYRIGHT file, or do a HELP IRCII COPYRIGHT
9  *
10  * @(#)$Id: names.h 515 2014-10-29 14:07:05Z keaston $
11  */
12 
13 #ifndef __names_h_
14 #define __names_h_
15 
16 #include "window.h"
17 #include "irc.h"
18 
19 /* for lookup_channel() */
20 #define	CHAN_NOUNLINK	1
21 #define CHAN_UNLINK	2
22 
23 /* for got_mode */
24 #define	GOTNAMES	0x01
25 #define	GOTMODE		0x02
26 #define GOTBANS		0x04
27 #define GOTWHO		0x08
28 #define	GOTEXEMPT	0x10
29 #define GOTNEW		0x20	/* Indicates newly-created channel */
30 
31 /* Channel mode flags */
32 #define MODE_ANONYMOUS	(1U << 0)	/* av2.9 */
33 #define MODE_C			(1U << 1)	/* erf/TS4 */
34 #define MODE_INVITE 	(1U << 2)	/* RFC */
35 #define MODE_KEY    	(1U << 3)	/* RFC */
36 #define MODE_LIMIT		(1U << 4)	/* RFC */
37 #define MODE_MODERATED	(1U << 5)	/* RFC */
38 #define MODE_MSGS		(1U << 6)	/* RFC */
39 #define MODE_PRIVATE	(1U << 7)	/* RFC */
40 #define MODE_REGISTERED (1U << 8)	/* Dalnet */
41 #define MODE_SECRET		(1U << 9)	/* RFC */
42 #define MODE_TOPIC		(1U << 10)	/* RFC */
43 #define MODE_Z          (1U << 11)  /* erf/TS4 */
44 #define MODE_RESTRICTED (1U << 12)  /* Dalnet */
45 
46 void		add_to_join_list (char *, int, int);
47 void		remove_from_join_list (char *, int);
48 char		*get_chan_from_join_list (int);
49 int		get_win_from_join_list (char *, int);
50 int		in_join_list (char *, int);
51 int		got_info (char *, int, int);
52 
53 int		is_channel_mode (char *, int, int);
54 int		BX_is_chanop (char *, char *);
55 int		BX_is_halfop (char *, char *);
56 char		*is_chanoper (char *, char *);
57 ChannelList	*BX_lookup_channel (char *, int, int);
58 char		*BX_get_channel_mode (char *, int);
59 #ifdef	INCLUDE_UNUSED_FUNCTIONS
60 void		set_channel_mode (char *, int, char *);
61 #endif /* INCLUDE_UNUSED_FUNCTIONS */
62 ChannelList *	BX_add_channel (char *, int, int);
63 ChannelList *	BX_add_to_channel (char *, char *, int, int, int, char *, char *, char *, int, int);
64 void		BX_remove_channel (char *, int);
65 void		BX_remove_from_channel (char *, char *, int, int, char *);
66 int		BX_is_on_channel (char *, int, char *);
67 void		list_channels (void);
68 void		reconnect_all_channels (int);
69 void		switch_channels (char, char *);
70 char		*what_channel (char *, int);
71 ChannelList	*walk_channels (char *, int, int);
72 char		*real_channel (void);
73 void		BX_rename_nick (char *, char *, int);
74 void		update_channel_mode (char *, char *, int, char *, ChannelList *);
75 void		set_channel_window (Window *, char *, int);
76 char		*BX_create_channel_list (Window *);
77 int		BX_get_channel_oper (char *, int);
78 int		BX_get_channel_halfop (char *, int);
79 void		channel_server_delete (int);
80 void		change_server_channels (int, int);
81 void		clear_channel_list (int);
82 void		set_waiting_channel (int);
83 void		remove_from_mode_list (char *, int);
84 int		chan_is_connected (char *, int);
85 int		BX_im_on_channel (char *, int);
86 char		*BX_recreate_mode (ChannelList *);
87 int		BX_get_channel_voice (char *, int);
88 char		*BX_get_channel_key(char *, int);
89 char		*BX_fetch_userhost (int, char *);
90 void		unset_window_current_channel (Window *);
91 void		move_window_channels (Window *);
92 void		reassign_window_channels (Window *);
93 void		check_channel_limits();
94 void		BX_clear_bans(ChannelList *);
95 char		*BX_do_compress_modes(ChannelList *, int, char *, char*);
96 int		BX_got_ops(int, ChannelList *);
97 void		BX_flush_channel_stats (void);
98 char		*BX_get_channel_bans(char *, int, int);
99 
100 #endif /* __names_h_ */
101