From 2ab1921d24b571b2299ae08d6bd7cef2dfe09ab6 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Fri, 15 Dec 1995 15:12:58 +0000 Subject: Update from latest. --- lib/rx.c | 19 ++++++++++--------- lib/rx.h | 17 ++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/lib/rx.c b/lib/rx.c index 1b94dbf66..54ae3b7f4 100644 --- a/lib/rx.c +++ b/lib/rx.c @@ -30,12 +30,8 @@ write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA #define _GNU_SOURCE #endif -#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. @@ -123,6 +119,8 @@ char *alloca (); extern char *re_syntax_table; #else /* not SYNTAX_TABLE */ +RX_DECL char re_syntax_table[CHAR_SET_SIZE]; + #ifdef __STDC__ static void init_syntax_once (void) @@ -3672,7 +3670,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; @@ -6250,9 +6249,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 +6394,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]; @@ -6882,6 +6881,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 +6891,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); diff --git a/lib/rx.h b/lib/rx.h index ed0eaa587..b85c92a8a 100644 --- a/lib/rx.h +++ b/lib/rx.h @@ -1422,7 +1422,7 @@ extern reg_syntax_t re_syntax_options; #define RE_SYNTAX_AWK \ (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \ | RE_NO_BK_PARENS | RE_NO_BK_REFS \ - | RE_NO_BK_VAR | RE_NO_EMPTY_RANGES \ + | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \ | RE_UNMATCHED_RIGHT_PAREN_ORD) #define RE_SYNTAX_POSIX_AWK \ @@ -1527,7 +1527,7 @@ extern reg_syntax_t re_syntax_options; #endif extern int rx_cache_bound; -extern char rx_version_string[]; +extern const char *rx_version_string; @@ -2221,11 +2221,7 @@ char *realloc (); #define Sword 1 #endif #define SYNTAX(c) re_syntax_table[c] -#ifdef SYNTAX_TABLE -extern char *re_syntax_table; -#else RX_DECL char re_syntax_table[CHAR_SET_SIZE]; -#endif #endif /* not emacs */ @@ -2639,8 +2635,10 @@ rx_search (rxb, startpos, range, stop, total_size, startpos = ( search_state.outer_pos.pos - search_state.outer_pos.string + search_state.outer_pos.offset); +#if 0 /*|*/ if ((range > 0) && (startpos == search_state.outer_pos.search_end)) /*|*/ goto finish; +#endif } search_state.test_match_resume_pt = rx_test_start; @@ -2693,7 +2691,7 @@ rx_search (rxb, startpos, range, stop, total_size, } /* } while (...see below...) */ if ((search_state.outer_pos.search_direction == 1) - ? (startpos < search_state.outer_pos.search_end) + ? (startpos <= search_state.outer_pos.search_end) : (startpos > search_state.outer_pos.search_end)) goto pseudo_do; @@ -3482,7 +3480,7 @@ rx_search (rxb, startpos, range, stop, total_size, #endif /* No more search-stack -- this test is done. */ - if (search_state.test_ret) + if (search_state.test_ret != rx_test_internal_error) goto return_from_test_match; else goto error_in_testing_match; @@ -3511,10 +3509,11 @@ rx_search (rxb, startpos, range, stop, total_size, sizeof (struct rx_counter_frame)); } - if (search_state.test_ret == rx_test_error) + if (search_state.test_ret == rx_test_internal_error) { POP (search_state.backtrack_stack, search_state.backtrack_frame_bytes); + search_state.test_ret = rx_test_internal_error; goto test_do_return; } -- cgit v1.2.3-54-g00ecf