Mercurial > hg > xemacs-beta
diff src/search.c @ 442:abe6d1db359e r21-2-36
Import from CVS: tag r21-2-36
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:35:02 +0200 |
parents | 8de8e3f6228a |
children | 576fb035e263 |
line wrap: on
line diff
--- a/src/search.c Mon Aug 13 11:33:40 2007 +0200 +++ b/src/search.c Mon Aug 13 11:35:02 2007 +0200 @@ -131,7 +131,7 @@ char *translate, struct re_registers *regp, int posix, Error_behavior errb) { - CONST char *val; + const char *val; reg_syntax_t old; cp->regexp = Qnil; @@ -139,7 +139,7 @@ cp->posix = posix; old = re_set_syntax (RE_SYNTAX_EMACS | (posix ? 0 : RE_NO_POSIX_BACKTRACKING)); - val = (CONST char *) + val = (const char *) re_compile_pattern ((char *) XSTRING_DATA (pattern), XSTRING_LENGTH (pattern), &cp->buf); re_set_syntax (old); @@ -301,6 +301,7 @@ s2 = BI_BUF_ZV (buf) - p2; 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, @@ -391,6 +392,7 @@ { Bytecount bis = charcount_to_bytecount (XSTRING_DATA (string), s); 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, @@ -442,7 +444,7 @@ This does not clobber the match data. */ Bytecount -fast_string_match (Lisp_Object regexp, CONST Bufbyte *nonreloc, +fast_string_match (Lisp_Object regexp, const Bufbyte *nonreloc, Lisp_Object reloc, Bytecount offset, Bytecount length, int case_fold_search, Error_behavior errb, int no_quit) @@ -484,6 +486,7 @@ /* #### evil current-buffer dependency */ regex_emacs_buffer = current_buffer; + regex_emacs_buffer_p = 0; val = re_search (bufp, (char *) newnonreloc + offset, length, 0, length, 0); @@ -1164,6 +1167,7 @@ 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, @@ -1202,6 +1206,7 @@ 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, @@ -1242,7 +1247,7 @@ BTW "BM" stands for Boyer-Moore, which is one of the standard string-searching algorithms. It's the best string-searching - algorithm out there provided + algorithm out there, provided that: a) You're not fazed by algorithm complexity. (Rabin-Karp, which uses hashing, is much much easier to code but not as fast.) @@ -1574,8 +1579,8 @@ /* Given a string of words separated by word delimiters, - compute a regexp that matches those exact words - separated by arbitrary punctuation. */ + compute a regexp that matches those exact words + separated by arbitrary punctuation. */ static Lisp_Object wordify (Lisp_Object buffer, Lisp_Object string) @@ -2543,8 +2548,8 @@ syms_of_search (void) { - deferror (&Qsearch_failed, "search-failed", "Search failed", Qerror); - deferror (&Qinvalid_regexp, "invalid-regexp", "Invalid regexp", Qerror); + DEFERROR_STANDARD (Qsearch_failed, Qinvalid_operation); + DEFERROR_STANDARD (Qinvalid_regexp, Qsyntax_error); DEFSUBR (Flooking_at); DEFSUBR (Fposix_looking_at);