From 5dcd6d7ea6ac1a4cc3ad7e0f66ee1f7499c63ab2 Mon Sep 17 00:00:00 2001 From: Marko Kreen Date: Wed, 15 Sep 2010 14:45:13 +0300 Subject: [PATCH] regex: remove non-standard error codes. REG_EEND and REG_ESIZE are not in POSIX, and are unused by this implementation. ECOLLATE is also unused, but it's standard so keep it. --- test/test_regex.c | 11 +++++++++++ usual/regex.c | 12 +++++------- usual/regex.h | 14 +++++--------- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/test/test_regex.c b/test/test_regex.c index 8eb22f7..65fbbd2 100644 --- a/test/test_regex.c +++ b/test/test_regex.c @@ -93,6 +93,17 @@ static void test_regex(void *ptr) { str_check(e_rx("foo*", "foobar", 0), "(0,3)"); str_check(e_rx("foo(x)?.*", "foobar", 0), "(0,6)(?,?)"); + str_check(e_rx("foo", "bar", 0), "NOMATCH"); + str_check(e_rx("foo{5,1}", "bar", 0), "BADBR"); + str_check(e_rx("(|)", "bar", 0), "BADPAT"); + str_check(e_rx("*", "bar", 0), "BADRPT"); + str_check(e_rx("foo{", "bar", 0), "EBRACE"); + str_check(e_rx("fo[o", "bar", 0), "EBRACK"); + str_check(e_rx("[[:foo:]]", "bar", 0), "ECTYPE"); + str_check(e_rx("foo\\", "foobar", 0), "EESCAPE"); + str_check(e_rx("fo(o", "bar", 0), "EPAREN"); + str_check(e_rx("[a-b-c]", "bar", 0), "ERANGE"); + str_check(b_rx("(\\1)", "bar", 0), "ESUBREG"); end:; } diff --git a/usual/regex.c b/usual/regex.c index 479c3c4..63e0914 100644 --- a/usual/regex.c +++ b/usual/regex.c @@ -1271,13 +1271,11 @@ size_t regerror(int err, const regex_t *rx, char *dst, size_t dstlen) "EBRACK", /* 6 */ "ECOLLATE", /* 7 */ "ECTYPE", /* 8 */ - "EEND", /* 9 */ - "EESCAPE", /* 10 */ - "EPAREN", /* 11 */ - "ERANGE", /* 12 */ - "ESIZE", /* 13 */ - "ESPACE", /* 14 */ - "ESUBREG", /* 15 */ + "EESCAPE", /* 9 */ + "EPAREN", /* 10 */ + "ERANGE", /* 11 */ + "ESPACE", /* 12 */ + "ESUBREG", /* 13 */ }; const char *s = "EUNKNOWN"; if ((size_t)err <= ARRAY_NELEM(errlist)) diff --git a/usual/regex.h b/usual/regex.h index 6399a36..ccc6cb4 100644 --- a/usual/regex.h +++ b/usual/regex.h @@ -138,20 +138,16 @@ #define REG_ECOLLATE 7 /** Bad character class reference */ #define REG_ECTYPE 8 -/** ------------- */ -#define REG_EEND 9 /** Trailing backslack */ -#define REG_EESCAPE 10 +#define REG_EESCAPE 9 /** Syntax error with () */ -#define REG_EPAREN 11 +#define REG_EPAREN 10 /** Bad endpoint in range */ -#define REG_ERANGE 12 -/** ----------------- */ -#define REG_ESIZE 13 +#define REG_ERANGE 11 /** No memory */ -#define REG_ESPACE 14 +#define REG_ESPACE 12 /** Bad subgroup reference */ -#define REG_ESUBREG 15 +#define REG_ESUBREG 13 /* @} */ -- 2.39.5