X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Frx.c;h=453aeedcf51efc96f18404fd836f69eec38e845f;hb=e48f10e4203e9770b4c5b9ca75de51b05e7ea0b6;hp=1b94dbf66be33d30d70d2cb5724dbe4a5e96364c;hpb=6aae241f16ed2dbe57475cb4c8b3a5b1ca1e9699;p=gnulib.git diff --git a/lib/rx.c b/lib/rx.c index 1b94dbf66..453aeedcf 100644 --- a/lib/rx.c +++ b/lib/rx.c @@ -33,9 +33,8 @@ write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA #if HAVE_CONFIG_H #include #endif - -char rx_version_string[] = "GNU Rx version 0.07.1"; +const char *rx_version_string = "GNU Rx version 0.07.2"; /* ``Too hard!'' * -- anon. @@ -119,9 +118,9 @@ char *alloca (); #ifndef emacs -#ifdef SYNTAX_TABLE -extern char *re_syntax_table; -#else /* not SYNTAX_TABLE */ +#ifndef SYNTAX + +RX_DECL char re_syntax_table[CHAR_SET_SIZE]; #ifdef __STDC__ static void @@ -152,7 +151,7 @@ init_syntax_once () done = 1; } -#endif /* not SYNTAX_TABLE */ +#endif /* not SYNTAX */ #endif /* not emacs */ /* Compile with `-DRX_DEBUG' and use the following flags. @@ -3672,7 +3671,8 @@ compute_super_edge (rx, dfout, csetout, superstate, chr) { struct rx_distinct_future * df; df = saved; - df->next_same_super_edge[1]->next_same_super_edge[0] = 0; + if (df) + df->next_same_super_edge[1]->next_same_super_edge[0] = 0; while (df) { struct rx_distinct_future *dft; @@ -4967,7 +4967,7 @@ rx_compile (pattern, size, syntax, rxb) */ rxb->re_nsub = 0; -#if !defined (emacs) && !defined (SYNTAX_TABLE) +#if !defined (emacs) && !defined (SYNTAX) /* Initialize the syntax table. */ init_syntax_once (); #endif @@ -6250,9 +6250,9 @@ rx_blow_up_fastmap (rxb) struct re_search_2_closure { - __const__ char * string1; + __const__ unsigned char * string1; int size1; - __const__ char * string2; + __const__ unsigned char * string2; int size2; }; @@ -6395,7 +6395,7 @@ re_search_2_fetch_char (pos, offset, app_closure, stop) return *pos->pos; else { - if ( (pos->string == (__const__ unsigned char *) closure->string2) + if ( (pos->string == closure->string2) && (closure->string1) && (closure->size1)) return closure->string1[closure->size1 - 1]; @@ -6435,9 +6435,9 @@ RE_SEARCH_2_FN (rxb, { int answer; struct re_search_2_closure closure; - closure.string1 = string1; + closure.string1 = (__const__ unsigned char *) string1; closure.size1 = size1; - closure.string2 = string2; + closure.string2 = (__const__ unsigned char *) string2; closure.size2 = size2; answer = rx_search (rxb, startpos, range, stop, size1 + size2, re_search_2_get_burst, @@ -6882,6 +6882,7 @@ re_comp (s) /* Match anchors at newlines. */ rx_comp_buf.newline_anchor = 1; + rx_comp_buf.fastmap_accurate = 0; rx_comp_buf.re_nsub = 0; rx_comp_buf.start = 0; rx_comp_buf.se_params = 0; @@ -6891,6 +6892,7 @@ re_comp (s) rx_comp_buf.rx.nfa_states = 0; rx_comp_buf.rx.start = 0; rx_comp_buf.rx.se_list_cmp = posix_se_list_order; + rx_comp_buf.rx.start_set = 0; rx_comp_buf.rx.local_cset_size = 256; ret = rx_compile (s, strlen (s), re_syntax_options, &rx_comp_buf);