diff options
-rw-r--r-- | src/insdel.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/insdel.c b/src/insdel.c index 3806d3809e6..4ed8ac46674 100644 --- a/src/insdel.c +++ b/src/insdel.c @@ -2570,12 +2570,14 @@ DEFUN ("combine-after-change-execute", Fcombine_after_change_execute, "This function is for use internally in `combine-after-change-calls'.") () { - register Lisp_Object val; int count = specpdl_ptr - specpdl; int beg, end, change; int begpos, endpos; Lisp_Object tail; + if (NILP (combine_after_change_list)) + return Qnil; + record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); Fset_buffer (combine_after_change_buffer); @@ -2633,7 +2635,7 @@ DEFUN ("combine-after-change-execute", Fcombine_after_change_execute, Vcombine_after_change_calls); signal_after_change (begpos, endpos - begpos - change, endpos - begpos); - return unbind_to (count, val); + return unbind_to (count, Qnil); } void @@ -2641,6 +2643,7 @@ syms_of_insdel () { staticpro (&combine_after_change_list); combine_after_change_list = Qnil; + combine_after_change_buffer = Qnil; DEFVAR_BOOL ("check-markers-debug-flag", &check_markers_debug_flag, "Non-nil means enable debugging checks for invalid marker positions."); |