Move reinstate_user_modes() and update_user_mode() from funny.c to server.c and parse.c

Move these functions where they belong.
This commit is contained in:
Kevin Easton 2017-12-06 22:13:34 +11:00
parent c4ba093ca5
commit 305cfe2afb
6 changed files with 41 additions and 41 deletions

View File

@ -24,11 +24,9 @@
int funny_is_ignore_channel (void);
void funny_set_ignore_channel (char *);
void funny_match (char *);
void reinstate_user_modes (void);
void funny_print_widelist (void);
void funny_list (char *, char **);
void funny_mode (char *, char **);
void funny_namreply (char *, char **);
void update_user_mode (int, const char *);
#endif /* FUNNY_H_ */

View File

@ -249,6 +249,7 @@ extern SGroup *server_group_list;
void disconnectcmd (char *, char *, char *, char *);
char *BX_get_umode (int);
int BX_server_list_size (void);
void reinstate_user_modes (int);
void BX_set_server_away (int, char *, int);
char * BX_get_server_away (int);

View File

@ -408,41 +408,3 @@ void funny_mode(char *from, char **ArgList)
}
}
void update_user_mode(int server, const char *modes)
{
int onoff = 1;
const char *p_umodes = get_possible_umodes(server);
const char *p;
for (; *modes; modes++)
{
char c = *modes;
switch (c)
{
case '-':
onoff = 0;
break;
case '+':
onoff = 1;
break;
case 'o':
case 'O':
set_server_operator(server, onoff);
/* fallthrough */
default:
p = strchr(p_umodes, c);
if (p)
set_server_flag(server, p - p_umodes, onoff);
else
yell("Ignoring invalid user mode '%c' from server", c);
}
}
}
void reinstate_user_modes (void)
{
char *modes = get_umode(from_server);
if (modes && *modes)
send_to_server("MODE %s +%s", get_server_nickname(from_server), modes);
}

View File

@ -581,7 +581,7 @@ static void got_initial_version_28(char *server, char *sversion, char *channel_m
reconnect_all_channels(from_server);
reset_display_target();
reinstate_user_modes();
reinstate_user_modes(from_server);
if (use_nat_address == 1)
userhostbase(get_server_nickname(from_server), get_nat_address, 1, "%s", get_server_nickname(from_server));
update_all_status(current_window, NULL, 0);

View File

@ -1462,6 +1462,38 @@ static void check_bitch_mode(char *from, char *uh, char *channel, char *line, Ch
reset_display_target();
}
static void update_user_mode(int server, const char *modes)
{
int onoff = 1;
const char *p_umodes = get_possible_umodes(server);
const char *p;
for (; *modes; modes++)
{
char c = *modes;
switch (c)
{
case '-':
onoff = 0;
break;
case '+':
onoff = 1;
break;
case 'o':
case 'O':
set_server_operator(server, onoff);
/* fallthrough */
default:
p = strchr(p_umodes, c);
if (p)
set_server_flag(server, p - p_umodes, onoff);
else
yell("Ignoring invalid user mode '%c' from server", c);
}
}
}
static void p_mode(char *from, char **ArgList)
{
char *target;

View File

@ -1918,6 +1918,13 @@ void clear_user_modes (int gindex)
set_umode(gindex);
}
void reinstate_user_modes(int server)
{
char *modes = get_umode(server);
if (modes && *modes)
my_send_to_server(server, "MODE %s +%s", get_server_nickname(server), modes);
}
/*
* Encapsulates everything we need to change our AWAY status.
* This improves greatly on having everyone peek into that member.