aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2020-07-31 08:39:09 +1000
committerSteve Bennett <steveb@workware.net.au>2020-07-31 08:39:09 +1000
commit795854e54681f86fe66d8dcf8b09e44b9f726a62 (patch)
tree714398bfb1d899e26ba21cafe53837c414976bb3
parent5508c2501ead3dd6fba1700cdcafd539c3636c33 (diff)
downloadjimtcl-795854e54681f86fe66d8dcf8b09e44b9f726a62.zip
jimtcl-795854e54681f86fe66d8dcf8b09e44b9f726a62.tar.gz
jimtcl-795854e54681f86fe66d8dcf8b09e44b9f726a62.tar.bz2
jimregexp: rename local regex functions
Avoid possible problems with when linking by renaming local regex to jim_regcomp, jim_regexec, etc. Fixes: #163 Signed-off-by: Steve Bennett <steveb@workware.net.au>
-rw-r--r--jim-regexp.c20
-rw-r--r--jimregexp.c8
-rw-r--r--jimregexp.h8
3 files changed, 20 insertions, 16 deletions
diff --git a/jim-regexp.c b/jim-regexp.c
index 880bf33..58671df 100644
--- a/jim-regexp.c
+++ b/jim-regexp.c
@@ -53,13 +53,17 @@
#include "jimregexp.h"
#else
#include <regex.h>
+ #define jim_regcomp regcomp
+ #define jim_regexec regexec
+ #define jim_regerror regerror
+ #define jim_regfree regfree
#endif
#include "jim.h"
#include "utf8.h"
static void FreeRegexpInternalRep(Jim_Interp *interp, Jim_Obj *objPtr)
{
- regfree(objPtr->internalRep.ptrIntValue.ptr);
+ jim_regfree(objPtr->internalRep.ptrIntValue.ptr);
Jim_Free(objPtr->internalRep.ptrIntValue.ptr);
}
@@ -94,12 +98,12 @@ static regex_t *SetRegexpFromAny(Jim_Interp *interp, Jim_Obj *objPtr, unsigned f
pattern = Jim_String(objPtr);
compre = Jim_Alloc(sizeof(regex_t));
- if ((ret = regcomp(compre, pattern, REG_EXTENDED | flags)) != 0) {
+ if ((ret = jim_regcomp(compre, pattern, REG_EXTENDED | flags)) != 0) {
char buf[100];
- regerror(ret, compre, buf, sizeof(buf));
+ jim_regerror(ret, compre, buf, sizeof(buf));
Jim_SetResultFormatted(interp, "couldn't compile regular expression pattern: %s", buf);
- regfree(compre);
+ jim_regfree(compre);
Jim_Free(compre);
return NULL;
}
@@ -237,11 +241,11 @@ int Jim_RegexpCmd(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
}
next_match:
- match = regexec(regex, source_str, num_vars + 1, pmatch, eflags);
+ match = jim_regexec(regex, source_str, num_vars + 1, pmatch, eflags);
if (match >= REG_BADPAT) {
char buf[100];
- regerror(match, regex, buf, sizeof(buf));
+ jim_regerror(match, regex, buf, sizeof(buf));
Jim_SetResultFormatted(interp, "error while matching pattern: %s", buf);
result = JIM_ERR;
goto done;
@@ -457,12 +461,12 @@ int Jim_RegsubCmd(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
n = source_len - offset;
p = source_str + offset;
do {
- int match = regexec(regex, p, MAX_SUB_MATCHES, pmatch, regexec_flags);
+ int match = jim_regexec(regex, p, MAX_SUB_MATCHES, pmatch, regexec_flags);
if (match >= REG_BADPAT) {
char buf[100];
- regerror(match, regex, buf, sizeof(buf));
+ jim_regerror(match, regex, buf, sizeof(buf));
Jim_SetResultFormatted(interp, "error while matching pattern: %s", buf);
return JIM_ERR;
}
diff --git a/jimregexp.c b/jimregexp.c
index e04d3a4..e66fabe 100644
--- a/jimregexp.c
+++ b/jimregexp.c
@@ -231,7 +231,7 @@ static int str_int_len(const int *seq)
* Beware that the optimization-preparation code in here knows about some
* of the structure of the compiled regexp.
*/
-int regcomp(regex_t *preg, const char *exp, int cflags)
+int jim_regcomp(regex_t *preg, const char *exp, int cflags)
{
int scan;
int longest;
@@ -1114,7 +1114,7 @@ static int regrepeat(regex_t *preg, int p, int max);
/*
- regexec - match a regexp against a string
*/
-int regexec(regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags)
+int jim_regexec(regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags)
{
const char *s;
int scan;
@@ -1869,7 +1869,7 @@ static const char *regprop( int op )
}
#endif /* JIM_BOOTSTRAP */
-size_t regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size)
+size_t jim_regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size)
{
static const char *error_strings[] = {
"success",
@@ -1905,7 +1905,7 @@ size_t regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_s
return snprintf(errbuf, errbuf_size, "%s", err);
}
-void regfree(regex_t *preg)
+void jim_regfree(regex_t *preg)
{
free(preg->program);
}
diff --git a/jimregexp.h b/jimregexp.h
index c8bf8c3..e18178e 100644
--- a/jimregexp.h
+++ b/jimregexp.h
@@ -98,10 +98,10 @@ enum {
REG_ERR_NUM
};
-int regcomp(regex_t *preg, const char *regex, int cflags);
-int regexec(regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags);
-size_t regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size);
-void regfree(regex_t *preg);
+int jim_regcomp(regex_t *preg, const char *regex, int cflags);
+int jim_regexec(regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags);
+size_t jim_regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size);
+void jim_regfree(regex_t *preg);
#ifdef __cplusplus
}