1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-26 04:46:37 +02:00

irc: fix join of channels with name longer than 127 chars (closes #1717)

This commit is contained in:
Sébastien Helleu
2021-11-06 18:17:39 +01:00
parent edfc415e9e
commit 2f177dd188
13 changed files with 152 additions and 19 deletions
+20 -8
View File
@@ -85,26 +85,38 @@ irc_buffer_get_server_and_channel (struct t_gui_buffer *buffer,
/*
* Builds buffer name with a server and a channel.
*
* Note: result must be freed after use.
*/
const char *
char *
irc_buffer_build_name (const char *server, const char *channel)
{
static char buffer[128];
char **buffer;
buffer[0] = '\0';
buffer = weechat_string_dyn_alloc (128);
if (!server && !channel)
return buffer;
goto end;
if (server && channel)
snprintf (buffer, sizeof (buffer), "%s.%s", server, channel);
{
weechat_string_dyn_concat (buffer, server, -1);
weechat_string_dyn_concat (buffer, ".", -1);
weechat_string_dyn_concat (buffer, channel, -1);
}
else if (server)
snprintf (buffer, sizeof (buffer), "server.%s", server);
{
weechat_string_dyn_concat (buffer, "server.", -1);
weechat_string_dyn_concat (buffer, server, -1);
}
else
snprintf (buffer, sizeof (buffer), "%s", channel);
{
weechat_string_dyn_concat (buffer, channel, -1);
}
return buffer;
end:
return weechat_string_dyn_free (buffer, 0);
}
/*