Patrick Georgi | 55189c9 | 2020-05-10 20:09:31 +0200 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
Stefan Reinauer | 6540ae5 | 2007-07-12 16:35:42 +0000 | [diff] [blame] | 2 | |
| 3 | #include <stdarg.h> |
| 4 | #include "common.h" |
| 5 | #include "reg_expr.h" |
| 6 | |
| 7 | /**************************************************************************** |
Patrick Georgi | bf64985 | 2011-01-28 07:40:08 +0000 | [diff] [blame] | 8 | * compile_reg_expr |
Stefan Reinauer | 6540ae5 | 2007-07-12 16:35:42 +0000 | [diff] [blame] | 9 | * |
Patrick Georgi | bf64985 | 2011-01-28 07:40:08 +0000 | [diff] [blame] | 10 | * Compile a regular expression. |
Stefan Reinauer | 6540ae5 | 2007-07-12 16:35:42 +0000 | [diff] [blame] | 11 | ****************************************************************************/ |
Patrick Georgi | bf64985 | 2011-01-28 07:40:08 +0000 | [diff] [blame] | 12 | void compile_reg_expr(int cflags, const char *expr, regex_t *reg) |
Stefan Reinauer | 90b96b6 | 2010-01-13 21:00:23 +0000 | [diff] [blame] | 13 | { |
| 14 | static const size_t ERROR_BUF_SIZE = 256; |
| 15 | char error_msg[ERROR_BUF_SIZE]; |
Patrick Georgi | bf64985 | 2011-01-28 07:40:08 +0000 | [diff] [blame] | 16 | int result; |
Stefan Reinauer | 6540ae5 | 2007-07-12 16:35:42 +0000 | [diff] [blame] | 17 | |
Patrick Georgi | bf64985 | 2011-01-28 07:40:08 +0000 | [diff] [blame] | 18 | if ((result = regcomp(reg, expr, cflags)) != 0) { |
| 19 | regerror(result, reg, error_msg, ERROR_BUF_SIZE); |
| 20 | fprintf(stderr, "%s: %s\n", prog_name, error_msg); |
| 21 | exit(1); |
Stefan Reinauer | 90b96b6 | 2010-01-13 21:00:23 +0000 | [diff] [blame] | 22 | } |
Stefan Reinauer | 90b96b6 | 2010-01-13 21:00:23 +0000 | [diff] [blame] | 23 | } |