X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=regcomp.h;h=6a2a22d94e78063c5b51549ce349e3fec2d79c72;hb=0ad39044976812f3d7577556791797d57eb65d61;hp=94e54e84cc9b4f6c892b9374d5315fd2df2d99a5;hpb=a3621e74372f5d2c10ed0d2a21195cab42a5be54;p=p5sagit%2Fp5-mst-13.2.git diff --git a/regcomp.h b/regcomp.h index 94e54e8..6a2a22d 100644 --- a/regcomp.h +++ b/regcomp.h @@ -1,7 +1,7 @@ /* regcomp.h * * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2003, by Larry Wall and others + * 2000, 2001, 2002, 2003, 2005 by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -154,15 +154,9 @@ struct regnode_charclass_class { /* has [[:blah:]] classes */ #undef NEXT_OFF #undef NODE_ALIGN -#ifndef lint -# define NEXT_OFF(p) ((p)->next_off) -# define NODE_ALIGN(node) -# define NODE_ALIGN_FILL(node) ((node)->flags = 0xde) /* deadbeef */ -#else /* lint */ -# define NEXT_OFF(p) 0 -# define NODE_ALIGN(node) -# define NODE_ALIGN_FILL(node) -#endif /* lint */ +#define NEXT_OFF(p) ((p)->next_off) +#define NODE_ALIGN(node) +#define NODE_ALIGN_FILL(node) ((node)->flags = 0xde) /* deadbeef */ #define SIZE_ALIGN NODE_ALIGN @@ -309,15 +303,11 @@ struct regnode_charclass_class { /* has [[:blah:]] classes */ /* * Utility definitions. */ -#ifndef lint #ifndef CHARMASK -#define UCHARAT(p) ((int)*(U8*)(p)) +# define UCHARAT(p) ((int)*(const U8*)(p)) #else -#define UCHARAT(p) ((int)*(p)&CHARMASK) +# define UCHARAT(p) ((int)*(p)&CHARMASK) #endif -#else /* lint */ -#define UCHARAT(p) PL_regdummy -#endif /* lint */ #define EXTRA_SIZE(guy) ((sizeof(guy)-1)/sizeof(struct regnode)) @@ -337,7 +327,7 @@ START_EXTERN_C EXTCONST U8 PL_varies[]; #else EXTCONST U8 PL_varies[] = { - BRANCH, BACK, STAR, PLUS, CURLY, CURLYX, REF, REFF, REFFL, + BRANCH, BACK, STAR, PLUS, CURLY, CURLYX, REF, REFF, REFFL, WHILEM, CURLYM, CURLYN, BRANCHJ, IFTHEN, SUSPEND, CLUMP, 0 }; #endif @@ -369,7 +359,7 @@ typedef struct re_scream_pos_data_s /* .what is a character array with one character for each member of .data * The character describes the function of the corresponding .data item: - * f - start-class data for regstclass optimization + * f - start-class data for regstclass optimization * n - Root of op tree for (?{EVAL}) item * o - Start op for (?{EVAL}) item * p - Pad for (?{EVAL} item @@ -463,6 +453,7 @@ struct _reg_trie_data { U16 wordcount; STRLEN charcount; U32 laststate; + U32 lasttrans; U16 *charmap; HV *widecharmap; reg_trie_state *states; @@ -484,9 +475,8 @@ typedef struct _reg_trie_data reg_trie_data; #define DO_TRIE 1 #define TRIE_DEBUG 1 - -#define TRIE_SIMPLE_MAX_BUFF 65536 -#define RE_TRIE_MAXBUFF "\022E_TRIE_MAXBUFF" +#define RE_TRIE_MAXBUF_INIT 65536 +#define RE_TRIE_MAXBUF_NAME "\022E_TRIE_MAXBUF" #define RE_DEBUG_FLAGS "\022E_DEBUG_FLAGS" /* If you change these be sure to update ext/re/re.pm as well */ @@ -528,7 +518,7 @@ typedef struct _reg_trie_data reg_trie_data; #ifdef DEBUGGING -#define GET_RE_DEBUG_FLAGS_DECL SV *re_debug_flags; GET_RE_DEBUG_FLAGS; +#define GET_RE_DEBUG_FLAGS_DECL SV *re_debug_flags = NULL; GET_RE_DEBUG_FLAGS; #else #define GET_RE_DEBUG_FLAGS_DECL #endif