s1 = p2 - p1;
s2 = BI_BUF_ZV (buf) - p2;
+ regex_match_object = Qnil;
regex_emacs_buffer = buf;
- regex_emacs_buffer_p = 1;
i = re_match_2 (bufp, (char *) BI_BUF_BYTE_ADDRESS (buf, p1),
s1, (char *) BI_BUF_BYTE_ADDRESS (buf, p2), s2,
BI_BUF_PT (buf) - BI_BUF_BEGV (buf), &search_regs,
QUIT;
{
Bytecount bis = charcount_to_bytecount (XSTRING_DATA (string), s);
+ regex_match_object = string;
regex_emacs_buffer = buf;
- regex_emacs_buffer_p = 0;
val = re_search (bufp, (char *) XSTRING_DATA (string),
XSTRING_LENGTH (string), bis,
XSTRING_LENGTH (string) - bis,
}
/* #### evil current-buffer dependency */
+ regex_match_object = reloc;
regex_emacs_buffer = current_buffer;
- regex_emacs_buffer_p = 0;
val = re_search (bufp, (char *) newnonreloc + offset, length, 0,
length, 0);
unsigned char fastmap[0400];
int negate = 0;
REGISTER int i;
+#ifndef emacs
Lisp_Char_Table *syntax_table = XCHAR_TABLE (buf->mirror_syntax_table);
+#endif
Bufpos limit;
if (NILP (lim))
if (syntaxp)
{
+ SETUP_SYNTAX_CACHE_FOR_BUFFER (buf, BUF_PT (buf), forwardp ? 1 : -1);
/* All syntax designators are normal chars so nothing strange
to worry about */
if (forwardp)
while (BUF_PT (buf) < limit
&& fastmap[(unsigned char)
syntax_code_spec
- [(int) SYNTAX (syntax_table,
- BUF_FETCH_CHAR
- (buf, BUF_PT (buf)))]])
- BUF_SET_PT (buf, BUF_PT (buf) + 1);
+ [(int) SYNTAX_FROM_CACHE (syntax_table,
+ BUF_FETCH_CHAR
+ (buf, BUF_PT (buf)))]])
+ {
+ BUF_SET_PT (buf, BUF_PT (buf) + 1);
+ UPDATE_SYNTAX_CACHE_FORWARD (BUF_PT (buf));
+ }
}
else
{
while (BUF_PT (buf) > limit
&& fastmap[(unsigned char)
syntax_code_spec
- [(int) SYNTAX (syntax_table,
- BUF_FETCH_CHAR
- (buf, BUF_PT (buf) - 1))]])
- BUF_SET_PT (buf, BUF_PT (buf) - 1);
+ [(int) SYNTAX_FROM_CACHE (syntax_table,
+ BUF_FETCH_CHAR
+ (buf, BUF_PT (buf) - 1))]])
+ {
+ BUF_SET_PT (buf, BUF_PT (buf) - 1);
+ UPDATE_SYNTAX_CACHE_BACKWARD (BUF_PT (buf) - 1);
+ }
}
}
else
p2 = BI_BUF_CEILING_OF (buf, p1);
s1 = p2 - p1;
s2 = BI_BUF_ZV (buf) - p2;
+ regex_match_object = Qnil;
while (n < 0)
{
Bytecount val;
QUIT;
regex_emacs_buffer = buf;
- regex_emacs_buffer_p = 1;
val = re_search_2 (bufp,
(char *) BI_BUF_BYTE_ADDRESS (buf, p1), s1,
(char *) BI_BUF_BYTE_ADDRESS (buf, p2), s2,
Bytecount val;
QUIT;
regex_emacs_buffer = buf;
- regex_emacs_buffer_p = 1;
val = re_search_2 (bufp,
(char *) BI_BUF_BYTE_ADDRESS (buf, p1), s1,
(char *) BI_BUF_BYTE_ADDRESS (buf, p2), s2,
in the pattern. Others don't matter anyway! */
xzero (simple_translate);
for (i = 0; i < 0400; i++)
- simple_translate[i] = i;
+ simple_translate[i] = (Bufbyte) i;
i = 0;
while (i != infinity)
{
while ((j = TRANSLATE (inverse_trt, j)) != k)
{
- simple_translate[j] = k;
+ simple_translate[j] = (Bufbyte) k;
BM_tab[j] = dirlen - i;
}
#endif