| 110 msn_command_from_string(const char *string) |
110 msn_command_from_string(const char *string) |
| 111 { |
111 { |
| 112 MsnCommand *cmd; |
112 MsnCommand *cmd; |
| 113 char *tmp; |
113 char *tmp; |
| 114 char *param_start; |
114 char *param_start; |
| 115 char *param; |
|
| 116 int c; |
|
| 117 |
115 |
| 118 g_return_val_if_fail(string != NULL, NULL); |
116 g_return_val_if_fail(string != NULL, NULL); |
| 119 |
117 |
| 120 tmp = g_strdup(string); |
118 tmp = g_strdup(string); |
| 121 param_start = strchr(tmp, ' '); |
119 param_start = strchr(tmp, ' '); |
| 125 |
123 |
| 126 if (param_start) |
124 if (param_start) |
| 127 { |
125 { |
| 128 *param_start++ = '\0'; |
126 *param_start++ = '\0'; |
| 129 cmd->params = g_strsplit(param_start, " ", 0); |
127 cmd->params = g_strsplit(param_start, " ", 0); |
| |
128 } |
| |
129 |
| |
130 if (cmd->params != NULL) |
| |
131 { |
| |
132 char *param; |
| |
133 int c; |
| 130 |
134 |
| 131 for (c = 0; cmd->params[c]; c++); |
135 for (c = 0; cmd->params[c]; c++); |
| 132 cmd->param_count = c; |
136 cmd->param_count = c; |
| 133 |
137 |
| 134 param = cmd->params[0]; |
138 param = cmd->params[0]; |
| 135 |
139 |
| 136 cmd->trId = is_num(param) ? atoi(param) : 0; |
140 cmd->trId = is_num(param) ? atoi(param) : 0; |
| 137 } |
141 }else{ |
| 138 else |
|
| 139 cmd->trId = 0; |
142 cmd->trId = 0; |
| 140 } |
143 } |
| |
144 |
| 141 /*add payload Length checking*/ |
145 /*add payload Length checking*/ |
| 142 msn_set_payload_len(cmd); |
146 msn_set_payload_len(cmd); |
| 143 gaim_debug_info("MaYuan","get payload len:%d\n",cmd->payload_len); |
147 gaim_debug_info("MaYuan","get payload len:%d\n",cmd->payload_len); |
| 144 |
148 |
| 145 msn_command_ref(cmd); |
149 msn_command_ref(cmd); |