[epiphany-extensions] greasemonkey: port to GRegex from pcre.
- From: Xan Lopez <xan src gnome org>
- To: svn-commits-list gnome org
- Subject: [epiphany-extensions] greasemonkey: port to GRegex from pcre.
- Date: Thu, 21 May 2009 14:48:10 -0400 (EDT)
commit 3736b3a18ba41967935f1808fde81fef51051c2e
Author: Xan Lopez <xan gnome org>
Date: Thu May 21 21:47:17 2009 +0300
greasemonkey: port to GRegex from pcre.
---
configure.ac | 45 +------------------------
extensions/greasemonkey/greasemonkey-script.c | 35 +++++++------------
2 files changed, 14 insertions(+), 66 deletions(-)
diff --git a/configure.ac b/configure.ac
index 3c1d5d0..9bf015b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -170,7 +170,7 @@ AC_MSG_CHECKING([which extensions to build])
ALL_EXTENSIONS="actions adblock auto-reload auto-scroller certificates error-viewer extensions-manager-ui gestures greasemonkey java-console livehttpheaders page-info permissions push-scroller rss sample select-stylesheet sidebar smart-bookmarks tab-groups tab-states"
USEFUL_EXTENSIONS="actions adblock auto-reload auto-scroller certificates error-viewer extensions-manager-ui gestures java-console page-info push-scroller select-stylesheet sidebar smart-bookmarks tab-groups tab-states"
-DEFAULT_EXTENSIONS="actions adblock auto-scroller certificates error-viewer extensions-manager-ui gestures java-console page-info push-scroller select-stylesheet sidebar smart-bookmarks tab-groups tab-states"
+DEFAULT_EXTENSIONS="actions adblock auto-scroller certificates error-viewer extensions-manager-ui gestures java-console page-info push-scroller select-stylesheet sidebar smart-bookmarks tab-groups tab-states greasemonkey"
PYTHON_ALL_EXTENSIONS="python-console sample-python favicon cc-license-viewer epilicious"
PYTHON_USEFUL_EXTENSIONS="python-console favicon cc-license-viewer"
@@ -255,49 +255,6 @@ if echo "$EXTENSIONS" | egrep '(^| )(rss)($| )' > /dev/null; then
PKG_CHECK_MODULES([DBUS], [dbus-1 >= $DBUS_REQUIRED dbus-glib-1 >= $DBUS_GLIB_REQUIRED])
fi
-# ****
-# PCRE
-# ****
-
-if echo "$EXTENSIONS" | egrep '(^| )(greasemonkey)($| )' > /dev/null; then
- AC_PATH_PROG([PCRE_CONFIG], [pcre-config], [no])
-
- if test "x$PCRE_CONFIG" = "xno"; then
- AC_ERROR([pcre development files not found])
- fi
-
- PCRE_CFLAGS="$($PCRE_CONFIG --cflags)"
- AC_SUBST([PCRE_CFLAGS])
- PCRE_LIBS="$($PCRE_CONFIG --libs)"
- AC_SUBST([PCRE_LIBS])
-
- pcre_saved_CFLAGS=$CFLAGS
- pcre_saved_LIBS=$LIBS
- CFLAGS="$CFLAGS $PCRE_CFLAGS"
- LIBS="$LIBS $PCRE_LIBS"
-
- AC_CACHE_CHECK([whether libpcre was compiled with UTF-8 support],
- [ac_cv_have_preg_utf8_support],
- [AC_RUN_IFELSE(
- [AC_LANG_SOURCE(
- [[#include <pcre.h>
-
- int main() {
- int t;
- return (pcre_config (PCRE_CONFIG_UTF8, &t) || !t);
- }]])],
- [ac_cv_have_preg_utf8_support="yes"],
- [ac_cv_have_preg_utf8_support="no"],
- [ac_cv_have_preg_utf8_support="maybe"])])
-
- CFLAGS=$pcre_saved_CFLAGS
- LIBS=$pcre_saved_LIBS
-
- if test "$ac_cv_have_preg_utf8_support" != "yes"; then
- AC_ERROR([pcre does not support utf-8])
- fi
-fi
-
# ******
# Python
# ******
diff --git a/extensions/greasemonkey/greasemonkey-script.c b/extensions/greasemonkey/greasemonkey-script.c
index 38890e0..a1a42c5 100644
--- a/extensions/greasemonkey/greasemonkey-script.c
+++ b/extensions/greasemonkey/greasemonkey-script.c
@@ -15,7 +15,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
- * $Id$
*/
#include "config.h"
@@ -26,8 +25,6 @@
#include <glib/gi18n-lib.h>
#include <gmodule.h>
-#include <pcre.h>
-
#include <string.h>
#define GREASEMONKEY_SCRIPT_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), TYPE_GREASEMONKEY_SCRIPT, GreasemonkeyScriptPrivate))
@@ -66,7 +63,7 @@ enum
typedef struct
{
char *str;
- pcre *re;
+ GRegex *re;
} UrlMatcher;
static GObjectClass *parent_class = NULL;
@@ -77,17 +74,11 @@ static gint
matcher_url_cmp (const UrlMatcher *matcher,
const char *url)
{
- int res;
-
- res = pcre_exec (matcher->re, NULL, url, strlen (url), 0,
- PCRE_NO_UTF8_CHECK, NULL, 0);
+ gboolean match;
- if (res >= 0)
- {
- return 0;
- }
+ match = g_regex_match (matcher->re, url, 0, NULL);
- return 1;
+ return match ? 0 : 1;
}
gboolean
@@ -282,13 +273,12 @@ find_tld_pos (const char *s)
return 0;
}
-static pcre *
+static GRegex *
build_preg (const char *s)
{
GString *preg_str;
- pcre *preg;
- const char *err;
- int erroffset;
+ GRegex *preg;
+ GError *error = NULL;
int tld_pos;
preg_str = g_string_new (NULL);
@@ -338,13 +328,14 @@ build_preg (const char *s)
LOG ("Matching against %s", preg_str->str);
- preg = pcre_compile (preg_str->str, PCRE_UTF8, &err, &erroffset, NULL);
+ preg = g_regex_new (preg_str->str, G_REGEX_OPTIMIZE, 0, &error);
if (preg == NULL)
{
g_warning ("Could not compile expression \"%s\"\n"
- "Error at column %d: %s",
- preg_str->str, erroffset, err);
+ "Error: %s",
+ preg_str->str, error->message);
+ g_error_free (error);
}
g_string_free (preg_str, TRUE);
@@ -356,7 +347,7 @@ static GList *
matchers_for_patterns (const GList *patterns)
{
GList *ret;
- pcre *re;
+ GRegex *re;
UrlMatcher *matcher;
ret = NULL;
@@ -429,7 +420,7 @@ static void
url_matcher_free (UrlMatcher *matcher)
{
g_free (matcher->str);
- g_free (matcher->re);
+ g_regex_unref (matcher->re);
g_free (matcher);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]