From c4e6b585bbdf26cfbb5b79da216e347e195dc38d Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 2 Jun 2014 14:42:07 -0400 Subject: [PATCH] * src/callproc.c (call_process): Don't check read-only if we don't insert anything. Fixes: debbugs:17666 --- src/ChangeLog | 5 +++++ src/callproc.c | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 2e3b465e96..5759d15558 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2014-06-02 Stefan Monnier + + * callproc.c (call_process): Don't check read-only if we don't insert + anything (bug#17666). + 2014-06-02 Eli Zaretskii * dispnew.c (update_frame_with_menu): Set display_completed. diff --git a/src/callproc.c b/src/callproc.c index 9e60ba11bc..7ba3e398b4 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -826,8 +826,10 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd, /* Now NREAD is the total amount of data in the buffer. */ immediate_quit = 0; - if (NILP (BVAR (current_buffer, enable_multibyte_characters)) - && ! CODING_MAY_REQUIRE_DECODING (&process_coding)) + if (!nread) + ; + else if (NILP (BVAR (current_buffer, enable_multibyte_characters)) + && ! CODING_MAY_REQUIRE_DECODING (&process_coding)) insert_1_both (buf, nread, nread, 0, 1, 0); else { /* We have to decode the input. */ @@ -835,6 +837,7 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd, ptrdiff_t count1 = SPECPDL_INDEX (); XSETBUFFER (curbuf, current_buffer); + /* FIXME: Call signal_after_change! */ prepare_to_modify_buffer (PT, PT, NULL); /* We cannot allow after-change-functions be run during decoding, because that might modify the -- 2.20.1