1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-07 02:03:13 +02:00

Added /halfop & /dehalfop commands, fixed halfop display bug in nicklist

This commit is contained in:
Sebastien Helleu
2005-03-16 21:49:49 +00:00
parent 2580406aa7
commit 0b78294f1a
16 changed files with 2316 additions and 2014 deletions
+2 -1
View File
@@ -1,7 +1,7 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
ChangeLog - 2005-03-15
ChangeLog - 2005-03-16
Version 0.1.1 (under dev!):
@@ -10,6 +10,7 @@ Version 0.1.1 (under dev!):
* added crash dump when WeeChat receives SIGSEGV (Segmentation fault)
* added new display engine: doesn't cut words at end of lines
* added DCC send and DCC chat
* added /halfop & /dehalfop commands, fixed halfop display bug in nicklist
* added /ban, /unban and /kickban commands
* added spanish translation
* added --irc-commands and --weechat-commands command line options
+351 -333
View File
File diff suppressed because it is too large Load Diff
+351 -333
View File
File diff suppressed because it is too large Load Diff
+358 -340
View File
File diff suppressed because it is too large Load Diff
+6
View File
@@ -54,6 +54,9 @@ t_irc_command irc_commands[] =
"nickname: nickname to send file or chat\n"
"file: filename (on local host)"),
1, MAX_ARGS, 1, NULL, irc_cmd_send_dcc, NULL },
{ "dehalfop", N_("removes half channel operator status from nickname(s)"),
N_("nickname [nickname]"), "",
1, MAX_ARGS, 1, irc_cmd_send_dehalfop, NULL, NULL },
{ "deop", N_("removes channel operator status from nickname(s)"),
N_("nickname [nickname]"), "",
1, MAX_ARGS, 1, irc_cmd_send_deop, NULL, NULL },
@@ -64,6 +67,9 @@ t_irc_command irc_commands[] =
"", "",
0, 0, 1, NULL, irc_cmd_send_die, NULL },
{ "error", N_("error received from IRC server"), "", "", 0, 0, 1, NULL, NULL, irc_cmd_recv_error },
{ "halfop", N_("gives half channel operator status to nickname(s)"),
N_("nickname [nickname]"), "",
1, MAX_ARGS, 1, irc_cmd_send_halfop, NULL, NULL },
{ "info", N_("get information describing the server"),
N_("[target]"),
N_("target: server name"),
+35
View File
@@ -382,6 +382,41 @@ void irc_get_channel_modes (t_irc_channel *ptr_channel, char *channel_name,
_("removes ban on"),
(parm) ? parm : NULL);
/* look for next parameter */
if (parm && pos)
{
pos++;
while (pos[0] == ' ')
pos++;
parm = pos;
}
break;
case 'h':
pos = NULL;
if (parm)
{
pos = strchr (parm, ' ');
if (pos)
pos[0] = '\0';
}
if (nick_host)
irc_display_mode (ptr_channel->buffer,
channel_name, set_flag, "o", nick_host,
(set_flag == '+') ?
_("gives half channel operator status to") :
_("removes half channel operator status from"),
(parm) ? parm : NULL);
if (parm)
{
ptr_nick = nick_search (ptr_channel, parm);
if (ptr_nick)
{
ptr_nick->is_halfop = (set_flag == '+') ? 1 : 0;
nick_resort (ptr_channel, ptr_nick);
gui_draw_buffer_nick (ptr_channel->buffer, 1);
}
}
/* look for next parameter */
if (parm && pos)
{
+53
View File
@@ -401,6 +401,32 @@ irc_cmd_send_dcc (t_irc_server *server, char *arguments)
return 0;
}
/*
* irc_cmd_send_dehalfop: remove half operator privileges from nickname(s)
*/
int
irc_cmd_send_dehalfop (t_irc_server *server, int argc, char **argv)
{
int i;
if (BUFFER_IS_CHANNEL(gui_current_window->buffer))
{
for (i = 0; i < argc; i++)
server_sendf (server, "MODE %s -h %s\r\n",
CHANNEL(gui_current_window->buffer)->name,
argv[i]);
}
else
{
irc_display_prefix (server->buffer, PREFIX_ERROR);
gui_printf_nolog (server->buffer,
_("%s \"%s\" command can only be executed in a channel window\n"),
WEECHAT_ERROR, "dehalfop");
}
return 0;
}
/*
* irc_cmd_send_deop: remove operator privileges from nickname(s)
*/
@@ -468,6 +494,33 @@ irc_cmd_send_die (t_irc_server *server, char *arguments)
return 0;
}
/*
* irc_cmd_send_halfop: give half operator privileges to nickname(s)
*/
int
irc_cmd_send_halfop (t_irc_server *server, int argc, char **argv)
{
int i;
if (BUFFER_IS_CHANNEL(gui_current_window->buffer))
{
for (i = 0; i < argc; i++)
server_sendf (server, "MODE %s +h %s\r\n",
CHANNEL(gui_current_window->buffer)->name,
argv[i]);
}
else
{
irc_display_prefix (server->buffer, PREFIX_ERROR);
gui_printf_nolog (server->buffer,
_("%s \"%s\" command can only be executed in a channel window\n"),
WEECHAT_ERROR, "halfop");
return -1;
}
return 0;
}
/*
* irc_cmd_send_info: get information describing the server
*/
+2
View File
@@ -322,9 +322,11 @@ extern int irc_cmd_send_away (t_irc_server *, char *);
extern int irc_cmd_send_ban (t_irc_server *, char *);
extern int irc_cmd_send_ctcp (t_irc_server *, char *);
extern int irc_cmd_send_dcc (t_irc_server *, char *);
extern int irc_cmd_send_dehalfop (t_irc_server *, int, char **);
extern int irc_cmd_send_deop (t_irc_server *, int, char **);
extern int irc_cmd_send_devoice (t_irc_server *, int, char **);
extern int irc_cmd_send_die (t_irc_server *, char *);
extern int irc_cmd_send_halfop (t_irc_server *, int, char **);
extern int irc_cmd_send_info (t_irc_server *, char *);
extern int irc_cmd_send_invite (t_irc_server *, int, char **);
extern int irc_cmd_send_ison (t_irc_server *, char *);
+2 -1
View File
@@ -1,7 +1,7 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
ChangeLog - 2005-03-15
ChangeLog - 2005-03-16
Version 0.1.1 (under dev!):
@@ -10,6 +10,7 @@ Version 0.1.1 (under dev!):
* added crash dump when WeeChat receives SIGSEGV (Segmentation fault)
* added new display engine: doesn't cut words at end of lines
* added DCC send and DCC chat
* added /halfop & /dehalfop commands, fixed halfop display bug in nicklist
* added /ban, /unban and /kickban commands
* added spanish translation
* added --irc-commands and --weechat-commands command line options
+351 -333
View File
File diff suppressed because it is too large Load Diff
+351 -333
View File
File diff suppressed because it is too large Load Diff
+358 -340
View File
File diff suppressed because it is too large Load Diff
+6
View File
@@ -54,6 +54,9 @@ t_irc_command irc_commands[] =
"nickname: nickname to send file or chat\n"
"file: filename (on local host)"),
1, MAX_ARGS, 1, NULL, irc_cmd_send_dcc, NULL },
{ "dehalfop", N_("removes half channel operator status from nickname(s)"),
N_("nickname [nickname]"), "",
1, MAX_ARGS, 1, irc_cmd_send_dehalfop, NULL, NULL },
{ "deop", N_("removes channel operator status from nickname(s)"),
N_("nickname [nickname]"), "",
1, MAX_ARGS, 1, irc_cmd_send_deop, NULL, NULL },
@@ -64,6 +67,9 @@ t_irc_command irc_commands[] =
"", "",
0, 0, 1, NULL, irc_cmd_send_die, NULL },
{ "error", N_("error received from IRC server"), "", "", 0, 0, 1, NULL, NULL, irc_cmd_recv_error },
{ "halfop", N_("gives half channel operator status to nickname(s)"),
N_("nickname [nickname]"), "",
1, MAX_ARGS, 1, irc_cmd_send_halfop, NULL, NULL },
{ "info", N_("get information describing the server"),
N_("[target]"),
N_("target: server name"),
+35
View File
@@ -382,6 +382,41 @@ void irc_get_channel_modes (t_irc_channel *ptr_channel, char *channel_name,
_("removes ban on"),
(parm) ? parm : NULL);
/* look for next parameter */
if (parm && pos)
{
pos++;
while (pos[0] == ' ')
pos++;
parm = pos;
}
break;
case 'h':
pos = NULL;
if (parm)
{
pos = strchr (parm, ' ');
if (pos)
pos[0] = '\0';
}
if (nick_host)
irc_display_mode (ptr_channel->buffer,
channel_name, set_flag, "o", nick_host,
(set_flag == '+') ?
_("gives half channel operator status to") :
_("removes half channel operator status from"),
(parm) ? parm : NULL);
if (parm)
{
ptr_nick = nick_search (ptr_channel, parm);
if (ptr_nick)
{
ptr_nick->is_halfop = (set_flag == '+') ? 1 : 0;
nick_resort (ptr_channel, ptr_nick);
gui_draw_buffer_nick (ptr_channel->buffer, 1);
}
}
/* look for next parameter */
if (parm && pos)
{
+53
View File
@@ -401,6 +401,32 @@ irc_cmd_send_dcc (t_irc_server *server, char *arguments)
return 0;
}
/*
* irc_cmd_send_dehalfop: remove half operator privileges from nickname(s)
*/
int
irc_cmd_send_dehalfop (t_irc_server *server, int argc, char **argv)
{
int i;
if (BUFFER_IS_CHANNEL(gui_current_window->buffer))
{
for (i = 0; i < argc; i++)
server_sendf (server, "MODE %s -h %s\r\n",
CHANNEL(gui_current_window->buffer)->name,
argv[i]);
}
else
{
irc_display_prefix (server->buffer, PREFIX_ERROR);
gui_printf_nolog (server->buffer,
_("%s \"%s\" command can only be executed in a channel window\n"),
WEECHAT_ERROR, "dehalfop");
}
return 0;
}
/*
* irc_cmd_send_deop: remove operator privileges from nickname(s)
*/
@@ -468,6 +494,33 @@ irc_cmd_send_die (t_irc_server *server, char *arguments)
return 0;
}
/*
* irc_cmd_send_halfop: give half operator privileges to nickname(s)
*/
int
irc_cmd_send_halfop (t_irc_server *server, int argc, char **argv)
{
int i;
if (BUFFER_IS_CHANNEL(gui_current_window->buffer))
{
for (i = 0; i < argc; i++)
server_sendf (server, "MODE %s +h %s\r\n",
CHANNEL(gui_current_window->buffer)->name,
argv[i]);
}
else
{
irc_display_prefix (server->buffer, PREFIX_ERROR);
gui_printf_nolog (server->buffer,
_("%s \"%s\" command can only be executed in a channel window\n"),
WEECHAT_ERROR, "halfop");
return -1;
}
return 0;
}
/*
* irc_cmd_send_info: get information describing the server
*/
+2
View File
@@ -322,9 +322,11 @@ extern int irc_cmd_send_away (t_irc_server *, char *);
extern int irc_cmd_send_ban (t_irc_server *, char *);
extern int irc_cmd_send_ctcp (t_irc_server *, char *);
extern int irc_cmd_send_dcc (t_irc_server *, char *);
extern int irc_cmd_send_dehalfop (t_irc_server *, int, char **);
extern int irc_cmd_send_deop (t_irc_server *, int, char **);
extern int irc_cmd_send_devoice (t_irc_server *, int, char **);
extern int irc_cmd_send_die (t_irc_server *, char *);
extern int irc_cmd_send_halfop (t_irc_server *, int, char **);
extern int irc_cmd_send_info (t_irc_server *, char *);
extern int irc_cmd_send_invite (t_irc_server *, int, char **);
extern int irc_cmd_send_ison (t_irc_server *, char *);