From: martin rudalics <rudalics@gmx.at>
To: michael_heerdegen@web.de
Cc: 10805@debbugs.gnu.org
Subject: bug#10805: 24.0.93; edebug-trace t may cause stuff being inserted into current buffer
Date: Tue, 14 Feb 2012 11:53:48 +0100 [thread overview]
Message-ID: <4F3A3D3C.8020002@gmx.at> (raw)
In-Reply-To: <87y5s6l63w.fsf@web.de>
> 1. emacs -Q
> 2. I write this into the scratch buffer:
> (defun f (x) (if (> x 0) (* x (f (1- x))) 0))
> and do M-1 C-M-x
> 3. M-: (setq edebug-trace t) RET
> 4. M-: (f 5) RET
>
> Then, "{ f args: (5)" is inserted into *scratch*.
>
> The bug is related to this commented code at the end of
> `edebug-pop-to-buffer':
>
> ;; Selecting the window does not set the buffer until command loop.
> ;;(set-buffer buffer)
>
> If I uncomment this call to `set-buffer', the problem disappears.
>
> Seems the one who commented this line of code wanted to test if it is
> (still) needed - seems it is.
More or less so, yes. This is yet another incarnation of the "unless
WINDOW already is the selected window, its buffer becomes the current
buffer" problem of `select-window'.
We have three possibilites to fix this:
(1) Fix this in `select-window' and friends. This should be done sooner
or later but I'm not sure whether "now" is the right moment.
(2) Fix this by uncommenting the line above. I suppose, however, that
line was commented out on purpose, hence we might experience more
surprises in edebug.
(3) Do something like the patch below. This is the most conservative
approach and will consequently fail to fix similar problems. Note
also that my experience with `edebug-trace' is zero.
martin
*** lisp/emacs-lisp/edebug.el 2012-01-19 07:21:25 +0000
--- lisp/emacs-lisp/edebug.el 2012-02-14 10:43:52 +0000
***************
*** 4129,4146 ****
;; (point) (window-start))
(let* ((oldbuf (current-buffer))
(selected-window (selected-window))
! (buffer (get-buffer-create buf-name))
! buf-window)
;; (message "before pop-to-buffer") (sit-for 1)
(edebug-pop-to-buffer buffer)
! (setq truncate-lines t)
! (setq buf-window (selected-window))
! (goto-char (point-max))
! (insert (apply 'edebug-format fmt args) "\n")
! ;; Make it visible.
! (vertical-motion (- 1 (window-height)))
! (set-window-start buf-window (point))
! (goto-char (point-max))
;; (set-window-point buf-window (point))
;; (edebug-sit-for 0)
(bury-buffer buffer)
--- 4129,4145 ----
;; (point) (window-start))
(let* ((oldbuf (current-buffer))
(selected-window (selected-window))
! (buffer (get-buffer-create buf-name)))
;; (message "before pop-to-buffer") (sit-for 1)
(edebug-pop-to-buffer buffer)
! (with-current-buffer buffer
! (setq truncate-lines t)
! (goto-char (point-max))
! (insert (apply 'edebug-format fmt args) "\n")
! ;; Make it visible.
! (vertical-motion (- 1 (window-height)))
! (set-window-start nil (point))
! (goto-char (point-max)))
;; (set-window-point buf-window (point))
;; (edebug-sit-for 0)
(bury-buffer buffer)
next prev parent reply other threads:[~2012-02-14 10:53 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-13 22:29 bug#10805: 24.0.93; edebug-trace t may cause stuff being inserted into current buffer Michael Heerdegen
2012-02-14 10:53 ` martin rudalics [this message]
2012-02-14 23:53 ` Michael Heerdegen
2012-02-15 9:56 ` martin rudalics
2012-02-17 2:18 ` Michael Heerdegen
2012-02-17 9:58 ` martin rudalics
2012-02-17 15:12 ` Stefan Monnier
2012-02-18 17:04 ` martin rudalics
2012-10-04 13:17 ` martin rudalics
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F3A3D3C.8020002@gmx.at \
--to=rudalics@gmx.at \
--cc=10805@debbugs.gnu.org \
--cc=michael_heerdegen@web.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).