Split long messages at spaces
This commit is contained in:
parent
4c9b193b45
commit
f198581a09
@ -2569,7 +2569,8 @@ cmd_load (struct session *sess, char *tbuf, char *word[], char *word_eol[])
|
|||||||
char *
|
char *
|
||||||
split_up_text(struct session *sess, char *text, int cmd_length, char *split_text)
|
split_up_text(struct session *sess, char *text, int cmd_length, char *split_text)
|
||||||
{
|
{
|
||||||
unsigned int max;
|
unsigned int max, space_offset;
|
||||||
|
char *space;
|
||||||
|
|
||||||
/* maximum allowed text */
|
/* maximum allowed text */
|
||||||
/* :nickname!username@host.com cmd_length */
|
/* :nickname!username@host.com cmd_length */
|
||||||
@ -2602,6 +2603,17 @@ split_up_text(struct session *sess, char *text, int cmd_length, char *split_text
|
|||||||
}
|
}
|
||||||
max = i;
|
max = i;
|
||||||
|
|
||||||
|
/* Try splitting at last space */
|
||||||
|
space = g_utf8_strrchr (text, max, ' ');
|
||||||
|
if (space)
|
||||||
|
{
|
||||||
|
space_offset = g_utf8_pointer_to_offset (text, space);
|
||||||
|
|
||||||
|
/* Only split if last word is of sane length */
|
||||||
|
if (max != space_offset && max - space_offset < 20)
|
||||||
|
max = space_offset + 1;
|
||||||
|
}
|
||||||
|
|
||||||
split_text = g_strdup_printf ("%.*s", max, text);
|
split_text = g_strdup_printf ("%.*s", max, text);
|
||||||
|
|
||||||
return split_text;
|
return split_text;
|
||||||
|
Loading…
Reference in New Issue
Block a user