mirror of
https://github.com/weechat/weechat.git
synced 2026-07-06 09:43:13 +02:00
Minor changes on server/channel/nick info API functions
This commit is contained in:
@@ -715,14 +715,14 @@ weechat_plugin_get_server_info (t_weechat_plugin *plugin)
|
||||
new_server_info->away_time = ptr_server->away_time;
|
||||
new_server_info->lag = ptr_server->lag;
|
||||
|
||||
new_server_info->prev_info = last_server_info;
|
||||
new_server_info->next_info = NULL;
|
||||
new_server_info->prev_server = last_server_info;
|
||||
new_server_info->next_server = NULL;
|
||||
if (!server_info)
|
||||
server_info = new_server_info;
|
||||
else
|
||||
last_server_info->next_info = new_server_info;
|
||||
last_server_info->next_server = new_server_info;
|
||||
last_server_info = new_server_info;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return server_info;
|
||||
@@ -775,7 +775,7 @@ weechat_plugin_free_server_info (t_weechat_plugin *plugin, t_plugin_server_info
|
||||
free (server_info->charset_encode);
|
||||
if (server_info->nick)
|
||||
free (server_info->nick);
|
||||
new_server_info = server_info->next_info;
|
||||
new_server_info = server_info->next_server;
|
||||
free (server_info);
|
||||
server_info = new_server_info;
|
||||
}
|
||||
@@ -818,12 +818,12 @@ weechat_plugin_get_channel_info (t_weechat_plugin *plugin, char *server)
|
||||
new_channel_info->key = (ptr_channel->key) ? strdup (ptr_channel->key) : strdup ("");
|
||||
new_channel_info->nicks_count = ptr_channel->nicks_count;
|
||||
|
||||
new_channel_info->prev_info = last_channel_info;
|
||||
new_channel_info->next_info = NULL;
|
||||
new_channel_info->prev_channel = last_channel_info;
|
||||
new_channel_info->next_channel = NULL;
|
||||
if (!channel_info)
|
||||
channel_info = new_channel_info;
|
||||
else
|
||||
last_channel_info->next_info = new_channel_info;
|
||||
last_channel_info->next_channel = new_channel_info;
|
||||
last_channel_info = new_channel_info;
|
||||
}
|
||||
}
|
||||
@@ -856,7 +856,7 @@ weechat_plugin_free_channel_info (t_weechat_plugin *plugin, t_plugin_channel_inf
|
||||
free (channel_info->modes);
|
||||
if (channel_info->key)
|
||||
free (channel_info->key);
|
||||
new_channel_info = channel_info->next_info;
|
||||
new_channel_info = channel_info->next_channel;
|
||||
free (channel_info);
|
||||
channel_info = new_channel_info;
|
||||
}
|
||||
|
||||
@@ -825,22 +825,25 @@ static XS (XS_weechat_get_server_info)
|
||||
}
|
||||
|
||||
server_info = perl_plugin->get_server_info (perl_plugin);
|
||||
if (!server_info) {
|
||||
if (!server_info)
|
||||
{
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
HV *server_hash = (HV *) sv_2mortal((SV *) newHV());
|
||||
if (!server_hash)
|
||||
{
|
||||
perl_plugin->free_server_info (perl_plugin, server_info);
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
for (ptr_server = server_info; ptr_server; ptr_server = ptr_server->next_info)
|
||||
for (ptr_server = server_info; ptr_server; ptr_server = ptr_server->next_server)
|
||||
{
|
||||
strftime(timebuffer, sizeof(timebuffer), "%F %T",
|
||||
localtime(&ptr_server->away_time));
|
||||
|
||||
HV *server_hash_member = (HV *) sv_2mortal((SV *) newHV());
|
||||
|
||||
|
||||
hv_store (server_hash_member, "autoconnect", 11, newSViv (ptr_server->autoconnect), 0);
|
||||
hv_store (server_hash_member, "autoreconnect", 13, newSViv (ptr_server->autoreconnect), 0);
|
||||
hv_store (server_hash_member, "autoreconnect_delay", 19, newSViv (ptr_server->autoreconnect_delay), 0);
|
||||
@@ -913,15 +916,19 @@ static XS (XS_weechat_get_channel_info)
|
||||
XSRETURN_EMPTY;
|
||||
|
||||
channel_info = perl_plugin->get_channel_info (perl_plugin, server);
|
||||
if (!channel_info) {
|
||||
if (!channel_info)
|
||||
{
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
HV *channel_hash = (HV *) sv_2mortal((SV *) newHV());
|
||||
if (!channel_hash)
|
||||
{
|
||||
perl_plugin->free_channel_info (perl_plugin, channel_info);
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
for (ptr_channel = channel_info; ptr_channel; ptr_channel = ptr_channel->next_info)
|
||||
for (ptr_channel = channel_info; ptr_channel; ptr_channel = ptr_channel->next_channel)
|
||||
{
|
||||
HV *channel_hash_member = (HV *) sv_2mortal((SV *) newHV());
|
||||
|
||||
@@ -977,13 +984,17 @@ static XS (XS_weechat_get_nick_info)
|
||||
XSRETURN_EMPTY;
|
||||
|
||||
nick_info = perl_plugin->get_nick_info (perl_plugin, server, channel);
|
||||
if (!nick_info) {
|
||||
if (!nick_info)
|
||||
{
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
HV *nick_hash = (HV *) sv_2mortal((SV *) newHV());
|
||||
if (!nick_hash)
|
||||
{
|
||||
perl_plugin->free_nick_info (perl_plugin, nick_info);
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
for (ptr_nick = nick_info; ptr_nick; ptr_nick = ptr_nick->next_nick)
|
||||
{
|
||||
|
||||
@@ -769,7 +769,7 @@ weechat_python_get_server_info (PyObject *self, PyObject *args)
|
||||
if (!server_info)
|
||||
return server_hash;
|
||||
|
||||
for(ptr_server = server_info; ptr_server; ptr_server = ptr_server->next_info)
|
||||
for(ptr_server = server_info; ptr_server; ptr_server = ptr_server->next_server)
|
||||
{
|
||||
strftime(timebuffer, sizeof(timebuffer), "%F %T",
|
||||
localtime(&ptr_server->away_time));
|
||||
@@ -881,7 +881,7 @@ weechat_python_get_channel_info (PyObject *self, PyObject *args)
|
||||
if (!channel_info)
|
||||
return channel_hash;
|
||||
|
||||
for(ptr_channel = channel_info; ptr_channel; ptr_channel = ptr_channel->next_info)
|
||||
for(ptr_channel = channel_info; ptr_channel; ptr_channel = ptr_channel->next_channel)
|
||||
{
|
||||
channel_hash_member = PyDict_New();
|
||||
|
||||
|
||||
@@ -956,7 +956,7 @@ weechat_ruby_get_server_info (VALUE class)
|
||||
if (!server_info)
|
||||
return server_hash;
|
||||
|
||||
for(ptr_server = server_info; ptr_server; ptr_server = ptr_server->next_info)
|
||||
for(ptr_server = server_info; ptr_server; ptr_server = ptr_server->next_server)
|
||||
{
|
||||
strftime(timebuffer, sizeof(timebuffer), "%F %T",
|
||||
localtime(&ptr_server->away_time));
|
||||
@@ -1074,7 +1074,7 @@ weechat_ruby_get_channel_info (VALUE class, VALUE server)
|
||||
if (!channel_info)
|
||||
return channel_hash;
|
||||
|
||||
for(ptr_channel = channel_info; ptr_channel; ptr_channel = ptr_channel->next_info)
|
||||
for(ptr_channel = channel_info; ptr_channel; ptr_channel = ptr_channel->next_channel)
|
||||
{
|
||||
channel_hash_member = rb_hash_new ();
|
||||
|
||||
|
||||
@@ -93,8 +93,8 @@ struct t_plugin_server_info
|
||||
int is_away; /* 1 is user is marker as away */
|
||||
time_t away_time; /* time() when user marking as away */
|
||||
int lag; /* lag (in milliseconds) */
|
||||
t_plugin_server_info *prev_info; /* link to previous server info */
|
||||
t_plugin_server_info *next_info; /* link to next server info */
|
||||
t_plugin_server_info *prev_server; /* link to previous server info */
|
||||
t_plugin_server_info *next_server; /* link to next server info */
|
||||
};
|
||||
|
||||
typedef struct t_plugin_channel_info t_plugin_channel_info;
|
||||
@@ -108,8 +108,8 @@ struct t_plugin_channel_info
|
||||
int limit; /* user limit (0 is limit not set) */
|
||||
char *key; /* channel key (NULL if no key is set) */
|
||||
int nicks_count; /* # nicks on channel (0 if dcc/pv) */
|
||||
t_plugin_channel_info *prev_info; /* link to previous channel infp */
|
||||
t_plugin_channel_info *next_info; /* link to next channel info */
|
||||
t_plugin_channel_info *prev_channel; /* link to previous channel info */
|
||||
t_plugin_channel_info *next_channel; /* link to next channel info */
|
||||
};
|
||||
|
||||
typedef struct t_plugin_nick_info t_plugin_nick_info;
|
||||
|
||||
Reference in New Issue
Block a user