diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2022-02-04 11:23:27 -0500 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2022-02-04 11:28:22 -0500 |
commit | 2d4d6787c4bc62042be4a58a4791074ab2c6a89e (patch) | |
tree | 0753c783533afc2bc3362f73ba3e8c2e45f1e65b /regex.h | |
parent | d83ffb41c7f5d42bfb43a19e38ab3d1331f0d86e (diff) | |
download | bfs-2d4d6787c4bc62042be4a58a4791074ab2c6a89e.tar.xz |
regex: Add support for emacs and grep types
Diffstat (limited to 'regex.h')
-rw-r--r-- | regex.h | 38 |
1 files changed, 38 insertions, 0 deletions
@@ -24,4 +24,42 @@ # include <regex.h> #endif +/** + * Regex syntax flavors. + */ +enum bfs_regex_type { + BFS_REGEX_POSIX_BASIC, + BFS_REGEX_POSIX_EXTENDED, + BFS_REGEX_EMACS, + BFS_REGEX_GREP, +}; + +/** + * Wrapper for regcomp() that supports additional regex types. + * + * @param preg + * The compiled regex. + * @param regex + * The regular expression to compile. + * @param cflags + * Regex compilation flags. + * @param type + * The regular expression syntax to use. + * @return + * 0 on success, or an error code on failure. + */ +int bfs_regcomp(regex_t *preg, const char *regex, int cflags, enum bfs_regex_type type); + +/** + * Dynamically allocate a regex error message. + * + * @param err + * The error code to stringify. + * @param regex + * The compiled regex, or NULL if compilation failed. + * @return + * A human-readable description of the error, allocated with malloc(). + */ +char *bfs_regerror(int err, const regex_t *regex); + #endif // BFS_REGEX_H |