changeset 20213:389f6a197bf5

Update from latest.
author Jim Meyering <jim@meyering.net>
date Fri, 15 Dec 1995 15:12:58 +0000
parents 4ddc5cc7b905
children d496d153b6e9
files lib/rx.c lib/rx.h
diffstat 2 files changed, 18 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/lib/rx.c	Wed Dec 13 02:52:23 1995 +0000
+++ b/lib/rx.c	Fri Dec 15 15:12:58 1995 +0000
@@ -30,12 +30,8 @@
 #define	_GNU_SOURCE
 #endif
 
-#if HAVE_CONFIG_H
-#include <config.h>
-#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 @@
 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 @@
 		{
 		  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 @@
 
 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 @@
 	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 @@
   /* 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 @@
   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);
--- a/lib/rx.h	Wed Dec 13 02:52:23 1995 +0000
+++ b/lib/rx.h	Fri Dec 15 15:12:58 1995 +0000
@@ -1422,7 +1422,7 @@
 #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 @@
 #endif
 
 extern int rx_cache_bound;
-extern char rx_version_string[];
+extern const char *rx_version_string;
 
 
 
@@ -2221,11 +2221,7 @@
 #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 @@
 	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 @@
       } /* } 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 @@
 #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 @@
 		      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;
 		}