From: Karl Heuer Date: Sun, 12 Apr 1998 06:57:47 +0000 (+0000) Subject: (re_match_2, re_search_2): Convert position to a charpos, X-Git-Tag: emacs-20.3~1592 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=cc9b4df2b412a5638f4be7ebd77249a1bf46fce9;p=emacs.git (re_match_2, re_search_2): Convert position to a charpos, before calling SETUP_SYNTAX_TABLE_FOR_OBJECT. --- diff --git a/src/regex.c b/src/regex.c index 29928e9dfc2..940c95f448a 100644 --- a/src/regex.c +++ b/src/regex.c @@ -3738,10 +3738,13 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop) 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 @@ re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop) 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; }