1/* vi: set sw=4 ts=4: */ 2/* 3 * Utility routines. 4 * 5 * Copyright (C) many different people. 6 * If you wrote this, please acknowledge your work. 7 * 8 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. 9 */ 10 11#include "libbb.h" 12#include "xregex.h" 13 14char* regcomp_or_errmsg(regex_t *preg, const char *regex, int cflags) 15{ 16 int ret = regcomp(preg, regex, cflags); 17 if (ret) { 18 int errmsgsz = regerror(ret, preg, NULL, 0); 19 char *errmsg = xmalloc(errmsgsz); 20 regerror(ret, preg, errmsg, errmsgsz); 21 return errmsg; 22 } 23 return NULL; 24} 25 26void xregcomp(regex_t *preg, const char *regex, int cflags) 27{ 28 char *errmsg = regcomp_or_errmsg(preg, regex, cflags); 29 if (errmsg) { 30 bb_error_msg_and_die("xregcomp: %s", errmsg); 31 } 32} 33