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;