GNU bug report logs -
#76585
ielm clobbers history on C-c C-c, C-d
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Sat, 01 Mar 2025 10:28:43 +0200
with message-id <86y0xpqhms.fsf <at> gnu.org>
and subject line Re: bug#76585: ielm clobbers history on C-c C-c, C-d
has caused the debbugs.gnu.org bug report #76585,
regarding ielm clobbers history on C-c C-c, C-d
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
76585: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76585
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
When the ielm inferior dummy process exits, we don't save its history:
when we next start ielm, we reload its history from the save file,
losing any entries between last history save and the present.
[Message part 3 (message/rfc822, inline)]
> From: Daniel Colascione <dancol <at> dancol.org>
> Cc: 76585 <at> debbugs.gnu.org
> Date: Fri, 28 Feb 2025 16:27:04 -0500
>
> Eli Zaretskii <eliz <at> gnu.org> writes:
>
> > Thanks. Does the below give good results?
> >
> > diff --git a/lisp/ielm.el b/lisp/ielm.el
> > index b3cd02b..c651612 100644
> > --- a/lisp/ielm.el
> > +++ b/lisp/ielm.el
> > @@ -521,6 +521,12 @@ ielm--input-history-writer
> > (with-current-buffer buf
> > (comint-write-input-ring))))
> >
> > +(defun ielm--write-history-on-interrupt (_proc _group)
> > + "Save the IELM input history when the process is interrupted."
> > + (funcall (ielm--input-history-writer (current-buffer)))
> > + ;; Let the rest of the hook functions run as well.
> > + nil)
> > +
> > ;;; Major mode
> >
> > (define-derived-mode inferior-emacs-lisp-mode comint-mode "IELM"
> > @@ -658,7 +664,9 @@ inferior-emacs-lisp-mode
> > '(rear-nonsticky t field output inhibit-line-move-field-capture t))))
> > (comint-output-filter (ielm-process) ielm-prompt-internal)
> > (set-marker comint-last-input-start (ielm-pm))
> > - (set-process-filter (get-buffer-process (current-buffer)) 'comint-output-filter)))
> > + (set-process-filter (get-buffer-process (current-buffer)) 'comint-output-filter)
> > + (add-hook 'interrupt-process-functions
> > + #'ielm--write-history-on-interrupt -1 t)))
> >
> > (defun ielm-get-old-input nil
> > ;; Return the previous input surrounding point
>
> This works. Thanks
Thanks, installed on the master branch, and closing the bug.
This bug report was last modified 82 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.