unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
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)







  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).