1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-07 15:00:34 -08:00

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.
This commit is contained in:
Juanma Barranquero 2012-12-13 10:45:54 +01:00
parent 6ce2146306
commit 5f3a3bb1f5
2 changed files with 29 additions and 4 deletions

View file

@ -4258,12 +4258,13 @@ With prefix argument, make it a temporary breakpoint."
;;; Autoloading of Edebug accessories
;; edebug-cl-read and cl-read are available from liberte@cs.uiuc.edu
(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 @@ With prefix argument, make it a temporary breakpoint."
;; 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