diff options
| author | Stefan Monnier | 2023-04-12 15:50:49 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2023-04-12 15:50:49 -0400 |
| commit | c2c3114961802b4c52b4cde0271e460fb08698cf (patch) | |
| tree | 874a4fa813938f3cf185682cf8aec759c8ab5843 /src | |
| parent | d53ff9fe28b63dcd9bab2479cb7a517ba7233016 (diff) | |
| download | emacs-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.c | 12 | ||||
| -rw-r--r-- | src/syntax.c | 6 |
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 | ||
| 269 | void | 270 | void |
| 270 | SETUP_SYNTAX_TABLE_FOR_OBJECT (Lisp_Object object, | 271 | SETUP_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); |