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:
@@ -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
|
||||
|
||||
+358
-340
File diff suppressed because it is too large
Load Diff
@@ -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"),
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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
@@ -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
File diff suppressed because it is too large
Load Diff
+351
-333
File diff suppressed because it is too large
Load Diff
+358
-340
File diff suppressed because it is too large
Load Diff
@@ -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"),
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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 *);
|
||||
|
||||
Reference in New Issue
Block a user