From: Kenichi Handa Date: Wed, 28 May 2003 11:35:50 +0000 (+0000) Subject: (kill_workbuf_unwind): New function. X-Git-Tag: emacs-pretest-23.0.90~8295^2~1864^2~34 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=59c94f0325d8c41da287e1fb9a88f6720bbef94d;p=emacs.git (kill_workbuf_unwind): New function. (Finsert_file_contents): On replacing, call make_conversion_work_buffer with correct args, and call record_unwind_protect with the first arg kill_workbuf_unwind. --- diff --git a/src/fileio.c b/src/fileio.c index 674b954e401..24a3377f8e8 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -289,6 +289,18 @@ restore_point_unwind (location) Fset_marker (location, Qnil, Qnil); return Qnil; } + +/* Kill the working buffer for code conversion. */ + +static Lisp_Object +kill_workbuf_unwind (workbuf) + Lisp_Object workbuf; +{ + if (! NILP (workbuf) && ! NILP (Fbuffer_live_p (workbuf))) + Fkill_buffer (workbuf); + return Qnil; +} + Lisp_Object Qexpand_file_name; Lisp_Object Qsubstitute_in_file_name; @@ -4032,12 +4044,12 @@ actually used. */) unsigned char *decoded; int temp; int this_count = BINDING_STACK_SIZE (); + int multibyte = ! NILP (current_buffer->enable_multibyte_characters); Lisp_Object conversion_buffer - = make_conversion_work_buffer (! NILP (current_buffer - ->enable_multibyte_characters)); + = make_conversion_work_buffer (-1, multibyte); struct gcpro1; - record_unwind_protect (code_conversion_restore, save_excursion_save ()); + record_unwind_protect (kill_workbuf_unwind, conversion_buffer); /* First read the whole file, performing code conversion into CONVERSION_BUFFER. */