1
0
mirror of https://github.com/Tha14/toxic.git synced 2024-07-03 16:37:45 +02:00

escape newlines in contact names/status messages

This commit is contained in:
Jfreegman 2014-10-06 16:23:43 -04:00
parent 43552161f9
commit 6492bd12f9
No known key found for this signature in database
GPG Key ID: 3627F3144076AE63
4 changed files with 19 additions and 3 deletions

View File

@ -553,7 +553,7 @@ static void delete_friend(Tox *m, int32_t f_num)
/* activates delete friend popup */ /* activates delete friend popup */
static void del_friend_activate(ToxWindow *self, Tox *m, int32_t f_num) static void del_friend_activate(ToxWindow *self, Tox *m, int32_t f_num)
{ {
pendingdelete.popup = newwin(3, 22 + TOXIC_MAX_NAME_LENGTH - 1, 8, 8); pendingdelete.popup = newwin(3, 22 + TOXIC_MAX_NAME_LENGTH, 8, 8);
pendingdelete.active = true; pendingdelete.active = true;
pendingdelete.num = f_num; pendingdelete.num = f_num;
} }

View File

@ -189,7 +189,7 @@ int qsort_strcasecmp_hlpr(const void *str1, const void *str2)
- cannot start with a space - cannot start with a space
- must not contain a forward slash (for logfile naming purposes) - must not contain a forward slash (for logfile naming purposes)
- must not contain contiguous spaces */ - must not contain contiguous spaces */
int valid_nick(char *nick) int valid_nick(const char *nick)
{ {
if (!nick[0] || nick[0] == ' ') if (!nick[0] || nick[0] == ' ')
return 0; return 0;
@ -207,6 +207,17 @@ int valid_nick(char *nick)
return 1; return 1;
} }
/* Converts all newline chars to spaces (use for strings that should be contained to a single line) */
void escape_newline_str(char *str, int len)
{
int i;
for (i = 0; i < len; ++i) {
if (str[i] == '\n' || str[i] == '\r')
str[i] = ' ';
}
}
/* gets base file name from path or original file name if no path is supplied */ /* gets base file name from path or original file name if no path is supplied */
void get_file_name(char *namebuf, int bufsize, const char *pathname) void get_file_name(char *namebuf, int bufsize, const char *pathname)
{ {

View File

@ -88,7 +88,10 @@ int qsort_strcasecmp_hlpr(const void *str1, const void *str2);
- cannot start with a space - cannot start with a space
- must not contain a forward slash (for logfile naming purposes) - must not contain a forward slash (for logfile naming purposes)
- must not contain contiguous spaces */ - must not contain contiguous spaces */
int valid_nick(char *nick); int valid_nick(const char *nick);
/* Converts all newline chars to spaces (use for strings that should be contained to a single line) */
void escape_newline_str(char *str, int len);
/* gets base file name from path or original file name if no path is supplied */ /* gets base file name from path or original file name if no path is supplied */
void get_file_name(char *namebuf, int bufsize, const char *pathname); void get_file_name(char *namebuf, int bufsize, const char *pathname);

View File

@ -112,6 +112,7 @@ void on_nickchange(Tox *m, int32_t friendnumber, const uint8_t *string, uint16_t
{ {
char nick[TOXIC_MAX_NAME_LENGTH + 1]; char nick[TOXIC_MAX_NAME_LENGTH + 1];
length = copy_tox_str(nick, sizeof(nick), (const char *) string, length); length = copy_tox_str(nick, sizeof(nick), (const char *) string, length);
escape_newline_str(nick, length);
int i; int i;
@ -127,6 +128,7 @@ void on_statusmessagechange(Tox *m, int32_t friendnumber, const uint8_t *string,
{ {
char msg[TOX_MAX_STATUSMESSAGE_LENGTH + 1]; char msg[TOX_MAX_STATUSMESSAGE_LENGTH + 1];
length = copy_tox_str(msg, sizeof(msg), (const char *) string, length); length = copy_tox_str(msg, sizeof(msg), (const char *) string, length);
escape_newline_str(msg, length);
int i; int i;