]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fsubst_char_in_region): Bind buffer-file-name to nil if NOUNDO is true.
authorRichard M. Stallman <rms@gnu.org>
Thu, 20 Jul 1995 20:47:40 +0000 (20:47 +0000)
committerRichard M. Stallman <rms@gnu.org>
Thu, 20 Jul 1995 20:47:40 +0000 (20:47 +0000)
src/editfns.c

index 4a92eb8b6f20db36f0b5ad06cb8354c364b783e1..ba9e922eb6e652b2a9150fcc4df34edd339dbd2b 100644 (file)
@@ -1378,6 +1378,13 @@ subst_char_in_region_unwind (arg)
   return current_buffer->undo_list = arg;
 }
 
+static Lisp_Object
+subst_char_in_region_unwind_1 (arg)
+     Lisp_Object arg;
+{
+  return current_buffer->filename = arg;
+}
+
 DEFUN ("subst-char-in-region", Fsubst_char_in_region,
   Ssubst_char_in_region, 4, 5, 0,
   "From START to END, replace FROMCHAR with TOCHAR each time it occurs.\n\
@@ -1400,12 +1407,17 @@ and don't mark the buffer as really changed.")
 
   /* If we don't want undo, turn off putting stuff on the list.
      That's faster than getting rid of things,
-     and it prevents even the entry for a first change.  */
+     and it prevents even the entry for a first change.
+     Also inhibit locking the file.  */
   if (!NILP (noundo))
     {
       record_unwind_protect (subst_char_in_region_unwind,
                             current_buffer->undo_list);
       current_buffer->undo_list = Qt;
+      /* Don't do file-locking.  */
+      record_unwind_protect (subst_char_in_region_unwind_1,
+                            current_buffer->filename);
+      current_buffer->filename = Qnil;
     }
 
   while (pos < stop)