diff options
author | Jonathon Jongsma <jonathon@quotidian.org> | 2009-11-25 06:34:24 +0800 |
---|---|---|
committer | Jonathon Jongsma <jonathon@quotidian.org> | 2009-12-01 03:31:19 +0800 |
commit | 193625ae674a7dfd8a80c0ffeab390e6fcb65856 (patch) | |
tree | 625e56c715b4c8115cda20bbfdb7dfdcb18ffcd7 /filter/e-filter-input.c | |
parent | ae8f6d681c0512089f9259de0fd1b270396991d5 (diff) | |
download | gsoc2013-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.c | 29 |
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 (®expat, 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, ®expat, 0, 0); - regmsg = g_malloc0 (reglen + 1); - regerror (regerr, ®expat, 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, ®expat, 0, 0); + regmsg = g_malloc0 (reglen + 1); + regerror (regerr, ®expat, regmsg, reglen); + + *error = e_error_new ("filter:bad-regexp", + pattern, regmsg, NULL); + g_free (regmsg); + } valid = FALSE; } |