libpurple/protocols/ircv3/purpleircv3parser.c

changeset 41796
ebe4ff278b02
parent 41774
170078e728c0
child 41807
66d473190e94
equal deleted inserted replaced
41795:95c0077fe6bb 41796:ebe4ff278b02
17 */ 17 */
18 18
19 #include "purpleircv3parser.h" 19 #include "purpleircv3parser.h"
20 20
21 #include "purpleircv3core.h" 21 #include "purpleircv3core.h"
22 #include "purpleircv3messagehandlers.h"
22 23
23 struct _PurpleIRCv3Parser { 24 struct _PurpleIRCv3Parser {
24 GObject parent; 25 GObject parent;
25 26
26 GRegex *regex_message; 27 GRegex *regex_message;
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 }

mercurial