From: Stefan Monnier Date: Wed, 12 Apr 2023 19:50:49 +0000 (-0400) Subject: (SETUP_SYNTAX_TABLE_FOR_OBJECT): Take a byteoffset X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c2c3114961802b4c52b4cde0271e460fb08698cf;p=emacs.git (SETUP_SYNTAX_TABLE_FOR_OBJECT): Take a byteoffset * src/syntax.c (SETUP_SYNTAX_TABLE_FOR_OBJECT): Take a byteoffset. * src/regex-emacs.c (re_search_2, re_match_2): Simplify accordingly. --- diff --git a/src/regex-emacs.c b/src/regex-emacs.c index 969f2ff9464..83caeca2464 100644 --- a/src/regex-emacs.c +++ b/src/regex-emacs.c @@ -3251,12 +3251,7 @@ re_search_2 (struct re_pattern_buffer *bufp, const char *str1, ptrdiff_t size1, /* See whether the pattern is anchored. */ anchored_start = (bufp->buffer[0] == begline); - gl_state.object = re_match_object; /* Used by SYNTAX_TABLE_BYTE_TO_CHAR. */ - { - ptrdiff_t charpos = SYNTAX_TABLE_BYTE_TO_CHAR (startpos); - - SETUP_SYNTAX_TABLE_FOR_OBJECT (re_match_object, charpos, 1); - } + SETUP_SYNTAX_TABLE_FOR_OBJECT (re_match_object, startpos, 1); /* Loop through the string, looking for a place to start matching. */ for (;;) @@ -3864,10 +3859,7 @@ re_match_2 (struct re_pattern_buffer *bufp, { ptrdiff_t result; - ptrdiff_t charpos; - gl_state.object = re_match_object; /* Used by SYNTAX_TABLE_BYTE_TO_CHAR. */ - charpos = SYNTAX_TABLE_BYTE_TO_CHAR (pos); - SETUP_SYNTAX_TABLE_FOR_OBJECT (re_match_object, charpos, 1); + SETUP_SYNTAX_TABLE_FOR_OBJECT (re_match_object, pos, 1); result = re_match_2_internal (bufp, (re_char *) string1, size1, (re_char *) string2, size2, diff --git a/src/syntax.c b/src/syntax.c index 8ef13eec40a..c1caaa8a739 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -264,14 +264,16 @@ SETUP_SYNTAX_TABLE (ptrdiff_t from, ptrdiff_t count) /* Same as above, but in OBJECT. If OBJECT is nil, use current buffer. If it is t (which is only used in fast_c_string_match_ignore_case), - ignore properties altogether. */ + ignore properties altogether. + FROMBYTE is an regexp-byteoffset. */ void SETUP_SYNTAX_TABLE_FOR_OBJECT (Lisp_Object object, - ptrdiff_t from, ptrdiff_t count) + ptrdiff_t frombyte, ptrdiff_t count) { SETUP_BUFFER_SYNTAX_TABLE (); gl_state.object = object; + ptrdiff_t from = SYNTAX_TABLE_BYTE_TO_CHAR (frombyte); if (BUFFERP (gl_state.object)) { struct buffer *buf = XBUFFER (gl_state.object);