1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-02 08:22:22 +00:00

(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.
This commit is contained in:
Stefan Monnier 2023-04-12 15:50:49 -04:00
parent d53ff9fe28
commit c2c3114961
2 changed files with 6 additions and 12 deletions

View File

@ -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,

View File

@ -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);