(compile_pattern_1): Treat non-nil and non-string of

search-spaces-regexp as nil.
This commit is contained in:
Chong Yidong 2008-04-05 21:40:16 +00:00
parent 9605d5675e
commit d8c852509f

View file

@ -141,7 +141,11 @@ compile_pattern_1 (cp, pattern, translate, regp, posix)
cp->posix = posix;
cp->buf.multibyte = STRING_MULTIBYTE (pattern);
cp->buf.charset_unibyte = charset_unibyte;
cp->whitespace_regexp = Vsearch_spaces_regexp;
if (STRINGP (Vsearch_spaces_regexp))
cp->whitespace_regexp = Vsearch_spaces_regexp;
else
cp->whitespace_regexp = Qnil;
/* rms: I think BLOCK_INPUT is not needed here any more,
because regex.c defines malloc to call xmalloc.
Using BLOCK_INPUT here means the debugger won't run if an error occurs.
@ -149,8 +153,11 @@ compile_pattern_1 (cp, pattern, translate, regp, posix)
/* BLOCK_INPUT; */
old = re_set_syntax (RE_SYNTAX_EMACS
| (posix ? 0 : RE_NO_POSIX_BACKTRACKING));
re_set_whitespace_regexp (NILP (Vsearch_spaces_regexp) ? NULL
: SDATA (Vsearch_spaces_regexp));
if (STRINGP (Vsearch_spaces_regexp))
re_set_whitespace_regexp (SDATA (Vsearch_spaces_regexp));
else
re_set_whitespace_regexp (NULL);
val = (char *) re_compile_pattern ((char *) SDATA (pattern),
SBYTES (pattern), &cp->buf);