GNU bug report logs -
#19823
25.0.50; Inferior-python-mode buffer can't be killed if process is dead
Previous Next
Reported by: Dima Kogan <dima <at> secretsauce.net>
Date: Mon, 9 Feb 2015 20:06:01 UTC
Severity: normal
Fixed in version 25.0.50
Done: fgallina <at> gnu.org (Fabián Ezequiel Gallina)
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Hi. Currently emacs requires the inferior python process to exist to be
able to kill that buffer. If the inferior process exits earlier for any
reason, it's impossible to kill the buffer. Recipe:
1. emacs -Q
2. M-x python
3. exit() [ this exits the session, killing the inferior process ]
4. C-x k enter [ Error! "No inferior Python process running" ]
This happens because a cleanup handler fails. It needs to explicitly
ignore this particular failure. Wrapping the contents of
python-shell-font-lock-kill-buffer() into (ignore-errors ....) is one
way to fix this:
(defun python-shell-font-lock-kill-buffer ()
"Kill the font-lock buffer safely."
(ignore-errors
(python-shell-with-shell-buffer
(when (and python-shell--font-lock-buffer
(buffer-live-p python-shell--font-lock-buffer))
(kill-buffer python-shell--font-lock-buffer)
(when (derived-mode-p 'inferior-python-mode)
(setq python-shell--font-lock-buffer nil))))))
It should probably be more specific than a blanket ignore-errors, but
the maintainers should decide what they want here.
This bug report was last modified 10 years and 107 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.