diff options
Diffstat (limited to 'libempathy-gtk/empathy-ui-utils.h')
-rw-r--r-- | libempathy-gtk/empathy-ui-utils.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/libempathy-gtk/empathy-ui-utils.h b/libempathy-gtk/empathy-ui-utils.h index e0c0904b0..0eacd49b8 100644 --- a/libempathy-gtk/empathy-ui-utils.h +++ b/libempathy-gtk/empathy-ui-utils.h @@ -121,6 +121,51 @@ gchar * empathy_make_absolute_url (const gchar *url); gchar * empathy_make_absolute_url_len (const gchar *url, guint len); +/* String parser */ +typedef struct _EmpathyStringParser EmpathyStringParser; + +typedef void (*EmpathyStringReplace) (const gchar *text, + gssize len, + gpointer match_data, + gpointer user_data); +typedef void (*EmpathyStringMatch) (const gchar *text, + gssize len, + EmpathyStringReplace replace_func, + EmpathyStringParser *sub_parsers, + gpointer user_data); + +struct _EmpathyStringParser { + EmpathyStringMatch match_func; + EmpathyStringReplace replace_func; +}; + +void +empathy_string_parser_substr (const gchar *text, + gssize len, + EmpathyStringParser *parsers, + gpointer user_data); + +void +empathy_string_match_link (const gchar *text, + gssize len, + EmpathyStringReplace replace_func, + EmpathyStringParser *sub_parsers, + gpointer user_data); + +void +empathy_string_match_smiley (const gchar *text, + gssize len, + EmpathyStringReplace replace_func, + EmpathyStringParser *sub_parsers, + gpointer user_data); + +void +empathy_string_match_all (const gchar *text, + gssize len, + EmpathyStringReplace replace_func, + EmpathyStringParser *sub_parsers, + gpointer user_data); + G_END_DECLS #endif /* __EMPATHY_UI_UTILS_H__ */ |