From b6747a40eb7a0dc04962fc3ce73bb26f76b6cef9 Mon Sep 17 00:00:00 2001 From: sam Date: Sun, 21 Jul 2024 11:17:01 +1200 Subject: [PATCH] add custom regex exec because regnexec doesnt exist in musl --- include/slibs | 2 +- src/regexp.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/include/slibs b/include/slibs index 0e15f65..ce1c05c 160000 --- a/include/slibs +++ b/include/slibs @@ -1 +1 @@ -Subproject commit 0e15f65dfbed81cbe3aa27437aa7ae27ae8f07f0 +Subproject commit ce1c05c6e6fdc00ccc381ad3ba621edcaa80469e diff --git a/src/regexp.c b/src/regexp.c index 26cb6f7..2b47af2 100644 --- a/src/regexp.c +++ b/src/regexp.c @@ -2,6 +2,12 @@ #include #include +int regex_exec_char(const regex_t *preg, const char c, size_t nmatch, regmatch_t pmatch[], int eflags) { + char str[2] = {c, '\0'}; + + return regexec(preg, str, nmatch, pmatch, eflags); +} + void regex_step(char** input, char* c) { (*input)++; *c = **input; @@ -20,8 +26,8 @@ regex_t regex_create(const char* pattern, int flags) { return regex; } -int match_char(regex_t regex, char c) { - return regnexec(®ex, &c, 1, 0, NULL, 0) != REG_NOMATCH; +int match_char(regex_t regex, const char c) { + return regex_exec_char(®ex, c, 0, NULL, 0) != REG_NOMATCH; } sl_string collect_until(match_func matcher, regex_t regex, char** input) {