summaryrefslogtreecommitdiff
path: root/src/irc
diff options
context:
space:
mode:
authorSebastien Helleu <flashcode@flashtux.org>2004-12-21 19:35:09 +0000
committerSebastien Helleu <flashcode@flashtux.org>2004-12-21 19:35:09 +0000
commit996343fc1d572b26f3c90a5b1295903bfd15368f (patch)
tree25c5f2f4acca65506ca54055a805b701c4615642 /src/irc
parentecafff21ce0a6389a41d95b8cfcb9e8fbf8f051b (diff)
downloadweechat-996343fc1d572b26f3c90a5b1295903bfd15368f.zip
Added server_command_delay config option (delay in seconds after startup command)
Diffstat (limited to 'src/irc')
-rw-r--r--src/irc/irc-recv.c4
-rw-r--r--src/irc/irc-server.c6
-rw-r--r--src/irc/irc.h5
3 files changed, 11 insertions, 4 deletions
diff --git a/src/irc/irc-recv.c b/src/irc/irc-recv.c
index c328cbcbc..1edfea76c 100644
--- a/src/irc/irc-recv.c
+++ b/src/irc/irc-recv.c
@@ -1500,7 +1500,11 @@ irc_cmd_recv_004 (t_irc_server *server, char *host, char *arguments)
/* execute command once connected */
if (server->command && server->command[0])
+ {
user_command(server, server->command);
+ if (server->command_delay > 0)
+ sleep (server->command_delay);
+ }
/* autojoin */
if (server->autojoin && server->autojoin[0])
diff --git a/src/irc/irc-server.c b/src/irc/irc-server.c
index b02111cc0..59c03bfa8 100644
--- a/src/irc/irc-server.c
+++ b/src/irc/irc-server.c
@@ -70,6 +70,7 @@ server_init (t_irc_server *server)
server->username = NULL;
server->realname = NULL;
server->command = NULL;
+ server->command_delay = 1;
server->autojoin = NULL;
server->nick = NULL;
server->is_connected = 0;
@@ -292,8 +293,8 @@ server_free_all ()
t_irc_server *
server_new (char *name, int autoconnect, int command_line, char *address,
int port, char *password, char *nick1, char *nick2, char *nick3,
- char *username, char *realname, char *command, char *autojoin,
- int autorejoin)
+ char *username, char *realname, char *command, int command_delay,
+ char *autojoin, int autorejoin)
{
t_irc_server *new_server;
@@ -328,6 +329,7 @@ server_new (char *name, int autoconnect, int command_line, char *address,
(realname) ? strdup (realname) : strdup ("realname");
new_server->command =
(command) ? strdup (command) : NULL;
+ new_server->command_delay = command_delay;
new_server->autojoin =
(autojoin) ? strdup (autojoin) : NULL;
new_server->autorejoin = autorejoin;
diff --git a/src/irc/irc.h b/src/irc/irc.h
index 4f75db621..dbbcce649 100644
--- a/src/irc/irc.h
+++ b/src/irc/irc.h
@@ -126,6 +126,7 @@ struct t_irc_server
char *username; /* user name */
char *realname; /* real name */
char *command; /* command to run once connected */
+ int command_delay; /* delay after execution of command */
char *autojoin; /* channels to automatically join */
int autorejoin; /* auto rejoin channels when kicked */
@@ -214,8 +215,8 @@ extern void server_destroy (t_irc_server *);
extern void server_free (t_irc_server *);
extern void server_free_all ();
extern t_irc_server *server_new (char *, int, int, char *, int, char *, char *,
- char *, char *, char *, char *, char *, char *,
- int);
+ char *, char *, char *, char *, char *, int,
+ char *, int);
extern int server_send (t_irc_server *, char *, int);
extern void server_sendf (t_irc_server *, char *, ...);
extern void server_recv (t_irc_server *);