[gnu.emacs] edebug breakpoints broken

liberte@M.CS.UIUC.EDU (Daniel LaLiberte) (02/15/89)

If you tried breakpointing with edebug, you'ld have noticed
it was broken.  Thanks to Eric Raible (raible@orville.nas.nasa.gov)
for catching it.  Here is the fix relative to version 1.3.

Dan LaLiberte
uiucdcs!liberte
liberte@cs.uiuc.edu
liberte%a.cs.uiuc.edu@uiucvmd.bitnet
===

*** /tmp/,RCSt1015774	Tue Feb 14 23:00:06 1989
--- edebug.el	Tue Feb 14 22:59:29 1989
***************
*** 35,41
  ;;; liberte@cs.uiuc.edu
  ;;; liberte%a.cs.uiuc.edu@uiucvmd.bitnet
  
! ;;; $Header: edebug.el,v 1.3 89/01/30 00:26:09 liberte Exp $
  ;;; $Log:	edebug.el,v $
  ;;; Revision 1.3  89/01/30  00:26:09  liberte
  ;;; More bug fixes for cond and let.

--- 35,41 -----
  ;;; liberte@cs.uiuc.edu
  ;;; liberte%a.cs.uiuc.edu@uiucvmd.bitnet
  
! ;;; $Header: edebug.el,v 1.4 89/02/14 22:58:34 liberte Exp $
  ;;; $Log:	edebug.el,v $
  ;;; Revision 1.4  89/02/14  22:58:34  liberte
  ;;; Fix broken breakpointing.
***************
*** 37,42
  
  ;;; $Header: edebug.el,v 1.3 89/01/30 00:26:09 liberte Exp $
  ;;; $Log:	edebug.el,v $
  ;;; Revision 1.3  89/01/30  00:26:09  liberte
  ;;; More bug fixes for cond and let.
  ;;; Another parsing fix backquote.

--- 37,46 -----
  
  ;;; $Header: edebug.el,v 1.4 89/02/14 22:58:34 liberte Exp $
  ;;; $Log:	edebug.el,v $
+ ;;; Revision 1.4  89/02/14  22:58:34  liberte
+ ;;; Fix broken breakpointing.
+ ;;; Temporarily widen elisp buffer during edebug.
+ ;;; 
  ;;; Revision 1.3  89/01/30  00:26:09  liberte
  ;;; More bug fixes for cond and let.
  ;;; Another parsing fix backquote.
***************
*** 578,584
  
  	  (save-excursion
  	    (unwind-protect
! 		(progn
  		  (setq edebug-outside-window-configuration
  			(current-window-configuration))
  		  (setq edebug-depth (1+ edebug-depth))

--- 582,588 -----
  
  	  (save-excursion
  	    (unwind-protect
! 		(save-restriction
  		  (setq edebug-outside-window-configuration
  			(current-window-configuration))
  		  (setq edebug-depth (1+ edebug-depth))
***************
*** 629,634
  			;; a substitute for pop-to-buffer might be simpler
  			(pop-to-buffer edebug-buffer)
  			(set-buffer edebug-buffer)
  			(goto-char edebug-point)
  
  			;; adjust window to fit as much as possible

--- 633,639 -----
  			;; a substitute for pop-to-buffer might be simpler
  			(pop-to-buffer edebug-buffer)
  			(set-buffer edebug-buffer)
+ 			(widen)
  			(goto-char edebug-point)
  
  			;; adjust window to fit as much as possible
***************
*** 669,675
  				(current-window-configuration))
  			  (unwind-protect
  			      (recursive-edit)
! 			    (set-buffer edebug-buffer)) ; may have changed buffers
  			  )))
  		  )
  	    

--- 674,681 -----
  				(current-window-configuration))
  			  (unwind-protect
  			      (recursive-edit)
! 			    ;; may have changed buffers, so set it back first
! 			    (set-buffer edebug-buffer))
  			  )))
  		  )
  	    
***************
*** 738,745
      (setq edebug-func-mark (car edebug-data))
      (setq edebug-breakpoints (car (cdr edebug-data)))
  
!     (let ((point-vector (car (cdr (cdr edebug-data))))
! 	  (pnt (point))
  	  len i)
        ;; assume that the marks are in order
        (setq len (length mark-vector))

--- 744,751 -----
      (setq edebug-func-mark (car edebug-data))
      (setq edebug-breakpoints (car (cdr edebug-data)))
  
!     (let ((offset-vector (car (cdr (cdr edebug-data))))
! 	  (offset (- (point) edebug-func-mark))
  	  len i)
        ;; assume that the offsets are in order
        (setq len (length offset-vector))
***************
*** 741,748
      (let ((point-vector (car (cdr (cdr edebug-data))))
  	  (pnt (point))
  	  len i)
!       ;; assume that the marks are in order
!       (setq len (length mark-vector))
        (setq i 0)
        (while (and (< i len) (> pnt (aref point-vector i)))
  	(setq i (1+ i)))

--- 747,754 -----
      (let ((offset-vector (car (cdr (cdr edebug-data))))
  	  (offset (- (point) edebug-func-mark))
  	  len i)
!       ;; assume that the offsets are in order
!       (setq len (length offset-vector))
        (setq i 0)
        (while (and (< i len) (> offset (aref offset-vector i)))
  	(setq i (1+ i)))
***************
*** 744,750
        ;; assume that the marks are in order
        (setq len (length mark-vector))
        (setq i 0)
!       (while (and (< i len) (> pnt (aref point-vector i)))
  	(setq i (1+ i)))
        (if (<= pnt (aref point-vector i))
  	  (progn  ; found it

--- 750,756 -----
        ;; assume that the offsets are in order
        (setq len (length offset-vector))
        (setq i 0)
!       (while (and (< i len) (> offset (aref offset-vector i)))
  	(setq i (1+ i)))
        (if (and (< i len)
  	       (<= offset (aref offset-vector i)))
***************
*** 746,752
        (setq i 0)
        (while (and (< i len) (> pnt (aref point-vector i)))
  	(setq i (1+ i)))
!       (if (<= pnt (aref point-vector i))
  	  (progn  ; found it
  	    (setq edebug-breakpoints (delq i edebug-breakpoints))
  	    (if flag

--- 752,759 -----
        (setq i 0)
        (while (and (< i len) (> offset (aref offset-vector i)))
  	(setq i (1+ i)))
!       (if (and (< i len)
! 	       (<= offset (aref offset-vector i)))
  	  (progn  ; found it
  	    (setq edebug-breakpoints (delq i edebug-breakpoints))
  	    (if flag
***************
*** 752,759
  	    (if flag
  		(progn
  		  (setq edebug-breakpoints (cons i edebug-breakpoints))
! 		  (message "Breakpoint set."))
! 	      (message "Breakpoint cleared."))
  	    
  	    (setq edebug-data
  		  (list edebug-func-mark edebug-breakpoints point-vector))

--- 759,766 -----
  	    (if flag
  		(progn
  		  (setq edebug-breakpoints (cons i edebug-breakpoints))
! 		  (message "Breakpoint set in %s." defun-name))
! 	      (message "Breakpoint cleared %s." defun-name))
  	    
  	    (setq edebug-data
  		  (list edebug-func-mark edebug-breakpoints offset-vector))
***************
*** 756,762
  	      (message "Breakpoint cleared."))
  	    
  	    (setq edebug-data
! 		  (list edebug-func-mark edebug-breakpoints point-vector))
  	    (put defun-name 'edebug edebug-data)
  	    (goto-char (aref point-vector i))
  	    ))

--- 763,769 -----
  	      (message "Breakpoint cleared %s." defun-name))
  	    
  	    (setq edebug-data
! 		  (list edebug-func-mark edebug-breakpoints offset-vector))
  	    (put defun-name 'edebug edebug-data)
  	    (goto-char (+ edebug-func-mark (aref offset-vector i)))
  	    )
***************
*** 758,765
  	    (setq edebug-data
  		  (list edebug-func-mark edebug-breakpoints point-vector))
  	    (put defun-name 'edebug edebug-data)
! 	    (goto-char (aref point-vector i))
! 	    ))
        )))
  
  (defun edebug-set-breakpoint ()

--- 765,775 -----
  	    (setq edebug-data
  		  (list edebug-func-mark edebug-breakpoints offset-vector))
  	    (put defun-name 'edebug edebug-data)
! 	    (goto-char (+ edebug-func-mark (aref offset-vector i)))
! 	    )
! 	(message "Point is not at the beginning of an expression in %s."
! 		 defun-name)
! 	)
        )))
  
  (defun edebug-set-breakpoint ()