aboutsummaryrefslogtreecommitdiffstats
path: root/filter/e-filter-input.c
diff options
context:
space:
mode:
authorJonathon Jongsma <jonathon@quotidian.org>2009-11-25 06:34:24 +0800
committerJonathon Jongsma <jonathon@quotidian.org>2009-12-01 03:31:19 +0800
commit193625ae674a7dfd8a80c0ffeab390e6fcb65856 (patch)
tree625e56c715b4c8115cda20bbfdb7dfdcb18ffcd7 /filter/e-filter-input.c
parentae8f6d681c0512089f9259de0fd1b270396991d5 (diff)
downloadgsoc2013-evolution-193625ae674a7dfd8a80c0ffeab390e6fcb65856.tar
gsoc2013-evolution-193625ae674a7dfd8a80c0ffeab390e6fcb65856.tar.gz
gsoc2013-evolution-193625ae674a7dfd8a80c0ffeab390e6fcb65856.tar.bz2
gsoc2013-evolution-193625ae674a7dfd8a80c0ffeab390e6fcb65856.tar.lz
gsoc2013-evolution-193625ae674a7dfd8a80c0ffeab390e6fcb65856.tar.xz
gsoc2013-evolution-193625ae674a7dfd8a80c0ffeab390e6fcb65856.tar.zst
gsoc2013-evolution-193625ae674a7dfd8a80c0ffeab390e6fcb65856.zip
port filter/ classes over to new EError API
https://bugzilla.gnome.org/show_bug.cgi?id=602963
Diffstat (limited to 'filter/e-filter-input.c')
-rw-r--r--filter/e-filter-input.c29
1 files changed, 17 insertions, 12 deletions
diff --git a/filter/e-filter-input.c b/filter/e-filter-input.c
index a8d6123905..9166d9272f 100644
--- a/filter/e-filter-input.c
+++ b/filter/e-filter-input.c
@@ -70,11 +70,13 @@ filter_input_finalize (GObject *object)
static gboolean
filter_input_validate (EFilterElement *element,
- GtkWindow *error_parent)
+ EError **error)
{
EFilterInput *input = E_FILTER_INPUT (element);
gboolean valid = TRUE;
+ g_warn_if_fail (error == NULL || *error == NULL);
+
if (input->values && !strcmp (input->type, "regex")) {
const gchar *pattern;
regex_t regexpat;
@@ -83,17 +85,20 @@ filter_input_validate (EFilterElement *element,
pattern = input->values->data;
if ((regerr = regcomp (&regexpat, pattern, REG_EXTENDED | REG_NEWLINE | REG_ICASE))) {
- gsize reglen;
- gchar *regmsg;
-
- /* regerror gets called twice to get the full error string
- length to do proper posix error reporting */
- reglen = regerror (regerr, &regexpat, 0, 0);
- regmsg = g_malloc0 (reglen + 1);
- regerror (regerr, &regexpat, regmsg, reglen);
-
- e_error_run (error_parent, "filter:bad-regexp", pattern, regmsg, NULL);
- g_free (regmsg);
+ if (error) {
+ gsize reglen;
+ gchar *regmsg;
+
+ /* regerror gets called twice to get the full error string
+ length to do proper posix error reporting */
+ reglen = regerror (regerr, &regexpat, 0, 0);
+ regmsg = g_malloc0 (reglen + 1);
+ regerror (regerr, &regexpat, regmsg, reglen);
+
+ *error = e_error_new ("filter:bad-regexp",
+ pattern, regmsg, NULL);
+ g_free (regmsg);
+ }
valid = FALSE;
}