aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/xregcomp.c23
-rw-r--r--lib/xregcomp.h6
2 files changed, 29 insertions, 0 deletions
diff --git a/lib/xregcomp.c b/lib/xregcomp.c
new file mode 100644
index 00000000..60446ef8
--- /dev/null
+++ b/lib/xregcomp.c
@@ -0,0 +1,23 @@
+/* vi: set ts=4:
+ * Call regcomp() and handle errors.
+ *
+ * Copyright 2007 Rob Landley <rob@landley.net>
+ *
+ * This is a separate file so environments that haven't got regular expression
+ * support can configure this out and avoid a build break.
+ */
+
+#include "toys.h"
+#include "xregcomp.h"
+
+void xregcomp(regex_t *preg, char *rexec, int cflags)
+{
+ int rc = regcomp(preg, rexec, cflags);
+
+ if (rc) {
+ char msg[256];
+ regerror(rc, preg, msg, 255);
+ msg[255]=0;
+ error_exit("xregcomp: %s", msg);
+ }
+}
diff --git a/lib/xregcomp.h b/lib/xregcomp.h
new file mode 100644
index 00000000..fa929fa3
--- /dev/null
+++ b/lib/xregcomp.h
@@ -0,0 +1,6 @@
+/* This is a separate file so libc doesn't always need regex support. */
+
+#include <sys/types.h>
+#include <regex.h>
+
+void xregcomp(regex_t *preg, char *rexec, int cflags);