| 162 result = g_strv_builder_end(builder); |
163 result = g_strv_builder_end(builder); |
| 163 |
164 |
| 164 g_strv_builder_unref(builder); |
165 g_strv_builder_unref(builder); |
| 165 |
166 |
| 166 return result; |
167 return result; |
| |
168 } |
| |
169 |
| |
170 static void |
| |
171 purple_ircv3_parser_add_handler(PurpleIRCv3Parser *parser, |
| |
172 const gchar *command, |
| |
173 PurpleIRCv3MessageHandler handler) |
| |
174 { |
| |
175 g_return_if_fail(PURPLE_IRCV3_IS_PARSER(parser)); |
| |
176 g_return_if_fail(command != NULL); |
| |
177 g_return_if_fail(handler != NULL); |
| |
178 |
| |
179 g_hash_table_insert(parser->handlers, g_strdup(command), handler); |
| 167 } |
180 } |
| 168 |
181 |
| 169 /****************************************************************************** |
182 /****************************************************************************** |
| 170 * Handlers |
183 * Handlers |
| 171 *****************************************************************************/ |
184 *****************************************************************************/ |
| 331 g_hash_table_destroy(tags); |
344 g_hash_table_destroy(tags); |
| 332 g_match_info_unref(info); |
345 g_match_info_unref(info); |
| 333 |
346 |
| 334 return result; |
347 return result; |
| 335 } |
348 } |
| |
349 |
| |
350 void |
| |
351 purple_ircv3_parser_add_default_handlers(PurpleIRCv3Parser *parser) { |
| |
352 g_return_if_fail(PURPLE_IRCV3_IS_PARSER(parser)); |
| |
353 |
| |
354 purple_ircv3_parser_set_fallback_handler(parser, |
| |
355 purple_ircv3_messager_handler_fallback); |
| |
356 |
| |
357 purple_ircv3_parser_add_handler(parser, "PING", |
| |
358 purple_ircv3_messager_handler_ping); |
| |
359 } |