aboutsummaryrefslogtreecommitdiffhomepage
path: root/util/xutil.c
diff options
context:
space:
mode:
authorGravatar David Bremner <bremner@debian.org>2011-10-23 17:52:19 -0300
committerGravatar David Bremner <bremner@debian.org>2011-10-30 23:10:38 -0300
commit7a87830f5eb32373bc17235e9d178d383830dc64 (patch)
treecbdfb839d39797ea4a87292fffe2b01a08f053f2 /util/xutil.c
parent1dedfc90f6eee7cad10f1a1ceb39a7a1c4dbd1b1 (diff)
xregcomp: don't consider every regex compilation failure an internal error.
This pushes the error handling up one step, but makes the function more flexible. Running out of memory still triggers an internal error, in the spirit of other xutils functions.
Diffstat (limited to 'util/xutil.c')
-rw-r--r--util/xutil.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/util/xutil.c b/util/xutil.c
index 15ff7650..ac496daf 100644
--- a/util/xutil.c
+++ b/util/xutil.c
@@ -99,7 +99,7 @@ xstrndup (const char *s, size_t n)
return ret;
}
-void
+int
xregcomp (regex_t *preg, const char *regex, int cflags)
{
int rerr;
@@ -110,9 +110,12 @@ xregcomp (regex_t *preg, const char *regex, int cflags)
char *error = xmalloc (error_size);
regerror (rerr, preg, error, error_size);
- INTERNAL_ERROR ("compiling regex %s: %s\n",
+ fprintf (stderr, "compiling regex %s: %s\n",
regex, error);
+ free (error);
+ return 1;
}
+ return 0;
}
int