| /* vi: set sw=4 ts=4: */ |
| /* |
| * Utility routines. |
| * |
| * Copyright (C) many different people. |
| * If you wrote this, please acknowledge your work. |
| * |
| * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
| */ |
| |
| #include "libbb.h" |
| #include "xregex.h" |
| |
| char* regcomp_or_errmsg(regex_t *preg, const char *regex, int cflags) |
| { |
| int ret = regcomp(preg, regex, cflags); |
| if (ret) { |
| int errmsgsz = regerror(ret, preg, NULL, 0); |
| char *errmsg = xmalloc(errmsgsz); |
| regerror(ret, preg, errmsg, errmsgsz); |
| return errmsg; |
| } |
| return NULL; |
| } |
| |
| void xregcomp(regex_t *preg, const char *regex, int cflags) |
| { |
| char *errmsg = regcomp_or_errmsg(preg, regex, cflags); |
| if (errmsg) { |
| bb_error_msg_and_die("xregcomp: %s", errmsg); |
| } |
| } |