degesch: preliminary message autosplitting
This commit is contained in:
parent
f2a2206e49
commit
53b46482f5
24
degesch.c
24
degesch.c
@ -2722,10 +2722,28 @@ send_message_to_target (struct app_context *ctx,
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO: autosplit
|
||||
irc_send (ctx, "PRIVMSG %s :%s", target, message);
|
||||
int one_message = 0;
|
||||
if (ctx->irc_user_host)
|
||||
// :<nick>!<user>@<host> PRIVMSG <target> :<message>
|
||||
one_message = 510 - 1 - (int) strlen (ctx->irc_user->nickname)
|
||||
- 1 - (int) strlen (ctx->irc_user_host)
|
||||
- 1 - 7 - 1 - strlen (target) - 1 - 1;
|
||||
|
||||
// FIXME: UTF-8 sequences
|
||||
int left = strlen (message);
|
||||
while (left)
|
||||
{
|
||||
int part = MIN (one_message, left);
|
||||
if (!one_message)
|
||||
part = left;
|
||||
|
||||
irc_send (ctx, "PRIVMSG %s :%.*s", target, part, message);
|
||||
buffer_send (ctx, buffer, BUFFER_LINE_PRIVMSG, 0,
|
||||
ctx->irc_user->nickname, NULL, "%s", message);
|
||||
ctx->irc_user->nickname, NULL, "%.*s", part, message);
|
||||
|
||||
left -= part;
|
||||
message += part;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user