Made slre.c C++ clean - compiles by g++ with no warnings.

This commit is contained in:
Sergey Lyubka 2013-08-26 17:11:20 +01:00
parent deda368b8c
commit 9cc3fe9731

29
slre.c
View File

@ -46,27 +46,31 @@ static const char *static_metacharacters = "^$().[]*+?|\\";
#define DBG(x) #define DBG(x)
#endif #endif
struct bracket_pair {
const char *ptr; /* Points to the first char after '(' in regex */
int len; /* Length of the text between '(' and ')' */
int branches; /* Index in the branches array for this pair */
int num_branches; /* Number of '|' in this bracket pair */
};
struct branch {
int bracket_index; /* index into 'brackets' array defined above */
const char *schlong; /* points to the '|' character in the regex */
};
struct regex_info { struct regex_info {
/* /*
* Describes all bracket pairs in the regular expression. * Describes all bracket pairs in the regular expression.
* First entry is always present, and grabs the whole regex. * First entry is always present, and grabs the whole regex.
*/ */
struct bracket_pair { struct bracket_pair brackets[MAX_BRACKETS];
const char *ptr; /* Points to the first char after '(' in regex */
int len; /* Length of the text between '(' and ')' */
int branches; /* Index in the branches array for this pair */
int num_branches; /* Number of '|' in this bracket pair */
} brackets[MAX_BRACKETS];
int num_brackets; int num_brackets;
/* /*
* Describes alternations ('|' operators) in the regular expression. * Describes alternations ('|' operators) in the regular expression.
* Each branch falls into a specific branch pair. * Each branch falls into a specific branch pair.
*/ */
struct branch { struct branch branches[MAX_BRANCHES];
int bracket_index; /* index into 'brackets' array defined above */
const char *schlong; /* points to the '|' character in the regex */
} branches[MAX_BRANCHES];
int num_branches; int num_branches;
/* Array of captures provided by the user */ /* Array of captures provided by the user */
@ -429,6 +433,9 @@ int slre_match(const char *regexp, const char *s, int s_len,
/*****************************************************************************/ /*****************************************************************************/
/********************************** UNIT TEST ********************************/ /********************************** UNIT TEST ********************************/
/*****************************************************************************/ /*****************************************************************************/
/* To run a test under UNIX, do: */
/* cc slre.c -DSLRE_UNIT_TEST -o /tmp/a && /tmp/a */
#ifdef SLRE_UNIT_TEST #ifdef SLRE_UNIT_TEST
static int static_total_tests = 0; static int static_total_tests = 0;
static int static_failed_tests = 0; static int static_failed_tests = 0;
@ -458,7 +465,7 @@ static char *slre_replace(const char *regex, const char *buf,
} else { } else {
n1 = len, n2 = 0, n3 = 0; n1 = len, n2 = 0, n3 = 0;
} }
s = realloc(s, s_len + n1 + n2 + n3 + 1); s = (char *) realloc(s, s_len + n1 + n2 + n3 + 1);
memcpy(s + s_len, buf, n1); memcpy(s + s_len, buf, n1);
memcpy(s + s_len + n1, sub, n2); memcpy(s + s_len + n1, sub, n2);
memcpy(s + s_len + n1 + n2, cap.ptr + cap.len, n3); memcpy(s + s_len + n1 + n2, cap.ptr + cap.len, n3);