changeset 21482:9898a4994a12

(re_match_2, re_search_2): Convert position to a charpos, before calling SETUP_SYNTAX_TABLE_FOR_OBJECT.
author Karl Heuer <kwzh@gnu.org>
date Sun, 12 Apr 1998 06:57:47 +0000
parents e53c0d01cf31
children c6d7001a262c
files src/regex.c
diffstat 1 files changed, 12 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/regex.c	Sun Apr 12 06:51:58 1998 +0000
+++ b/src/regex.c	Sun Apr 12 06:57:47 1998 +0000
@@ -3738,10 +3738,13 @@
     anchored_start = 1;
 
 #ifdef emacs
-  SETUP_SYNTAX_TABLE_FOR_OBJECT (re_match_object,
-				 POS_AS_IN_BUFFER (startpos > 0
-						   ? startpos - 1 : startpos),
-				 1);
+  gl_state.object = re_match_object;
+  {
+    int charpos
+      = SYNTAX_TABLE_BYTE_TO_CHAR (startpos > 0 ? startpos : startpos + 1);
+
+    SETUP_SYNTAX_TABLE_FOR_OBJECT (re_match_object, charpos, 1);
+  }
 #endif
 
   /* Loop through the string, looking for a place to start matching.  */
@@ -4051,13 +4054,14 @@
   int result;
 
 #ifdef emacs
-  SETUP_SYNTAX_TABLE_FOR_OBJECT (re_match_object,
-				 POS_AS_IN_BUFFER (pos > 0 ? pos - 1 : pos),
-				 1);
+  int charpos;
+  gl_state.object = re_match_object;
+  charpos = SYNTAX_TABLE_BYTE_TO_CHAR (POS_AS_IN_BUFFER (pos));
+  SETUP_SYNTAX_TABLE_FOR_OBJECT (re_match_object, charpos, 1);
 #endif
 
   result = re_match_2_internal (bufp, string1, size1, string2, size2,
-				    pos, regs, stop);
+				pos, regs, stop);
   alloca (0);
   return result;
 }