Mercurial > pidgin.yaz
comparison libpurple/protocols/msn/command.c @ 23575:9688908af52d
Workaround a bug in MSN servers where it sends an extra space at the
end of the ILN command. Also used g_strsplit_set so it doesn't
accidentally drop command parameters when there are double spaces.
Fixes #6302.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Sun, 13 Jul 2008 04:55:39 +0000 |
parents | 7e16d193bb57 |
children | a99b6dcdb60d |
comparison
equal
deleted
inserted
replaced
23574:4162ac08c775 | 23575:9688908af52d |
---|---|
49 param_start = strchr(cmd->command, ' '); | 49 param_start = strchr(cmd->command, ' '); |
50 | 50 |
51 if (param_start) | 51 if (param_start) |
52 { | 52 { |
53 *param_start++ = '\0'; | 53 *param_start++ = '\0'; |
54 cmd->params = g_strsplit(param_start, " ", 0); | 54 cmd->params = g_strsplit_set(param_start, " ", 0); |
55 } | 55 } |
56 | 56 |
57 if (cmd->params != NULL) | 57 if (cmd->params != NULL) |
58 { | 58 { |
59 int c; | 59 int c; |
60 | 60 |
61 for (c = 0; cmd->params[c]; c++); | 61 for (c = 0; cmd->params[c] && cmd->params[c][0]; c++); |
62 cmd->param_count = c; | 62 cmd->param_count = c; |
63 | 63 |
64 if (cmd->param_count) { | 64 if (cmd->param_count) { |
65 char *param = cmd->params[0]; | 65 char *param = cmd->params[0]; |
66 cmd->trId = is_num(param) ? atoi(param) : 0; | 66 cmd->trId = is_num(param) ? atoi(param) : 0; |