639e3efb71af29fd90ecaf202282b40a3030f841
[oweals/opkg-lede.git] / libopkg / xregex.c
1 /* xregex.c - regex functions with error messages
2
3    Carl D. Worth
4
5    Copyright (C) 2001 University of Southern California
6
7    This program is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 2, or (at your option)
10    any later version.
11
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16 */
17
18 #include "includes.h"
19
20 #include "xregex.h"
21 #include "libbb/libbb.h"
22
23 static void print_regcomp_err(const regex_t *preg, int err);
24
25 int xregcomp(regex_t *preg, const char *regex, int cflags)
26 {
27     int err;
28     err = regcomp(preg, regex, cflags);
29     if (err) {
30         print_regcomp_err(preg, err);
31     }
32
33     return err;
34 }
35
36 static void print_regcomp_err(const regex_t *preg, int err)
37 {
38     unsigned int size;
39     char *error;
40     
41     size = regerror(err, preg, 0, 0);
42     error = xcalloc(1, size);
43     regerror(err, preg, error, size);
44
45     opkg_msg(ERROR, "Internal error compiling regex: %s.", error);
46
47     free(error);
48 }