diff src/search.c @ 367:a4f53d9b3154 r21-1-13

Import from CVS: tag r21-1-13
author cvs
date Mon, 13 Aug 2007 11:01:07 +0200
parents 57709be46d1b
children cc15677e0335
line wrap: on
line diff
--- a/src/search.c	Mon Aug 13 11:00:13 2007 +0200
+++ b/src/search.c	Mon Aug 13 11:01:07 2007 +0200
@@ -302,6 +302,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,
@@ -392,6 +393,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,
@@ -485,6 +487,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);
 
@@ -1121,6 +1124,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,
@@ -1159,6 +1163,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,
@@ -2036,6 +2041,10 @@
 	    newtext = accum;
 	}
 
+      /* newtext can be nil. */
+      if (NILP (newtext))
+	newtext = build_string ("");
+
       if (case_action == all_caps)
 	newtext = Fupcase (newtext, buffer);
       else if (case_action == cap_initial)