[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: call-process and incremental display of output
From: |
Stefan Monnier |
Subject: |
Re: call-process and incremental display of output |
Date: |
Wed, 27 Feb 2019 09:11:24 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) |
> Ping. Not sure if my previous email was lost in the ether. FWIW, I am
> still using that patch and didn't run into any issues. It works as I
> expected, i.e. when point is at eob, new text is inserted before the
> point.
This should go to emacs-devel.
FWIW, I noticed at least the following incompatibility with this patch:
emacs -Q
M-x ielm
M-x electric-pair-mode
(
This should leave you with "()" and point between the two parens, but
instead point is left after the closing paren.
This is because the behavior of the electric-pair thingy is equivalent to
(insert "(")
(save-excursion
(insert ")"))
which is indeed affected by this patch.
Stefan
> John Shahid <jvshahid@gmail.com> writes:
>
>> FYI, I have been using this patch without any noticeable issues. Not
>> sure if we should merge it.
>>
>> Stefan Monnier <monnier@IRO.UMontreal.CA> writes:
>>
>>>> Sounds good. I'll make the change locally and test it for a month or
>>>> two and report back.
>>>
>>> FWIW, I'm running with the following change now:
>>>
>>> diff --git a/src/editfns.c b/src/editfns.c
>>> index e995b38a44..db95a8a20a 100644
>>> --- a/src/editfns.c
>>> +++ b/src/editfns.c
>>> @@ -782,6 +782,12 @@ save_excursion_save (union specbinding *pdl)
>>> {
>>> eassert (pdl->unwind_excursion.kind == SPECPDL_UNWIND_EXCURSION);
>>> pdl->unwind_excursion.marker = Fpoint_marker ();
>>> + /* Suggested by John Shahid <jvshahid@gmail.com> in the
>>> "call-process and
>>> + * incremental display of output" thread of help-gnu-emacs.
>>> + * This matches the manually-created behavior of compile.el's
>>> process filter
>>> + * and probably others like comint as well. */
>>> + XMARKER (pdl->unwind_excursion.marker)->insertion_type
>>> + = !NILP (Vwindow_point_insertion_type);
>>> /* Selected window if current buffer is shown in it, nil otherwise.
>>> */
>>> pdl->unwind_excursion.window
>>> = (EQ (XWINDOW (selected_window)->contents, Fcurrent_buffer ())
>>>
>>> I haven't double checked that it does what I think it does, to be
>>> honest, but at least after a mere 48h of normal use I haven't noticed
>>> anything weird yet.
>>>
>>>
>>> Stefan