diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/insdel.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/insdel.c b/src/insdel.c index 08043147cdf..7f15f7de52d 100644 --- a/src/insdel.c +++ b/src/insdel.c | |||
| @@ -2351,6 +2351,17 @@ DEFUN ("combine-after-change-execute", Fcombine_after_change_execute, | |||
| 2351 | if (NILP (combine_after_change_list)) | 2351 | if (NILP (combine_after_change_list)) |
| 2352 | return Qnil; | 2352 | return Qnil; |
| 2353 | 2353 | ||
| 2354 | /* It is rare for combine_after_change_buffer to be invalid, but | ||
| 2355 | possible. It can happen when combine-after-change-calls is | ||
| 2356 | non-nil, and insertion calls a file handler (e.g. through | ||
| 2357 | lock_file) which scribbles into a temp file -- cyd */ | ||
| 2358 | if (!BUFFERP (combine_after_change_buffer) | ||
| 2359 | || NILP (XBUFFER (combine_after_change_buffer)->name)) | ||
| 2360 | { | ||
| 2361 | combine_after_change_list = Qnil; | ||
| 2362 | return Qnil; | ||
| 2363 | } | ||
| 2364 | |||
| 2354 | record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); | 2365 | record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); |
| 2355 | 2366 | ||
| 2356 | Fset_buffer (combine_after_change_buffer); | 2367 | Fset_buffer (combine_after_change_buffer); |