From 88651f758b9f7c0a94c32e4b8fd0977379c782c6 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 30 Apr 2007 16:37:38 +0000 Subject: [PATCH] Add g_regex_get_max_backref() and g_regex_get_capture_count(). (#419371, 2007-04-30 Matthias Clasen * glib/glib.symbols: * glib/gregex.[hc]: Add g_regex_get_max_backref() and g_regex_get_capture_count(). (#419371, Marco Barisione) svn path=/trunk/; revision=5469 --- ChangeLog | 6 ++++ docs/reference/ChangeLog | 4 +++ docs/reference/glib/glib-sections.txt | 2 ++ glib/glib.symbols | 2 ++ glib/gregex.c | 44 +++++++++++++++++++++++++++ glib/gregex.h | 2 ++ 6 files changed, 60 insertions(+) diff --git a/ChangeLog b/ChangeLog index 36f995892..9a013e07d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-04-30 Matthias Clasen + + * glib/glib.symbols: + * glib/gregex.[hc]: Add g_regex_get_max_backref() and + g_regex_get_capture_count(). (#419371, Marco Barisione) + 2007-04-30 Matthias Clasen * glib/glib.symbols: diff --git a/docs/reference/ChangeLog b/docs/reference/ChangeLog index 7633c90b5..176d9592f 100644 --- a/docs/reference/ChangeLog +++ b/docs/reference/ChangeLog @@ -1,3 +1,7 @@ +2007-04-30 Matthias Clasen + + * glib/glib-sections.txt: Add new regex functions + 2007-04-30 Matthias Clasen * glib/glib-sections.txt: diff --git a/docs/reference/glib/glib-sections.txt b/docs/reference/glib/glib-sections.txt index 4aa865657..6e79a9c81 100644 --- a/docs/reference/glib/glib-sections.txt +++ b/docs/reference/glib/glib-sections.txt @@ -875,6 +875,8 @@ GRegexEvalCallback g_regex_new g_regex_free g_regex_get_pattern +g_regex_get_max_backref +g_regex_get_capture_count g_regex_get_string_number g_regex_escape_string g_regex_match_simple diff --git a/glib/glib.symbols b/glib/glib.symbols index 89da36c37..7813c00ff 100644 --- a/glib/glib.symbols +++ b/glib/glib.symbols @@ -1425,6 +1425,8 @@ g_regex_error_quark g_regex_new g_regex_free g_regex_get_pattern +g_regex_get_max_backref +g_regex_get_capture_count g_regex_get_string_number g_regex_escape_string g_regex_match_simple diff --git a/glib/gregex.c b/glib/gregex.c index 756c1a1b7..0308574bf 100644 --- a/glib/gregex.c +++ b/glib/gregex.c @@ -873,6 +873,50 @@ g_regex_get_pattern (const GRegex *regex) return regex->pattern; } +/** + * g_regex_get_max_backref: + * @regex: a #GRegex + * + * Returns the number of the highest back reference + * in the pattern, or 0 if the pattern does not contain + * back references. + * + * Returns: the number of the highest back reference. + * + * Since: 2.14 + */ +gint +g_regex_get_max_backref (const GRegex *regex) +{ + gint value; + + pcre_fullinfo (regex->pcre_re, regex->extra, + PCRE_INFO_BACKREFMAX, &value); + + return value; +} + +/** + * g_regex_get_capture_count: + * @regex: a #GRegex + * + * Returns the number of capturing subpatterns in the pattern. + * + * Returns: the number of capturing subpatterns. + * + * Since: 2.14 + */ +gint +g_regex_get_capture_count (const GRegex *regex) +{ + gint value; + + pcre_fullinfo (regex->pcre_re, regex->extra, + PCRE_INFO_CAPTURECOUNT, &value); + + return value; +} + /** * g_regex_match_simple: * @pattern: the regular expression diff --git a/glib/gregex.h b/glib/gregex.h index 5d4eaaab2..3807ece39 100644 --- a/glib/gregex.h +++ b/glib/gregex.h @@ -90,6 +90,8 @@ GRegex *g_regex_new (const gchar *pattern, GError **error); void g_regex_free (GRegex *regex); const gchar *g_regex_get_pattern (const GRegex *regex); +gint g_regex_get_max_backref (const GRegex *regex); +gint g_regex_get_capture_count (const GRegex *regex); gint g_regex_get_string_number (const GRegex *regex, const gchar *name); gchar *g_regex_escape_string (const gchar *string,