summaryrefslogtreecommitdiffstats
path: root/generic/regcomp.c
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2007-04-19 09:00:54 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2007-04-19 09:00:54 (GMT)
commitb13067d29f8b9eb7d7d73820b4f14562704a2732 (patch)
tree51eae560e8bf56711b6f41a1d3d893a579a4891a /generic/regcomp.c
parentfb49f5dcab8ff9b5198b3616cad010098e1f5674 (diff)
downloadtcl-b13067d29f8b9eb7d7d73820b4f14562704a2732.zip
tcl-b13067d29f8b9eb7d7d73820b4f14562704a2732.tar.gz
tcl-b13067d29f8b9eb7d7d73820b4f14562704a2732.tar.bz2
Improve const-correctness of RE compiler
Diffstat (limited to 'generic/regcomp.c')
-rw-r--r--generic/regcomp.c48
1 files changed, 24 insertions, 24 deletions
diff --git a/generic/regcomp.c b/generic/regcomp.c
index d228879..4137caf 100644
--- a/generic/regcomp.c
+++ b/generic/regcomp.c
@@ -52,7 +52,7 @@ static VOID repeat(struct vars *, struct state *, struct state *, int, int);
static VOID bracket(struct vars *, struct state *, struct state *);
static VOID cbracket(struct vars *, struct state *, struct state *);
static VOID brackpart(struct vars *, struct state *, struct state *);
-static chr *scanplain(struct vars *);
+static const chr *scanplain(struct vars *);
static VOID leaders(struct vars *, struct cvec *);
static VOID onechr(struct vars *, pchr, struct state *, struct state *);
static VOID dovec(struct vars *, struct cvec *, struct state *, struct state *);
@@ -79,7 +79,7 @@ static const char *stid(struct subre *, char *, size_t);
/* === regc_lex.c === */
static VOID lexstart(struct vars *);
static VOID prefixes(struct vars *);
-static VOID lexnest(struct vars *, chr *, chr *);
+static VOID lexnest(struct vars *, const chr *, const chr *);
static VOID lexword(struct vars *);
static int next(struct vars *);
static int lexescape(struct vars *);
@@ -88,9 +88,9 @@ static int brenext(struct vars *, pchr);
static VOID skip(struct vars *);
static chr newline(NOPARMS);
#ifdef REG_DEBUG
-static chr *ch(NOPARMS);
+static const chr *ch(NOPARMS);
#endif
-static chr chrnamed(struct vars *, chr *, chr *, pchr);
+static chr chrnamed(struct vars *, const chr *, const chr *, pchr);
/* === regc_color.c === */
static VOID initcm(struct vars *, struct colormap *);
static VOID freecm(struct colormap *);
@@ -176,7 +176,7 @@ static struct cvec *clearcvec(struct cvec *);
static VOID addchr(struct cvec *, pchr);
static VOID addrange(struct cvec *, pchr, pchr);
#ifdef REGEXP_MCCE_ENABLED
-static VOID addmcce(struct cvec *, chr *, chr *);
+static VOID addmcce(struct cvec *, const chr *, const chr *);
#endif
static int haschr(struct cvec *, pchr);
static struct cvec *getcvec(struct vars *, int, int, int);
@@ -185,11 +185,11 @@ static VOID freecvec(struct cvec *);
static int nmcces(struct vars *);
static int nleaders(struct vars *);
static struct cvec *allmcces(struct vars *, struct cvec *);
-static celt element(struct vars *, chr *, chr *);
+static celt element(struct vars *, const chr *, const chr *);
static struct cvec *range(struct vars *, celt, celt, int);
static int before(celt, celt);
static struct cvec *eclass(struct vars *, celt, int);
-static struct cvec *cclass(struct vars *, chr *, chr *, int);
+static struct cvec *cclass(struct vars *, const chr *, const chr *, int);
static struct cvec *allcases(struct vars *, pchr);
static int cmp(const chr *, const chr *, size_t);
static int casecmp(const chr *, const chr *, size_t);
@@ -199,10 +199,10 @@ static int casecmp(const chr *, const chr *, size_t);
/* internal variables, bundled for easy passing around */
struct vars {
regex_t *re;
- chr *now; /* scan pointer into string */
- chr *stop; /* end of string */
- chr *savenow; /* saved now and stop for "subroutine call" */
- chr *savestop;
+ const chr *now; /* scan pointer into string */
+ const chr *stop; /* end of string */
+ const chr *savenow; /* saved now and stop for "subroutine call" */
+ const chr *savestop;
int err; /* error code (0 if none) */
int cflags; /* copy of compile flags */
int lasttype; /* type of previous token */
@@ -316,7 +316,7 @@ compile(
*/
v->re = re;
- v->now = (chr *)string;
+ v->now = string;
v->stop = v->now + len;
v->savenow = v->savestop = NULL;
v->err = 0;
@@ -374,7 +374,7 @@ compile(
leaders(v, v->mcces);
#ifdef REGEXP_MCCE_ENABLED
/* Function does nothing with NULL pointers */
- addmcce(v->mcces, (chr *)NULL, (chr *)NULL); /* dummy */
+ addmcce(v->mcces, (const chr *)NULL, (const chr *)NULL); /* dummy */
#endif
}
CNOERR();
@@ -1475,7 +1475,7 @@ cbracket(
struct arc *ba; /* arc from left, from bracket() */
struct arc *pa; /* MCCE-prototype arc */
color co;
- chr *p;
+ const chr *p;
int i;
NOERR();
@@ -1564,8 +1564,8 @@ brackpart(
celt startc;
celt endc;
struct cvec *cv;
- chr *startp;
- chr *endp;
+ const chr *startp;
+ const chr *endp;
chr c[1];
/*
@@ -1672,13 +1672,13 @@ brackpart(
- scanplain - scan PLAIN contents of [. etc.
* Certain bits of trickery in lex.c know that this code does not try to look
* past the final bracket of the [. etc.
- ^ static chr *scanplain(struct vars *);
+ ^ static const chr *scanplain(struct vars *);
*/
-static chr * /* just after end of sequence */
+static const chr * /* just after end of sequence */
scanplain(
struct vars *v)
{
- chr *endp;
+ const chr *endp;
assert(SEE(COLLEL) || SEE(ECLASS) || SEE(CCLASS));
NEXT();
@@ -1707,7 +1707,7 @@ leaders(
struct cvec *cv)
{
int mcce;
- chr *p;
+ const chr *p;
chr leader;
struct state *s;
struct arc *a;
@@ -1773,9 +1773,9 @@ dovec(
struct state *rp)
{
chr ch, from, to;
- chr *p;
+ const chr *p;
int i;
-
+
for (p = cv->chrs, i = cv->nchrs; i > 0; p++, i--) {
ch = *p;
newarc(v->nfa, PLAIN, subcolor(v->cm, ch), lp, rp);
@@ -1800,7 +1800,7 @@ dovec(
{
chr ch, from, to;
celt ce;
- chr *p;
+ const chr *p;
int i;
struct cvec *leads;
color co;
@@ -1949,7 +1949,7 @@ nextleader(
pchr to)
{
int i;
- chr *p;
+ const chr *p;
chr ch;
celt it = NOCELT;