# HG changeset patch # User Richard M. Stallman # Date 806273260 0 # Node ID 205232bb7efe10c92b311f276ee3c2482e0372ab # Parent e71c530e5ae5d3c0edfcd49aee2fc3b1673c56ca (Fsubst_char_in_region): Bind buffer-file-name to nil if NOUNDO is true. diff -r e71c530e5ae5 -r 205232bb7efe src/editfns.c --- a/src/editfns.c Thu Jul 20 20:47:20 1995 +0000 +++ b/src/editfns.c Thu Jul 20 20:47:40 1995 +0000 @@ -1378,6 +1378,13 @@ 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 @@ /* 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)