aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 5fabbc253c8..8bdc30300ba 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -37,6 +37,7 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
37#include "window.h" 37#include "window.h"
38#include "commands.h" 38#include "commands.h"
39#include "character.h" 39#include "character.h"
40#include "coding.h"
40#include "buffer.h" 41#include "buffer.h"
41#include "region-cache.h" 42#include "region-cache.h"
42#include "indent.h" 43#include "indent.h"
@@ -583,6 +584,11 @@ even if it is dead. The return value is never nil. */)
583 set_string_intervals (name, NULL); 584 set_string_intervals (name, NULL);
584 bset_name (b, name); 585 bset_name (b, name);
585 586
587 if (STRINGP (Vcode_conversion_workbuf_name)
588 && strncmp (SSDATA (name), SSDATA (Vcode_conversion_workbuf_name),
589 SBYTES (Vcode_conversion_workbuf_name)) == 0)
590 b->inhibit_buffer_hooks = true;
591
586 bset_undo_list (b, SREF (name, 0) != ' ' ? Qnil : Qt); 592 bset_undo_list (b, SREF (name, 0) != ' ' ? Qnil : Qt);
587 593
588 reset_buffer (b); 594 reset_buffer (b);
@@ -595,7 +601,7 @@ even if it is dead. The return value is never nil. */)
595 XSETBUFFER (buffer, b); 601 XSETBUFFER (buffer, b);
596 Vbuffer_alist = nconc2 (Vbuffer_alist, list1 (Fcons (name, buffer))); 602 Vbuffer_alist = nconc2 (Vbuffer_alist, list1 (Fcons (name, buffer)));
597 /* And run buffer-list-update-hook. */ 603 /* And run buffer-list-update-hook. */
598 if (!NILP (Vrun_hooks)) 604 if (!NILP (Vrun_hooks) && !b->inhibit_buffer_hooks)
599 call1 (Vrun_hooks, Qbuffer_list_update_hook); 605 call1 (Vrun_hooks, Qbuffer_list_update_hook);
600 606
601 return buffer; 607 return buffer;
@@ -1493,7 +1499,7 @@ This does not change the name of the visited file (if any). */)
1493 call0 (intern ("rename-auto-save-file")); 1499 call0 (intern ("rename-auto-save-file"));
1494 1500
1495 /* Run buffer-list-update-hook. */ 1501 /* Run buffer-list-update-hook. */
1496 if (!NILP (Vrun_hooks)) 1502 if (!NILP (Vrun_hooks) && !current_buffer->inhibit_buffer_hooks)
1497 call1 (Vrun_hooks, Qbuffer_list_update_hook); 1503 call1 (Vrun_hooks, Qbuffer_list_update_hook);
1498 1504
1499 /* Refetch since that last call may have done GC. */ 1505 /* Refetch since that last call may have done GC. */
@@ -1706,8 +1712,9 @@ cleaning up all windows currently displaying the buffer to be killed. */)
1706 1712
1707 /* First run the query functions; if any query is answered no, 1713 /* First run the query functions; if any query is answered no,
1708 don't kill the buffer. */ 1714 don't kill the buffer. */
1709 tem = CALLN (Frun_hook_with_args_until_failure, 1715 if (!b->inhibit_buffer_hooks)
1710 Qkill_buffer_query_functions); 1716 tem = CALLN (Frun_hook_with_args_until_failure,
1717 Qkill_buffer_query_functions);
1711 if (NILP (tem)) 1718 if (NILP (tem))
1712 return unbind_to (count, Qnil); 1719 return unbind_to (count, Qnil);
1713 1720
@@ -1726,7 +1733,8 @@ cleaning up all windows currently displaying the buffer to be killed. */)
1726 return unbind_to (count, Qt); 1733 return unbind_to (count, Qt);
1727 1734
1728 /* Then run the hooks. */ 1735 /* Then run the hooks. */
1729 run_hook (Qkill_buffer_hook); 1736 if (!b->inhibit_buffer_hooks)
1737 run_hook (Qkill_buffer_hook);
1730 unbind_to (count, Qnil); 1738 unbind_to (count, Qnil);
1731 } 1739 }
1732 1740
@@ -1928,7 +1936,7 @@ cleaning up all windows currently displaying the buffer to be killed. */)
1928 bset_undo_list (b, Qnil); 1936 bset_undo_list (b, Qnil);
1929 1937
1930 /* Run buffer-list-update-hook. */ 1938 /* Run buffer-list-update-hook. */
1931 if (!NILP (Vrun_hooks)) 1939 if (!NILP (Vrun_hooks) && !b->inhibit_buffer_hooks)
1932 call1 (Vrun_hooks, Qbuffer_list_update_hook); 1940 call1 (Vrun_hooks, Qbuffer_list_update_hook);
1933 1941
1934 return Qt; 1942 return Qt;
@@ -1970,7 +1978,7 @@ record_buffer (Lisp_Object buffer)
1970 fset_buried_buffer_list (f, Fdelq (buffer, f->buried_buffer_list)); 1978 fset_buried_buffer_list (f, Fdelq (buffer, f->buried_buffer_list));
1971 1979
1972 /* Run buffer-list-update-hook. */ 1980 /* Run buffer-list-update-hook. */
1973 if (!NILP (Vrun_hooks)) 1981 if (!NILP (Vrun_hooks) && !XBUFFER (buffer)->inhibit_buffer_hooks)
1974 call1 (Vrun_hooks, Qbuffer_list_update_hook); 1982 call1 (Vrun_hooks, Qbuffer_list_update_hook);
1975} 1983}
1976 1984
@@ -2009,7 +2017,7 @@ DEFUN ("bury-buffer-internal", Fbury_buffer_internal, Sbury_buffer_internal,
2009 (f, Fcons (buffer, Fdelq (buffer, f->buried_buffer_list))); 2017 (f, Fcons (buffer, Fdelq (buffer, f->buried_buffer_list)));
2010 2018
2011 /* Run buffer-list-update-hook. */ 2019 /* Run buffer-list-update-hook. */
2012 if (!NILP (Vrun_hooks)) 2020 if (!NILP (Vrun_hooks) && !XBUFFER (buffer)->inhibit_buffer_hooks)
2013 call1 (Vrun_hooks, Qbuffer_list_update_hook); 2021 call1 (Vrun_hooks, Qbuffer_list_update_hook);
2014 2022
2015 return Qnil; 2023 return Qnil;