Subject: Re: bug#12685: 24.2; lexical binding breaks edebug conditional breakpoints

From: Stefan Monnier <[email-masked]>
Date: Thu, 08 Aug 2013 19:19:07 -0400

> 3'. Create conditional breakpoint in `test': "C-x X x (null arg) <ret>"

> 4'. Evaluate `test': "M-: (test 3)"
> -> message "Symbol's value as variable is void: arg"

I just installed the patch below which seems to fix this problem.

        Stefan

=== modified file 'lisp/emacs-lisp/edebug.el'
--- lisp/emacs-lisp/edebug.el	2013-08-05 14:26:57 +0000
+++ lisp/emacs-lisp/edebug.el	2013-08-08 23:10:08 +0000
@@ -2314,8 +2314,7 @@
 	    (if edebug-global-break-condition
 		(condition-case nil
 		    (setq edebug-global-break-result
-                          ;; FIXME: lexbind.
-			  (eval edebug-global-break-condition))
+			  (edebug-eval edebug-global-break-condition))
 		  (error nil))))
 	   (edebug-break))
 
@@ -2326,8 +2325,7 @@
 		(and edebug-break-data
 		     (or (not edebug-break-condition)
 			 (setq edebug-break-result
-                               ;; FIXME: lexbind.
-			       (eval edebug-break-condition))))))
+			       (edebug-eval edebug-break-condition))))))
       (if (and edebug-break
 	       (nth 2 edebug-break-data)) ; is it temporary?
 	  ;; Delete the breakpoint.