diff options
Diffstat (limited to 'src/coding.c')
| -rw-r--r-- | src/coding.c | 26 |
1 files changed, 4 insertions, 22 deletions
diff --git a/src/coding.c b/src/coding.c index c6d96436770..e351cc72fab 100644 --- a/src/coding.c +++ b/src/coding.c | |||
| @@ -7785,7 +7785,7 @@ encode_coding (struct coding_system *coding) | |||
| 7785 | 7785 | ||
| 7786 | 7786 | ||
| 7787 | /* Name (or base name) of work buffer for code conversion. */ | 7787 | /* Name (or base name) of work buffer for code conversion. */ |
| 7788 | static Lisp_Object Vcode_conversion_workbuf_name; | 7788 | Lisp_Object Vcode_conversion_workbuf_name; |
| 7789 | 7789 | ||
| 7790 | /* A working buffer used by the top level conversion. Once it is | 7790 | /* A working buffer used by the top level conversion. Once it is |
| 7791 | created, it is never destroyed. It has the name | 7791 | created, it is never destroyed. It has the name |
| @@ -7797,7 +7797,6 @@ static Lisp_Object Vcode_conversion_reused_workbuf; | |||
| 7797 | /* True iff Vcode_conversion_reused_workbuf is already in use. */ | 7797 | /* True iff Vcode_conversion_reused_workbuf is already in use. */ |
| 7798 | static bool reused_workbuf_in_use; | 7798 | static bool reused_workbuf_in_use; |
| 7799 | 7799 | ||
| 7800 | |||
| 7801 | static void | 7800 | static void |
| 7802 | code_conversion_restore (Lisp_Object arg) | 7801 | code_conversion_restore (Lisp_Object arg) |
| 7803 | { | 7802 | { |
| @@ -7810,12 +7809,7 @@ code_conversion_restore (Lisp_Object arg) | |||
| 7810 | if (EQ (workbuf, Vcode_conversion_reused_workbuf)) | 7809 | if (EQ (workbuf, Vcode_conversion_reused_workbuf)) |
| 7811 | reused_workbuf_in_use = 0; | 7810 | reused_workbuf_in_use = 0; |
| 7812 | else | 7811 | else |
| 7813 | { | 7812 | Fkill_buffer (workbuf); |
| 7814 | ptrdiff_t count = SPECPDL_INDEX (); | ||
| 7815 | specbind (Qbuffer_list_update_hook, Qnil); | ||
| 7816 | Fkill_buffer (workbuf); | ||
| 7817 | unbind_to (count, Qnil); | ||
| 7818 | } | ||
| 7819 | } | 7813 | } |
| 7820 | set_buffer_internal (XBUFFER (current)); | 7814 | set_buffer_internal (XBUFFER (current)); |
| 7821 | } | 7815 | } |
| @@ -7827,24 +7821,17 @@ code_conversion_save (bool with_work_buf, bool multibyte) | |||
| 7827 | 7821 | ||
| 7828 | if (with_work_buf) | 7822 | if (with_work_buf) |
| 7829 | { | 7823 | { |
| 7830 | ptrdiff_t count = SPECPDL_INDEX (); | ||
| 7831 | if (reused_workbuf_in_use) | 7824 | if (reused_workbuf_in_use) |
| 7832 | { | 7825 | { |
| 7833 | Lisp_Object name | 7826 | Lisp_Object name |
| 7834 | = Fgenerate_new_buffer_name (Vcode_conversion_workbuf_name, Qnil); | 7827 | = Fgenerate_new_buffer_name (Vcode_conversion_workbuf_name, Qnil); |
| 7835 | specbind (Qbuffer_list_update_hook, Qnil); | ||
| 7836 | workbuf = Fget_buffer_create (name); | 7828 | workbuf = Fget_buffer_create (name); |
| 7837 | unbind_to (count, Qnil); | ||
| 7838 | } | 7829 | } |
| 7839 | else | 7830 | else |
| 7840 | { | 7831 | { |
| 7841 | if (NILP (Fbuffer_live_p (Vcode_conversion_reused_workbuf))) | 7832 | if (NILP (Fbuffer_live_p (Vcode_conversion_reused_workbuf))) |
| 7842 | { | 7833 | Vcode_conversion_reused_workbuf |
| 7843 | specbind (Qbuffer_list_update_hook, Qnil); | 7834 | = Fget_buffer_create (Vcode_conversion_workbuf_name); |
| 7844 | Vcode_conversion_reused_workbuf | ||
| 7845 | = Fget_buffer_create (Vcode_conversion_workbuf_name); | ||
| 7846 | unbind_to (count, Qnil); | ||
| 7847 | } | ||
| 7848 | workbuf = Vcode_conversion_reused_workbuf; | 7835 | workbuf = Vcode_conversion_reused_workbuf; |
| 7849 | } | 7836 | } |
| 7850 | } | 7837 | } |
| @@ -7863,11 +7850,6 @@ code_conversion_save (bool with_work_buf, bool multibyte) | |||
| 7863 | bset_enable_multibyte_characters (current_buffer, multibyte ? Qt : Qnil); | 7850 | bset_enable_multibyte_characters (current_buffer, multibyte ? Qt : Qnil); |
| 7864 | if (EQ (workbuf, Vcode_conversion_reused_workbuf)) | 7851 | if (EQ (workbuf, Vcode_conversion_reused_workbuf)) |
| 7865 | reused_workbuf_in_use = 1; | 7852 | reused_workbuf_in_use = 1; |
| 7866 | else | ||
| 7867 | { | ||
| 7868 | Fset (Fmake_local_variable (Qkill_buffer_query_functions), Qnil); | ||
| 7869 | Fset (Fmake_local_variable (Qkill_buffer_hook), Qnil); | ||
| 7870 | } | ||
| 7871 | set_buffer_internal (current); | 7853 | set_buffer_internal (current); |
| 7872 | } | 7854 | } |
| 7873 | 7855 | ||