From 889152e4c63e5c4586e2dac40716d2d9d03dcec6 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 3 Jan 2009 05:10:33 +0000 Subject: [PATCH] Add docs svn path=/trunk/; revision=7762 --- ChangeLog | 4 ++++ glib/gregex.c | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/ChangeLog b/ChangeLog index 71522dc5..97b712c4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2009-01-02 Matthias Clasen + + * glib/gregex.c: Add an example to the g_regex_replace_eval() docs. + 2009-01-02 Matthias Clasen * glib/gstrfuncs.c: Move docs inline, adding references to g_free() diff --git a/glib/gregex.c b/glib/gregex.c index 31d0323f..94440efc 100644 --- a/glib/gregex.c +++ b/glib/gregex.c @@ -2530,6 +2530,45 @@ g_regex_replace_literal (const GRegex *regex, * string and setting #G_REGEX_MATCH_NOTBOL in the case of a pattern * that begins with any kind of lookbehind assertion, such as "\b". * + * The following example uses g_regex_replace_eval() to replace multiple + * strings at once: + * |[ + * static gboolean + * eval_cb (const GMatchInfo *info, + * GString *res, + * gpointer data) + * { + * gchar *match; + * gchar *r; + * + * match = g_match_info_fetch (info, 0); + * r = g_hash_table_lookup ((GHashTable *)data, match); + * g_string_append (res, r); + * g_free (match); + * + * return FALSE; + * } + * + * /* ... */ + * + * GRegex *reg; + * GHashTable *h; + * gchar *res; + * + * h = g_hash_table_new (g_str_hash, g_str_equal); + * + * g_hash_table_insert (h, "1", "ONE"); + * g_hash_table_insert (h, "2", "TWO"); + * g_hash_table_insert (h, "3", "THREE"); + * g_hash_table_insert (h, "4", "FOUR"); + * + * reg = g_regex_new ("1|2|3|4", 0, 0, NULL); + * res = g_regex_replace_eval (reg, text, -1, 0, 0, eval_cb, h, NULL); + * g_hash_table_destroy (h); + * + * /* ... */ + * ]| + * * Returns: a newly allocated string containing the replacements * * Since: 2.14 -- 2.34.1