mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-11 09:20:51 +00:00
(Vsearch_whitespace_regexp): New variable.
(syms_of_search): Defvar it. (compile_pattern_1): Call re_set_whitespace_regexp with it. (search_buffer): No regexp is trivial if Vsearch_whitespace_regexp is non-nil.
This commit is contained in:
parent
f9b0fd9964
commit
f31a9a68db
@ -1,3 +1,16 @@
|
|||||||
|
2004-11-19 Richard M. Stallman <rms@gnu.org>
|
||||||
|
|
||||||
|
* search.c (Vsearch_whitespace_regexp): New variable.
|
||||||
|
(syms_of_search): Defvar it.
|
||||||
|
(compile_pattern_1): Call re_set_whitespace_regexp with it.
|
||||||
|
(search_buffer): No regexp is trivial if Vsearch_whitespace_regexp
|
||||||
|
is non-nil.
|
||||||
|
|
||||||
|
* regex.c (regex_compile): Substitute whitespace_regexp
|
||||||
|
for spaces, if it is nonzero.
|
||||||
|
(whitespace_regexp): New variable.
|
||||||
|
(re_set_whitespace_regexp): New function.
|
||||||
|
|
||||||
2004-11-19 Kim F. Storm <storm@cua.dk>
|
2004-11-19 Kim F. Storm <storm@cua.dk>
|
||||||
|
|
||||||
* indent.c (Fvertical_motion): Fix last change.
|
* indent.c (Fvertical_motion): Fix last change.
|
||||||
|
19
src/search.c
19
src/search.c
@ -83,6 +83,8 @@ static Lisp_Object last_thing_searched;
|
|||||||
|
|
||||||
Lisp_Object Qinvalid_regexp;
|
Lisp_Object Qinvalid_regexp;
|
||||||
|
|
||||||
|
Lisp_Object Vsearch_whitespace_regexp;
|
||||||
|
|
||||||
static void set_search_regs ();
|
static void set_search_regs ();
|
||||||
static void save_search_regs ();
|
static void save_search_regs ();
|
||||||
static int simple_search ();
|
static int simple_search ();
|
||||||
@ -161,8 +163,15 @@ compile_pattern_1 (cp, pattern, translate, regp, posix, multibyte)
|
|||||||
BLOCK_INPUT;
|
BLOCK_INPUT;
|
||||||
old = re_set_syntax (RE_SYNTAX_EMACS
|
old = re_set_syntax (RE_SYNTAX_EMACS
|
||||||
| (posix ? 0 : RE_NO_POSIX_BACKTRACKING));
|
| (posix ? 0 : RE_NO_POSIX_BACKTRACKING));
|
||||||
|
|
||||||
|
re_set_whitespace_regexp (NILP (Vsearch_whitespace_regexp) ? NULL
|
||||||
|
: SDATA (Vsearch_whitespace_regexp));
|
||||||
|
|
||||||
val = (char *) re_compile_pattern ((char *)raw_pattern,
|
val = (char *) re_compile_pattern ((char *)raw_pattern,
|
||||||
raw_pattern_size, &cp->buf);
|
raw_pattern_size, &cp->buf);
|
||||||
|
|
||||||
|
re_set_whitespace_regexp (NULL);
|
||||||
|
|
||||||
re_set_syntax (old);
|
re_set_syntax (old);
|
||||||
UNBLOCK_INPUT;
|
UNBLOCK_INPUT;
|
||||||
if (val)
|
if (val)
|
||||||
@ -1051,7 +1060,7 @@ search_buffer (string, pos, pos_byte, lim, lim_byte, n,
|
|||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (RE && !trivial_regexp_p (string))
|
if (RE && !(trivial_regexp_p (string) && NILP (Vsearch_whitespace_regexp)))
|
||||||
{
|
{
|
||||||
unsigned char *p1, *p2;
|
unsigned char *p1, *p2;
|
||||||
int s1, s2;
|
int s1, s2;
|
||||||
@ -2998,6 +3007,14 @@ syms_of_search ()
|
|||||||
saved_last_thing_searched = Qnil;
|
saved_last_thing_searched = Qnil;
|
||||||
staticpro (&saved_last_thing_searched);
|
staticpro (&saved_last_thing_searched);
|
||||||
|
|
||||||
|
DEFVAR_LISP ("search-whitespace-regexp", &Vsearch_whitespace_regexp,
|
||||||
|
/* doc: Regexp to substitute for bunches of spaces in regexp search.
|
||||||
|
Some commands use this for user-specified regexps.
|
||||||
|
Spaces that occur inside character classes or repetition operators
|
||||||
|
or other such regexp constructs are not replaced with this.
|
||||||
|
A value of nil (which is the normal value) means treat spaces literally. */);
|
||||||
|
Vsearch_whitespace_regexp = Qnil;
|
||||||
|
|
||||||
defsubr (&Slooking_at);
|
defsubr (&Slooking_at);
|
||||||
defsubr (&Sposix_looking_at);
|
defsubr (&Sposix_looking_at);
|
||||||
defsubr (&Sstring_match);
|
defsubr (&Sstring_match);
|
||||||
|
Loading…
Reference in New Issue
Block a user