emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r111217: lisp/emacs-lisp/edebug.el: F


From: Juanma Barranquero
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r111217: lisp/emacs-lisp/edebug.el: Fix bug#13163.
Date: Thu, 13 Dec 2012 10:45:54 +0100
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 111217
fixes bug: http://debbugs.gnu.org/13163
committer: Juanma Barranquero <address@hidden>
branch nick: trunk
timestamp: Thu 2012-12-13 10:45:54 +0100
message:
  lisp/emacs-lisp/edebug.el: Fix bug#13163.
  (edebug--require-cl-read): New function.
  (edebug-setup-hook, cl-read-load-hooks): Use it.
  (edebug-unload-function): New function.
modified:
  lisp/ChangeLog
  lisp/emacs-lisp/edebug.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2012-12-13 08:42:25 +0000
+++ b/lisp/ChangeLog    2012-12-13 09:45:54 +0000
@@ -1,3 +1,9 @@
+2012-12-13  Juanma Barranquero  <address@hidden>
+
+       * emacs-lisp/edebug.el (edebug--require-cl-read): New function.
+       (edebug-setup-hook, cl-read-load-hooks): Use it.
+       (edebug-unload-function): New function.  (Bug#13163)
+
 2012-12-13  Michael Albinus  <address@hidden>
 
        * net/tramp-adb.el (tramp-adb-file-name-p): Make it a defsubst.

=== modified file 'lisp/emacs-lisp/edebug.el'
--- a/lisp/emacs-lisp/edebug.el 2012-11-20 04:24:09 +0000
+++ b/lisp/emacs-lisp/edebug.el 2012-12-13 09:45:54 +0000
@@ -4258,12 +4258,13 @@
 ;;; Autoloading of Edebug accessories
 
 ;; edebug-cl-read and cl-read are available from address@hidden
+(defun edebug--require-cl-read ()
+  (require 'edebug-cl-read))
+
 (if (featurep 'cl-read)
-    (add-hook 'edebug-setup-hook
-             (function (lambda () (require 'edebug-cl-read))))
+    (add-hook 'edebug-setup-hook #'edebug--require-cl-read)
   ;; The following causes edebug-cl-read to be loaded when you load cl-read.el.
-  (add-hook 'cl-read-load-hooks
-           (function (lambda () (require 'edebug-cl-read)))))
+  (add-hook 'cl-read-load-hooks #'edebug--require-cl-read))
 
 
 ;;; Finalize Loading
@@ -4289,6 +4290,24 @@
 ;; Install edebug read and eval functions.
 (edebug-install-read-eval-functions)
 
+(defun edebug-unload-function ()
+  "Unload the Edebug source level debugger."
+  (when edebug-active
+    (unwind-protect
+        (abort-recursive-edit)
+      (setq edebug-active nil)
+      (edebug-unload-function)))
+  (save-current-buffer
+    (dolist (buffer (buffer-list))
+      (set-buffer buffer)
+      (when (eq major-mode 'edebug-mode) (emacs-lisp-mode))))
+  (remove-hook 'called-interactively-p-functions
+               'edebug--called-interactively-skip)
+  (remove-hook 'cl-read-load-hooks 'edebug--require-cl-read)
+  (edebug-uninstall-read-eval-functions)
+  ;; continue standard unloading
+  nil)
+
 (provide 'edebug)
 
 ;;; edebug.el ends here


reply via email to

[Prev in Thread] Current Thread [Next in Thread]