From 0068070eb050be4d7f46313e67e5902a931ce051 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 1 Dec 2011 15:19:38 -0500 Subject: [PATCH] * src/fileio.c (Finsert_file_contents): Move after-change-function call to before the "handled:" label, since all "goto handled" appear in cases where the *-change-functions have already been properly called. Fixes: debbugs:10117 --- src/ChangeLog | 7 +++++++ src/fileio.c | 20 ++++++++++---------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index f230cdba26f..75f62ad6fbd 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2011-12-01 Stefan Monnier + + * fileio.c (Finsert_file_contents): Move after-change-function call + to before the "handled:" label, since all "goto handled" appear in + cases where the *-change-functions have already been properly called + (bug#10117). + 2011-12-01 Andreas Schwab * keyboard.c (interrupt_signal): Don't call kill-emacs when diff --git a/src/fileio.c b/src/fileio.c index 5f7a8ad3972..c0f6c1d2e8e 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -4100,6 +4100,16 @@ variable `last-coding-system-used' to the coding system actually used. */) adjust_after_insert (PT, PT_BYTE, PT + inserted, PT_BYTE + inserted, inserted); + /* Call after-change hooks for the inserted text, aside from the case + of normal visiting (not with REPLACE), which is done in a new buffer + "before" the buffer is changed. */ + if (inserted > 0 && total > 0 + && (NILP (visit) || !NILP (replace))) + { + signal_after_change (PT, 0, inserted); + update_compositions (PT, PT, CHECK_BORDER); + } + /* Now INSERTED is measured in characters. */ handled: @@ -4270,16 +4280,6 @@ variable `last-coding-system-used' to the coding system actually used. */) unbind_to (count1, Qnil); } - /* Call after-change hooks for the inserted text, aside from the case - of normal visiting (not with REPLACE), which is done in a new buffer - "before" the buffer is changed. */ - if (inserted > 0 && total > 0 - && (NILP (visit) || !NILP (replace))) - { - signal_after_change (PT, 0, inserted); - update_compositions (PT, PT, CHECK_BORDER); - } - if (!NILP (visit) && current_buffer->modtime == -1) { -- 2.11.4.GIT