summaryrefslogtreecommitdiff
path: root/src/search.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2006-09-08 12:07:07 +0000
committerRichard M. Stallman <rms@gnu.org>2006-09-08 12:07:07 +0000
commit910c747a2f19004db7dc5753a3f5e52acf62e0be (patch)
treeecaea03f35937d77af7d39cc2fa3deba5f66ab43 /src/search.c
parent18280275ee425395e058190e1baa8c64811f673b (diff)
downloademacs-910c747a2f19004db7dc5753a3f5e52acf62e0be.tar.gz
(looking_at_1, string_match_1, search_command):
Make syntax table's canon table point to eqv table.
Diffstat (limited to 'src/search.c')
-rw-r--r--src/search.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/search.c b/src/search.c
index 5d532a9d8dd..2063e7d95ba 100644
--- a/src/search.c
+++ b/src/search.c
@@ -167,6 +167,9 @@ compile_pattern_1 (cp, pattern, translate, regp, posix, multibyte)
cp->posix = posix;
cp->buf.multibyte = multibyte;
cp->whitespace_regexp = Vsearch_spaces_regexp;
+ /* Doing BLOCK_INPUT here has the effect that
+ the debugger won't run if an error occurs.
+ Why is BLOCK_INPUT needed here? */
BLOCK_INPUT;
old = re_set_syntax (RE_SYNTAX_EMACS
| (posix ? 0 : RE_NO_POSIX_BACKTRACKING));
@@ -284,6 +287,10 @@ looking_at_1 (string, posix)
if (running_asynch_code)
save_search_regs ();
+ /* This is so set_image_of_range_1 in regex.c can find the EQV table. */
+ XCHAR_TABLE (current_buffer->case_canon_table)->extras[2]
+ = current_buffer->case_eqv_table;
+
CHECK_STRING (string);
bufp = compile_pattern (string, &search_regs,
(!NILP (current_buffer->case_fold_search)
@@ -391,6 +398,10 @@ string_match_1 (regexp, string, start, posix)
pos_byte = string_char_to_byte (string, pos);
}
+ /* This is so set_image_of_range_1 in regex.c can find the EQV table. */
+ XCHAR_TABLE (current_buffer->case_canon_table)->extras[2]
+ = current_buffer->case_eqv_table;
+
bufp = compile_pattern (regexp, &search_regs,
(!NILP (current_buffer->case_fold_search)
? current_buffer->case_canon_table : Qnil),
@@ -930,6 +941,10 @@ search_command (string, bound, noerror, count, direction, RE, posix)
lim_byte = CHAR_TO_BYTE (lim);
}
+ /* This is so set_image_of_range_1 in regex.c can find the EQV table. */
+ XCHAR_TABLE (current_buffer->case_canon_table)->extras[2]
+ = current_buffer->case_eqv_table;
+
np = search_buffer (string, PT, PT_BYTE, lim, lim_byte, n, RE,
(!NILP (current_buffer->case_fold_search)
? current_buffer->case_canon_table