From: Miles Bader Date: Wed, 20 Sep 2006 06:04:23 +0000 (+0000) Subject: Merge from emacs--devo--0 X-Git-Tag: emacs-pretest-23.0.90~8295^2~748 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=465384748f74266cec1e2b9c9308eb82efb462b1;p=emacs.git Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 437-446) - Update from CVS - lisp/url/url-methods.el: Fix format error when http_proxy is empty string - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 137-140) - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-111 --- 465384748f74266cec1e2b9c9308eb82efb462b1 diff --cc src/Makefile.in index 3bb6cece33d,af4cb816e18..b7569b9de2a --- a/src/Makefile.in +++ b/src/Makefile.in @@@ -1171,7 -1146,8 +1171,8 @@@ keyboard.o: keyboard.c termchar.h termh systty.h systime.h dispextern.h syntax.h $(INTERVAL_SRC) blockinput.h \ atimer.h xterm.h puresize.h msdos.h keymap.h w32term.h macterm.h $(config_h) keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \ - atimer.h systime.h puresize.h character.h intervals.h $(config_h) - atimer.h systime.h puresize.h charset.h intervals.h keymap.h window.h \ ++ atimer.h systime.h puresize.h character.h intervals.h keymap.h window.h \ + $(config_h) lastfile.o: lastfile.c $(config_h) macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h \ dispextern.h $(config_h) diff --cc src/search.c index ce9fa958910,a74a320c356..72ce7e79559 --- a/src/search.c +++ b/src/search.c @@@ -131,9 -137,40 +134,10 @@@ compile_pattern_1 (cp, pattern, transla cp->regexp = Qnil; cp->buf.translate = (! NILP (translate) ? translate : make_number (0)); cp->posix = posix; - cp->buf.multibyte = multibyte; + cp->buf.multibyte = STRING_MULTIBYTE (pattern); + cp->buf.target_multibyte = multibyte; cp->whitespace_regexp = Vsearch_spaces_regexp; + cp->syntax_table = current_buffer->syntax_table; /* Doing BLOCK_INPUT here has the effect that the debugger won't run if an error occurs. Why is BLOCK_INPUT needed here? */ @@@ -208,7 -259,11 +225,11 @@@ compile_pattern (pattern, regp, transla && !NILP (Fstring_equal (cp->regexp, pattern)) && EQ (cp->buf.translate, (! NILP (translate) ? translate : make_number (0))) && cp->posix == posix - && cp->buf.multibyte == multibyte + && cp->buf.target_multibyte == multibyte + /* TODO: Strictly speaking, we only need to match syntax + tables when a character class like [[:space:]] occurs in + the pattern. -- cyd*/ + && EQ (cp->syntax_table, current_buffer->syntax_table) && !NILP (Fequal (cp->whitespace_regexp, Vsearch_spaces_regexp))) break; diff --cc src/syntax.c index b0b4bdc0032,052191d5fef..a58fc70a113 --- a/src/syntax.c +++ b/src/syntax.c @@@ -1024,11 -1038,12 +1024,16 @@@ usage: (modify-syntax-entry CHAR NEWENT else check_syntax_table (syntax_table); - SET_RAW_SYNTAX_ENTRY (syntax_table, XINT (c), Fstring_to_syntax (newentry)); + newentry = Fstring_to_syntax (newentry); + if (CONSP (c)) + SET_RAW_SYNTAX_ENTRY_RANGE (syntax_table, c, newentry); + else + SET_RAW_SYNTAX_ENTRY (syntax_table, XINT (c), newentry); + + /* We clear the regexp cache, since character classes can now have + different values from those in the compiled regexps.*/ + clear_regexp_cache (); + return Qnil; }