From a36abad9306bb87eb9fca236c88e31d9f30422ac Mon Sep 17 00:00:00 2001 From: WormHeamer Date: Thu, 1 Jan 2026 19:28:14 -0500 Subject: add actual escape characters to regexes --- regex.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'regex.c') diff --git a/regex.c b/regex.c index 88f926e..6fe4809 100644 --- a/regex.c +++ b/regex.c @@ -157,6 +157,16 @@ ReNode *re_parse_char_set(ReParser *s) { return re_new_node_c(s, N_CHAR_SET, cseti); } +u32 esc_char(u32 c) { + switch (c) { + case 'n': return '\n'; + case 'r': return '\r'; + case 't': return '\t'; + case 'v': return '\v'; + default: return c; + } +} + ReNode *re_parse_atom(ReParser *s) { switch (ch(s)) { case '(': @@ -175,7 +185,7 @@ ReNode *re_parse_atom(ReParser *s) { case '\\': { /* TODO: throw error at end-of-string */ skip(s, 1); - ReNode *n = re_new_node_char(s, ch(s)); + ReNode *n = re_new_node_char(s, esc_char(ch(s))); skip(s, 1); return n; } break; -- cgit v1.2.3