diff options
Diffstat (limited to 'lib/libc/regex')
-rw-r--r-- | lib/libc/regex/regex2.h | 44 | ||||
-rw-r--r-- | lib/libc/regex/regexec.c | 24 |
2 files changed, 34 insertions, 34 deletions
diff --git a/lib/libc/regex/regex2.h b/lib/libc/regex/regex2.h index 9560e05..cd7b962 100644 --- a/lib/libc/regex/regex2.h +++ b/lib/libc/regex/regex2.h @@ -77,34 +77,34 @@ */ typedef unsigned long sop; /* strip operator */ typedef long sopno; -#define OPRMASK 0xf8000000 -#define OPDMASK 0x07ffffff +#define OPRMASK 0xf8000000L +#define OPDMASK 0x07ffffffL #define OPSHIFT ((unsigned)27) #define OP(n) ((n)&OPRMASK) #define OPND(n) ((n)&OPDMASK) #define SOP(op, opnd) ((op)|(opnd)) /* operators meaning operand */ /* (back, fwd are offsets) */ -#define OEND (1<<OPSHIFT) /* endmarker - */ -#define OCHAR (2<<OPSHIFT) /* character unsigned char */ -#define OBOL (3<<OPSHIFT) /* left anchor - */ -#define OEOL (4<<OPSHIFT) /* right anchor - */ -#define OANY (5<<OPSHIFT) /* . - */ -#define OANYOF (6<<OPSHIFT) /* [...] set number */ -#define OBACK_ (7<<OPSHIFT) /* begin \d paren number */ -#define O_BACK (8<<OPSHIFT) /* end \d paren number */ -#define OPLUS_ (9<<OPSHIFT) /* + prefix fwd to suffix */ -#define O_PLUS (10<<OPSHIFT) /* + suffix back to prefix */ -#define OQUEST_ (11<<OPSHIFT) /* ? prefix fwd to suffix */ -#define O_QUEST (12<<OPSHIFT) /* ? suffix back to prefix */ -#define OLPAREN (13<<OPSHIFT) /* ( fwd to ) */ -#define ORPAREN (14<<OPSHIFT) /* ) back to ( */ -#define OCH_ (15<<OPSHIFT) /* begin choice fwd to OOR2 */ -#define OOR1 (16<<OPSHIFT) /* | pt. 1 back to OOR1 or OCH_ */ -#define OOR2 (17<<OPSHIFT) /* | pt. 2 fwd to OOR2 or O_CH */ -#define O_CH (18<<OPSHIFT) /* end choice back to OOR1 */ -#define OBOW (19<<OPSHIFT) /* begin word - */ -#define OEOW (20<<OPSHIFT) /* end word - */ +#define OEND (1L<<OPSHIFT) /* endmarker - */ +#define OCHAR (2L<<OPSHIFT) /* character unsigned char */ +#define OBOL (3L<<OPSHIFT) /* left anchor - */ +#define OEOL (4L<<OPSHIFT) /* right anchor - */ +#define OANY (5L<<OPSHIFT) /* . - */ +#define OANYOF (6L<<OPSHIFT) /* [...] set number */ +#define OBACK_ (7L<<OPSHIFT) /* begin \d paren number */ +#define O_BACK (8L<<OPSHIFT) /* end \d paren number */ +#define OPLUS_ (9L<<OPSHIFT) /* + prefix fwd to suffix */ +#define O_PLUS (10L<<OPSHIFT) /* + suffix back to prefix */ +#define OQUEST_ (11L<<OPSHIFT) /* ? prefix fwd to suffix */ +#define O_QUEST (12L<<OPSHIFT) /* ? suffix back to prefix */ +#define OLPAREN (13L<<OPSHIFT) /* ( fwd to ) */ +#define ORPAREN (14L<<OPSHIFT) /* ) back to ( */ +#define OCH_ (15L<<OPSHIFT) /* begin choice fwd to OOR2 */ +#define OOR1 (16L<<OPSHIFT) /* | pt. 1 back to OOR1 or OCH_ */ +#define OOR2 (17L<<OPSHIFT) /* | pt. 2 fwd to OOR2 or O_CH */ +#define O_CH (18L<<OPSHIFT) /* end choice back to OOR1 */ +#define OBOW (19L<<OPSHIFT) /* begin word - */ +#define OEOW (20L<<OPSHIFT) /* end word - */ /* * Structure for [] character-set representation. Character sets are diff --git a/lib/libc/regex/regexec.c b/lib/libc/regex/regexec.c index 3890b61..80a7ad0 100644 --- a/lib/libc/regex/regexec.c +++ b/lib/libc/regex/regexec.c @@ -65,24 +65,24 @@ static int nope = 0; /* for use in asserts; shuts lint up */ #define states long #define states1 states /* for later use in regexec() decision */ #define CLEAR(v) ((v) = 0) -#define SET0(v, n) ((v) &= ~(1 << (n))) -#define SET1(v, n) ((v) |= 1 << (n)) -#define ISSET(v, n) ((v) & (1 << (n))) +#define SET0(v, n) ((v) &= ~((unsigned long)1 << (n))) +#define SET1(v, n) ((v) |= (unsigned long)1 << (n)) +#define ISSET(v, n) (((v) & ((unsigned long)1 << (n))) != 0) #define ASSIGN(d, s) ((d) = (s)) #define EQ(a, b) ((a) == (b)) -#define STATEVARS int dummy /* dummy version */ +#define STATEVARS long dummy /* dummy version */ #define STATESETUP(m, n) /* nothing */ #define STATETEARDOWN(m) /* nothing */ #define SETUP(v) ((v) = 0) -#define onestate int -#define INIT(o, n) ((o) = (unsigned)1 << (n)) +#define onestate long +#define INIT(o, n) ((o) = (unsigned long)1 << (n)) #define INC(o) ((o) <<= 1) -#define ISSTATEIN(v, o) ((v) & (o)) +#define ISSTATEIN(v, o) (((v) & (o)) != 0) /* some abbreviations; note that some of these know variable names! */ /* do "if I'm here, I can also be there" etc without branches */ -#define FWD(dst, src, n) ((dst) |= ((unsigned)(src)&(here)) << (n)) -#define BACK(dst, src, n) ((dst) |= ((unsigned)(src)&(here)) >> (n)) -#define ISSETBACK(v, n) ((v) & ((unsigned)here >> (n))) +#define FWD(dst, src, n) ((dst) |= ((unsigned long)(src)&(here)) << (n)) +#define BACK(dst, src, n) ((dst) |= ((unsigned long)(src)&(here)) >> (n)) +#define ISSETBACK(v, n) (((v) & ((unsigned long)here >> (n))) != 0) /* function names */ #define SNAMES /* engine.c looks after details */ @@ -117,13 +117,13 @@ static int nope = 0; /* for use in asserts; shuts lint up */ #define ISSET(v, n) ((v)[n]) #define ASSIGN(d, s) memcpy(d, s, m->g->nstates) #define EQ(a, b) (memcmp(a, b, m->g->nstates) == 0) -#define STATEVARS int vn; char *space +#define STATEVARS long vn; char *space #define STATESETUP(m, nv) { (m)->space = malloc((nv)*(m)->g->nstates); \ if ((m)->space == NULL) return(REG_ESPACE); \ (m)->vn = 0; } #define STATETEARDOWN(m) { free((m)->space); } #define SETUP(v) ((v) = &m->space[m->vn++ * m->g->nstates]) -#define onestate int +#define onestate long #define INIT(o, n) ((o) = (n)) #define INC(o) ((o)++) #define ISSTATEIN(v, o) ((v)[o]) |