mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge
client/mysqltest.c: Auto merged mysql-test/lib/mtr_process.pl: Auto merged os2/MySQL-Source.icc: Auto merged regex/Makefile.am: Auto merged regex/engine.c: Auto merged regex/main.c: Auto merged regex/regerror.c: Auto merged sql/item_cmpfunc.h: Auto merged sql/mysqld.cc: Auto merged
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include
|
||||
noinst_LIBRARIES = libregex.a
|
||||
LDADD= libregex.a $(top_builddir)/strings/libmystrings.a
|
||||
noinst_HEADERS = cclass.h cname.h regex2.h utils.h engine.c regex.h
|
||||
noinst_HEADERS = cclass.h cname.h regex2.h utils.h engine.c my_regex.h
|
||||
libregex_a_SOURCES = regerror.c regcomp.c regexec.c regfree.c reginit.c
|
||||
noinst_PROGRAMS = re
|
||||
re_SOURCES = split.c debug.c main.c
|
||||
|
@@ -2,7 +2,8 @@
|
||||
#include <m_ctype.h>
|
||||
#include <m_string.h>
|
||||
#include <sys/types.h>
|
||||
#include <regex.h>
|
||||
|
||||
#include "my_regex.h"
|
||||
#include "utils.h"
|
||||
#include "regex2.h"
|
||||
#include "debug.ih"
|
||||
@@ -15,7 +16,7 @@
|
||||
*/
|
||||
void
|
||||
regprint(r, d)
|
||||
regex_t *r;
|
||||
my_regex_t *r;
|
||||
FILE *d;
|
||||
{
|
||||
register struct re_guts *g = r->re_g;
|
||||
|
@@ -4,7 +4,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/* === debug.c === */
|
||||
void regprint(regex_t *r, FILE *d);
|
||||
void regprint(my_regex_t *r, FILE *d);
|
||||
static void s_print(CHARSET_INFO *charset, register struct re_guts *g, FILE *d);
|
||||
static char *regchar(CHARSET_INFO *charset, int ch,char *buf);
|
||||
|
||||
|
@@ -32,7 +32,7 @@
|
||||
struct match {
|
||||
struct re_guts *g;
|
||||
int eflags;
|
||||
regmatch_t *pmatch; /* [nsub+1] (0 element unused) */
|
||||
my_regmatch_t *pmatch; /* [nsub+1] (0 element unused) */
|
||||
char *offp; /* offsets work from here */
|
||||
char *beginp; /* start of string -- virtual NUL precedes */
|
||||
char *endp; /* end of string -- virtual NUL here */
|
||||
@@ -68,7 +68,7 @@ CHARSET_INFO *charset;
|
||||
register struct re_guts *g;
|
||||
char *str;
|
||||
size_t nmatch;
|
||||
regmatch_t pmatch[];
|
||||
my_regmatch_t pmatch[];
|
||||
int eflags;
|
||||
{
|
||||
register char *endp;
|
||||
@@ -148,8 +148,8 @@ int eflags;
|
||||
|
||||
/* oh my, he wants the subexpressions... */
|
||||
if (m->pmatch == NULL)
|
||||
m->pmatch = (regmatch_t *)malloc((m->g->nsub + 1) *
|
||||
sizeof(regmatch_t));
|
||||
m->pmatch = (my_regmatch_t *)malloc((m->g->nsub + 1) *
|
||||
sizeof(my_regmatch_t));
|
||||
if (m->pmatch == NULL) {
|
||||
if (m->lastpos != NULL)
|
||||
free((char *)m->lastpos);
|
||||
|
@@ -4,7 +4,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/* === engine.c === */
|
||||
static int matcher(CHARSET_INFO *charset,register struct re_guts *g, char *string, size_t nmatch, regmatch_t pmatch[], int eflags);
|
||||
static int matcher(CHARSET_INFO *charset,register struct re_guts *g, char *string, size_t nmatch, my_regmatch_t pmatch[], int eflags);
|
||||
static char *dissect(CHARSET_INFO *charset,register struct match *m, char *start, char *stop, sopno startst, sopno stopst);
|
||||
static char *backref(CHARSET_INFO *charset, register struct match *m, char *start, char *stop, sopno startst, sopno stopst, sopno lev);
|
||||
static char *fast(CHARSET_INFO *charset, register struct match *m, char *start, char *stop, sopno startst, sopno stopst);
|
||||
|
52
regex/main.c
52
regex/main.c
@@ -1,9 +1,9 @@
|
||||
#include <my_global.h>
|
||||
#include <m_string.h>
|
||||
#include <sys/types.h>
|
||||
#include <regex.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include "my_regex.h"
|
||||
#include "main.ih"
|
||||
|
||||
char *progname;
|
||||
@@ -27,9 +27,9 @@ int main(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
regex_t re;
|
||||
my_regex_t re;
|
||||
# define NS 10
|
||||
regmatch_t subs[NS];
|
||||
my_regmatch_t subs[NS];
|
||||
char erbuf[100];
|
||||
int err;
|
||||
size_t len;
|
||||
@@ -74,9 +74,9 @@ char *argv[];
|
||||
exit(status);
|
||||
}
|
||||
|
||||
err = regcomp(&re, argv[optind++], copts, &my_charset_latin1);
|
||||
err = my_regcomp(&re, argv[optind++], copts, &my_charset_latin1);
|
||||
if (err) {
|
||||
len = regerror(err, &re, erbuf, sizeof(erbuf));
|
||||
len = my_regerror(err, &re, erbuf, sizeof(erbuf));
|
||||
fprintf(stderr, "error %s, %d/%d `%s'\n",
|
||||
eprint(err), (int) len, (int) sizeof(erbuf), erbuf);
|
||||
exit(status);
|
||||
@@ -84,7 +84,7 @@ char *argv[];
|
||||
regprint(&re, stdout);
|
||||
|
||||
if (optind >= argc) {
|
||||
regfree(&re);
|
||||
my_regfree(&re);
|
||||
exit(status);
|
||||
}
|
||||
|
||||
@@ -92,9 +92,9 @@ char *argv[];
|
||||
subs[0].rm_so = startoff;
|
||||
subs[0].rm_eo = strlen(argv[optind]) - endoff;
|
||||
}
|
||||
err = regexec(&re, argv[optind], (size_t)NS, subs, eopts);
|
||||
err = my_regexec(&re, argv[optind], (size_t)NS, subs, eopts);
|
||||
if (err) {
|
||||
len = regerror(err, &re, erbuf, sizeof(erbuf));
|
||||
len = my_regerror(err, &re, erbuf, sizeof(erbuf));
|
||||
fprintf(stderr, "error %s, %d/%d `%s'\n",
|
||||
eprint(err), (int) len, (int) sizeof(erbuf), erbuf);
|
||||
exit(status);
|
||||
@@ -136,7 +136,7 @@ FILE *in;
|
||||
const char *badpat = "invalid regular expression";
|
||||
# define SHORT 10
|
||||
const char *bpname = "REG_BADPAT";
|
||||
regex_t re;
|
||||
my_regex_t re;
|
||||
|
||||
while (fgets(inbuf, sizeof(inbuf), in) != NULL) {
|
||||
line++;
|
||||
@@ -163,27 +163,27 @@ FILE *in;
|
||||
options('c', f[1]) &~ REG_EXTENDED);
|
||||
}
|
||||
|
||||
ne = regerror(REG_BADPAT, (regex_t *)NULL, erbuf, sizeof(erbuf));
|
||||
ne = my_regerror(REG_BADPAT, (my_regex_t *)NULL, erbuf, sizeof(erbuf));
|
||||
if (strcmp(erbuf, badpat) != 0 || ne != strlen(badpat)+1) {
|
||||
fprintf(stderr, "end: regerror() test gave `%s' not `%s'\n",
|
||||
erbuf, badpat);
|
||||
status = 1;
|
||||
}
|
||||
ne = regerror(REG_BADPAT, (regex_t *)NULL, erbuf, (size_t)SHORT);
|
||||
ne = my_regerror(REG_BADPAT, (my_regex_t *)NULL, erbuf, (size_t)SHORT);
|
||||
if (strncmp(erbuf, badpat, SHORT-1) != 0 || erbuf[SHORT-1] != '\0' ||
|
||||
ne != strlen(badpat)+1) {
|
||||
fprintf(stderr, "end: regerror() short test gave `%s' not `%.*s'\n",
|
||||
erbuf, SHORT-1, badpat);
|
||||
status = 1;
|
||||
}
|
||||
ne = regerror(REG_ITOA|REG_BADPAT, (regex_t *)NULL, erbuf, sizeof(erbuf));
|
||||
ne = my_regerror(REG_ITOA|REG_BADPAT, (my_regex_t *)NULL, erbuf, sizeof(erbuf));
|
||||
if (strcmp(erbuf, bpname) != 0 || ne != strlen(bpname)+1) {
|
||||
fprintf(stderr, "end: regerror() ITOA test gave `%s' not `%s'\n",
|
||||
erbuf, bpname);
|
||||
status = 1;
|
||||
}
|
||||
re.re_endp = bpname;
|
||||
ne = regerror(REG_ATOI, &re, erbuf, sizeof(erbuf));
|
||||
ne = my_regerror(REG_ATOI, &re, erbuf, sizeof(erbuf));
|
||||
if (atoi(erbuf) != (int)REG_BADPAT) {
|
||||
fprintf(stderr, "end: regerror() ATOI test gave `%s' not `%ld'\n",
|
||||
erbuf, (long)REG_BADPAT);
|
||||
@@ -208,9 +208,9 @@ char *f3;
|
||||
char *f4;
|
||||
int opts; /* may not match f1 */
|
||||
{
|
||||
regex_t re;
|
||||
my_regex_t re;
|
||||
# define NSUBS 10
|
||||
regmatch_t subs[NSUBS];
|
||||
my_regmatch_t subs[NSUBS];
|
||||
# define NSHOULD 15
|
||||
char *should[NSHOULD];
|
||||
int nshould;
|
||||
@@ -226,10 +226,10 @@ int opts; /* may not match f1 */
|
||||
strcpy(f0copy, f0);
|
||||
re.re_endp = (opts®_PEND) ? f0copy + strlen(f0copy) : NULL;
|
||||
fixstr(f0copy);
|
||||
err = regcomp(&re, f0copy, opts, &my_charset_latin1);
|
||||
err = my_regcomp(&re, f0copy, opts, &my_charset_latin1);
|
||||
if (err != 0 && (!opt('C', f1) || err != efind(f2))) {
|
||||
/* unexpected error or wrong error */
|
||||
len = regerror(err, &re, erbuf, sizeof(erbuf));
|
||||
len = my_regerror(err, &re, erbuf, sizeof(erbuf));
|
||||
fprintf(stderr, "%d: %s error %s, %d/%d `%s'\n",
|
||||
line, type, eprint(err), len,
|
||||
(int) sizeof(erbuf), erbuf);
|
||||
@@ -243,7 +243,7 @@ int opts; /* may not match f1 */
|
||||
}
|
||||
|
||||
if (err != 0) {
|
||||
regfree(&re);
|
||||
my_regfree(&re);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -256,11 +256,11 @@ int opts; /* may not match f1 */
|
||||
subs[0].rm_so = strchr(f2, '(') - f2 + 1;
|
||||
subs[0].rm_eo = strchr(f2, ')') - f2;
|
||||
}
|
||||
err = regexec(&re, f2copy, NSUBS, subs, options('e', f1));
|
||||
err = my_regexec(&re, f2copy, NSUBS, subs, options('e', f1));
|
||||
|
||||
if (err != 0 && (f3 != NULL || err != REG_NOMATCH)) {
|
||||
/* unexpected error or wrong error */
|
||||
len = regerror(err, &re, erbuf, sizeof(erbuf));
|
||||
len = my_regerror(err, &re, erbuf, sizeof(erbuf));
|
||||
fprintf(stderr, "%d: %s exec error %s, %d/%d `%s'\n",
|
||||
line, type, eprint(err), len,
|
||||
(int) sizeof(erbuf), erbuf);
|
||||
@@ -282,7 +282,7 @@ int opts; /* may not match f1 */
|
||||
}
|
||||
|
||||
if (err != 0 || f4 == NULL) {
|
||||
regfree(&re);
|
||||
my_regfree(&re);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -303,7 +303,7 @@ int opts; /* may not match f1 */
|
||||
}
|
||||
}
|
||||
|
||||
regfree(&re);
|
||||
my_regfree(&re);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -404,7 +404,7 @@ register char *p;
|
||||
char * /* NULL or complaint */
|
||||
check(str, sub, should)
|
||||
char *str;
|
||||
regmatch_t sub;
|
||||
my_regmatch_t sub;
|
||||
char *should;
|
||||
{
|
||||
register int len;
|
||||
@@ -485,7 +485,7 @@ int err;
|
||||
static char epbuf[100];
|
||||
size_t len;
|
||||
|
||||
len = regerror(REG_ITOA|err, (regex_t *)NULL, epbuf, sizeof(epbuf));
|
||||
len = my_regerror(REG_ITOA|err, (my_regex_t *)NULL, epbuf, sizeof(epbuf));
|
||||
assert(len <= sizeof(epbuf));
|
||||
return(epbuf);
|
||||
}
|
||||
@@ -499,11 +499,11 @@ efind(name)
|
||||
char *name;
|
||||
{
|
||||
static char efbuf[100];
|
||||
regex_t re;
|
||||
my_regex_t re;
|
||||
|
||||
sprintf(efbuf, "REG_%s", name);
|
||||
assert(strlen(efbuf) < sizeof(efbuf));
|
||||
re.re_endp = efbuf;
|
||||
(void) regerror(REG_ATOI, &re, efbuf, sizeof(efbuf));
|
||||
(void) my_regerror(REG_ATOI, &re, efbuf, sizeof(efbuf));
|
||||
return(atoi(efbuf));
|
||||
}
|
||||
|
@@ -9,7 +9,7 @@ void rx_try(char *f0, char *f1, char *f2, char *f3, char *f4, int opts);
|
||||
int options(int type, char *s);
|
||||
int opt(int c, char *s);
|
||||
void fixstr(register char *p);
|
||||
char *check(char *str, regmatch_t sub, char *should);
|
||||
char *check(char *str, my_regmatch_t sub, char *should);
|
||||
static char *eprint(int err);
|
||||
static int efind(char *name);
|
||||
|
||||
|
@@ -20,15 +20,15 @@ typedef struct {
|
||||
const char *re_endp; /* end pointer for REG_PEND */
|
||||
struct re_guts *re_g; /* none of your business :-) */
|
||||
CHARSET_INFO *charset; /* For ctype things */
|
||||
} regex_t;
|
||||
} my_regex_t;
|
||||
typedef struct {
|
||||
regoff_t rm_so; /* start of match */
|
||||
regoff_t rm_eo; /* end of match */
|
||||
} regmatch_t;
|
||||
} my_regmatch_t;
|
||||
|
||||
|
||||
/* === regcomp.c === */
|
||||
extern int regcomp(regex_t *, const char *, int, CHARSET_INFO *charset);
|
||||
extern int my_regcomp(my_regex_t *, const char *, int, CHARSET_INFO *charset);
|
||||
#define REG_BASIC 0000
|
||||
#define REG_EXTENDED 0001
|
||||
#define REG_ICASE 0002
|
||||
@@ -58,11 +58,11 @@ extern int regcomp(regex_t *, const char *, int, CHARSET_INFO *charset);
|
||||
#define REG_INVARG 16
|
||||
#define REG_ATOI 255 /* convert name to number (!) */
|
||||
#define REG_ITOA 0400 /* convert number to name (!) */
|
||||
extern size_t regerror(int, const regex_t *, char *, size_t);
|
||||
extern size_t my_regerror(int, const my_regex_t *, char *, size_t);
|
||||
|
||||
|
||||
/* === regexec.c === */
|
||||
extern int regexec(const regex_t *, const char *, size_t, regmatch_t [], int);
|
||||
extern int my_regexec(const my_regex_t *, const char *, size_t, my_regmatch_t [], int);
|
||||
#define REG_NOTBOL 00001
|
||||
#define REG_NOTEOL 00002
|
||||
#define REG_STARTEND 00004
|
||||
@@ -72,12 +72,12 @@ extern int regexec(const regex_t *, const char *, size_t, regmatch_t [], int);
|
||||
|
||||
|
||||
/* === regfree.c === */
|
||||
extern void regfree(regex_t *);
|
||||
extern void my_regfree(my_regex_t *);
|
||||
|
||||
/* === reginit.c === */
|
||||
|
||||
extern void regex_init(CHARSET_INFO *cs); /* Should be called for multithread progs */
|
||||
extern void regex_end(void); /* If one wants a clean end */
|
||||
extern void my_regex_init(CHARSET_INFO *cs); /* Should be called for multithread progs */
|
||||
extern void my_regex_end(void); /* If one wants a clean end */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
@@ -1,11 +1,11 @@
|
||||
#include <my_global.h>
|
||||
#include <m_string.h>
|
||||
#include <m_ctype.h>
|
||||
#include <regex.h>
|
||||
#ifdef __WIN__
|
||||
#include <limits.h>
|
||||
#endif
|
||||
|
||||
#include "my_regex.h"
|
||||
#include "utils.h"
|
||||
#include "regex2.h"
|
||||
|
||||
@@ -100,8 +100,8 @@ static int never = 0; /* for use in asserts; shuts lint up */
|
||||
= #define REG_DUMP 0200
|
||||
*/
|
||||
int /* 0 success, otherwise REG_something */
|
||||
regcomp(preg, pattern, cflags, charset)
|
||||
regex_t *preg;
|
||||
my_regcomp(preg, pattern, cflags, charset)
|
||||
my_regex_t *preg;
|
||||
const char *pattern;
|
||||
int cflags;
|
||||
CHARSET_INFO *charset;
|
||||
@@ -117,7 +117,7 @@ CHARSET_INFO *charset;
|
||||
# define GOODFLAGS(f) ((f)&~REG_DUMP)
|
||||
#endif
|
||||
|
||||
regex_init(charset); /* Init cclass if neaded */
|
||||
my_regex_init(charset); /* Init cclass if neaded */
|
||||
preg->charset=charset;
|
||||
cflags = GOODFLAGS(cflags);
|
||||
if ((cflags®_EXTENDED) && (cflags®_NOSPEC))
|
||||
@@ -199,7 +199,7 @@ CHARSET_INFO *charset;
|
||||
|
||||
/* win or lose, we're done */
|
||||
if (p->error != 0) /* lose */
|
||||
regfree(preg);
|
||||
my_regfree(preg);
|
||||
return(p->error);
|
||||
}
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
#include <my_global.h>
|
||||
#include <m_string.h>
|
||||
#include <m_ctype.h>
|
||||
#include <regex.h>
|
||||
|
||||
#include "my_regex.h"
|
||||
#include "utils.h"
|
||||
#include "regerror.ih"
|
||||
|
||||
@@ -56,7 +56,7 @@ static struct rerr {
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
size_t
|
||||
regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size)
|
||||
my_regerror(int errcode, const my_regex_t *preg, char *errbuf, size_t errbuf_size)
|
||||
{
|
||||
register struct rerr *r;
|
||||
register size_t len;
|
||||
@@ -101,7 +101,7 @@ regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size)
|
||||
*/
|
||||
static char *
|
||||
regatoi(preg, localbuf)
|
||||
const regex_t *preg;
|
||||
const my_regex_t *preg;
|
||||
char *localbuf;
|
||||
{
|
||||
register struct rerr *r;
|
||||
|
@@ -4,7 +4,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/* === regerror.c === */
|
||||
static char *regatoi(const regex_t *preg, char *localbuf);
|
||||
static char *regatoi(const my_regex_t *preg, char *localbuf);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@@ -8,11 +8,10 @@
|
||||
#include <my_global.h>
|
||||
#include <m_string.h>
|
||||
#include <m_ctype.h>
|
||||
#include <regex.h>
|
||||
#ifdef __WIN__
|
||||
#include <limits.h>
|
||||
#endif
|
||||
|
||||
#include "my_regex.h"
|
||||
#include "utils.h"
|
||||
#include "regex2.h"
|
||||
|
||||
@@ -110,11 +109,11 @@ static int nope = 0; /* for use in asserts; shuts lint up */
|
||||
* have been prototyped.
|
||||
*/
|
||||
int /* 0 success, REG_NOMATCH failure */
|
||||
regexec(preg, str, nmatch, pmatch, eflags)
|
||||
const regex_t *preg;
|
||||
my_regexec(preg, str, nmatch, pmatch, eflags)
|
||||
const my_regex_t *preg;
|
||||
const char *str;
|
||||
size_t nmatch;
|
||||
regmatch_t pmatch[];
|
||||
my_regmatch_t pmatch[];
|
||||
int eflags;
|
||||
{
|
||||
register struct re_guts *g = preg->re_g;
|
||||
|
@@ -2,7 +2,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <regex.h>
|
||||
#include "my_regex.h"
|
||||
|
||||
#include "utils.h"
|
||||
#include "regex2.h"
|
||||
@@ -12,8 +12,8 @@
|
||||
= extern void regfree(regex_t *);
|
||||
*/
|
||||
void
|
||||
regfree(preg)
|
||||
regex_t *preg;
|
||||
my_regfree(preg)
|
||||
my_regex_t *preg;
|
||||
{
|
||||
register struct re_guts *g;
|
||||
|
||||
|
@@ -7,7 +7,7 @@
|
||||
|
||||
static bool regex_inited=0;
|
||||
|
||||
void regex_init(CHARSET_INFO *cs)
|
||||
void my_regex_init(CHARSET_INFO *cs)
|
||||
{
|
||||
char buff[CCLASS_LAST][256];
|
||||
int count[CCLASS_LAST];
|
||||
@@ -67,7 +67,7 @@ void regex_init(CHARSET_INFO *cs)
|
||||
return;
|
||||
}
|
||||
|
||||
void regex_end()
|
||||
void my_regex_end()
|
||||
{
|
||||
if (regex_inited)
|
||||
{
|
||||
|
Reference in New Issue
Block a user