aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2023-04-12 15:50:49 -0400
committerStefan Monnier2023-04-12 15:50:49 -0400
commitc2c3114961802b4c52b4cde0271e460fb08698cf (patch)
tree874a4fa813938f3cf185682cf8aec759c8ab5843 /src
parentd53ff9fe28b63dcd9bab2479cb7a517ba7233016 (diff)
downloademacs-c2c3114961802b4c52b4cde0271e460fb08698cf.tar.gz
emacs-c2c3114961802b4c52b4cde0271e460fb08698cf.zip
(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.
Diffstat (limited to 'src')
-rw-r--r--src/regex-emacs.c12
-rw-r--r--src/syntax.c6
2 files changed, 6 insertions, 12 deletions
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,
3251 /* See whether the pattern is anchored. */ 3251 /* See whether the pattern is anchored. */
3252 anchored_start = (bufp->buffer[0] == begline); 3252 anchored_start = (bufp->buffer[0] == begline);
3253 3253
3254 gl_state.object = re_match_object; /* Used by SYNTAX_TABLE_BYTE_TO_CHAR. */ 3254 SETUP_SYNTAX_TABLE_FOR_OBJECT (re_match_object, startpos, 1);
3255 {
3256 ptrdiff_t charpos = SYNTAX_TABLE_BYTE_TO_CHAR (startpos);
3257
3258 SETUP_SYNTAX_TABLE_FOR_OBJECT (re_match_object, charpos, 1);
3259 }
3260 3255
3261 /* Loop through the string, looking for a place to start matching. */ 3256 /* Loop through the string, looking for a place to start matching. */
3262 for (;;) 3257 for (;;)
@@ -3864,10 +3859,7 @@ re_match_2 (struct re_pattern_buffer *bufp,
3864{ 3859{
3865 ptrdiff_t result; 3860 ptrdiff_t result;
3866 3861
3867 ptrdiff_t charpos; 3862 SETUP_SYNTAX_TABLE_FOR_OBJECT (re_match_object, pos, 1);
3868 gl_state.object = re_match_object; /* Used by SYNTAX_TABLE_BYTE_TO_CHAR. */
3869 charpos = SYNTAX_TABLE_BYTE_TO_CHAR (pos);
3870 SETUP_SYNTAX_TABLE_FOR_OBJECT (re_match_object, charpos, 1);
3871 3863
3872 result = re_match_2_internal (bufp, (re_char *) string1, size1, 3864 result = re_match_2_internal (bufp, (re_char *) string1, size1,
3873 (re_char *) string2, size2, 3865 (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)
264 264
265/* Same as above, but in OBJECT. If OBJECT is nil, use current buffer. 265/* Same as above, but in OBJECT. If OBJECT is nil, use current buffer.
266 If it is t (which is only used in fast_c_string_match_ignore_case), 266 If it is t (which is only used in fast_c_string_match_ignore_case),
267 ignore properties altogether. */ 267 ignore properties altogether.
268 FROMBYTE is an regexp-byteoffset. */
268 269
269void 270void
270SETUP_SYNTAX_TABLE_FOR_OBJECT (Lisp_Object object, 271SETUP_SYNTAX_TABLE_FOR_OBJECT (Lisp_Object object,
271 ptrdiff_t from, ptrdiff_t count) 272 ptrdiff_t frombyte, ptrdiff_t count)
272{ 273{
273 SETUP_BUFFER_SYNTAX_TABLE (); 274 SETUP_BUFFER_SYNTAX_TABLE ();
274 gl_state.object = object; 275 gl_state.object = object;
276 ptrdiff_t from = SYNTAX_TABLE_BYTE_TO_CHAR (frombyte);
275 if (BUFFERP (gl_state.object)) 277 if (BUFFERP (gl_state.object))
276 { 278 {
277 struct buffer *buf = XBUFFER (gl_state.object); 279 struct buffer *buf = XBUFFER (gl_state.object);