help-gnu-emacs
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]